Showing preview only (4,386K chars total). Download the full file or copy to clipboard to get everything.
Repository: material-components/material-web
Branch: main
Commit: e16e2f6c5e18
Files: 1209
Total size: 4.0 MB
Directory structure:
gitextract_t0d4cjg1/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug.yaml
│ │ ├── config.yml
│ │ ├── documentation-bug.yaml
│ │ └── feature.yaml
│ └── workflows/
│ ├── build-catalog.yml
│ ├── commitlint.yml
│ ├── firebase-hosting-merge.yml
│ ├── firebase-hosting-pull-request.yml
│ ├── nightly.yml
│ ├── publish.yml
│ ├── release-please.yml
│ ├── test.yml
│ ├── update-docs-on-main.yml
│ └── update-size-on-main.yml
├── .gitignore
├── .release-please-manifest.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── all.ts
├── button/
│ ├── _elevated-button.scss
│ ├── _filled-button.scss
│ ├── _filled-tonal-button.scss
│ ├── _outlined-button.scss
│ ├── _text-button.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── elevated-button.ts
│ ├── elevated-button_test.ts
│ ├── filled-button.ts
│ ├── filled-button_test.ts
│ ├── filled-tonal-button.ts
│ ├── filled-tonal-button_test.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _elevated-button.scss
│ │ ├── _elevation.scss
│ │ ├── _filled-button.scss
│ │ ├── _filled-tonal-button.scss
│ │ ├── _icon.scss
│ │ ├── _outlined-button.scss
│ │ ├── _shared.scss
│ │ ├── _text-button.scss
│ │ ├── _touch-target.scss
│ │ ├── button.ts
│ │ ├── button_test.ts
│ │ ├── elevated-button.ts
│ │ ├── elevated-styles.scss
│ │ ├── filled-button.ts
│ │ ├── filled-styles.scss
│ │ ├── filled-tonal-button.ts
│ │ ├── filled-tonal-styles.scss
│ │ ├── outlined-button.ts
│ │ ├── outlined-styles.scss
│ │ ├── shared-elevation-styles.scss
│ │ ├── shared-styles.scss
│ │ ├── text-button.ts
│ │ └── text-styles.scss
│ ├── outlined-button.ts
│ ├── outlined-button_test.ts
│ ├── text-button.ts
│ └── text-button_test.ts
├── catalog/
│ ├── .firebaserc
│ ├── eleventy-helpers/
│ │ ├── filters/
│ │ │ ├── filter-sort.cjs
│ │ │ ├── filter-toc.cjs
│ │ │ └── md-markdown.cjs
│ │ ├── plugins/
│ │ │ ├── copy-code-button.cjs
│ │ │ └── permalinks.cjs
│ │ ├── shortcodes/
│ │ │ ├── inline-css.cjs
│ │ │ ├── inline-js.cjs
│ │ │ └── playground-example.cjs
│ │ └── transforms/
│ │ └── minify-html.cjs
│ ├── eleventy.config.cjs
│ ├── esbuild.config.mjs
│ ├── firebase.json
│ ├── package.json
│ ├── scripts/
│ │ ├── copy-docs.mjs
│ │ └── copy-stories.mjs
│ ├── site/
│ │ ├── _includes/
│ │ │ ├── default.html
│ │ │ └── layouts/
│ │ │ ├── components.html
│ │ │ └── docs.html
│ │ ├── about/
│ │ │ └── about.json
│ │ ├── components/
│ │ │ └── components.json
│ │ ├── css/
│ │ │ ├── global.css
│ │ │ ├── home-page.css
│ │ │ ├── md-layout.css
│ │ │ ├── no-js.css
│ │ │ ├── stories.css
│ │ │ └── syntax-highlight.css
│ │ ├── index.html
│ │ ├── stories/
│ │ │ └── stories.html
│ │ └── theming/
│ │ └── theming.json
│ ├── src/
│ │ ├── components/
│ │ │ ├── catalog-component-header-title.ts
│ │ │ ├── catalog-component-header.ts
│ │ │ ├── copy-code-button.ts
│ │ │ ├── drag-playground.ts
│ │ │ ├── hct-slider.ts
│ │ │ ├── nav-drawer.ts
│ │ │ ├── theme-changer.ts
│ │ │ └── top-app-bar.ts
│ │ ├── hydration-entrypoints/
│ │ │ ├── components/
│ │ │ │ ├── button.ts
│ │ │ │ ├── checkbox.ts
│ │ │ │ ├── fab.ts
│ │ │ │ ├── icon-button.ts
│ │ │ │ ├── list.ts
│ │ │ │ ├── menu.ts
│ │ │ │ ├── select.ts
│ │ │ │ └── text-field.ts
│ │ │ ├── copy-code-button.ts
│ │ │ ├── menu.ts
│ │ │ ├── navigation.ts
│ │ │ └── playground-elements.ts
│ │ ├── inline/
│ │ │ └── apply-saved-theme.ts
│ │ ├── pages/
│ │ │ ├── components.ts
│ │ │ ├── global.ts
│ │ │ ├── home-page.ts
│ │ │ └── stories.ts
│ │ ├── signals/
│ │ │ ├── drawer-open-state.ts
│ │ │ ├── inert.ts
│ │ │ └── signal-element.ts
│ │ ├── ssr-utils/
│ │ │ ├── dsd-polyfill.ts
│ │ │ ├── lit-hydrate-support.ts
│ │ │ └── lit-island.ts
│ │ ├── ssr.ts
│ │ ├── svg/
│ │ │ └── material-design-logo.ts
│ │ ├── types/
│ │ │ ├── color-events.ts
│ │ │ └── is-land.d.ts
│ │ └── utils/
│ │ ├── apply-theme-string.ts
│ │ ├── material-color-helpers.ts
│ │ └── theme.ts
│ ├── stories/
│ │ ├── base.json
│ │ ├── components/
│ │ │ ├── knob-ui-components.ts
│ │ │ ├── stories-renderer.ts
│ │ │ ├── story-knob-panel.ts
│ │ │ └── story-renderer.ts
│ │ ├── index.html
│ │ ├── index.ts
│ │ ├── knobs.ts
│ │ ├── material-collection.ts
│ │ ├── story.ts
│ │ └── theme-loader.ts
│ └── tsconfig.json
├── checkbox/
│ ├── _checkbox.scss
│ ├── checkbox.ts
│ ├── checkbox_test.ts
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ └── internal/
│ ├── _checkbox.scss
│ ├── checkbox-styles.scss
│ ├── checkbox.ts
│ └── checkbox_test.ts
├── chips/
│ ├── _assist-chip.scss
│ ├── _filter-chip.scss
│ ├── _input-chip.scss
│ ├── _suggestion-chip.scss
│ ├── assist-chip.ts
│ ├── assist-chip_test.ts
│ ├── chip-set.ts
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── filter-chip.ts
│ ├── filter-chip_test.ts
│ ├── harness.ts
│ ├── input-chip.ts
│ ├── input-chip_test.ts
│ ├── internal/
│ │ ├── _assist-chip.scss
│ │ ├── _chip-set.scss
│ │ ├── _elevated.scss
│ │ ├── _filter-chip.scss
│ │ ├── _input-chip.scss
│ │ ├── _selectable.scss
│ │ ├── _shared.scss
│ │ ├── _suggestion-chip.scss
│ │ ├── _trailing-icon.scss
│ │ ├── assist-chip.ts
│ │ ├── assist-chip_test.ts
│ │ ├── assist-styles.scss
│ │ ├── chip-set-styles.scss
│ │ ├── chip-set.ts
│ │ ├── chip-set_test.ts
│ │ ├── chip.ts
│ │ ├── chip_test.ts
│ │ ├── elevated-styles.scss
│ │ ├── filter-chip.ts
│ │ ├── filter-chip_test.ts
│ │ ├── filter-styles.scss
│ │ ├── input-chip.ts
│ │ ├── input-chip_test.ts
│ │ ├── input-styles.scss
│ │ ├── multi-action-chip.ts
│ │ ├── multi-action-chip_test.ts
│ │ ├── selectable-styles.scss
│ │ ├── shared-styles.scss
│ │ ├── suggestion-chip.ts
│ │ ├── suggestion-chip_test.ts
│ │ ├── suggestion-styles.scss
│ │ ├── trailing-icon-styles.scss
│ │ └── trailing-icons.ts
│ ├── suggestion-chip.ts
│ └── suggestion-chip_test.ts
├── color/
│ └── _color.scss
├── commitlint.config.js
├── common.ts
├── dialog/
│ ├── _dialog.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── dialog.ts
│ ├── dialog_test.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _dialog.scss
│ │ ├── animations.ts
│ │ ├── dialog-styles.scss
│ │ └── dialog.ts
│ └── test/
│ └── window_size.json
├── divider/
│ ├── _divider.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── divider.ts
│ ├── divider_test.ts
│ └── internal/
│ ├── _divider.scss
│ ├── divider-styles.scss
│ └── divider.ts
├── docs/
│ ├── components/
│ │ ├── button.md
│ │ ├── checkbox.md
│ │ ├── chip.md
│ │ ├── dialog.md
│ │ ├── divider.md
│ │ ├── elevation.md
│ │ ├── fab.md
│ │ ├── figures/
│ │ │ ├── checkbox/
│ │ │ │ ├── theming.html
│ │ │ │ ├── usage-label.html
│ │ │ │ └── usage.html
│ │ │ ├── fab/
│ │ │ │ ├── extended-fabs.html
│ │ │ │ ├── fabs.html
│ │ │ │ ├── theming-branded.html
│ │ │ │ ├── theming-extended.html
│ │ │ │ ├── theming-fab.html
│ │ │ │ ├── usage-branded-extended.html
│ │ │ │ ├── usage-branded-sizes.html
│ │ │ │ ├── usage-branded.html
│ │ │ │ ├── usage-color.html
│ │ │ │ ├── usage-extended.html
│ │ │ │ ├── usage-fab.html
│ │ │ │ ├── usage-lowered.html
│ │ │ │ ├── usage-sizes.html
│ │ │ │ └── usage-without-icon.html
│ │ │ ├── iconbutton/
│ │ │ │ ├── buttons.html
│ │ │ │ ├── theming-filled-tonal.html
│ │ │ │ ├── theming-filled.html
│ │ │ │ ├── theming-outlined.html
│ │ │ │ ├── theming-standard.html
│ │ │ │ ├── usage-filled-tonal.html
│ │ │ │ ├── usage-filled.html
│ │ │ │ ├── usage-outlined.html
│ │ │ │ ├── usage-standard.html
│ │ │ │ ├── usage-toggle.html
│ │ │ │ └── usage.html
│ │ │ ├── list/
│ │ │ │ ├── theming-icon.html
│ │ │ │ ├── theming-image.html
│ │ │ │ ├── theming-list.html
│ │ │ │ ├── usage-icon.html
│ │ │ │ ├── usage-image.html
│ │ │ │ └── usage.html
│ │ │ ├── menu/
│ │ │ │ ├── theming.html
│ │ │ │ ├── usage-document.html
│ │ │ │ ├── usage-fixed.html
│ │ │ │ ├── usage-popover.html
│ │ │ │ ├── usage-submenu.html
│ │ │ │ └── usage.html
│ │ │ ├── select/
│ │ │ │ ├── theming-filled.html
│ │ │ │ ├── theming-outlined.html
│ │ │ │ └── usage.html
│ │ │ └── textfield/
│ │ │ ├── theming-filled.html
│ │ │ ├── theming-outlined.html
│ │ │ ├── usage-char-counter.html
│ │ │ ├── usage-icons.html
│ │ │ ├── usage-label.html
│ │ │ ├── usage-prefix.html
│ │ │ ├── usage-supporting-text.html
│ │ │ ├── usage-textarea.html
│ │ │ ├── usage-type.html
│ │ │ └── usage.html
│ │ ├── focus-ring.md
│ │ ├── icon-button.md
│ │ ├── icon.md
│ │ ├── list.md
│ │ ├── menu.md
│ │ ├── progress.md
│ │ ├── radio.md
│ │ ├── ripple.md
│ │ ├── select.md
│ │ ├── slider.md
│ │ ├── switch.md
│ │ ├── tabs.md
│ │ └── text-field.md
│ ├── intro.md
│ ├── quick-start.md
│ ├── roadmap.md
│ ├── sass/
│ │ └── sass-ext.md
│ ├── size.md
│ ├── support.md
│ └── theming/
│ ├── README.md
│ ├── color.md
│ ├── shape.md
│ └── typography.md
├── elevation/
│ ├── _elevation.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── elevation.ts
│ ├── elevation_test.ts
│ └── internal/
│ ├── _elevation.scss
│ ├── elevation-styles.scss
│ └── elevation.ts
├── fab/
│ ├── _fab.scss
│ ├── branded-fab.ts
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── fab.ts
│ ├── fab_test.ts
│ ├── harness.ts
│ └── internal/
│ ├── _fab-branded.scss
│ ├── _fab.scss
│ ├── _shared.scss
│ ├── fab-branded-styles.scss
│ ├── fab-styles.scss
│ ├── fab.ts
│ ├── forced-colors-styles.scss
│ ├── shared-styles.scss
│ └── shared.ts
├── field/
│ ├── _filled-field.scss
│ ├── _outlined-field.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── filled-field.ts
│ ├── filled-field_test.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _content.scss
│ │ ├── _filled-field.scss
│ │ ├── _label.scss
│ │ ├── _outlined-field.scss
│ │ ├── _shared.scss
│ │ ├── _supporting-text.scss
│ │ ├── field.ts
│ │ ├── field_test.ts
│ │ ├── filled-field.ts
│ │ ├── filled-styles.scss
│ │ ├── outlined-field.ts
│ │ ├── outlined-styles.scss
│ │ └── shared-styles.scss
│ ├── outlined-field.ts
│ └── outlined-field_test.ts
├── focus/
│ ├── _focus-ring.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── internal/
│ │ ├── _focus-ring.scss
│ │ ├── focus-ring-styles.scss
│ │ ├── focus-ring.ts
│ │ └── focus-ring_test.ts
│ ├── md-focus-ring.ts
│ └── md-focus-ring_test.ts
├── icon/
│ ├── _icon.scss
│ ├── icon.ts
│ ├── icon_test.ts
│ └── internal/
│ ├── _icon.scss
│ ├── icon-styles.scss
│ └── icon.ts
├── iconbutton/
│ ├── _filled-icon-button.scss
│ ├── _filled-tonal-icon-button.scss
│ ├── _icon-button.scss
│ ├── _outlined-icon-button.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── filled-icon-button.ts
│ ├── filled-icon-button_test.ts
│ ├── filled-tonal-icon-button.ts
│ ├── filled-tonal-icon-button_test.ts
│ ├── harness.ts
│ ├── icon-button.ts
│ ├── icon-button_test.ts
│ ├── internal/
│ │ ├── _filled-icon-button.scss
│ │ ├── _filled-tonal-icon-button.scss
│ │ ├── _icon-button.scss
│ │ ├── _outlined-icon-button.scss
│ │ ├── _shared.scss
│ │ ├── filled-styles.scss
│ │ ├── filled-tonal-styles.scss
│ │ ├── icon-button.ts
│ │ ├── outlined-styles.scss
│ │ ├── shared-styles.scss
│ │ └── standard-styles.scss
│ ├── outlined-icon-button.ts
│ └── outlined-icon-button_test.ts
├── internal/
│ ├── README.md
│ ├── aria/
│ │ ├── aria.ts
│ │ ├── aria_test.ts
│ │ ├── delegate.ts
│ │ └── delegate_test.ts
│ ├── controller/
│ │ ├── attachable-controller.ts
│ │ ├── is-rtl.ts
│ │ ├── is-rtl_test.ts
│ │ ├── string-converter.ts
│ │ └── string-converter_test.ts
│ ├── events/
│ │ ├── dispatch-hooks.ts
│ │ ├── dispatch-hooks_test.ts
│ │ ├── form-label-activation.ts
│ │ ├── form-label-activation_test.ts
│ │ ├── redispatch-event.ts
│ │ └── redispatch-event_test.ts
│ └── motion/
│ ├── _animation.scss
│ ├── animation.ts
│ └── animation_test.ts
├── labs/
│ ├── README.md
│ ├── badge/
│ │ ├── _badge.scss
│ │ ├── badge.ts
│ │ ├── badge_test.ts
│ │ └── internal/
│ │ ├── _badge.scss
│ │ ├── badge-styles.scss
│ │ └── badge.ts
│ ├── behaviors/
│ │ ├── constraint-validation.ts
│ │ ├── constraint-validation_test.ts
│ │ ├── custom-state-set.ts
│ │ ├── custom-state-set_test.ts
│ │ ├── element-internals.ts
│ │ ├── element-internals_test.ts
│ │ ├── focusable.ts
│ │ ├── focusable_test.ts
│ │ ├── form-associated.ts
│ │ ├── form-associated_test.ts
│ │ ├── form-submitter.ts
│ │ ├── form-submitter_test.ts
│ │ ├── mixin.ts
│ │ ├── on-report-validity.ts
│ │ ├── on-report-validity_test.ts
│ │ └── validators/
│ │ ├── checkbox-validator.ts
│ │ ├── checkbox-validator_test.ts
│ │ ├── radio-validator.ts
│ │ ├── radio-validator_test.ts
│ │ ├── select-validator.ts
│ │ ├── select-validator_test.ts
│ │ ├── text-field-validator.ts
│ │ ├── text-field-validator_test.ts
│ │ ├── validator.ts
│ │ └── validator_test.ts
│ ├── card/
│ │ ├── _elevated-card.scss
│ │ ├── _filled-card.scss
│ │ ├── _outlined-card.scss
│ │ ├── demo/
│ │ │ ├── demo.ts
│ │ │ ├── project.json
│ │ │ └── stories.ts
│ │ ├── elevated-card.ts
│ │ ├── elevated-card_test.ts
│ │ ├── filled-card.ts
│ │ ├── filled-card_test.ts
│ │ ├── internal/
│ │ │ ├── _elevated-card.scss
│ │ │ ├── _filled-card.scss
│ │ │ ├── _outlined-card.scss
│ │ │ ├── _shared.scss
│ │ │ ├── card.ts
│ │ │ ├── elevated-styles.scss
│ │ │ ├── filled-styles.scss
│ │ │ ├── outlined-styles.scss
│ │ │ └── shared-styles.scss
│ │ ├── outlined-card.ts
│ │ └── outlined-card_test.ts
│ ├── item/
│ │ ├── demo/
│ │ │ ├── demo.ts
│ │ │ ├── project.json
│ │ │ └── stories.ts
│ │ ├── internal/
│ │ │ ├── _item.scss
│ │ │ ├── item-styles.scss
│ │ │ └── item.ts
│ │ └── item.ts
│ ├── navigationbar/
│ │ ├── _navigation-bar.scss
│ │ ├── demo/
│ │ │ ├── demo.ts
│ │ │ ├── project.json
│ │ │ └── stories.ts
│ │ ├── harness.ts
│ │ ├── internal/
│ │ │ ├── _navigation-bar.scss
│ │ │ ├── constants.ts
│ │ │ ├── navigation-bar-styles.scss
│ │ │ ├── navigation-bar.ts
│ │ │ └── state.ts
│ │ ├── md-navigation-bar_test.ts
│ │ └── navigation-bar.ts
│ ├── navigationdrawer/
│ │ ├── _navigation-drawer-modal.scss
│ │ ├── _navigation-drawer.scss
│ │ ├── internal/
│ │ │ ├── _navigation-drawer-modal.scss
│ │ │ ├── _navigation-drawer.scss
│ │ │ ├── _shared.scss
│ │ │ ├── navigation-drawer-modal-styles.scss
│ │ │ ├── navigation-drawer-modal.ts
│ │ │ ├── navigation-drawer-styles.scss
│ │ │ ├── navigation-drawer.ts
│ │ │ └── shared-styles.scss
│ │ ├── navigation-drawer-modal.ts
│ │ └── navigation-drawer.ts
│ ├── navigationtab/
│ │ ├── _navigation-tab.scss
│ │ ├── harness.ts
│ │ ├── internal/
│ │ │ ├── _navigation-tab.scss
│ │ │ ├── navigation-tab-styles.scss
│ │ │ ├── navigation-tab.ts
│ │ │ └── state.ts
│ │ ├── md-navigation-tab_test.ts
│ │ └── navigation-tab.ts
│ ├── segmentedbutton/
│ │ ├── internal/
│ │ │ ├── _outlined-segmented-button.scss
│ │ │ ├── _shared.scss
│ │ │ ├── outlined-segmented-button.ts
│ │ │ ├── outlined-styles.scss
│ │ │ ├── segmented-button.ts
│ │ │ └── shared-styles.scss
│ │ └── outlined-segmented-button.ts
│ └── segmentedbuttonset/
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── internal/
│ │ ├── _outlined-segmented-button-set.scss
│ │ ├── _shared.scss
│ │ ├── outlined-segmented-button-set.ts
│ │ ├── outlined-styles.scss
│ │ ├── segmented-button-set.ts
│ │ └── shared-styles.scss
│ └── outlined-segmented-button-set.ts
├── list/
│ ├── _list-item.scss
│ ├── _list.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _list.scss
│ │ ├── list-controller.ts
│ │ ├── list-navigation-helpers.ts
│ │ ├── list-styles.scss
│ │ ├── list.ts
│ │ └── listitem/
│ │ ├── _list-item.scss
│ │ ├── harness.ts
│ │ ├── list-item-styles.scss
│ │ └── list-item.ts
│ ├── list-item.ts
│ ├── list-item_test.ts
│ ├── list.ts
│ ├── list_test.ts
│ └── test/
│ ├── assets.ts
│ └── window_size.json
├── menu/
│ ├── _menu-item.scss
│ ├── _menu.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _menu.scss
│ │ ├── controllers/
│ │ │ ├── menuItemController.ts
│ │ │ ├── shared.ts
│ │ │ ├── surfacePositionController.ts
│ │ │ └── typeaheadController.ts
│ │ ├── menu-styles.scss
│ │ ├── menu.ts
│ │ ├── menuitem/
│ │ │ ├── _menu-item.scss
│ │ │ ├── harness.ts
│ │ │ ├── menu-item-styles.scss
│ │ │ └── menu-item.ts
│ │ ├── submenu/
│ │ │ ├── _sub-menu.scss
│ │ │ ├── sub-menu-styles.scss
│ │ │ └── sub-menu.ts
│ │ └── types.ts
│ ├── menu-item.ts
│ ├── menu.ts
│ ├── menu_test.ts
│ ├── sub-menu.ts
│ └── test/
│ └── window_size.json
├── migrations/
│ └── v2/
│ ├── README.md
│ ├── query-selector-aria.ts
│ └── query-selector-aria_test.ts
├── package.json
├── progress/
│ ├── _circular-progress.scss
│ ├── _linear-progress.scss
│ ├── circular-progress.ts
│ ├── circular-progress_test.ts
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _circular-progress.scss
│ │ ├── _linear-progress.scss
│ │ ├── circular-progress-styles.scss
│ │ ├── circular-progress.ts
│ │ ├── linear-progress-styles.scss
│ │ ├── linear-progress.ts
│ │ └── progress.ts
│ ├── linear-progress.ts
│ └── linear-progress_test.ts
├── radio/
│ ├── _radio.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _radio.scss
│ │ ├── radio-styles.scss
│ │ ├── radio.ts
│ │ └── single-selection-controller.ts
│ ├── radio.ts
│ └── radio_test.ts
├── release-please-config.json
├── ripple/
│ ├── _ripple.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── internal/
│ │ ├── _ripple.scss
│ │ ├── ripple-styles.scss
│ │ ├── ripple.ts
│ │ └── ripple_test.ts
│ ├── ripple.ts
│ └── ripple_test.ts
├── sass/
│ └── ext/
│ ├── _assert.scss
│ ├── _assert_test.scss
│ ├── _list_ext.scss
│ ├── _list_ext_test.scss
│ ├── _map_ext.scss
│ ├── _map_ext_test.scss
│ ├── _string_ext.scss
│ ├── _string_ext_test.scss
│ ├── _throw.scss
│ ├── _throw_test.scss
│ ├── _type.scss
│ ├── _type_test.scss
│ ├── _var.scss
│ ├── _var_test.scss
│ └── tests.scss
├── scripts/
│ ├── analyzer/
│ │ ├── analyze-element.ts
│ │ ├── element-docs-map.ts
│ │ ├── markdown-tree-builder.ts
│ │ └── update-docs.ts
│ ├── component-custom-elements.ts
│ ├── css-to-ts.ts
│ ├── size/
│ │ ├── bundle-size.ts
│ │ └── update-size.ts
│ ├── tsconfig.json
│ └── update-sass-ext-docs.ts
├── select/
│ ├── _filled-select.scss
│ ├── _outlined-select.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── filled-select.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _filled-select.scss
│ │ ├── _outlined-select.scss
│ │ ├── _shared.scss
│ │ ├── filled-select-styles.scss
│ │ ├── filled-select.ts
│ │ ├── outlined-select-styles.scss
│ │ ├── outlined-select.ts
│ │ ├── select.ts
│ │ ├── selectoption/
│ │ │ ├── harness.ts
│ │ │ ├── select-option.ts
│ │ │ └── selectOptionController.ts
│ │ ├── shared-styles.scss
│ │ └── shared.ts
│ ├── outlined-select.ts
│ ├── select-option.ts
│ ├── select_test.ts
│ └── test/
│ ├── assets.ts
│ └── window_size.json
├── slider/
│ ├── _slider.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _slider.scss
│ │ ├── forced-colors-styles.scss
│ │ ├── slider-styles.scss
│ │ └── slider.ts
│ ├── slider.ts
│ └── slider_test.ts
├── switch/
│ ├── _switch.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── README.md
│ │ ├── _handle.scss
│ │ ├── _icon.scss
│ │ ├── _switch.scss
│ │ ├── _track.scss
│ │ ├── switch-styles.scss
│ │ ├── switch.ts
│ │ └── switch_test.ts
│ ├── switch.ts
│ └── switch_test.ts
├── tabs/
│ ├── _primary-tab.scss
│ ├── _secondary-tab.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── harness.ts
│ ├── internal/
│ │ ├── _primary-tab.scss
│ │ ├── _secondary-tab.scss
│ │ ├── _tab.scss
│ │ ├── _tabs.scss
│ │ ├── primary-tab-styles.scss
│ │ ├── primary-tab.ts
│ │ ├── secondary-tab-styles.scss
│ │ ├── secondary-tab.ts
│ │ ├── tab-styles.scss
│ │ ├── tab.ts
│ │ ├── tabs-styles.scss
│ │ └── tabs.ts
│ ├── primary-tab.ts
│ ├── secondary-tab.ts
│ ├── tabs.ts
│ ├── tabs_test.ts
│ └── test/
│ └── window_size.json
├── testing/
│ ├── environment.ts
│ ├── forms.ts
│ ├── harness.ts
│ ├── skip-animations.ts
│ ├── skip-animations_test.ts
│ ├── table/
│ │ ├── _test-table.scss
│ │ ├── internal/
│ │ │ ├── _test-table.scss
│ │ │ ├── test-table-styles.scss
│ │ │ ├── test-table.ts
│ │ │ └── test-table_test.ts
│ │ └── test-table.ts
│ ├── templates.ts
│ ├── tokens.ts
│ ├── tokens_test.ts
│ └── transform-pseudo-classes.ts
├── textfield/
│ ├── _filled-text-field.scss
│ ├── _outlined-text-field.scss
│ ├── demo/
│ │ ├── demo.ts
│ │ ├── project.json
│ │ └── stories.ts
│ ├── filled-text-field.ts
│ ├── filled-text-field_test.ts
│ ├── harness.ts
│ ├── harness_test.ts
│ ├── internal/
│ │ ├── _filled-text-field.scss
│ │ ├── _icon.scss
│ │ ├── _input.scss
│ │ ├── _outlined-text-field.scss
│ │ ├── _shared.scss
│ │ ├── filled-styles.scss
│ │ ├── filled-text-field.ts
│ │ ├── outlined-styles.scss
│ │ ├── outlined-text-field.ts
│ │ ├── shared-styles.scss
│ │ ├── text-field.ts
│ │ └── text-field_test.ts
│ ├── outlined-text-field.ts
│ └── outlined-text-field_test.ts
├── tokens/
│ ├── _index.scss
│ ├── _md-comp-assist-chip.scss
│ ├── _md-comp-badge.scss
│ ├── _md-comp-checkbox.scss
│ ├── _md-comp-circular-progress.scss
│ ├── _md-comp-dialog.scss
│ ├── _md-comp-divider.scss
│ ├── _md-comp-elevated-button.scss
│ ├── _md-comp-elevated-card.scss
│ ├── _md-comp-elevation.scss
│ ├── _md-comp-fab-branded.scss
│ ├── _md-comp-fab.scss
│ ├── _md-comp-filled-button.scss
│ ├── _md-comp-filled-card.scss
│ ├── _md-comp-filled-field.scss
│ ├── _md-comp-filled-icon-button.scss
│ ├── _md-comp-filled-select.scss
│ ├── _md-comp-filled-text-field.scss
│ ├── _md-comp-filled-tonal-button.scss
│ ├── _md-comp-filled-tonal-icon-button.scss
│ ├── _md-comp-filter-chip.scss
│ ├── _md-comp-focus-ring.scss
│ ├── _md-comp-full-screen-dialog.scss
│ ├── _md-comp-icon-button.scss
│ ├── _md-comp-icon.scss
│ ├── _md-comp-input-chip.scss
│ ├── _md-comp-item.scss
│ ├── _md-comp-linear-progress.scss
│ ├── _md-comp-list-item.scss
│ ├── _md-comp-list.scss
│ ├── _md-comp-menu-item.scss
│ ├── _md-comp-menu.scss
│ ├── _md-comp-navigation-bar.scss
│ ├── _md-comp-navigation-drawer.scss
│ ├── _md-comp-outlined-button.scss
│ ├── _md-comp-outlined-card.scss
│ ├── _md-comp-outlined-field.scss
│ ├── _md-comp-outlined-icon-button.scss
│ ├── _md-comp-outlined-segmented-button.scss
│ ├── _md-comp-outlined-select.scss
│ ├── _md-comp-outlined-text-field.scss
│ ├── _md-comp-primary-tab.scss
│ ├── _md-comp-radio.scss
│ ├── _md-comp-ripple.scss
│ ├── _md-comp-secondary-tab.scss
│ ├── _md-comp-slider.scss
│ ├── _md-comp-suggestion-chip.scss
│ ├── _md-comp-switch.scss
│ ├── _md-comp-test-table.scss
│ ├── _md-comp-text-button.scss
│ ├── _md-ref-palette.scss
│ ├── _md-ref-typeface.scss
│ ├── _md-sys-color.scss
│ ├── _md-sys-elevation.scss
│ ├── _md-sys-motion.scss
│ ├── _md-sys-shape.scss
│ ├── _md-sys-state.scss
│ ├── _md-sys-typescale.scss
│ ├── internal/
│ │ ├── _shape.scss
│ │ └── _validate.scss
│ ├── v0_192/
│ │ ├── _index.scss
│ │ ├── _md-comp-assist-chip.scss
│ │ ├── _md-comp-badge.scss
│ │ ├── _md-comp-banner.scss
│ │ ├── _md-comp-bottom-app-bar.scss
│ │ ├── _md-comp-carousel-item.scss
│ │ ├── _md-comp-checkbox.scss
│ │ ├── _md-comp-circular-progress-indicator.scss
│ │ ├── _md-comp-data-table.scss
│ │ ├── _md-comp-date-input-modal.scss
│ │ ├── _md-comp-date-picker-docked.scss
│ │ ├── _md-comp-date-picker-modal.scss
│ │ ├── _md-comp-dialog.scss
│ │ ├── _md-comp-divider.scss
│ │ ├── _md-comp-elevated-button.scss
│ │ ├── _md-comp-elevated-card.scss
│ │ ├── _md-comp-extended-fab-branded.scss
│ │ ├── _md-comp-extended-fab-primary.scss
│ │ ├── _md-comp-extended-fab-secondary.scss
│ │ ├── _md-comp-extended-fab-surface.scss
│ │ ├── _md-comp-extended-fab-tertiary.scss
│ │ ├── _md-comp-fab-branded-large.scss
│ │ ├── _md-comp-fab-branded.scss
│ │ ├── _md-comp-fab-primary-large.scss
│ │ ├── _md-comp-fab-primary-small.scss
│ │ ├── _md-comp-fab-primary.scss
│ │ ├── _md-comp-fab-secondary-large.scss
│ │ ├── _md-comp-fab-secondary-small.scss
│ │ ├── _md-comp-fab-secondary.scss
│ │ ├── _md-comp-fab-surface-large.scss
│ │ ├── _md-comp-fab-surface-small.scss
│ │ ├── _md-comp-fab-surface.scss
│ │ ├── _md-comp-fab-tertiary-large.scss
│ │ ├── _md-comp-fab-tertiary-small.scss
│ │ ├── _md-comp-fab-tertiary.scss
│ │ ├── _md-comp-filled-autocomplete.scss
│ │ ├── _md-comp-filled-button.scss
│ │ ├── _md-comp-filled-card.scss
│ │ ├── _md-comp-filled-icon-button.scss
│ │ ├── _md-comp-filled-menu-button.scss
│ │ ├── _md-comp-filled-select.scss
│ │ ├── _md-comp-filled-text-field.scss
│ │ ├── _md-comp-filled-tonal-button.scss
│ │ ├── _md-comp-filled-tonal-icon-button.scss
│ │ ├── _md-comp-filter-chip.scss
│ │ ├── _md-comp-full-screen-dialog.scss
│ │ ├── _md-comp-icon-button.scss
│ │ ├── _md-comp-input-chip.scss
│ │ ├── _md-comp-linear-progress-indicator.scss
│ │ ├── _md-comp-list.scss
│ │ ├── _md-comp-menu.scss
│ │ ├── _md-comp-navigation-bar.scss
│ │ ├── _md-comp-navigation-drawer.scss
│ │ ├── _md-comp-navigation-rail.scss
│ │ ├── _md-comp-outlined-autocomplete.scss
│ │ ├── _md-comp-outlined-button.scss
│ │ ├── _md-comp-outlined-card.scss
│ │ ├── _md-comp-outlined-icon-button.scss
│ │ ├── _md-comp-outlined-menu-button.scss
│ │ ├── _md-comp-outlined-segmented-button.scss
│ │ ├── _md-comp-outlined-select.scss
│ │ ├── _md-comp-outlined-text-field.scss
│ │ ├── _md-comp-plain-tooltip.scss
│ │ ├── _md-comp-primary-navigation-tab.scss
│ │ ├── _md-comp-radio-button.scss
│ │ ├── _md-comp-rich-tooltip.scss
│ │ ├── _md-comp-scrim.scss
│ │ ├── _md-comp-search-bar.scss
│ │ ├── _md-comp-search-view.scss
│ │ ├── _md-comp-secondary-navigation-tab.scss
│ │ ├── _md-comp-sheet-bottom.scss
│ │ ├── _md-comp-sheet-floating.scss
│ │ ├── _md-comp-sheet-side.scss
│ │ ├── _md-comp-slider.scss
│ │ ├── _md-comp-snackbar.scss
│ │ ├── _md-comp-standard-menu-button.scss
│ │ ├── _md-comp-suggestion-chip.scss
│ │ ├── _md-comp-switch.scss
│ │ ├── _md-comp-text-button.scss
│ │ ├── _md-comp-time-input.scss
│ │ ├── _md-comp-time-picker.scss
│ │ ├── _md-comp-top-app-bar-large.scss
│ │ ├── _md-comp-top-app-bar-medium.scss
│ │ ├── _md-comp-top-app-bar-small-centered.scss
│ │ ├── _md-comp-top-app-bar-small.scss
│ │ ├── _md-ref-palette.scss
│ │ ├── _md-ref-typeface.scss
│ │ ├── _md-sys-color.scss
│ │ ├── _md-sys-elevation.scss
│ │ ├── _md-sys-motion.scss
│ │ ├── _md-sys-shape.scss
│ │ ├── _md-sys-state.scss
│ │ ├── _md-sys-typescale.scss
│ │ ├── index.test.scss
│ │ └── lib.test.scss
│ └── versions/
│ ├── README.md
│ ├── v0_192/
│ │ ├── _index.scss
│ │ ├── _md-comp-assist-chip.scss
│ │ ├── _md-comp-badge.scss
│ │ ├── _md-comp-banner.scss
│ │ ├── _md-comp-bottom-app-bar.scss
│ │ ├── _md-comp-carousel-item.scss
│ │ ├── _md-comp-checkbox.scss
│ │ ├── _md-comp-circular-progress-indicator.scss
│ │ ├── _md-comp-data-table.scss
│ │ ├── _md-comp-date-input-modal.scss
│ │ ├── _md-comp-date-picker-docked.scss
│ │ ├── _md-comp-date-picker-modal.scss
│ │ ├── _md-comp-dialog.scss
│ │ ├── _md-comp-divider.scss
│ │ ├── _md-comp-elevated-button.scss
│ │ ├── _md-comp-elevated-card.scss
│ │ ├── _md-comp-extended-fab-branded.scss
│ │ ├── _md-comp-extended-fab-primary.scss
│ │ ├── _md-comp-extended-fab-secondary.scss
│ │ ├── _md-comp-extended-fab-surface.scss
│ │ ├── _md-comp-extended-fab-tertiary.scss
│ │ ├── _md-comp-fab-branded-large.scss
│ │ ├── _md-comp-fab-branded.scss
│ │ ├── _md-comp-fab-primary-large.scss
│ │ ├── _md-comp-fab-primary-small.scss
│ │ ├── _md-comp-fab-primary.scss
│ │ ├── _md-comp-fab-secondary-large.scss
│ │ ├── _md-comp-fab-secondary-small.scss
│ │ ├── _md-comp-fab-secondary.scss
│ │ ├── _md-comp-fab-surface-large.scss
│ │ ├── _md-comp-fab-surface-small.scss
│ │ ├── _md-comp-fab-surface.scss
│ │ ├── _md-comp-fab-tertiary-large.scss
│ │ ├── _md-comp-fab-tertiary-small.scss
│ │ ├── _md-comp-fab-tertiary.scss
│ │ ├── _md-comp-filled-autocomplete.scss
│ │ ├── _md-comp-filled-button.scss
│ │ ├── _md-comp-filled-card.scss
│ │ ├── _md-comp-filled-icon-button.scss
│ │ ├── _md-comp-filled-menu-button.scss
│ │ ├── _md-comp-filled-select.scss
│ │ ├── _md-comp-filled-text-field.scss
│ │ ├── _md-comp-filled-tonal-button.scss
│ │ ├── _md-comp-filled-tonal-icon-button.scss
│ │ ├── _md-comp-filter-chip.scss
│ │ ├── _md-comp-full-screen-dialog.scss
│ │ ├── _md-comp-icon-button.scss
│ │ ├── _md-comp-input-chip.scss
│ │ ├── _md-comp-linear-progress-indicator.scss
│ │ ├── _md-comp-list.scss
│ │ ├── _md-comp-menu.scss
│ │ ├── _md-comp-navigation-bar.scss
│ │ ├── _md-comp-navigation-drawer.scss
│ │ ├── _md-comp-navigation-rail.scss
│ │ ├── _md-comp-outlined-autocomplete.scss
│ │ ├── _md-comp-outlined-button.scss
│ │ ├── _md-comp-outlined-card.scss
│ │ ├── _md-comp-outlined-icon-button.scss
│ │ ├── _md-comp-outlined-menu-button.scss
│ │ ├── _md-comp-outlined-segmented-button.scss
│ │ ├── _md-comp-outlined-select.scss
│ │ ├── _md-comp-outlined-text-field.scss
│ │ ├── _md-comp-plain-tooltip.scss
│ │ ├── _md-comp-primary-navigation-tab.scss
│ │ ├── _md-comp-radio-button.scss
│ │ ├── _md-comp-rich-tooltip.scss
│ │ ├── _md-comp-scrim.scss
│ │ ├── _md-comp-search-bar.scss
│ │ ├── _md-comp-search-view.scss
│ │ ├── _md-comp-secondary-navigation-tab.scss
│ │ ├── _md-comp-sheet-bottom.scss
│ │ ├── _md-comp-sheet-floating.scss
│ │ ├── _md-comp-sheet-side.scss
│ │ ├── _md-comp-slider.scss
│ │ ├── _md-comp-snackbar.scss
│ │ ├── _md-comp-standard-menu-button.scss
│ │ ├── _md-comp-suggestion-chip.scss
│ │ ├── _md-comp-switch.scss
│ │ ├── _md-comp-text-button.scss
│ │ ├── _md-comp-time-input.scss
│ │ ├── _md-comp-time-picker.scss
│ │ ├── _md-comp-top-app-bar-large.scss
│ │ ├── _md-comp-top-app-bar-medium.scss
│ │ ├── _md-comp-top-app-bar-small-centered.scss
│ │ ├── _md-comp-top-app-bar-small.scss
│ │ ├── _md-ref-palette.scss
│ │ ├── _md-ref-typeface.scss
│ │ ├── _md-sys-color.scss
│ │ ├── _md-sys-elevation.scss
│ │ ├── _md-sys-motion.scss
│ │ ├── _md-sys-shape.scss
│ │ ├── _md-sys-state.scss
│ │ ├── _md-sys-typescale.scss
│ │ ├── index.test.scss
│ │ └── lib.test.scss
│ └── v30_0/
│ └── sass/
│ ├── _index.scss
│ ├── _md-comp-app-bar-large-flexible.scss
│ ├── _md-comp-app-bar-large.scss
│ ├── _md-comp-app-bar-medium-flexible.scss
│ ├── _md-comp-app-bar-medium.scss
│ ├── _md-comp-app-bar-small.scss
│ ├── _md-comp-app-bar.scss
│ ├── _md-comp-assist-chip.scss
│ ├── _md-comp-badge.scss
│ ├── _md-comp-banner.scss
│ ├── _md-comp-banners-basic.scss
│ ├── _md-comp-banners-rich.scss
│ ├── _md-comp-banners.scss
│ ├── _md-comp-bottom-app-bar.scss
│ ├── _md-comp-button-elevated.scss
│ ├── _md-comp-button-filled.scss
│ ├── _md-comp-button-group-connected-large.scss
│ ├── _md-comp-button-group-connected-medium.scss
│ ├── _md-comp-button-group-connected-small.scss
│ ├── _md-comp-button-group-connected-xlarge.scss
│ ├── _md-comp-button-group-connected-xsmall.scss
│ ├── _md-comp-button-group-standard-large.scss
│ ├── _md-comp-button-group-standard-medium.scss
│ ├── _md-comp-button-group-standard-small.scss
│ ├── _md-comp-button-group-standard-xlarge.scss
│ ├── _md-comp-button-group-standard-xsmall.scss
│ ├── _md-comp-button-large.scss
│ ├── _md-comp-button-medium.scss
│ ├── _md-comp-button-outlined.scss
│ ├── _md-comp-button-small.scss
│ ├── _md-comp-button-text.scss
│ ├── _md-comp-button-tonal.scss
│ ├── _md-comp-button-xlarge.scss
│ ├── _md-comp-button-xsmall.scss
│ ├── _md-comp-button.scss
│ ├── _md-comp-carousel-item.scss
│ ├── _md-comp-checkbox.scss
│ ├── _md-comp-circular-progress-indicator.scss
│ ├── _md-comp-data-table.scss
│ ├── _md-comp-date-input-modal.scss
│ ├── _md-comp-date-picker-docked.scss
│ ├── _md-comp-date-picker-modal.scss
│ ├── _md-comp-dialog.scss
│ ├── _md-comp-divider.scss
│ ├── _md-comp-drag-handle.scss
│ ├── _md-comp-elevated-button.scss
│ ├── _md-comp-elevated-card.scss
│ ├── _md-comp-extended-fab-branded.scss
│ ├── _md-comp-extended-fab-large.scss
│ ├── _md-comp-extended-fab-medium.scss
│ ├── _md-comp-extended-fab-primary-container.scss
│ ├── _md-comp-extended-fab-primary.scss
│ ├── _md-comp-extended-fab-secondary-container.scss
│ ├── _md-comp-extended-fab-secondary.scss
│ ├── _md-comp-extended-fab-small.scss
│ ├── _md-comp-extended-fab-surface.scss
│ ├── _md-comp-extended-fab-tertiary-container.scss
│ ├── _md-comp-extended-fab-tertiary.scss
│ ├── _md-comp-extended-fab.scss
│ ├── _md-comp-fab-branded-large.scss
│ ├── _md-comp-fab-branded.scss
│ ├── _md-comp-fab-large.scss
│ ├── _md-comp-fab-medium.scss
│ ├── _md-comp-fab-menu-primary-close-button.scss
│ ├── _md-comp-fab-menu-primary-container.scss
│ ├── _md-comp-fab-menu-secondary-close-button.scss
│ ├── _md-comp-fab-menu-secondary-container.scss
│ ├── _md-comp-fab-menu-tertiary-close-button.scss
│ ├── _md-comp-fab-menu-tertiary-container.scss
│ ├── _md-comp-fab-menu.scss
│ ├── _md-comp-fab-primary-container.scss
│ ├── _md-comp-fab-primary-large.scss
│ ├── _md-comp-fab-primary-small.scss
│ ├── _md-comp-fab-primary.scss
│ ├── _md-comp-fab-secondary-container.scss
│ ├── _md-comp-fab-secondary-large.scss
│ ├── _md-comp-fab-secondary-small.scss
│ ├── _md-comp-fab-secondary.scss
│ ├── _md-comp-fab-small.scss
│ ├── _md-comp-fab-surface-large.scss
│ ├── _md-comp-fab-surface.scss
│ ├── _md-comp-fab-tertiary-container.scss
│ ├── _md-comp-fab-tertiary-large.scss
│ ├── _md-comp-fab-tertiary-small.scss
│ ├── _md-comp-fab-tertiary.scss
│ ├── _md-comp-fab.scss
│ ├── _md-comp-filled-autocomplete.scss
│ ├── _md-comp-filled-button.scss
│ ├── _md-comp-filled-card.scss
│ ├── _md-comp-filled-icon-button.scss
│ ├── _md-comp-filled-menu-button.scss
│ ├── _md-comp-filled-select.scss
│ ├── _md-comp-filled-text-field.scss
│ ├── _md-comp-filled-tonal-button.scss
│ ├── _md-comp-filled-tonal-icon-button.scss
│ ├── _md-comp-filter-chip.scss
│ ├── _md-comp-full-screen-dialog.scss
│ ├── _md-comp-icon-button-filled.scss
│ ├── _md-comp-icon-button-large.scss
│ ├── _md-comp-icon-button-medium.scss
│ ├── _md-comp-icon-button-outlined.scss
│ ├── _md-comp-icon-button-small.scss
│ ├── _md-comp-icon-button-standard.scss
│ ├── _md-comp-icon-button-tonal.scss
│ ├── _md-comp-icon-button-xlarge.scss
│ ├── _md-comp-icon-button-xsmall.scss
│ ├── _md-comp-icon-button.scss
│ ├── _md-comp-input-chip.scss
│ ├── _md-comp-linear-progress-indicator.scss
│ ├── _md-comp-list-expand.scss
│ ├── _md-comp-list-reorder.scss
│ ├── _md-comp-list-reveal.scss
│ ├── _md-comp-list.scss
│ ├── _md-comp-loading-indicator.scss
│ ├── _md-comp-menu.scss
│ ├── _md-comp-menus-standard.scss
│ ├── _md-comp-menus-vibrant.scss
│ ├── _md-comp-menus.scss
│ ├── _md-comp-nav-bar-item-horizontal.scss
│ ├── _md-comp-nav-bar-item-vertical.scss
│ ├── _md-comp-nav-bar.scss
│ ├── _md-comp-nav-rail-collapsed.scss
│ ├── _md-comp-nav-rail-expanded.scss
│ ├── _md-comp-nav-rail-item-horizontal.scss
│ ├── _md-comp-nav-rail-item-vertical.scss
│ ├── _md-comp-nav-rail-item.scss
│ ├── _md-comp-nav-rail.scss
│ ├── _md-comp-navigation-bar.scss
│ ├── _md-comp-navigation-drawer.scss
│ ├── _md-comp-navigation-rail.scss
│ ├── _md-comp-outlined-autocomplete.scss
│ ├── _md-comp-outlined-button.scss
│ ├── _md-comp-outlined-card.scss
│ ├── _md-comp-outlined-menu-button.scss
│ ├── _md-comp-outlined-segmented-button.scss
│ ├── _md-comp-outlined-select.scss
│ ├── _md-comp-outlined-text-field.scss
│ ├── _md-comp-plain-tooltip.scss
│ ├── _md-comp-primary-navigation-tab.scss
│ ├── _md-comp-progress-indicator-circular.scss
│ ├── _md-comp-progress-indicator-linear.scss
│ ├── _md-comp-progress-indicator.scss
│ ├── _md-comp-radio-button.scss
│ ├── _md-comp-rich-tooltip.scss
│ ├── _md-comp-scrim.scss
│ ├── _md-comp-search-bar.scss
│ ├── _md-comp-search-view.scss
│ ├── _md-comp-secondary-navigation-tab.scss
│ ├── _md-comp-sheet-bottom.scss
│ ├── _md-comp-sheet-floating.scss
│ ├── _md-comp-sheet-side.scss
│ ├── _md-comp-slider-large.scss
│ ├── _md-comp-slider-medium.scss
│ ├── _md-comp-slider-small.scss
│ ├── _md-comp-slider-xlarge.scss
│ ├── _md-comp-slider-xsmall.scss
│ ├── _md-comp-slider.scss
│ ├── _md-comp-snackbar.scss
│ ├── _md-comp-split-button-large.scss
│ ├── _md-comp-split-button-medium.scss
│ ├── _md-comp-split-button-small.scss
│ ├── _md-comp-split-button-xlarge.scss
│ ├── _md-comp-split-button-xsmall.scss
│ ├── _md-comp-standard-menu-button.scss
│ ├── _md-comp-suggestion-chip.scss
│ ├── _md-comp-switch.scss
│ ├── _md-comp-text-button.scss
│ ├── _md-comp-time-input.scss
│ ├── _md-comp-time-picker.scss
│ ├── _md-comp-toolbar-docked.scss
│ ├── _md-comp-toolbar-floating-fab.scss
│ ├── _md-comp-toolbar-floating.scss
│ ├── _md-comp-toolbar-standard.scss
│ ├── _md-comp-toolbar-vibrant.scss
│ ├── _md-comp-top-app-bar-large.scss
│ ├── _md-comp-top-app-bar-medium.scss
│ ├── _md-comp-top-app-bar-small-centered.scss
│ ├── _md-comp-top-app-bar-small.scss
│ ├── _md-ref-palette.scss
│ ├── _md-ref-typeface.scss
│ ├── _md-sys-color.scss
│ ├── _md-sys-color__dark.scss
│ ├── _md-sys-color__dark__high-contrast.scss
│ ├── _md-sys-color__dark__medium-contrast.scss
│ ├── _md-sys-color__high-contrast.scss
│ ├── _md-sys-color__medium-contrast.scss
│ ├── _md-sys-elevation.scss
│ ├── _md-sys-motion.scss
│ ├── _md-sys-shape.scss
│ ├── _md-sys-state-focus-indicator.scss
│ ├── _md-sys-state.scss
│ ├── _md-sys-typescale-emphasized.scss
│ └── _md-sys-typescale.scss
├── tsconfig.json
├── typography/
│ ├── _typeface.scss
│ ├── _typescale.scss
│ └── md-typescale-styles.scss
└── web-test-runner.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/bug.yaml
================================================
name: 🐛 Bug Report
description: Report a bug that affects a Material Web component
body:
- type: dropdown
id: affected
validations:
required: true
attributes:
label: What is affected?
multiple: true
description: Note you can select more than one.
options:
- Accessibility
- Component
- Theming
- Tooling
- Other/unknown
- type: textarea
id: description
validations:
required: true
attributes:
label: Description
description: |
Please describe the bug in as much detail as possible. Include what you expected to happen, and what actually happened. If you have an error message, please include as much of the error message as possible.
placeholder: |
When I do '...'.
I would expect '...'.
However, instead '...' happens.
- type: textarea
id: reproduction
validations:
required: true
attributes:
label: Reproduction
description: |
If possible, please link to a working reproduction that will help us verify and understand the bug.
Bugs that provide a reproduction in CodePen, Fiddle, or lit.dev playground ([Example Playground](https://lit.dev/playground/#project=W3sibmFtZSI6Im1hdGVyaWFsLWltcG9ydHMuanMiLCJjb250ZW50IjoiaW1wb3J0IFwiQG1hdGVyaWFsL3dlYi9idXR0b24vb3V0bGluZWQtYnV0dG9uLmpzXCI7In0seyJuYW1lIjoiaW5kZXguaHRtbCIsImNvbnRlbnQiOiI8IURPQ1RZUEUgaHRtbD5cbjxzY3JpcHQgdHlwZT1cIm1vZHVsZVwiIHNyYz1cIi4vbWF0ZXJpYWwtaW1wb3J0cy5qc1wiPjwvc2NyaXB0PlxuXG48bWQtb3V0bGluZWQtYnV0dG9uPkEgbWF0ZXJpYWwgYnV0dG9uPC9tZC1vdXRsaW5lZC1idXR0b24-XG4ifSx7Im5hbWUiOiJwYWNrYWdlLmpzb24iLCJjb250ZW50Ijoie1xuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJsaXRcIjogXCJeMi4wLjBcIixcbiAgICBcIkBsaXQvcmVhY3RpdmUtZWxlbWVudFwiOiBcIl4xLjAuMFwiLFxuICAgIFwibGl0LWVsZW1lbnRcIjogXCJeMy4wLjBcIixcbiAgICBcImxpdC1odG1sXCI6IFwiXjIuMC4wXCJcbiAgfVxufSIsImhpZGRlbiI6dHJ1ZX1d))
can be triaged much faster.
For bugs that show up on the command-line, please create a [Stackblitz](https://stackblitz.com/) Node.js/Vite project, and provide step-by-step instructions for setting up, and observing the bug.
placeholder: |
The text should update when the button is clicked, but it doesn't:
https://lit.dev/playground/#gist=f9817b9c703e037b5ac576030110a983
- type: textarea
id: workaround
validations:
required: true
attributes:
label: Workaround
description: |
If you have found a workaround for this problem, please explain it here. If you have not found a workaround, please write "I have not found a workaround".
placeholder: |
I have worked around this problem by registering the event handler manually with `addEventListener`.
... or:
I have not found a workaround.
- type: dropdown
id: regression
validations:
required: true
attributes:
label: Is this a regression?
multiple: false
options:
- Yes. This used to work, but now it doesn't.
- No or unsure. This never worked, or I haven't tried before.
- type: input
id: version
validations:
required: true
attributes:
label: Affected versions
description: Please specify which version of the package you are using, and if this is a known regression, what is the last known version that worked? Run e.g. `npm ls @material/web` to check your installed version.
placeholder: |
Failing in X.X.X, worked in X.X.X
- type: textarea
id: environment
validations:
required: true
attributes:
label: Browser/OS/Node environment
description: |
Please list which browser and operating system combination(s) you are using, and/or if this bug affects a command-line tool, please list your Node and npm versions.
placeholder: |
Browser: Chrome 103.0.5060.53
OS: macOS 12.4
Node version: 16.15.0
npm version: 8.11.0
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: ❓ Questions, Help, and Advice
url: https://github.com/material-components/material-web/discussions
about: For general support, please refer to the Material Web discussion board.
- name: 💬 Chat
url: https://lit.dev/discord/
about: Alternatively, you can join the Lit Discord and join the `#material` channel to talk to the team.
================================================
FILE: .github/ISSUE_TEMPLATE/documentation-bug.yaml
================================================
name: 🐛 Documentation Bug
description: Report a bug that affects Material Web documentation (https://material-web.dev/)
body:
- type: textarea
id: description
validations:
required: true
attributes:
label: Description
description: |
Please describe the documentation issue in as much detail as possible.
placeholder: |
Add issue description here.
- type: textarea
id: environment
attributes:
label: Browser/OS Environment
description: |
Please list which browser and operating system combination(s) you are using.
placeholder: |
Browser: Chrome 103.0.5060.53
OS: macOS 12.4
================================================
FILE: .github/ISSUE_TEMPLATE/feature.yaml
================================================
name: ✨ Feature Request
description: Request a feature to be added to Material Web Components.
body:
- type: textarea
id: description
validations:
required: true
attributes:
label: Description
description: |
Please describe the feature request in as much detail as possible. Include why the feature is needed, and example code or screenshots to help describe it.
placeholder: |
Add support for '...'.
This is needed to '...'.
Requirements, code examples, and screenshots that help describe the feature.
================================================
FILE: .github/workflows/build-catalog.yml
================================================
name: Build Catalog
on: [push]
permissions:
contents: read
jobs:
build-catalog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: npm run build:catalog
env:
WIREIT_FAILURES: continue
================================================
FILE: .github/workflows/commitlint.yml
================================================
name: commitlint
on: [pull_request]
permissions:
contents: read
jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- run: npm install -g @commitlint/cli @commitlint/config-conventional
- run: 'echo "${PR_TITLE}" | commitlint'
env:
PR_TITLE: ${{ github.event.pull_request.title }}
================================================
FILE: .github/workflows/firebase-hosting-merge.yml
================================================
name: Deploy to Firebase Hosting on release and manual
'on':
release:
types:
- published
workflow_dispatch:
# allows triggering from the gihub UI
permissions:
contents: read
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: 'npm run build:catalog'
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_MATERIAL_WEB_CATALOG }}'
channelId: live
projectId: material-web-catalog
entryPoint: catalog
================================================
FILE: .github/workflows/firebase-hosting-pull-request.yml
================================================
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy to Firebase Hosting on PR
on:
pull_request:
types: [ labeled ]
permissions:
contents: read
pull-requests: write
jobs:
build_and_preview:
if: github.event.label.name == 'preview-catalog' && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: 'npm run build:catalog'
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_MATERIAL_WEB_CATALOG }}'
projectId: material-web-catalog
entryPoint: catalog
================================================
FILE: .github/workflows/nightly.yml
================================================
name: Nightly publish
on:
schedule:
- cron: '21 3 * * *'
workflow_dispatch:
# allows triggering from the github UI
permissions:
contents: write
jobs:
check_for_changes:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.check.outputs.changed }}
steps:
- uses: actions/checkout@v3
- name: Check if the current commit is less than 24 hours old
id: check
continue-on-error: true
run: test -n "$(git rev-list --after='24 hours' ${{ github.sha }})" && echo "changed=yes" >> "$GITHUB_OUTPUT"
publish:
needs: check_for_changes
if: needs.check_for_changes.outputs.changed == 'yes'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: npm run build
env:
WIREIT_FAILURES: continue
- name: Create nightly release commit
run: |
npm version --no-git-tag-version --preid nightly.$(git rev-parse --short HEAD) prepatch
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git commit -am "chore: nightly publish"
- uses: actions/setup-node@v3
with:
node-version: 18
registry-url: 'https://wombat-dressing-room.appspot.com/'
- run: npm publish --tag nightly
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
================================================
FILE: .github/workflows/publish.yml
================================================
name: Publish
on:
push:
tags:
- 'v*'
permissions:
contents: read
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: npm run build
env:
WIREIT_FAILURES: continue
- uses: actions/setup-node@v3
with:
node-version: 18
registry-url: 'https://wombat-dressing-room.appspot.com/'
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
================================================
FILE: .github/workflows/release-please.yml
================================================
on:
push:
branches:
- main
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.LIT_ROBOT_ACCESS_TOKEN }}
================================================
FILE: .github/workflows/test.yml
================================================
name: Tests
on: [push]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: npm run build
env:
WIREIT_FAILURES: continue
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- run: npm ci
- run: npx playwright install --with-deps
- run: npm test
env:
WIREIT_FAILURES: continue
================================================
FILE: .github/workflows/update-docs-on-main.yml
================================================
name: Update API Docs
on:
push:
branches: main
workflow_dispatch:
# allows triggering from the github UI
permissions:
contents: write
pull-requests: write
jobs:
check-for-doc-changes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 20
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- name: Install Dependencies
run: npm ci
- name: Update Docs
run: npm run update-docs
- name: Check if update-docs produces git diff
id: ifChange
run: git diff --exit-code || echo "::set-output name=changed::yes"
- name: Create PR
if: steps.ifChange.outputs.changed == 'yes'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.LIT_ROBOT_ACCESS_TOKEN }}
commit-message: 'docs: update API docs'
author: lit-robot <lit-robot@google.com>
committer: lit-robot <lit-robot@google.com>
title: 'docs: update API docs'
body: This PR was auto generated by the update-docs-on-main GitHub action.
reviewers: asyncliz
branch: auto-update-docs
labels: |
Ready for Google
preview-catalog
================================================
FILE: .github/workflows/update-size-on-main.yml
================================================
name: Update size
on:
push:
branches: main
workflow_dispatch:
# allows triggering from the github UI
permissions:
contents: write
pull-requests: write
jobs:
check-for-doc-changes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 20
cache: npm
- uses: google/wireit@setup-github-actions-caching/v2
- name: Install Dependencies
run: npm ci
- name: Update Size
run: npm run update-size
- name: Check if update-size produces git diff
id: ifChange
run: git diff --exit-code || echo "::set-output name=changed::yes"
- name: Create or update PR
if: steps.ifChange.outputs.changed == 'yes'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.LIT_ROBOT_ACCESS_TOKEN }}
commit-message: 'chore: update sizes'
author: lit-robot <lit-robot@google.com>
committer: lit-robot <lit-robot@google.com>
title: 'chore: update sizes'
body: This PR was auto generated by the update-size-on-main GitHub action.
branch: auto-update-sizes
# Don't automatically add reviewers or Ready for Google label until we're ready
# since this will be noisy.
================================================
FILE: .gitignore
================================================
node_modules
*.js
!web-test-runner.config.js
!commitlint.config.js
*.css
*-styles.ts
*.map
*.d.ts
!types/*.d.ts
.wireit/
*.tsbuildinfo
!catalog/**/*.css
catalog/_dev
catalog/_prod
catalog/node_modules
catalog/.wireit
catalog/lib/
catalog/build/
catalog/site/components/*.md
catalog/site/components/images
catalog/site/theming/*.md
catalog/site/theming/images
catalog/site/about/*.md
catalog/site/about/images
catalog/stories/*/
!catalog/stories/components/
!catalog/src/types/**/*.d.ts
================================================
FILE: .release-please-manifest.json
================================================
{
".": "2.4.1"
}
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## [2.4.1](https://github.com/material-components/material-web/compare/v2.4.0...v2.4.1) (2025-10-27)
### Bug Fixes
* **radio:** also move sibling uncheck logic after root assignment ([6010e52](https://github.com/material-components/material-web/commit/6010e52c8fcd53577a8cf2cee53095033f329d2a))
* **radio:** move root assignment to mirror hostDisconnected ([adb8d10](https://github.com/material-components/material-web/commit/adb8d104f2ebc29890b8c578e34a412e8c5c3fc2))
* **tokens:** `@material/web/tokens/v*` moved to `@material/web/tokens/versions/v*` ([60c0cfa](https://github.com/material-components/material-web/commit/60c0cfa58ad135c189cb0fa95c5f2744499f0327))
## [2.4.0](https://github.com/material-components/material-web/compare/v2.3.0...v2.4.0) (2025-08-21)
### Features
* **button:** add disabled link support ([c3c4848](https://github.com/material-components/material-web/commit/c3c48485b152595c0e892383dc5ab38fdb1ac442))
* **button:** add gradient support to container colors ([5bc1506](https://github.com/material-components/material-web/commit/5bc15069d136c51e912137dcba1b212a106bb1dd))
* **catalog:** hide body if dsd-pending ([bf89645](https://github.com/material-components/material-web/commit/bf896458b0a656a40187d3fdddbc573407a4e55b))
* **select:** add showPicker() functionality ([8808a25](https://github.com/material-components/material-web/commit/8808a25da8cb879d120c11b6961e10ef75ca5add))
### Bug Fixes
* **catalog:** hydrate CSR component pages ([0037c14](https://github.com/material-components/material-web/commit/0037c14f6ba17ae224f8377e4afcba35862c4bf4))
* **menu:** output menu item theme values ([ca5f750](https://github.com/material-components/material-web/commit/ca5f75094b3ac2d314ccb31ec06ec653501cf801))
* **radio:** stack overflow error when rendering many radios ([688ab3c](https://github.com/material-components/material-web/commit/688ab3cf5f12ddbff07407910b8e8e158b3282d7))
* **ripple:** misaligned when using CSS zoom ([3072a9b](https://github.com/material-components/material-web/commit/3072a9bc286876be157e15d65b0d4877245e1acc))
* **ripple:** remove pointerdown contextmenu bounds check for Chrome ([cd7512f](https://github.com/material-components/material-web/commit/cd7512ff90cf25ad98c6caa9842bf86d284146c7))
## [2.3.0](https://github.com/material-components/material-web/compare/v2.2.0...v2.3.0) (2025-03-26)
### Features
* **button:** add download filename support for link buttons ([4098832](https://github.com/material-components/material-web/commit/4098832b8b6fe9def9c08d551014f113e39b2546))
* **button:** rename attribute downloadFilename to download ([8aefe19](https://github.com/material-components/material-web/commit/8aefe1983d28abcc3bc9c659ff0b328454e0547e))
* **chip:** add download attribute to assist chip ([902a84f](https://github.com/material-components/material-web/commit/902a84fe0cc389c1d691e42ce1c95d9156a4781b))
* **icon-button:** add download attribute ([9e84130](https://github.com/material-components/material-web/commit/9e8413080d911108fd1fb97fe8909b96926e1a24))
* **menu:** add menu padding tokens ([767d1f1](https://github.com/material-components/material-web/commit/767d1f159e9ebcd001968bb7e8bcdf6c4ef1e537))
* **text-field:** add showPicker method ([bad490c](https://github.com/material-components/material-web/commit/bad490c7cb05be4898d8528569776d4e75bbb8fd))
### Bug Fixes
* **catalog:** add hyphen to md-evelated-button attribute ([ac9b14a](https://github.com/material-components/material-web/commit/ac9b14a65c384d9389022f11555fb063b932ec96))
* **iconbutton:** href will respond to touch target ([ea1134a](https://github.com/material-components/material-web/commit/ea1134a1a77c032f8b8c6c749e670fca90d8cd89))
* **labs:** add mixinCustomStateSet() for :state() compatibility ([045fe94](https://github.com/material-components/material-web/commit/045fe94872607f67da6c18d3689bff6a541102d2))
* **listitem:** click() from listItemRoot ([1c60e56](https://github.com/material-components/material-web/commit/1c60e56c6c1210fd5a116290271b9bc7e612fdf7))
* **menu:** export CloseReason ([29d6763](https://github.com/material-components/material-web/commit/29d6763dc3abe4e80a6fb3ad0eaca5bb24b2d29a))
* **select:** missing accessible label ([1bdcbd3](https://github.com/material-components/material-web/commit/1bdcbd38ab96f6a7537c36cb7d61d9e8db2144e7))
## [2.2.0](https://github.com/material-components/material-web/compare/v2.1.0...v2.2.0) (2024-09-17)
### Features
* **field,textfield:** add `container` slot for custom background content ([44c13cd](https://github.com/material-components/material-web/commit/44c13cdd753108137e9765bf14a6ea3ed46be18e))
### Bug Fixes
* **checkbox:** add override to symbol properties ([a9ee4f5](https://github.com/material-components/material-web/commit/a9ee4f5bc1d6702e5dc352eefed13a1d849577e3))
* remove the input entirely and replace it with a touch target ([cf84a27](https://github.com/material-components/material-web/commit/cf84a271e75b806075427f4d176b38f8884fdd7e))
* remove unnecessary css variable prefixes ([5044e6e](https://github.com/material-components/material-web/commit/5044e6eb2fe6c6bd3e53b19bef04ba6b6c0b2a2b))
* Replace aria-hidden attribute with inert attribute in <md-radio> component ([192f17e](https://github.com/material-components/material-web/commit/192f17e8c1ce4a38cf76b5a81cb6c2b1ddcfbe46))
* Set touch target to `display: none` ([a696121](https://github.com/material-components/material-web/commit/a69612162d79b63f0b82da0468201942dc82ed9e))
## [2.1.0](https://github.com/material-components/material-web/compare/v2.0.0...v2.1.0) (2024-08-20)
### Features
* **switch:** add touch target token ([b8f362a](https://github.com/material-components/material-web/commit/b8f362a97d8369e0f6bab834794f99bd50b5ab78))
* **textfield,field:** add leading/trailing icon spacing tokens ([c1991c4](https://github.com/material-components/material-web/commit/c1991c4c894c48fe77abe09a2791f97dc77d438f))
### Bug Fixes
* changed checkmark to check in md-icon selected slot ([2e2817b](https://github.com/material-components/material-web/commit/2e2817bab5fc51bb32363b36471cb01d1f029a46))
## [2.0.0](https://github.com/material-components/material-web/compare/v1.5.1...v2.0.0) (2024-07-23)
### ⚠ BREAKING CHANGES
* **tokens:** Sass component tokens, such as `tokens.md-comp-checkbox-values()`, return `var(--md-<component>, <value>)` instead of just the CSS value. Use `$exclude-custom-properties: true` to remove them.
* `querySelector` for `[role]` and `[aria-*]` attributes may no longer work. See `@material/web/migrations/v2/README.md` and `@material/web/migrations/v2/query-selector-aria.ts`.
### Features
* **button:** add `soft-disabled` attribute for focusable disabled buttons ([48124ba](https://github.com/material-components/material-web/commit/48124ba09f538c6264407a49e6bc0ba097991a9d))
* check for server before creating treewalker from document ([0d50ed9](https://github.com/material-components/material-web/commit/0d50ed91f0c542b4d5b5e2c913930a52a46136e5))
* **chips:** add label slot ([7ec70c4](https://github.com/material-components/material-web/commit/7ec70c4c2d8863fa1e1d38724d77a9b6d4e6a20c))
* **chips:** add new `soft-disabled` attribute for focusable disabled chips ([750b886](https://github.com/material-components/material-web/commit/750b886acfa15960d66f83a08599d2a2155ae659))
* **iconbutton:** add `soft-disabled` attribute for focusable disabled icon buttons ([281c092](https://github.com/material-components/material-web/commit/281c092d061f77b812e57f473e77cfd123016471))
### Bug Fixes
* add typecast ([1482bff](https://github.com/material-components/material-web/commit/1482bfff0de55e136513861c1976776c5a4b4b93))
* aria-labels announcing twice with "group" on components ([5df9410](https://github.com/material-components/material-web/commit/5df9410e604cf446c83bb5ada3454596c34b2c50))
* **chips:** add truncation support ([713f0a8](https://github.com/material-components/material-web/commit/713f0a80fcfc9ef730e1c1f88e15098b9d10735b))
* **tokens:** `tokens.md-comp-*-values()` include custom properties by default ([55b4650](https://github.com/material-components/material-web/commit/55b46500634c022c335d9c4818121a1b5d95e111))
## [1.5.1](https://github.com/material-components/material-web/compare/v1.5.0...v1.5.1) (2024-06-25)
### Bug Fixes
* **checkbox:** sass theme mixin not working ([46d66ed](https://github.com/material-components/material-web/commit/46d66ed9d188243e313e6833f244a5b750aa9fdb)), closes [#5651](https://github.com/material-components/material-web/issues/5651)
* **dialog:** have content expand to fill height ([17aa21a](https://github.com/material-components/material-web/commit/17aa21a53ecc949b3326ed0d2c2bf461a20617c6))
* **menu:** resolve aborted animations as false rather than reject ([4f7ff4f](https://github.com/material-components/material-web/commit/4f7ff4f63adaec11cfc7e2772990a757139be01b)), closes [#5638](https://github.com/material-components/material-web/issues/5638)
* **switch:** pressing enter toggles the switch ([99ec9e2](https://github.com/material-components/material-web/commit/99ec9e25eb0d64887a3530e494ba8683909c0e62))
## [1.5.0](https://github.com/material-components/material-web/compare/v1.4.1...v1.5.0) (2024-05-23)
### Features
* **menu:** allow customizing `scrollbar-width` ([1bf8b5f](https://github.com/material-components/material-web/commit/1bf8b5fbf9ff8f7c0084acee77988b1af9ad7e19))
* **select:** make required asterisk optional ([8f194a5](https://github.com/material-components/material-web/commit/8f194a51dbc85ead2d9d8c10e0be69f183788a31))
* **textfield:** make required asterisk optional ([be5bb43](https://github.com/material-components/material-web/commit/be5bb43100fbf0df3a7cfec4c4d4399559a23114))
### Bug Fixes
* **button:** add part attribute to button ([a2b5c91](https://github.com/material-components/material-web/commit/a2b5c91a549e206603f23d84233de83a8c165d77))
* **dialog:** focus is trapped for a11y, use `no-focus-trap` to disable ([0aea436](https://github.com/material-components/material-web/commit/0aea4364a142f3db84b77ae99eea1df6a3cd8456))
* **docs:** progress.webp not playing ([2f0c99a](https://github.com/material-components/material-web/commit/2f0c99ad3d3320341a4ae61db5abe64c37649ddb)), closes [#5569](https://github.com/material-components/material-web/issues/5569)
* **menu:** `getBoundingClientRect()` and `getClientRects()` not working ([e1f9cbc](https://github.com/material-components/material-web/commit/e1f9cbc59e4cbb50921304158edbb8e68706c405))
## [1.4.1](https://github.com/material-components/material-web/compare/v1.4.0...v1.4.1) (2024-04-15)
### Bug Fixes
* **dialog:** update info comment with autocomplete -> autofocus ([fc4c999](https://github.com/material-components/material-web/commit/fc4c9992f8827e2a07e5c0b32cc48a065356cf29))
* **select:** select.click() opens the menu ([7a6cf16](https://github.com/material-components/material-web/commit/7a6cf16a4e37889d0497af4f1c4df8be78aefa54))
## [1.4.0](https://github.com/material-components/material-web/compare/v1.3.0...v1.4.0) (2024-03-21)
### Features
* **menu:** add `no-navigation-wrap` to fix select accessibility ([c6ffd70](https://github.com/material-components/material-web/commit/c6ffd70fc82060d894e4f4ef7fc43a1fb15e2a65))
* **typography:** add `@material/web/typography/md-typescale` classes ([36dd77e](https://github.com/material-components/material-web/commit/36dd77ef97bfa9fbbd9f3a8885f010cb0741e797))
### Bug Fixes
* **button,fab,chips,labs:** text-transform inherits through shadow root ([758e615](https://github.com/material-components/material-web/commit/758e61581ef30481e5dd8c1bd7707db2a2988ab8))
* **elevation:** expose md-elevation `::part` in all components ([b74e3dd](https://github.com/material-components/material-web/commit/b74e3dd2e3f11fa20dd5a39148a6b491bacded16))
* **elevation:** limit elevation transition to box-shadow and opacity ([34c0a67](https://github.com/material-components/material-web/commit/34c0a6779e8a722ec6dfbf6ad5c0d1bb607289e6))
* publish `.css` files for `[@import](https://github.com/import)`-ing ([cde649c](https://github.com/material-components/material-web/commit/cde649c83b5236bc441607cda797bdd8caf7e6ad))
* rename internal `<styles>.css.js` to `<styles>.css` ([c35bad0](https://github.com/material-components/material-web/commit/c35bad0c643a7c3ee982739868ee3676372e23ad))
* **switch:** reflect `selected` state in input event ([8d201e0](https://github.com/material-components/material-web/commit/8d201e0d5dfb5c26aa6b4e58e526db1b1ef6c404))
* **tabs:** default `scroll-behavior: smooth` not working ([274ce3e](https://github.com/material-components/material-web/commit/274ce3e4e06867acfab642123192e0a7aa9b45d4)), closes [#5497](https://github.com/material-components/material-web/issues/5497)
* **textfield:** no longer inherits `text-align` from parents ([668f0ee](https://github.com/material-components/material-web/commit/668f0ee5e96ed0b697596d7fa7d0b4748924162b)), closes [#5509](https://github.com/material-components/material-web/issues/5509)
* **typography:** rename md-typescale.js to md-typescale-styles.js ([1e47fd7](https://github.com/material-components/material-web/commit/1e47fd7383ea2818beab64e7f9f4339cc790a5ee))
* use explicit `CSSResult[]` types for static styles ([ce41b7b](https://github.com/material-components/material-web/commit/ce41b7bfb3fc04f8e93a781eb6d92fe15b1d7fac))
## [1.3.0](https://github.com/material-components/material-web/compare/v1.2.0...v1.3.0) (2024-02-22)
### Features
* add `--md-sys-shape-*` tokens for all components ([41bac9e](https://github.com/material-components/material-web/commit/41bac9e44d0afef2a9cba08cb855572556e61342))
* **tabs:** expose activeTabIndex ([4bce86d](https://github.com/material-components/material-web/commit/4bce86d18b8d553607b8d2ee909faff0c095096b)), closes [#5297](https://github.com/material-components/material-web/issues/5297)
* **tokens:** add component custom properties to Sass values ([feff721](https://github.com/material-components/material-web/commit/feff7214a753559bc5ed5da5ed50ad508b4417e7))
### Bug Fixes
* **icon:** fix uncentered icons when using WCAG text spacing overrides ([b23e321](https://github.com/material-components/material-web/commit/b23e3218eebc293dc99a7343a6ecddebe585e89e))
* **labs:** hasConstructed and constructor deprecated, changing tabIndex update in connectedCallback ([fb086bb](https://github.com/material-components/material-web/commit/fb086bbd355d69a99dc9e6c38c2b8ebb7d7ce9ad))
* **labs:** removing hasConstructed and setting privateIsConstructed to handle setting tabIndex ([ea518d0](https://github.com/material-components/material-web/commit/ea518d0353facd94037843aca7e623b91a16363c))
* **labs:** update tabIndex once the element is connected to the DOM ([a6b8c09](https://github.com/material-components/material-web/commit/a6b8c090262ef173eb9d88161ba5051c31e2f930))
* **menu:** left arrow in submenu closes submenu in closure ([2049323](https://github.com/material-components/material-web/commit/2049323dde3eec643f14a03f12f0b449e4432aeb))
* remove `:host-context` rtl selectors ([f2ff867](https://github.com/material-components/material-web/commit/f2ff86725ccb96347af1881657428e4de1fe0bae))
## [1.2.0](https://github.com/material-components/material-web/compare/v1.1.1...v1.2.0) (2024-01-24)
### Features
* **select:** add keyboard support for arrow end and home ([8912019](https://github.com/material-components/material-web/commit/8912019b902803a018a1d92fb7caaa39369f6cf6))
* **select:** add menuAlign to allow end-aligning the select menu ([50a9ffa](https://github.com/material-components/material-web/commit/50a9ffae46499ec575a38887b5dcce8f5506e576))
* **select:** support width fit-content ([4bb9418](https://github.com/material-components/material-web/commit/4bb9418a52564984e32666c9383d8eb262e876cf))
* **textfield:** add `no-spinner` to remove number spin buttons ([3c6e550](https://github.com/material-components/material-web/commit/3c6e55006b3a7bad0d7fa782fab3141e1961e686))
### Bug Fixes
* **button:** add missing sass imports ([37fad06](https://github.com/material-components/material-web/commit/37fad0660dd96cf565062075e056a6288fea5290))
* **chips:** filter's `click.preventDefault()` not working when also updating `selected` ([5dc870b](https://github.com/material-components/material-web/commit/5dc870bfe1609a50702ef078a3da1b01620f7ef8))
* **dialog:** buttons not reflecting value attribute when setting property ([35913a6](https://github.com/material-components/material-web/commit/35913a6ea42776f2c402d879067ae772833e52b5)), closes [#5409](https://github.com/material-components/material-web/issues/5409)
* **dialog:** immediate escape key not firing cancel event in Chrome 120 ([be3dc6f](https://github.com/material-components/material-web/commit/be3dc6f6776f86a95619de0d708e2815e744ac6d)), closes [#5313](https://github.com/material-components/material-web/issues/5313)
* **dialog:** text is now selectable ([4ae9db6](https://github.com/material-components/material-web/commit/4ae9db6c67e3704a7be8bd83dfa18dbd50b7fc94))
* forms correctly focus the first invalid control instead of last ([7dd7a68](https://github.com/material-components/material-web/commit/7dd7a68ae9229d5685fe4ab85a6d8514624245d8))
* **labs:** add card support for high contrast mode ([53ec44b](https://github.com/material-components/material-web/commit/53ec44b4b81cbf691a0455efb6d9907957ef1205))
* **labs:** card content not clickable with outline fix ([9c5cff8](https://github.com/material-components/material-web/commit/9c5cff8f90198860149e6237798e73f2c846a36b)), closes [#5312](https://github.com/material-components/material-web/issues/5312)
* **menu:** `--md-menu-item-container-color` not working ([86bd6f8](https://github.com/material-components/material-web/commit/86bd6f830913330e41033c5eceab938fa4f42bc2))
* **progress:** prevent unnecessary animation to run when not visible ([4de5e74](https://github.com/material-components/material-web/commit/4de5e74b5caec5cff0fdb4696cb64790d471170c))
* rename and move `internal/controller/events` ([eca1357](https://github.com/material-components/material-web/commit/eca1357f1a7d185d4ec8a368f6467f481f9b2798))
* **ripple:** multiple touches causing ripples to start from center ([cef1b74](https://github.com/material-components/material-web/commit/cef1b740ee0a72488a9a9c4f197e2398d4027f1e)), closes [#5349](https://github.com/material-components/material-web/issues/5349)
* **select:** allow aria-expanded to be set to false ([73725be](https://github.com/material-components/material-web/commit/73725be67053f3a5ba4aa25f8b12a82afc4cad71)), closes [#5360](https://github.com/material-components/material-web/issues/5360)
* **select:** clicking select toggles the menu rather than just open ([043bbad](https://github.com/material-components/material-web/commit/043bbad6f30293c053c1fc1689cbf0d1e90c0d75))
* **select:** ensure md-select selection logic uses fresh DOM references ([8942715](https://github.com/material-components/material-web/commit/89427158b7a15265556db2f86423a9905760c696))
* **select:** expose SelectOption interface ([edb3559](https://github.com/material-components/material-web/commit/edb3559a1ce12d13921d93761bedbfde4c1c7898))
* **slider:** move ripple and focus ring beneath handle ([68b078b](https://github.com/material-components/material-web/commit/68b078b4e1f7357a15098bb59ae22ae8a4d02cbf))
* **slider:** nested dir attributes do not break on chrome 120+ ([57168f6](https://github.com/material-components/material-web/commit/57168f6a95403cd5a29e2774e42525efeb1e3eae))
* **tabs:** `--md-elevation-level` no longer leaks into tabs ([ddf1fb0](https://github.com/material-components/material-web/commit/ddf1fb0c613e43d26735832b9fdb1efcf2969949)), closes [#5137](https://github.com/material-components/material-web/issues/5137)
* **tabs:** `tabs.scrollToTab()` not working ([eb7c17e](https://github.com/material-components/material-web/commit/eb7c17e3dc6b14d900f4ce9d13d93ce0c09b9806))
* **textfield:** counter showing when max length is 0 or removed ([9973b90](https://github.com/material-components/material-web/commit/9973b90981b2414cc18dfb91279f204b7f50c080))
* **textfield:** error styles not removing when an unrelated control is invalid ([3151fd8](https://github.com/material-components/material-web/commit/3151fd8d904f0ac529f3a4f872a9dac537a65dc0))
* **textfield:** focus style lost after `reportValidity()` during change ([6efc904](https://github.com/material-components/material-web/commit/6efc90403b17684f77d1da577453fa66cfcb1c30))
* **textfield:** remove Firefox high contrast mode background on linux ([926edfb](https://github.com/material-components/material-web/commit/926edfb367de71eed77deaba45a4a7eaa79342fc))
* **tokens:** moved '_values.scss' to 'internal/_values.scss' ([b986b1e](https://github.com/material-components/material-web/commit/b986b1eb7cac5a5feef90478406247cebe7e690e))
### Performance Improvements
* **ripple:** don't process events in high contrast mode ([839667d](https://github.com/material-components/material-web/commit/839667dcf6becda087015edcb5468b8b2107d8c7))
## [1.1.1](https://github.com/material-components/material-web/compare/v1.1.0...v1.1.1) (2023-12-13)
### Bug Fixes
* formAssociated disabled attribute not working ([ab04299](https://github.com/material-components/material-web/commit/ab042992acd6702f11fd8f1d64bb1597cb701815))
## [1.1.0](https://github.com/material-components/material-web/compare/v1.0.1...v1.1.0) (2023-12-12)
### Features
* **chips:** add filter chip `selected-icon` slot to customize checkmark ([89b4c2e](https://github.com/material-components/material-web/commit/89b4c2e752fd7055f35f8b743cad6861376f3d95))
* **chips:** add tokens to customize padding ([c9e8de0](https://github.com/material-components/material-web/commit/c9e8de0207f158791d79629599682edf21d26498))
* **chip:** trailing remove icon can now be customized ([b44b90c](https://github.com/material-components/material-web/commit/b44b90c82643be1d0ae9c24d2450081db13dc04d))
* **chip:** trailing remove icon can now be customized ([49a6be1](https://github.com/material-components/material-web/commit/49a6be141b1f4a28c27b0982e0123ede7825a19d))
* **chip:** trailing remove icon can now be customized ([76883cd](https://github.com/material-components/material-web/commit/76883cd420a058dfa9c71c887605e890233ff53b))
* **menu,select:** allow menu and select typeahead to read default slot text content ([af49b64](https://github.com/material-components/material-web/commit/af49b64ab4e66872ff25d6ad767f9d37fce231b6))
* **menu:** add document-level positioning ([2b591ca](https://github.com/material-components/material-web/commit/2b591ca759ec8180659476a072db1a8b83c1ae20)), closes [#5120](https://github.com/material-components/material-web/issues/5120)
* **menu:** add popover functionality ([7859b39](https://github.com/material-components/material-web/commit/7859b39afef3de779225dfdb87470daf1f91fc27)), closes [#2023](https://github.com/material-components/material-web/issues/2023) [#5120](https://github.com/material-components/material-web/issues/5120)
* **radio:** add required constraint validation ([b5686ea](https://github.com/material-components/material-web/commit/b5686ea4e0ad17717ef086bcdf7dfdeb565acc9b)), closes [#4316](https://github.com/material-components/material-web/issues/4316)
* **select:** match menu width to select and introduce clamp-menu-width ([a5a40b6](https://github.com/material-components/material-web/commit/a5a40b6dd35a36e1d3f9a512d68369f3d639922d))
* **switch:** add slot icons ([9255be1](https://github.com/material-components/material-web/commit/9255be1be587cdbb29d6cd99efefc512de4882db))
### Bug Fixes
* 5182: dialog icon padding error ([257e9c6](https://github.com/material-components/material-web/commit/257e9c6f6f47bb61155fd21729bbd8326a7156e2))
* add `@material/web@nightly` publishes ([91c1221](https://github.com/material-components/material-web/commit/91c1221cef63b82e134949c7ff14b99653897602))
* **behaviors:** add focusable behavior to labs ([d1ef1fe](https://github.com/material-components/material-web/commit/d1ef1febb648b7afd521e05123024f9e4c71bca0))
* **behaviors:** validation not reporting when form tries to submit ([c53a419](https://github.com/material-components/material-web/commit/c53a4194e9796b5bd862ac166e66f0c16d4d8bcd))
* **button:** allow overriding `cursor` using CSS ([798f5ae](https://github.com/material-components/material-web/commit/798f5ae179c63d22a83ad4a7bcf8bb085541f6a1))
* **button:** allow overriding `min-width` and `user-select` ([1852238](https://github.com/material-components/material-web/commit/18522381d8038beeb28948bf993a679cc8feb02a))
* **button:** allow overriding `padding` and `gap` ([5bb4a42](https://github.com/material-components/material-web/commit/5bb4a422de35e953a35c032a66949cacea1e0496))
* **button:** don't show overflowing labels ([8dcb3f6](https://github.com/material-components/material-web/commit/8dcb3f62c7ccce09290211350e418c0089265305))
* **button:** height increases when label wraps ([7cd657b](https://github.com/material-components/material-web/commit/7cd657b83dcb80107d8d4e3601491b259476742b))
* **button:** labels not truncating, add support for multiline with `text-wrap: wrap` ([5d964ad](https://github.com/material-components/material-web/commit/5d964adcf9df7cfc4cc0b6108e378e6bc6b330fd))
* **button:** sometimes submits form even when click listener prevents default ([9e3f080](https://github.com/material-components/material-web/commit/9e3f0801aab349504f88e9aa221d0fcb5baa248b)), closes [#5032](https://github.com/material-components/material-web/issues/5032)
* **checkbox:** `checked` and `indeterminate` not updated during input event ([e78a52f](https://github.com/material-components/material-web/commit/e78a52f1e4f427cf328ab1e2373a7ba9ed1d4d8f))
* **chip:** disabled attribute prevents click event. ([2dba006](https://github.com/material-components/material-web/commit/2dba006ddd49f71f362bfb7b3c1547a4f9ced8c2))
* **chip:** disabled attribute prevents click event. ([d501ddd](https://github.com/material-components/material-web/commit/d501dddfd541a72ef50aff667cd06644801b1e90))
* **chip:** make tap highlight transparent ([c3bfbaa](https://github.com/material-components/material-web/commit/c3bfbaaf4c055fc3bc68f6f28b229ac2aa8fe5bc))
* Circular progress isn't circular in flex column display ([075119c](https://github.com/material-components/material-web/commit/075119c98fd71d3f4ec1b8c3e513e2c750e4550f))
* **docs:** prepare docs generator for mixin version of lit analyzer ([5e0000a](https://github.com/material-components/material-web/commit/5e0000a495ae6dc836a2e7cedf9778830e326ad0))
* **fab:** make tap highlight transparent ([4e8053d](https://github.com/material-components/material-web/commit/4e8053d15d8d06ed152844a1517a3f2313e37651))
* **filter-chip:** reflect correct value on click event ([0b4d4c2](https://github.com/material-components/material-web/commit/0b4d4c2e07b4f6be2289733500fbba36de29a2d3))
* **list-item:** hide headline overflow and fix width. ([4697407](https://github.com/material-components/material-web/commit/4697407cff0c8032c3a292aad24338df0927f865))
* **list-item:** make tap highlight transparent ([cca0789](https://github.com/material-components/material-web/commit/cca0789826af0dae789f143d243c359aa23dd1ad))
* **menu:** declare popover API types ([bf8d3f6](https://github.com/material-components/material-web/commit/bf8d3f6289c76bc708e5b487231939d02bfab3c4))
* **menu:** declare popover property type on HTMLElement ([3d8c7ac](https://github.com/material-components/material-web/commit/3d8c7ac7f3780158f885f7ca647b658071c81556))
* **menu:** escape not closing menus with submenus ([bd88880](https://github.com/material-components/material-web/commit/bd88880f78e54e88cb5083a74134ac4e130f3228))
* **menu:** shift tab into anchor closes menu ([c4cbd36](https://github.com/material-components/material-web/commit/c4cbd3612c08a6143eb104db07eb90a1171fb23c))
* **progress:** allow linear progress to fill flex containers ([a450e42](https://github.com/material-components/material-web/commit/a450e4288cdac6f61a13790f8820d57a7fb141a7)), closes [#5042](https://github.com/material-components/material-web/issues/5042)
* **segmented-button:** make tap highlight transparent ([e4728bd](https://github.com/material-components/material-web/commit/e4728bd018e5640fb03fc49169805a51aabf0a5c))
* **select,textfield:** native form validation shows error state ([6b5ab21](https://github.com/material-components/material-web/commit/6b5ab21332438dc971eb94b7da2271511bb99719))
* **select:** focus() delegates properly, focus on reporting validity ([897d977](https://github.com/material-components/material-web/commit/897d9775c2143dd3b8d07deab35dfe90decd1336))
* **select:** form failure no longer throws non-focusable error ([a5a6974](https://github.com/material-components/material-web/commit/a5a6974decb19b5ce42020c3c7c5386a8b203d76)), closes [#5078](https://github.com/material-components/material-web/issues/5078)
* **select:** select menu render is over most stacking contexts with popover ([a2b3204](https://github.com/material-components/material-web/commit/a2b32042bd51c34853a9ca7b1c7901fb69270a44))
* **tabs:** allow changing tab padding ([dd005df](https://github.com/material-components/material-web/commit/dd005df7806002a60fe9af136387ad4623b4ae8e))
* **tabs:** fields intended to be accessed from templates must be exported ([b7be1cb](https://github.com/material-components/material-web/commit/b7be1cbbb4e7b08421d293ba89f364632822d113))
* **text-field:** wrap text in textarea ([4fce487](https://github.com/material-components/material-web/commit/4fce487c812954da816c0bdb4ba5165902c2f3e9))
## [1.0.1](https://github.com/material-components/material-web/compare/v1.0.0...v1.0.1) (2023-10-18)
### Bug Fixes
* **catalog:** align one liners to center ([fbc1fa6](https://github.com/material-components/material-web/commit/fbc1fa626a92299c627004efa9d41151b44febb0))
* **catalog:** center items in blockquotes ([5235b3e](https://github.com/material-components/material-web/commit/5235b3ea52b7aa5a27c2b00a49712a3ce0e22378))
* **checkbox:** cursor should be pointer when not disabled ([18fe451](https://github.com/material-components/material-web/commit/18fe45170a66588e84ecaac9ef2be0f96bec5d8d)), closes [#5079](https://github.com/material-components/material-web/issues/5079)
* **fab:** cursor should be pointer ([5280c6e](https://github.com/material-components/material-web/commit/5280c6ec27ee54f82df4f4a25f0a1343961c168b)), closes [#5017](https://github.com/material-components/material-web/issues/5017)
* **list:** list items will not escape their parent when parent width is restricted ([4b00a95](https://github.com/material-components/material-web/commit/4b00a9561c39b8f87299daed36e4aff0679e1263))
* **list:** show pointer cursor for button list items ([16480d0](https://github.com/material-components/material-web/commit/16480d0e5d1c24f24ef143f8401192e6fa7e2c52)), closes [#5045](https://github.com/material-components/material-web/issues/5045)
* **md-item:** exclude start slot from hidden overflow ([5607059](https://github.com/material-components/material-web/commit/56070593cebeb1b25b87fbe7e4767f6291548004))
* **md-item:** exclude start slot from hidden overflow ([e087141](https://github.com/material-components/material-web/commit/e0871411dd70554dd47bd256da9c2c50b44404c2))
* **menu,select:** enter clicks href items ([8ae8c02](https://github.com/material-components/material-web/commit/8ae8c02866d9284ee2e3a4e95b7cf573fdebf984))
* **menu:** fix menu item fade in order animation ([73eb15e](https://github.com/material-components/material-web/commit/73eb15ebee06d1ac12e94a43d7b59234b8bd48ee)), closes [#5014](https://github.com/material-components/material-web/issues/5014)
* **menu:** fix menu OOB from resizing window ([863109e](https://github.com/material-components/material-web/commit/863109e2043d82af2acf28c90a9393509b6ef5ee)), closes [#5063](https://github.com/material-components/material-web/issues/5063)
* **menu:** fix menu tapping behaviors on iOS and do not close on anchor click ([8bbb4b4](https://github.com/material-components/material-web/commit/8bbb4b4ffffa45373bc539da95152af5724713a8))
* **menu:** fix submenu SSR left keyboard close navigation ([d6f7220](https://github.com/material-components/material-web/commit/d6f7220f0b0d394ae265ca1546eb0af4f63c07d9))
* **radio:** cursor should be pointer except when disabled ([7779987](https://github.com/material-components/material-web/commit/7779987118a6c88091ad378eeee24b96f0c2c037))
* **select:** cursor on select options should be pointer ([ff250dc](https://github.com/material-components/material-web/commit/ff250dc983794e356c329a9bef8f391583948d71)), closes [#5066](https://github.com/material-components/material-web/issues/5066)
* **slider:** slider knob has size to drag on ios safari ([6298cd2](https://github.com/material-components/material-web/commit/6298cd2cf04cc4c62e940972068d7469a9f1a1cc)), closes [#5016](https://github.com/material-components/material-web/issues/5016)
* **switch:** cursor should be pointer except when disabled ([9a3ff28](https://github.com/material-components/material-web/commit/9a3ff289f5343e4350afa5951cf09527f270c2c6)), closes [#5075](https://github.com/material-components/material-web/issues/5075)
* **tabs:** revert `isTab` check so it is possible to create your own tab ([db3c865](https://github.com/material-components/material-web/commit/db3c8651c2407e777042cace9ba7aac4eb75f988))
* **tabs:** revert `isTab` check so it is possible to create your own tab ([e10186e](https://github.com/material-components/material-web/commit/e10186e91b35e4844e437914394e5581ff63fbc1))
* **tabs:** use `md-tab` attribute to brand individual tab children ([8ec0813](https://github.com/material-components/material-web/commit/8ec08133af05c0755fbac764b3275af0f8ae0c1c))
* **textfield:** calling focus on textfield with a leading icon focuses the input ([8f999d4](https://github.com/material-components/material-web/commit/8f999d4a0db80658664437e38bb51f2eaee6fe2d))
* **textfield:** forward the `multiple` field to the native input ([03e5a7e](https://github.com/material-components/material-web/commit/03e5a7ec8be9690368677693f95e3ba1c640852f)), closes [#5064](https://github.com/material-components/material-web/issues/5064)
* **textfield:** missing focused left border for textarea in HCM ([9194cc9](https://github.com/material-components/material-web/commit/9194cc94db76c5395cfff3e2bd2bb205c702d1a4))
* **tabs:** use `md-tab` attribute to brand individual tab children
### Reverts
* fix(tabs)!: use md-tab attribute to brand individual tab children ([d1f3887](https://github.com/material-components/material-web/commit/d1f3887613bf9eda7a148b8c3cebd1f370b4cc26))
* pardon the mess, "use `md-tab` attribute to brand individual tab children" is not a breaking change ([43af3ba](https://github.com/material-components/material-web/commit/43af3baa7f599c0d9cf3f5562e2a772e229d95c2))
## [1.0.0](https://github.com/material-components/material-web/compare/v1.0.0-pre.17...v1.0.0) (2023-09-26)
### ⚠ BREAKING CHANGES
* **list:** the new ListController behavior no longer waits for event.preventDefault asynchronously because it was causing keyboard navigations to scroll the page.
* **list:** `<md-list-item>` now uses slots instead of properties and has removed many prescriptive items (such as avatar, image, and video items). The default slot can be used for any custom content. ```html <md-list-item> <div slot="overline">OVERLINE</div> <div slot="headline">First line</div> <div slot="supporting-text">Second+ lines</div> <div slot="trailing-supporting-text">Trailing</div> <md-icon slot="start">star</md-icon> <md-icon slot="end">star</md-icon> </md-list-item> ``` Add `type="button"` or `type="link"` for interactive list items.
* **menu:** Several enums in menu had their values changed from SCREAM_CASE to kebab-case to follow style guide. They are NAVIGABLE_KEYS -> NavigableKey, SELECTION_KEY -> SelectionKey, CLOSE_REASON -> CloseReason, KEYDOWN_CLOSE_KEY -> KeydownCloseKey
* **menu,select:** refactor `fixed` property to `positioning="fixed"` in Menu and `menuFixed` to `menuPositioning="fixed"`
* **menu:** This change refactors menu-item to no longer subclass or import from list-item. It also refactors it to use md-item directly which means that the API of menu item has moved from properties to slots. `start-*` and `end-*` slots are now just `start` and `end`, many tokens are now gone in favor of slotting. `headline` property is now a `slot="headline"` slot. Typeahead search text can now be set via `typeaheadText` which defaults to the slotted headline `textContent`. `select-option` now has the `displayText` which is used to display text in the `md-select` when the option is selected; defaults to the slotted headline `textContent`.
* **menu:** We have deleted `md-sub-menu-item`. Instead it is recommended to use `md-sub-menu` which can have `md-menu-item[slot=item]` and `md-menu[slot=menu]` slotted into it. This makes `sub-menu-item` accessible for screen readers using linear navigation
* **menu:** Menu no longer uses md-list internally which means the list-related properties such as `list-tabindex` and `type` should now be on the host of md-menu. The new attributes should be `tabindex` and `role` respectively.
* **iconbutton:** Replace `container-size` tokens with `container-width` and `container-height`.
* **list:** the `noninteractive` property has been replaced by the `interactive` property, and by default, a list-item will no longer show a ripple or focus ring. What to change:
- To preserve prior default behavior, add the `interactive` attribute explicitly.
- Any setting of a truthy `noninteractive` attribute or property can be removed as it's the new default behavior.
* **menu:** rename corner and focus state values lowercase with dashes
* **chips:** chips now follow the [aria toolbar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/examples/toolbar/). Chip sets are toolbars and chips are buttons or links. Filter chips are toggle buttons. What to change:
- Remove `type` attribute from `<md-chip-set>` (you can mix and match chip types!)
- Remove `single-select` from `<md-chip-set>`. Use JS to control filter chips if single selection is required. Radio filter chips will come in a future update.
- Disabled chips CAN be focused with the keyboard if `always-focusable` is set.
- Filter chips no longer dispatch a `"selected"` event. Listen to `"click"` and use `event.target.selected` instead.
- ArrowUp and ArrowDown no longer navigate between chips. These are reserved for chip actions, like dropdown menu chips.
* **list,menu,select:** the data-variant=".." selectors in list-item and all variants have been removed in favor of their respective slots. e.g. a slotted icon of the form `md-icon[slot=end][data-variant=icon]` should now be `md-icon[slot=end-icon]`.
* **menu:** menu selected container color changed to secondary-container
* **list:**
* **list:** Aria and roles on List have been moved to the host element. list-tabindex attribute should be migrated to tabindex attribute. type attribute should be migrated to role attribute.
* **list,menu,select:** removed `active` from list-item, menu-item, and select-option. Instead, List uses tabindex to track whether something is focusable.
* **select:** `option.selected` no longer reflects. Set the attribute instead if relying on the attribute for styles/queries.
* **dialog:** if overriding margin on a dialog's content, swap it to padding. If a dialog's slotted first or last child has built-in margin (such as `<h3>` or `<p>`), remove the top/bottom margin as needed (since margin swapped to padding, there's no more margin collapsing).
* **tabs:** Rename the `selected` index property on md-tabs to `activeTabIndex` (`active-tab-index` attribute). Rename `select-on-focus` to `auto-activate`
* **typography:** composite `-type` tokens are no longer supported. Use discrete `-font`, `-size`, `-line-height`, and `-weight` tokens instead.
* **tabs:** replace `label-text-type` tokens with `-font`, `-size`, `-line-height`, and `-weight`
* **tabs:** rename `selected` to `active` for primary and secondary tabs.
* **textfield:** replace slot names `leadingicon` and `trailingicon` with `leading-icon` and `trailing-icon`
* **select:** replace `leadingicon` and `trailingicon` slot names with `leading-icon` and `trailing-icon`
* **navigationtab:** change slot names activeIcon and inactiveIcon to active-icon and inactive-icon
### Features
* **chips:** swap to toolbar a11y pattern ([16bfac1](https://github.com/material-components/material-web/commit/16bfac1343128f641b34e74e21c69a05a28a9185))
* **iconbutton:** update tokens to v0.192 ([e8b5b29](https://github.com/material-components/material-web/commit/e8b5b29d1eb18566126b77fcdc01c5f7f8899e25))
* **item:** add `<md-item>` layout component ([ffe4f79](https://github.com/material-components/material-web/commit/ffe4f79b5d749eabf051e677cb09a03488a1717d))
* **items:** add `<md-item>` to `@material/web/labs` ([b35212a](https://github.com/material-components/material-web/commit/b35212a9ac7907af3460ea64cc4f2e5874bf73fc))
* **list,menu,select:** add slots for specific slotted variants ([ed68995](https://github.com/material-components/material-web/commit/ed689952ddc6380fc6f004e190d521e6c739e415))
* **menu:** create a Menu interface for easier md-menu wrapping ([5fad4f0](https://github.com/material-components/material-web/commit/5fad4f088f2bcc957ee5cef0c261d537bf7caa12))
* **menu:** do not close menu if anchor is clicked ([c7c276f](https://github.com/material-components/material-web/commit/c7c276fdfa5eb2c7b4d06c7ccef8e36deaa96e5c))
* **menu:** implement md-sub-menu ([54fbb2e](https://github.com/material-components/material-web/commit/54fbb2ed5ee28d68d6d27b8121a8c4b3b1d10c8e))
* **menu:** menus will resize and flip corners to stay in viewport ([235a203](https://github.com/material-components/material-web/commit/235a2033d7e492e5ed245e7a81b0082e8ecd35ac))
* **menu:** update tokens to v0.192 ([94b5c81](https://github.com/material-components/material-web/commit/94b5c8125e2f264699b8afd1b44968346a526759))
* **select:** add required and form association ([4ad2336](https://github.com/material-components/material-web/commit/4ad2336b878b8db1523e1d333fc80c72a0969647)), closes [#4903](https://github.com/material-components/material-web/issues/4903)
* **tabs:** add `tabs` property to retrieve tab elements ([bf48fc3](https://github.com/material-components/material-web/commit/bf48fc307ecadb7eb768052a54838a5ab532e059))
* **typography:** add typography Sass APIs ([8e480de](https://github.com/material-components/material-web/commit/8e480deae3501eaec7d8d5f5b959bff10ab699d7))
### Bug Fixes
* aria polyfill overrides user values and user values override internals values ([8aa4faf](https://github.com/material-components/material-web/commit/8aa4faf14ac8207c9a39f783f971bfbf5933bfa5))
* **catalog:** remove TODO from home page ([af27ff8](https://github.com/material-components/material-web/commit/af27ff8374e1814e7f1a3b303a28ab1c49b115a7))
* **dialog:** change content margin to padding ([8613fe6](https://github.com/material-components/material-web/commit/8613fe6a5845f87c7264254bdc114341fef7d824))
* **dialog:** not delegating focus in closure ([375b766](https://github.com/material-components/material-web/commit/375b7664efcc84925f7f283ef0902c32b558c090))
* **iconbutton:** allow prevent default click for toggles ([ed539c6](https://github.com/material-components/material-web/commit/ed539c6853cc6f1c6e5f3b2c40f06e83c779c3e5)), closes [#4857](https://github.com/material-components/material-web/issues/4857)
* **iconbutton:** fix HCM disabled opacity and outlined ([1163315](https://github.com/material-components/material-web/commit/116331594826032c09e5dacee5e97d729c7f36a3))
* **linearprogress:** linear progress buffer dots now visible in HCM ([70bfea8](https://github.com/material-components/material-web/commit/70bfea873818d321343649df36046931c8eaab25))
* **list,menu:** clicking items in a list followed by keyboard nav functions as expected ([af171df](https://github.com/material-components/material-web/commit/af171df086d73094df4fa01ba052ffdef06a1197))
* **list,menu:** list items left right keyboard navigation ([fad6104](https://github.com/material-components/material-web/commit/fad61043914463f3e385bf786f6a6ff0b4d0c60c))
* **list:** list items are now noninteractive by default ([3b5cbc4](https://github.com/material-components/material-web/commit/3b5cbc4ede8c32066a76087870f08b55a246d13a))
* **list:** text items are no longer tabbable, links cannot be disabled ([54c4ddb](https://github.com/material-components/material-web/commit/54c4ddba4c13be05de08a64f635a0cf11fbb33cb))
* **list:** update tokens to 0.192 ([58539b1](https://github.com/material-components/material-web/commit/58539b156984d7bbbbb4a534230d796596984323))
* **menu,select:** fix final aria issues ([aeb5103](https://github.com/material-components/material-web/commit/aeb5103e1c6342d565f4af01da1f9d3fb59c50a6))
* **menu:** allow submenus to close when focus is lost ([7a19c7e](https://github.com/material-components/material-web/commit/7a19c7e97a40103e65697c1f669d887b176f1cc6))
* **menu:** apply padding to dividers per spec ([df52d92](https://github.com/material-components/material-web/commit/df52d927242fc13828f58fd10b495c586ce92324))
* **menu:** expose item custom properties and fix selected color ([d27ef2e](https://github.com/material-components/material-web/commit/d27ef2e059454624293c0a6ce7ee6d25afde8d5d))
* **menu:** fix submenus on mobile ([368991c](https://github.com/material-components/material-web/commit/368991ce306e904959a5d53e49293a8a683c46a1))
* **menu:** menu's default focus behavior follows google accessibility practices ([2927245](https://github.com/material-components/material-web/commit/29272451146afcb918237c11e8b7d7ef715a4675))
* **menu:** update default min width to spec and allow max-width to inherit ([2e25bf8](https://github.com/material-components/material-web/commit/2e25bf8ce2979de4a5bccabc244fd4ca715ecebc))
* **navigationtab:** change slot names activeIcon and inactiveIcon to active-icon and inactive-icon ([f019ac3](https://github.com/material-components/material-web/commit/f019ac37fe07da0a0a75821ce955dc6c6cbdc3c9))
* **radio:** dispatches input event on select ([e444de3](https://github.com/material-components/material-web/commit/e444de3c0264697e2fc094c35ae59808a04ff29f))
* **select:** change slot names to kebab-case ([059dad5](https://github.com/material-components/material-web/commit/059dad5d44ed43f4c84e754ce73f10b24bbbd1ae))
* **select:** don't reflect `selected` attribute ([573caae](https://github.com/material-components/material-web/commit/573caaee1b7fe64b57b84e2b287b6c5c74666de1))
* **select:** select can reopen when animation interrupted ([78e7c17](https://github.com/material-components/material-web/commit/78e7c1742f04437eee3f804cc73de9d3ffaaf1bb))
* **select:** update select docs and fix initial selection ([5e4434b](https://github.com/material-components/material-web/commit/5e4434bfed93db4ea0b02f3987483860ed7b2411))
* **slider:** border should only appear when handle nubs are overlapping ([6e72a8e](https://github.com/material-components/material-web/commit/6e72a8e5f4d118992fd110e19a02a2a3b2e31dc9))
* **slider:** label should not changed size when stacked ([b50d5c8](https://github.com/material-components/material-web/commit/b50d5c87b33f0a46bc98e2d362abc0656fdbc424))
* **slider:** make tickmarks visible when slider is disabled ([e9d1e7d](https://github.com/material-components/material-web/commit/e9d1e7d3c4ff937ed4f8913ab7280aee28a9e3eb))
* **tabs:** a11y and tabs sometimes not activating ([58f2446](https://github.com/material-components/material-web/commit/58f24462467b549c810554d8bc78480673d36e3d))
* **tabs:** remove font shorthand tokens ([88eb175](https://github.com/material-components/material-web/commit/88eb1759c50863eb444bc45dc28aa861beb8f853))
* **tabs:** remove previously selected tab property ([70ce0d2](https://github.com/material-components/material-web/commit/70ce0d2779e2310d28351141296106dbcb526255))
* **tabs:** remove public indicator property ([d296316](https://github.com/material-components/material-web/commit/d296316a2b69beff48ceb89dfc9b79bd475b0122))
* **tabs:** rename tab `selected` to `active` ([23b291b](https://github.com/material-components/material-web/commit/23b291b2ddf2450875868679ef7a288e770920bc))
* **tabs:** scrollable divider not taking up full width ([a0fca90](https://github.com/material-components/material-web/commit/a0fca90bdf8a8254ed6f28802b7d58248e24f889))
* **tabs:** setting `active` on tab selects them ([1442f9b](https://github.com/material-components/material-web/commit/1442f9b223761f0202b3c935159bc0b26bb0a16d))
* **textfield,focus,ripple:** fix textfield SSR ([f576b60](https://github.com/material-components/material-web/commit/f576b60aecf8f0e01746c61f6a4319922d1753e8))
* **textfield:** add demo a11y and fix outlined label navigation ([7866a93](https://github.com/material-components/material-web/commit/7866a939b95e10e5e5dafa5e4098370971e78e8b))
* **textfield:** broken required validity on Safari ([c26a578](https://github.com/material-components/material-web/commit/c26a578448666fda50eb2b25be59b88390e32097)), closes [#4796](https://github.com/material-components/material-web/issues/4796)
* **textfield:** change slot names to kebab-case ([82e9e92](https://github.com/material-components/material-web/commit/82e9e92a19b82c401d2d878b2a713fbd773b1ad6))
* **textfield:** don't show focus indicator when focused on icon ([61c8f6d](https://github.com/material-components/material-web/commit/61c8f6db460c23caa9ab27b1ccfa84a72a8e1709))
* **textfield:** remove icon that appears in search input in chrome and safari ([86aaacd](https://github.com/material-components/material-web/commit/86aaacd32c02ee533a5506723ac7dbd77faf8fd3))
* **tokens:** generate tokens v0.192 ([116b448](https://github.com/material-components/material-web/commit/116b448639454674f9024b22f1dfe88187851d0d))
* **tokens:** update components to v0.192 ([cfd053c](https://github.com/material-components/material-web/commit/cfd053c39701aa0b8d8e33a9e0392a68ec842a83))
### Miscellaneous Chores
* prep release version ([df508ef](https://github.com/material-components/material-web/commit/df508ef5fdd1494bf6a3c567d9ac82da978fb8e0))
### Code Refactoring
* **list,menu,select:** remove active concept and now parent controls tabIndex and focus ([d446315](https://github.com/material-components/material-web/commit/d4463154cc1f5831aac79cf2894146289d9a56be))
* **list,menu,select:** remove data-variant slotted variant selectors ([1f31df8](https://github.com/material-components/material-web/commit/1f31df818be4140640bc1b12a8401a9f202b7914))
* **list:** move list aria to host ([9447ec7](https://github.com/material-components/material-web/commit/9447ec7d72999f5e6bcef91baf803d51d0d0e442))
* **list:** refactor list to reuse ListController ([6d0c7e8](https://github.com/material-components/material-web/commit/6d0c7e8538c41be727cd333faffc5c6085d69c6b))
* **list:** refactor list using md-item ([7536774](https://github.com/material-components/material-web/commit/753677489b90175ca799bd422cdd7c2b9b2ede42))
* **menu,select:** rename `fixed` to `positioning` ([63b0142](https://github.com/material-components/material-web/commit/63b01425e7ed5e810853c7af629f4e3198a9fb5d))
* **menu:** pull logic out of menuitem into a controller & change enum vals ([1217b62](https://github.com/material-components/material-web/commit/1217b62ef2cd73fbf28fe32ef45941ce130961d1))
* **menu:** refactor menu-item to use md-item and not rely on md-list-item ([2a1d877](https://github.com/material-components/material-web/commit/2a1d8776a76025ff9ff5ebc8cacea1f12f69badf))
* **menu:** remove sub-menu-item in favor of sub-menu ([d6cbf74](https://github.com/material-components/material-web/commit/d6cbf741374cbb22abe3764d19afe265f42f9a5f))
* **menu:** rename corner and focus state values lowercase with dashes ([6e54048](https://github.com/material-components/material-web/commit/6e54048f1eadb8234c3681009a5b8193f14f7c14))
* **menu:** update menu to use host-aria ([0384507](https://github.com/material-components/material-web/commit/03845074479894e3e609b7c5ec6e37d4f6cdaf88))
## [1.0.0-pre.17](https://github.com/material-components/material-web/compare/v1.0.0-pre.16...v1.0.0-pre.17) (2023-09-06)
### ⚠ BREAKING CHANGES
* **slider:** replace `label-text-type` tokens with `-font`, `-size`, `-line-height`, and `-weight`. Additionally, rename `label-label-*` tokens to a single `label-*`
* **list:** replace `*-type` font tokens with `-font`, `-size`, `-line-height`, and `-weight`
* **chips:** replace `label-text-type` tokens with `label-text-font`, `-size`, `-line-height`, and `-weight`
* **text-field,select:** replace `*-type` font tokens with `-font`, `-size`, `-line-height`, and `-weight`
* **fab:** replace `label-text-type` tokens with `-font`, `-size`, `-line-height`, and `-weight`
* **dialogs:** replace `headline-text-type` and `supporting-text-type` tokens with `-font`, `-size`, `-line-height`, and `-weight`
* **button:** replace `label-text-type` tokens with `label-text-font`, `-size`, `-line-height`, and `-weight`
* **circularprogress:** make default width 4px
* **textfield:** The field component must add the `resizable` attribute rather than using CSS. CSS `resize` can still customize the direction (defaults to both).
* **list,menu,select:** menu harnesses will not automatically open menus in quick mode anymore and interactions in menu and list harnesses will not automatically go to the first item but rather the menu roots.
* **iconbutton:** change `slot="selectedIcon"` to `slot="selected"` for toggle icon buttons.
* **tabs:** secondary tabs always have inline icons
* **tabs:** remove `variant` attributes and change `md-tab` to `md-primary-tab`, or `md-secondary-tab` if using `variant="secondary"
* **menu:** allow anchoring with idref string and set element ref on anchorElement
* **tokens:** Change "radio-button" and "progress-indicator" Sass token APIs to "radio" and "progress". This matches the tag names of their components.
* **tabs:** Remove `--md-*tab-divider` tokens and use `md-tabs::part(divider)` and `--md-divider-*` tokens
* **tabs:** tabs cannot be disabled per spec. If disabled tabs are required, use `pointer-events: none` and CSS to style them.
* **iconbutton:** change visibility of `willUpdate` to protected
### Features
* **color:** add color folder for md-sys-color theming APIs ([cdd9b26](https://github.com/material-components/material-web/commit/cdd9b264cb18dd9c43c4691b32fd47b65a90dab9))
* **color:** add color folder for md-sys-color theming APIs ([87af9aa](https://github.com/material-components/material-web/commit/87af9aa13022ed69dbe20961293e67b2bf5914c4))
* **focus,ripple:** allow setting `element.control = elementRef` ([1e7aff5](https://github.com/material-components/material-web/commit/1e7aff50cf3882f711dd6eb56f08a95ee6f3c084))
* **menu:** allow anchoring with idref string and set element ref on anchorElement ([5ba348d](https://github.com/material-components/material-web/commit/5ba348dfd07f771d0db093841353f85b2a366c5a))
* **select:** dispatch select-(open|close)(ing|ed) events ([1a1fb93](https://github.com/material-components/material-web/commit/1a1fb93be77634d45c373bf97804ccd074cef719)), closes [#4798](https://github.com/material-components/material-web/issues/4798)
* **switch:** add required and form validity ([9694191](https://github.com/material-components/material-web/commit/9694191ec02bb37575df8d74af6e530f3e4e45e9))
### Bug Fixes
* add aria-hidden="true" to ripple, focus ring, and elevation ([2295f12](https://github.com/material-components/material-web/commit/2295f12e711f563b05a19d1d354e37a986027d5d))
* **badge:** center align value text ([cc195a9](https://github.com/material-components/material-web/commit/cc195a947656b2f4765be77ba2fa3cbfe680ba76))
* **button:** remove font shorthand tokens ([8894c20](https://github.com/material-components/material-web/commit/8894c20c6becab188f6136753f538372258b8faf))
* **button:** update demos to fix a11y ([4b61e8d](https://github.com/material-components/material-web/commit/4b61e8d2034448a0d06baddca4d6f768f82b35bd))
* **chips:** apply cursor styling ([9389e26](https://github.com/material-components/material-web/commit/9389e26b68705e82c1cde5469ab7777790db5477))
* **chips:** linear navigation not working in VoiceOver ([dfc87f3](https://github.com/material-components/material-web/commit/dfc87f32e8621b0bbcf8156a276bd67a5ecd1ddc))
* **chips:** remove font shorthand tokens ([87ad1da](https://github.com/material-components/material-web/commit/87ad1dae4fbcdc037f842e65e173d0b66e210081))
* **circularprogress:** make default width 4px ([c864d3b](https://github.com/material-components/material-web/commit/c864d3b638fffdb22a1897507595d666fb16784a))
* **dialog, select:** allow fixed selects to render correctly in dialogs ([d6aa6b2](https://github.com/material-components/material-web/commit/d6aa6b22c794ed48f2937ea4a33f321d0b1f9b25))
* **dialog:** content not displaying on Safari ([9b7647b](https://github.com/material-components/material-web/commit/9b7647bd3d44c433e0edad7cd4d30f6fdd220f25)), closes [#4728](https://github.com/material-components/material-web/issues/4728)
* **dialog:** not showing if opened before connected ([d25c5e9](https://github.com/material-components/material-web/commit/d25c5e9ecade4ecc3d6ea4ceb9c5e2bc1d19dc06)), closes [#4728](https://github.com/material-components/material-web/issues/4728)
* **dialogs:** remove font shorthand tokens ([81e11e0](https://github.com/material-components/material-web/commit/81e11e09fa5ded5ab41e7cbcb977cd7dbc3ece81))
* **fab:** remove font shorthand tokens ([f77ee36](https://github.com/material-components/material-web/commit/f77ee3628c0ef6945f11c8045c3c2e4e0f262d68))
* **iconbutton:** change visibility of `willUpdate` to protected ([dffff2d](https://github.com/material-components/material-web/commit/dffff2d1a31f3ed40b28f57570ba4df7f61f7210))
* **iconbutton:** rename `selectedIcon` slot to `selected` ([9647f5e](https://github.com/material-components/material-web/commit/9647f5e5147b2d94f2db8ea6ca45c7f819714324))
* **iconbutton:** update demos to fix a11y ([a9091fe](https://github.com/material-components/material-web/commit/a9091fe036af55986123770606a686388fd39b3f))
* **labs:** remove font shorthand tokens ([acd40a2](https://github.com/material-components/material-web/commit/acd40a2f57277a67850c8e103a405dfcc4d3fdce))
* **list,menu:** restrict type to only supported aria roles ([32a8c44](https://github.com/material-components/material-web/commit/32a8c4410eff4bede75c77bcdd43541967c8d0e7))
* **list:** remove font shorthand tokens ([ca2cd56](https://github.com/material-components/material-web/commit/ca2cd56bd1b668904c6aea2b4d18602e773e1c9f))
* **list:** remove internal md3-* class prefix ([641142d](https://github.com/material-components/material-web/commit/641142dff0fa679754a6f26518e9db7eccf5f6f5))
* **menu,list,select:** do not stopPropagation on native events when handled only prevent default ([b85b57f](https://github.com/material-components/material-web/commit/b85b57fa792663460dbc1730c9e574e2b5ab998d))
* **radio:** make host radio role to fix a11y ([0711f8c](https://github.com/material-components/material-web/commit/0711f8c03c2c4c743386abf490e6dddf243be5e6))
* ripple and focus ring not centered in Safari ([0e8afc0](https://github.com/material-components/material-web/commit/0e8afc01757c3f1f8a5bf904e8cb857ea88bd7bf))
* **select, menu:** allow item selection while animation is running in non-overflow contexts ([b905807](https://github.com/material-components/material-web/commit/b9058076b6bdf10ad135003b6c91ac46ebcb273b))
* **select:** announce typeahead selection when select is closed ([2c892c4](https://github.com/material-components/material-web/commit/2c892c411472481c44d6d5a0bdec073d74634d89))
* **slider:** display tick marks when forced-colors is active ([2f9cc20](https://github.com/material-components/material-web/commit/2f9cc208df53f0587e3712ec03c164bac25efade))
* **slider:** remove font shorthand tokens ([6988a49](https://github.com/material-components/material-web/commit/6988a49a3b28273d02cad20ff0129c2906a63a26))
* **tabs:** add nocollapse so isTab doesn't get minified ([17ddcd3](https://github.com/material-components/material-web/commit/17ddcd3c2e1c994b868d8b49d55a7457234929b2))
* **tabs:** incorrect layout and primary indicator width ([0467c48](https://github.com/material-components/material-web/commit/0467c4845db7c31deddf7383beb199157f4c5034))
* **tabs:** make indicator animation faster ([b542d2a](https://github.com/material-components/material-web/commit/b542d2aa12dcfc70fa250265cc82647d04218254))
* **tabs:** remove disabled tabs ([d18db2a](https://github.com/material-components/material-web/commit/d18db2a6acb90a059856fbf74e8c2212f7680a68))
* **tabs:** remove divider tokens in favor of md-divider ([13690a3](https://github.com/material-components/material-web/commit/13690a396f666b2073f6dc4995090d12947de59f))
* **tabs:** secondary tabs always have inline icons ([6b2955b](https://github.com/material-components/material-web/commit/6b2955bffe68adc4c8c36ee96e2d45c2955b3a4c))
* **tabs:** split md-tab into md-primary-tab and md-secondary-tab ([5b13b5c](https://github.com/material-components/material-web/commit/5b13b5c05bdbe7a85e30408a33a07de6480317d2))
* **tabs:** use instanceof to check for a Tab ([58497f1](https://github.com/material-components/material-web/commit/58497f13b2ca494f233c290f6571f5f03f142d7f))
* **testing:** harness not applying :active to parents ([327eeaf](https://github.com/material-components/material-web/commit/327eeafbf9f3f7bbf5f80d458cd9e423c5a7d98d))
* **testing:** remove font shorthand tokens ([01a99a5](https://github.com/material-components/material-web/commit/01a99a5cc36cafe11422062d513e38cbf7442e02))
* **text-field,select:** remove font shorthand tokens ([0c5a2a2](https://github.com/material-components/material-web/commit/0c5a2a2886fd934c598361aacc0719ad484ade9b))
* **textfield:** don't transition colors when disabling ([11cc472](https://github.com/material-components/material-web/commit/11cc4721ce42bf63ed06637081fdeb01aa2f25bb))
* **textfield:** line breaks not visible in Firefox ([541c0e9](https://github.com/material-components/material-web/commit/541c0e947d1ad4549256af5ebdde645a86724171)), closes [#4581](https://github.com/material-components/material-web/issues/4581)
* **textfield:** show overflowing content like popups and focus rings ([ecac7ec](https://github.com/material-components/material-web/commit/ecac7ecbad43b90b94f61d44974312d5546877d8)), closes [#4071](https://github.com/material-components/material-web/issues/4071)
* **textfield:** textarea resize handle overlapping outline ([cdd2ea6](https://github.com/material-components/material-web/commit/cdd2ea6c1db189495abd3b45eee5e9872fc9622c))
* **tokens:** rename token override files ([59c44fc](https://github.com/material-components/material-web/commit/59c44fc2f9266b60d22e9bd5ff5d39e7d0ee8dff))
### Reverts
* feat(color): add color folder for md-sys-color theming APIs ([a528393](https://github.com/material-components/material-web/commit/a5283936fedd8da92af994fa0d721e07bc2686c4))
### Miscellaneous Chores
* update next version ([f41c816](https://github.com/material-components/material-web/commit/f41c8165f47e6a212b6c8ca104951187c8020622))
### Tests
* **list,menu,select:** clean up internal testing patterns from harnesses ([fcfc696](https://github.com/material-components/material-web/commit/fcfc696c4628fd2f41b09c060e6af4cd8e7658c2))
## [1.0.0-pre.16](https://github.com/material-components/material-web/compare/v1.0.0-pre.15...v1.0.0-pre.16) (2023-08-21)
### ⚠ BREAKING CHANGES
* **list-item:** remove duplicate list-item menu-item from custom prop names
### Features
* **fab:** do not require has-icon ([156ca3c](https://github.com/material-components/material-web/commit/156ca3cbe7fc03290892a1b20c8b5036b996d2ed))
* **iconbutton:** add touch target configs ([0862c58](https://github.com/material-components/material-web/commit/0862c58d24054a496b452d22fd56726e38057669))
* **list:** change default host display to flex so max-width can be set without user setting display ([aa3fe3d](https://github.com/material-components/material-web/commit/aa3fe3d1ecff7c32850045b5c7eaedb2adbedc43))
* **switch:** add touch target configs ([8bad07b](https://github.com/material-components/material-web/commit/8bad07bcf7aade5bb79b04a177acc227da8527bc))
* **tab:** add logical container shape tokens ([dbed51c](https://github.com/material-components/material-web/commit/dbed51cc275dd37251e4e7e151e8f9b7d698ff22))
* **textfield:** support inputmode attribute ([5d0cbf5](https://github.com/material-components/material-web/commit/5d0cbf5e9758e07d2d580fd2a47bc6bc74289856))
### Bug Fixes
* **button:** `href` and `target` default value is now an empty string ([d665864](https://github.com/material-components/material-web/commit/d665864cba14e06aa050a1c77d8b5db914355113))
* **button:** add value to form when submitting ([f23fac1](https://github.com/material-components/material-web/commit/f23fac1465d7e0f6a6fa029f7395c91bd5b765c6)), closes [#4526](https://github.com/material-components/material-web/issues/4526)
* **button:** incorrect HCM colors ([b144227](https://github.com/material-components/material-web/commit/b1442274383a8ba83e6ec94e24d04becb5988b88))
* **checkbox:** not working after formAssociated changes ([33803ab](https://github.com/material-components/material-web/commit/33803aba39ab531f233c6b4831eaa9d7715919a7)), closes [#4747](https://github.com/material-components/material-web/issues/4747)
* **chips:** avatar input chips are rounded by default ([b7671fb](https://github.com/material-components/material-web/commit/b7671fb7882836e192de194d801e6d3edc856eb0))
* **chips:** make forced-color border color explicit ([cd8f2fc](https://github.com/material-components/material-web/commit/cd8f2fc9fc9315024a9b22c89d07ac870836ddd5))
* **chips:** per spec, trailing focus rings are always circles ([fc9b945](https://github.com/material-components/material-web/commit/fc9b945d9969091611d54b7b80e6b41a44c2df16))
* **elevation:** don't transition border-radius ([7d616fa](https://github.com/material-components/material-web/commit/7d616faecdc20ff2bb407e6af99f46716b1a813f))
* **iconbutton:** make target type stricter ([c874cd5](https://github.com/material-components/material-web/commit/c874cd55c70d0b3b5fe99464b2301a325dfea2df))
* **iconbutton:** rename selectedAriaLabel to ariaLabelSelected along with attribute ([2bbab09](https://github.com/material-components/material-web/commit/2bbab09a509595e50b3d4684374b3210f4b44c42))
* **icon:** don't allow user text selection by default ([53aab28](https://github.com/material-components/material-web/commit/53aab285e94495bbac577712d35db264a9d6c908))
* **list:** use margin over padding on slotted content and fix extraneous spacing ([1530aca](https://github.com/material-components/material-web/commit/1530aca17de16919380e3a52d5eb348da05e60d8))
* **menu:** make overriding default styles less likely ([626b4ef](https://github.com/material-components/material-web/commit/626b4efd69166b9c5602fdbb62389ce490bdef56))
* **progress:** incorrect HCM colors ([f39da54](https://github.com/material-components/material-web/commit/f39da54bc579d0ec1f230fc4ab3b40a7466867d0))
* **slider:** fix accessibility issues ([e836dc3](https://github.com/material-components/material-web/commit/e836dc333bdb840f41ed9afafd6f04f87ca67896))
* **slider:** focus ring too small ([8942568](https://github.com/material-components/material-web/commit/8942568ffec755b588055cfd84a8d5b1e7829197))
* **switch:** unselected handle too big with selected icon only ([ecf83a0](https://github.com/material-components/material-web/commit/ecf83a0e7a0f8ed377350ee4af40cb51b4404496))
* **textfield:** add form validity support ([a167cab](https://github.com/material-components/material-web/commit/a167cabeff27275b88bcaa4c98d14307fc0f1fe9)), closes [#4435](https://github.com/material-components/material-web/issues/4435)
* **textfield:** focus indicator and outline are 3px ([bbb7840](https://github.com/material-components/material-web/commit/bbb784012a3d29aa594e2051e1763f745e29d666))
### Miscellaneous Chores
* update next version ([1675fd0](https://github.com/material-components/material-web/commit/1675fd0062e8378897dbc8de4b2869dda3079987))
### Code Refactoring
* **list-item:** remove duplicate list-item menu-item from custom prop names ([2d9352e](https://github.com/material-components/material-web/commit/2d9352e3f4ec0fef3d5ffca5d34f07bf38345a92))
## [1.0.0-pre.15](https://github.com/material-components/material-web/compare/v1.0.0-pre.14...v1.0.0-pre.15) (2023-08-10)
### ⚠ BREAKING CHANGES
* **dialog:** See https://github.com/material-components/material-web/discussions/4675 for more details.
* **fab:** Replace `reduced-touch-target` with `touch-target="none"`
* **checkbox:** Checkbox's size is now smaller by default. Add margin or `touch-target="wrapper"` to increase it to the previous size.
* **radio:** Radio's size is now smaller by default. Add margin or `touch-target="wrapper"` to increase it to the previous size.
* **dialog:** Fullscreen dialogs weren't matching spec, so we're removing them for now to avoid future breaking changes. They will be re-added later.
* **list,menu:** list-item-link and menu-item-link have been removed and their functionality has been added to menu-item and list-item respectively.
* **dialog:** use `autofocus` attribute instead of `dialog-focus`
* **dialog:** Use dialog.open, dialog.show(), and dialog.close() instead.
* **dialog:** dialog actions can set their own layout with a container element.
* **dialog:** Material dialogs are always modal.
* **select:** select will now show an arrow indicator and will apply default styles to slotted icons
* **icon:** Remove css custom properties from icon and prefer applying normal css properties on host except for font-family.
* **menu:** subclassing events is not supported in ES5 so all menu-related events now use CustomEvent rather than subclassing Event
* **button:** Buttons submit forms by default, like `<button>`. Add `type="button"` to not submit forms.
* **checkbox:** Design is still exploring error-state checkboxes. If needed, theme with an error color and set aria-invalid.
* **iconbutton:** Remove "unselected" from `--md-*-icon-button-*` custom properties.
* **button:** Rename "md-tonal-button" elements, imports, and tokens to "md-filled-tonal-button"
* **iconbutton:** rename <md-standard-icon-button> to <md-icon-button>
* **dialog:** remove transitions
* **dialog:** remove content and divider tokens
* **dialog:** remove transition and scrim tokens
* **switch:** Rename `--md-switch-unselected-<token>` to `--md-switch-<token>`
* **button:** Rename `--md-<button>-spacing-<token>` to `--md-<button>-<token>-space`. Rename `--md-<button>-with-icon-*` to `--md-<button>-with-leading-icon-*`.
* **dialog:** remove draggable
* **dialog:** remove fullscreen tokens
* **radio:** Rename `--md-radio-unselected-<token>` to `--md-radio-<token>`
### Features
* **button:** add touch target configs ([1f46179](https://github.com/material-components/material-web/commit/1f46179e831537b4470548e09e1574c1c4c5a90c))
* **checkbox:** add required and form validity ([5606eef](https://github.com/material-components/material-web/commit/5606eefc38b08ebeb5f63d54b4b82631ea67936a))
* **checkbox:** add touch target configurations ([f574b00](https://github.com/material-components/material-web/commit/f574b00a6384ec8f95bffd5e2c730c58639f98dd))
* **chips:** add touch target configs ([2300eb6](https://github.com/material-components/material-web/commit/2300eb6e4f666f8776d9860157ce6f09f322e4b6))
* **fab:** add touch target configurations ([8588a3f](https://github.com/material-components/material-web/commit/8588a3f52e7496e281bf59d6b1ad6a9ab116d236))
* **icon:** add aria-hidden true by default ([08d50e2](https://github.com/material-components/material-web/commit/08d50e231dd7091f5fd4b843e636e9f04941f998))
* **iconbutton:** add form submission ([c0da72b](https://github.com/material-components/material-web/commit/c0da72b6dc743772f34fb1e20ef678850bcc0dd1))
* **list,menu:** add css shadow parts to sub components ([65d04a3](https://github.com/material-components/material-web/commit/65d04a3cf3cba46deb12cd0affa2649bf3e45407))
* **radio:** add touch target configurations ([7c461ca](https://github.com/material-components/material-web/commit/7c461cad75c58eb28c3b02321197ebcf9d3b93cd))
### Bug Fixes
* **button:** rename `<md-tonal-button>` to `<md-filled-tonal-button>` ([cc26ef6](https://github.com/material-components/material-web/commit/cc26ef6c02dabf9e853b4aee08f5cb3af5e29f8f))
* **button:** rename spacing tokens ([2329d2b](https://github.com/material-components/material-web/commit/2329d2b419d2963d8050dc4cda1607f165f3d2fd))
* **button:** type is submit by default ([97f5b61](https://github.com/material-components/material-web/commit/97f5b616d6b76e23e378f7abed4c6a72b60c9367))
* **checkbox:** remove error property ([ce248dc](https://github.com/material-components/material-web/commit/ce248dc3831a494bf70625d3f4b0b6ca895a2d97))
* **dialog:** misspelled `transition` ([fa103cb](https://github.com/material-components/material-web/commit/fa103cbc78677b4829a94743b1561a023d44058f)), closes [#4638](https://github.com/material-components/material-web/issues/4638)
* **dialog:** remove content and divider tokens ([5adbf73](https://github.com/material-components/material-web/commit/5adbf730d3c9bf9ccfa066a0b7e10ac1831b8269))
* **dialog:** remove draggable ([2568d4f](https://github.com/material-components/material-web/commit/2568d4fbac69c8b5e9a5d5198c6525224ebf778d))
* **dialog:** remove fullscreen temporarily ([39ae5a6](https://github.com/material-components/material-web/commit/39ae5a694723d83674eab06dcee9f8a3c5d7d764))
* **dialog:** remove fullscreen tokens ([8b896e0](https://github.com/material-components/material-web/commit/8b896e0e638f61a7963a9104db70d27f6d2afbca))
* **dialog:** remove modeless ([d8ac9ce](https://github.com/material-components/material-web/commit/d8ac9ce29e146516d84c3f6ba38cd9b8d39db8ec))
* **dialog:** remove stacked ([500472b](https://github.com/material-components/material-web/commit/500472bbdf094187de1c937a2e2fac293880ba1c))
* **dialog:** remove toggleShow() ([b992b15](https://github.com/material-components/material-web/commit/b992b154dee676a746cd3ada066809514c8a1dbb))
* **dialog:** remove transition and scrim tokens ([e581142](https://github.com/material-components/material-web/commit/e581142d67ebe5429999e3517cf420138cfac671))
* **dialog:** remove transitions ([2d1c580](https://github.com/material-components/material-web/commit/2d1c58022e70c3141f79e94cb2ccc12af1d3f816))
* **dialog:** use `autofocus` attribute instead of `dialog-focus` ([50fd2f3](https://github.com/material-components/material-web/commit/50fd2f3fe08d9c9dc8c2e188fc0b9c39750e8af8))
* **filter-chip:** make click event preventDefault proof ([041cb21](https://github.com/material-components/material-web/commit/041cb21233b49680ec47980bea2e5cf44cbcbd05))
* **filter-chip:** move click event to inner button ([22b5b21](https://github.com/material-components/material-web/commit/22b5b2173aedfec88362b256a02d7841097e9598))
* **focus:** allow `--md-focus-ring-*` cascading again ([1fa5cf3](https://github.com/material-components/material-web/commit/1fa5cf34852fde4353352056b76520ff5c1321d1))
* **icon-button:** delegates focus ([db2010d](https://github.com/material-components/material-web/commit/db2010d2c12673a5905e751c68583d3df86f281d))
* **iconbutton:** remove unselected token prefix ([0a63c26](https://github.com/material-components/material-web/commit/0a63c267e9ccb272916d80b30c79908c2736e37f))
* **iconbutton:** rename <md-standard-icon-button> to <md-icon-button> ([a117b06](https://github.com/material-components/material-web/commit/a117b06b7b1d177cc9cd8abd4c9b9ff489e20d5d))
* **radio:** remove "unselected" prefix from tokens ([fb1c603](https://github.com/material-components/material-web/commit/fb1c6039e763dc7b78687f660772aeec5fe494b9))
* **segmentedbutton:** add back container height token ([db8be0a](https://github.com/material-components/material-web/commit/db8be0a15c81dd4854ea984d842c5bfe21e890d6))
* **segmentedbutton:** add back shape token ([c148bf6](https://github.com/material-components/material-web/commit/c148bf61fe11564eb60bd34ca8d1a92bb33cb0a8))
* **select:** add trailing icon indicator and fix icon token application ([4ab2e39](https://github.com/material-components/material-web/commit/4ab2e393d440225b6eb37c83aead7fd62920b11a))
* **switch:** remove unselected token prefix ([3681b58](https://github.com/material-components/material-web/commit/3681b588e02a43a4c72d4be703206348eea943a7))
### Miscellaneous Chores
* update next version ([432e660](https://github.com/material-components/material-web/commit/432e660d0cf65d94e390d9d1f0043d03c1381061))
### Code Refactoring
* **dialog:** match native `<dialog>` and fix spacing ([2996a8b](https://github.com/material-components/material-web/commit/2996a8b8266ac721e66d88fce9b1097e23f8ff49))
* **icon:** remove css custom props from icon and apply values directly on host ([ff60a88](https://github.com/material-components/material-web/commit/ff60a88843f901eb553e271fb5a786d6439935c8))
* **list,menu:** add href to (list|menu)-item and remove (menu|list)-item-link ([09cb6da](https://github.com/material-components/material-web/commit/09cb6da8fb0335494df04f8310242d3248507b40))
* **menu:** events no longer subclass Event but rather use CustomEvent ([043d548](https://github.com/material-components/material-web/commit/043d5482702620fe36f87255c74b17bb76d10554))
## [1.0.0-pre.14](https://github.com/material-components/material-web/compare/v1.0.0-pre.13...v1.0.0-pre.14) (2023-07-24)
### ⚠ BREAKING CHANGES
* Rename `@material/web/<component>/lib` to `@material/web/<component>/internal`. Prefer not using internal files.
* **focus:** Change `@material/web/focus/focus-ring.js` to `@material/web/focus/md-focus-ring.js`.
* **menu:** Rename `@material/web/menu/lib` to `@material/web/menu/internal`. Prefer not using internal files.
* **list:** Rename `@material/web/list/lib` to `@material/web/list/internal`. Prefer not using internal files.
* **focus:** Rename `@material/web/focus/lib` to `@material/web/focus/internal`. Prefer not using internal files.
* **icon:** Rename `@material/web/icon/lib` to `@material/web/icon/internal`. Prefer not using internal files.
* **iconbutton:** Rename `@material/web/iconbutton/lib` to `@material/web/iconbutton/internal`. Prefer not using internal files.
* **field:** Rename `@material/web/field/lib` to `@material/web/field/internal`. Prefer not using internal files.
* **divider:** Rename `@material/web/divider/lib` to `@material/web/divider/internal`. Prefer not using internal files.
* **chips:** Rename `@material/web/chips/lib` to `@material/web/chips/internal`. Prefer not using internal files.
* **elevation:** Rename `@material/web/elevation/lib` to `@material/web/elevation/internal`. Prefer not using internal files.
* **fab:** Rename `@material/web/fab/lib` to `@material/web/fab/internal`. Prefer not using internal files.
* **dialog:** Rename `@material/web/dialog/lib` to `@material/web/dialog/internal`. Prefer not using internal files.
* **checkbox:** Rename `@material/web/checkbox/lib` to `@material/web/checkbox/internal`. Prefer not using internal files.
* **button:** Rename `@material/web/button/lib` to `@material/web/button/internal`. Prefer not using internal files.
* **checkbox:** Rename `--md-checkbox-unselected-<token>` to `--md-checkbox-<token>`
* **progress:** rename `progress` property to `value`
* **progress:** remove circular progress slots
* **focus:** Set `--md-focus-ring-*` tokens directly on `<md-focus-ring>` elements. Focus rings are exposed with `::part(focus-ring)`.
* **linearprogress:** remove linearprogress directory
* **circularprogress:** remove circularprogress directory
* **field:** remove resizable, use css `resize: both`
* **textfield:** Rename `--md-*-field-container-padding-vertical` to `--md-*-field-top-space` and `--md-*-field-bottom-space`. Rename `--md-filled-*-field-with-label-container-padding-vertical` to `--md-filled-*-field-with-label-top-space` and `--md-filled-*-field-with-label-bottom-space`
* **textfield:** Rename `--md-*-field-container-padding-horizontal` to `--md-*-field-leading-space` and `--md-*-field-trailing-space`
* **textfield:** Rename `--md-*-field-supporting-text-padding` to `--md-*-field-supporting-text-leading-space` and `--md-*-field-supporting-text-trailing-space`. Rename `--md-*-field-supporting-text-padding-top` to `--md-*-field-supporting-text-top-space`
* **textfield:** Rename `--md-*-text-field-input-text-prefix-padding` and `--md-*-text-field-input-text-suffix-padding` to `--md-*-text-field-input-text-prefix-trailing-space` and `--md-*-text-field-input-text-suffix-leading-space`
### Features
* add component convenience bundles ([ae407b0](https://github.com/material-components/material-web/commit/ae407b0874760cb6a3d5a8db55c72f6cd4dc3d3c))
* **all:** expose `focus-ring` parts ([243e231](https://github.com/material-components/material-web/commit/243e231a1370c06d6ecd34b81be5f7c091cee6a7))
* **checkbox:** dispatch input event ([154861c](https://github.com/material-components/material-web/commit/154861c99e51e22c0a96f29fe5be22e053bbe04f))
* **progress:** add `max` property ([02a509b](https://github.com/material-components/material-web/commit/02a509b480145abf6bea44ec9d1f03379ea25538))
* **select:** expose menu and field CSS shadow parts ([c512808](https://github.com/material-components/material-web/commit/c5128089cdaed532ea47c0f8c3b556183d1ad3ec)), closes [#4291](https://github.com/material-components/material-web/issues/4291)
* **textfield:** add textarea type ([ff2e089](https://github.com/material-components/material-web/commit/ff2e0896800faeca0942dbd0fc4e0e159974d6a4))
### Bug Fixes
* **button:** remove md3-* class prefixes ([2dabbdc](https://github.com/material-components/material-web/commit/2dabbdc142c88e4c94bcbcbaa333811e7126ba97))
* **button:** rename "lib" directory to "internal" ([601ebb6](https://github.com/material-components/material-web/commit/601ebb669cc02b9a50c25950210bf6142550d546))
* **checkbox:** add a11y to demos ([89b99a7](https://github.com/material-components/material-web/commit/89b99a70947c10353f243c6adc6c12b6e895f6e5))
* **checkbox:** do not announce icon for screen readers ([921f185](https://github.com/material-components/material-web/commit/921f185aa14b22d3dce72fe1fe272b1501404cc4))
* **checkbox:** fix broken "lib" to "internal" sass import ([2147af7](https://github.com/material-components/material-web/commit/2147af7e28e1c96dc138c85c55eb1b1dd70da715))
* **checkbox:** reduce forced-colors size ([b5712f3](https://github.com/material-components/material-web/commit/b5712f3d4b4845e98cfb74f145e400647b492823))
* **checkbox:** remove "unselected" prefix from tokens ([66d7b8b](https://github.com/material-components/material-web/commit/66d7b8b275a51ae3a2f8a3957178583bb2904d5a))
* **checkbox:** rename "lib" directory to "internal" ([c4ac9f7](https://github.com/material-components/material-web/commit/c4ac9f73d923237457f856589b10e0413943664c))
* **checkbox:** screen readers announce errors as invalid ([ec02fe4](https://github.com/material-components/material-web/commit/ec02fe40fc6b576f8060b5862141f5061e85529c))
* **chips:** rename "lib" directory to "internal" ([a8880f7](https://github.com/material-components/material-web/commit/a8880f791b0a4961065dd8cc19f3727eb4d60100))
* **circularprogress:** remove circularprogress directory ([48edec0](https://github.com/material-components/material-web/commit/48edec020034a648961ea3b5670f8d60b5b27cda))
* **dialog:** rename "lib" directory to "internal" ([aaa672b](https://github.com/material-components/material-web/commit/aaa672b8687f89b638050aef08691a01a73e23c2))
* **divider:** rename "lib" directory to "internal" ([7fc17c9](https://github.com/material-components/material-web/commit/7fc17c99c9b6daaf2fa677889b242a71468d9f10))
* **elevation:** rename "lib" directory to "internal" ([0432e6d](https://github.com/material-components/material-web/commit/0432e6d9ceb454b94265ddafb63db2059633acbd))
* **fab:** rename "lib" directory to "internal" ([5618b5e](https://github.com/material-components/material-web/commit/5618b5e23f8dc6ad3e9b4625d7172d6f3f4a1bfd))
* **field:** keep label in same spot when resizing ([e1f8819](https://github.com/material-components/material-web/commit/e1f881991aac43c87b050bc4b1ec255f8d394fa3))
* **field:** move padding to slotted content ([0ab5fd5](https://github.com/material-components/material-web/commit/0ab5fd595d8c163065860a2e0deec8b77c8c9d77))
* **field:** remove resizable, use css `resize: both` ([6734344](https://github.com/material-components/material-web/commit/6734344e7362c484fb3e1f47449c364c3a8ad176))
* **field:** rename "lib" directory to "internal" ([dac3639](https://github.com/material-components/material-web/commit/dac363972149d78ca8f810bee970487f2a533946))
* **field:** use margin for textarea content ([7fdd0c4](https://github.com/material-components/material-web/commit/7fdd0c4c31a1cbaeba8297179c18645947410dfa))
* **focus:** move --md-focus-ring tokens to host ([f7eff48](https://github.com/material-components/material-web/commit/f7eff48c665ba5d59756c7d9013bcd058ba41575))
* **focus:** rename "lib" directory to "internal" ([77110d7](https://github.com/material-components/material-web/commit/77110d7c8ef8a91974bc93a7a0060433ee3fee04))
* **focus:** rename import to md-focus-ring.ts ([d49f9b8](https://github.com/material-components/material-web/commit/d49f9b89e4aed98382705f62cdacf0e777b5f5e0))
* **iconbutton:** rename "lib" directory to "internal" ([38b1b69](https://github.com/material-components/material-web/commit/38b1b69a9c0f243836fecc38cae17a237c312313))
* **icon:** rename "lib" directory to "internal" ([21b7bec](https://github.com/material-components/material-web/commit/21b7becd7bddc8e04f0428a1f8fb8d5fd37c912c))
* **linearprogress:** remove linearprogress directory ([bac10a6](https://github.com/material-components/material-web/commit/bac10a619bcb0d4e413ac94a0c387dcff2184d02))
* **list,menu,select:** update layout tokens to latest values and fix targets ([e9ef7ec](https://github.com/material-components/material-web/commit/e9ef7ec5b450b7126ff4a6f01f98720826c6b51f))
* **list:** rename "lib" directory to "internal" ([c6e6f65](https://github.com/material-components/material-web/commit/c6e6f65445f8436ed1f27830624dfaaea144d132))
* **menu:** rename "lib" directory to "internal" ([a8c2fa9](https://github.com/material-components/material-web/commit/a8c2fa9a8b2b591aed88babf1c65d8c89e181a4f))
* **progress:** add shared class ([75058ca](https://github.com/material-components/material-web/commit/75058ca2be558ac19c35f3b56f6c211cefa4027a))
* **progress:** remove circular progress slots ([aea4d5e](https://github.com/material-components/material-web/commit/aea4d5e4fd60b061183c2f8219b7ece5cc581372))
* **progress:** remove circular progress will-change CSS ([0f7e881](https://github.com/material-components/material-web/commit/0f7e881ee7612951cccaf360d49c51e3c965f3d8))
* **progress:** rename `progress` property to `value` ([a2b4f61](https://github.com/material-components/material-web/commit/a2b4f6152d7b284f291e494f120aad98c54dbb16))
* **progress:** squash linearprogress and circular progress into progress ([15df1d5](https://github.com/material-components/material-web/commit/15df1d5f1a82dd508b44cf8988c46ad4013db491))
* **progress:** update circular demos ([c1aac11](https://github.com/material-components/material-web/commit/c1aac1174c1da3022e8447c494b006f2d3d49f86))
* rename "lib" directory to "internal" ([6ec3f06](https://github.com/material-components/material-web/commit/6ec3f06429b2cd54382780ee74bb4bcf0ed0b5b6))
* **textfield:** rename container-padding-horizontal token ([447886d](https://github.com/material-components/material-web/commit/447886da2e5c648837704a3fc7a4552b5ba6e80a))
* **textfield:** rename container-padding-vertical tokens ([86aba33](https://github.com/material-components/material-web/commit/86aba33dea126463fe51498196b844f2f41c807b))
* **textfield:** rename prefix/suffix padding tokens ([53966af](https://github.com/material-components/material-web/commit/53966af32da0d269b3e8d7cd74102e168dcede53))
* **textfield:** rename supporting-text-padding tokens ([4f37b44](https://github.com/material-components/material-web/commit/4f37b4474fbca2b8aa6b2ce1f06f832bf9e11fd9))
### Miscellaneous Chores
* update next version ([4596c4a](https://github.com/material-components/material-web/commit/4596c4a2bcb098093afed3cfcfd56dd23c73c35a))
## [1.0.0-pre.13](https://github.com/material-components/material-web/compare/v1.0.0-pre.12...v1.0.0-pre.13) (2023-07-10)
### ⚠ BREAKING CHANGES
* **segmentedbutton:** remove with-* token prefixes
* **button:** remove with-* prefix from tokens
* **dialog:** remove with-icon prefix from with-icon-icon-color and with-icon-icon-size
* **textfield:** remove autocomplete-specific features for now
### Features
* **field:** add supporting/error text logic ([b4b3e67](https://github.com/material-components/material-web/commit/b4b3e67ae6681210d38f5079ff876896f0c20fe2))
### Bug Fixes
* **button:** remove with-* prefix from tokens ([25be982](https://github.com/material-components/material-web/commit/25be9825685df91a6fc3e66c2dd7c9537a0a7829))
* **dialog:** fire a change event when using arrow keys. ([65d31a6](https://github.com/material-components/material-web/commit/65d31a68c1c5904ebd258f00d531b6d46f31461a))
* **dialog:** fix two close icons in demo ([dc0ac97](https://github.com/material-components/material-web/commit/dc0ac971ac52b9d47edcb1ce722d7fd8ec94f3e1))
* **dialog:** remove with-icon prefix from with-icon-icon-color and with-icon-icon-size ([1893e08](https://github.com/material-components/material-web/commit/1893e08f545606d6e3112d25913bf4d52d0d4bb3))
* **dialog:** use dialog-action and dialog-focus in demo ([332836c](https://github.com/material-components/material-web/commit/332836cacb5ad47af9561579753e040a8ba42a16))
* **segmentedbutton:** remove with-* token prefixes ([cc786d1](https://github.com/material-components/material-web/commit/cc786d1f73950b324549392218177f3eb30a4a0f))
* supported tokens were not being verified ([2922914](https://github.com/material-components/material-web/commit/292291426385c5114664c7759b095823ec43f549))
* **tab:** add closure conformance types ([d80b7b5](https://github.com/material-components/material-web/commit/d80b7b55e92650eacc3aa31bdf343aba7c7196b7))
* **textfield:** make label strict string type ([6762b00](https://github.com/material-components/material-web/commit/6762b0058871e2502626dc842a03efba047f3e31))
* **textfield:** remove autocomplete-specific features for now ([8fee0a7](https://github.com/material-components/material-web/commit/8fee0a7ebd3081730d556488ff29fc5e2d416143))
### Miscellaneous Chores
* update next version ([b1077d8](https://github.com/material-components/material-web/commit/b1077d856bf8ec710b19c3027a030f9c63d75f37))
## [1.0.0-pre.12](https://github.com/material-components/material-web/compare/v1.0.0-pre.11...v1.0.0-pre.12) (2023-06-28)
### ⚠ BREAKING CHANGES
* **button:** remove unnecessary property preventClickDefault
* **slider:** change compound attribute names to kebab-case
* **iconbutton:** rename attribute flipiconinrtl to flip-icon-in-rtl
* **menu:** rename typeaheadBufferDelay and list-tab-index for consistency
* **select:** change compound attribute names to kebab-case
* **dialog:** change compound attribute names to kebab-case
* **list:** change compound attribute names to kebab-case
* **field:** change compound attribute names to kebab-case
* **button:** normalize compound properties to have kebab-cased attributes
* **textfield:** compound properties should have kebab-case attributes
* **tabs:** change compound attribute names to kebab case
* **switch:** change showonlyselectedicon to show-only-selected-icon
### Features
* **chips:** add high contrast support ([950cd4f](https://github.com/material-components/material-web/commit/950cd4ffc3efcb3a9e4a0d0c16ea97324d8ac69f))
* **dialog:** redispatch the native cancel event ([826262f](https://github.com/material-components/material-web/commit/826262fb727c65f787a913ae41adb8c0612af542)), closes [#1583](https://github.com/material-components/material-web/issues/1583)
* **fab:** add label only mode ([0fd4f45](https://github.com/material-components/material-web/commit/0fd4f45241cb67ae96e994b655ec95a9f022368a))
* **fab:** set aria hidden on the icon slot if element has aria-label or label ([fb4d9c8](https://github.com/material-components/material-web/commit/fb4d9c8008e863f48feea91ef1f5b4c3c004dc3c))
* **list,menu:** expose activate next and prev items ([30937ac](https://github.com/material-components/material-web/commit/30937acd18cba9376ea2745b6dfc4099ddbaeae3))
### Bug Fixes
* **button:** normalize compound properties to have kebab-cased attributes ([1a6fc29](https://github.com/material-components/material-web/commit/1a6fc291745f827dd055c9ac84ec432b09bcc071))
* **button:** remove unnecessary property preventClickDefault ([9244524](https://github.com/material-components/material-web/commit/9244524471093a9727750a964d1ad1436737d22f))
* **chips:** incorrect input leading icon color ([b13271b](https://github.com/material-components/material-web/commit/b13271b785224408173e0361bb91c929cab11e41))
* **chips:** incorrect rtl up/down behavior and add unit tests ([2cd235d](https://github.com/material-components/material-web/commit/2cd235dcb4e65fb593197aaf43b839cb326a2524))
* **dialog:** change compound attribute names to kebab-case ([82d17ca](https://github.com/material-components/material-web/commit/82d17ca172f009599f6863e9109bb7cbb0d68be5))
* **dialog:** focus before animation to fix a11y ([61e5e87](https://github.com/material-components/material-web/commit/61e5e87106d09fd43ae82828f6645e0444ae1b10))
* **field:** change compound attribute names to kebab-case ([2937aef](https://github.com/material-components/material-web/commit/2937aefa23c8b050b5c9f66b9b29432dae87be09))
* **iconbutton:** rename attribute flipiconinrtl to flip-icon-in-rtl ([a5e4354](https://github.com/material-components/material-web/commit/a5e4354ed64e646b24b2f1a0ea1fe36807ae490a))
* **labs:** compound properties should have kebab-case attributes ([28f897b](https://github.com/material-components/material-web/commit/28f897b5ea2d9a49d9754cd34d56720f79770bfc))
* **list:** change compound attribute names to kebab-case ([0e3fe72](https://github.com/material-components/material-web/commit/0e3fe72f8f69413085170291e1f4a50607e3b5ca))
* **menu:** close menu when escape is pressed on list root ([d5035db](https://github.com/material-components/material-web/commit/d5035db0c42d3e80f4ac61710109059a469d4666))
* **menu:** rename typeaheadBufferDelay and list-tab-index for consistency ([3f22ed0](https://github.com/material-components/material-web/commit/3f22ed039120b39563d2566e0442f45867312151))
* **repo:** remove "." from workspace config ([d436c8f](https://github.com/material-components/material-web/commit/d436c8fe5e31494654e2875215b7c0e52ae0ee91))
* **select:** change compound attribute names to kebab-case ([224a73b](https://github.com/material-components/material-web/commit/224a73b0387160c9810899d55f647e8b1da9fc48))
* **select:** fixed menu select not 100% window width ([a968759](https://github.com/material-components/material-web/commit/a968759b2747404ef0625f2c6d34e36899a599f9))
* **slider:** change compound attribute names to kebab-case ([83d9ede](https://github.com/material-components/material-web/commit/83d9edea79c08fb068f04fe6410273e12ae26387))
* **switch:** change showonlyselectedicon to show-only-selected-icon ([a8e489e](https://github.com/material-components/material-web/commit/a8e489e2d8c26cd35849b3f5d94ff7f58ea7016f))
* **tabs:** change compound attribute names to kebab case ([a9d030a](https://github.com/material-components/material-web/commit/a9d030ad4252d3a14738b24a60eec060824b4d1c))
* **textfield:** compound properties should have kebab-case attributes ([34dfcb4](https://github.com/material-components/material-web/commit/34dfcb4db1657db0fc13f23a5014fef234795a46))
* wireit sass watch memory leak ([8b1507e](https://github.com/material-components/material-web/commit/8b1507e0b73298b02a8ce6d2023d8a82d305d25d))
### Miscellaneous Chores
* update next version ([399fa07](https://github.com/material-components/material-web/commit/399fa07eacc80678d522896cdc7161dffbe4e214))
* update next version ([7dd2f3d](https://github.com/material-components/material-web/commit/7dd2f3d91ca548b2f5819c4b02fe24aded147a1b))
## [1.0.0-pre.11](https://github.com/material-components/material-web/compare/v1.0.0-pre.10...v1.0.0-pre.11) (2023-06-16)
### Features
* **chips:** add basic chip set component ([919a9d3](https://github.com/material-components/material-web/commit/919a9d3e9152dcdbb9be09c7f898dcc5168da543))
* **chips:** add multi-action chip navigation ([2444734](https://github.com/material-components/material-web/commit/24447343a5fa240967ea32a53f625da173cb9557))
* **chips:** add scrolling chip set example ([938bf38](https://github.com/material-components/material-web/commit/938bf384a488addf0acf576cf6e2b3556b80e2ff))
* **chips:** add single select filter chip set ([f8bb2f1](https://github.com/material-components/material-web/commit/f8bb2f18f0141f1e2d4ef5ca0b18fc569fb6276f))
* **list:** expose list item role ([2be1b78](https://github.com/material-components/material-web/commit/2be1b7824159760c91f577cea68905b3791a2831))
### Bug Fixes
* **chips:** add aria grid/listbox models to chip set ([fcdb126](https://github.com/material-components/material-web/commit/fcdb126f2fcccf696e199e617c5df3f696e79c4b))
* **chips:** misaligned trailing action ripple ([9c0336a](https://github.com/material-components/material-web/commit/9c0336aa12405bd3a926109d2ae29a418bb97e03))
* **chips:** remove selected event from input chips ([a33fcbb](https://github.com/material-components/material-web/commit/a33fcbb3771fe1f77664f501aa25d76e292db099))
* **slider:** default values to between min and max to better match native input ([2ef3606](https://github.com/material-components/material-web/commit/2ef3606bfe66fd700d803812b524b95c22ea4028))
* **slider:** fix slider focus ring inheritance weakness ([e44c903](https://github.com/material-components/material-web/commit/e44c903484d1beb351dfc5ff9e9ea653cc35f6ba))
* **testing:** use sys-color-* theming for dark mode tests ([b1172d8](https://github.com/material-components/material-web/commit/b1172d8470c33124556b71c93ba84b7b3b906dcf))
### Miscellaneous Chores
* update next version ([3d7612e](https://github.com/material-components/material-web/commit/3d7612e7617e1496641ada9ce7a97d03ac5a1842))
## [1.0.0-pre.10](https://github.com/material-components/material-web/compare/v1.0.0-pre.9...v1.0.0-pre.10) (2023-06-05)
### ⚠ BREAKING CHANGES
* **ripple:** Remove ripple directives and attach like focus rings (parent, `for` attribute, or with `.attach()`
* **all:** Remove any *-focus-state-layer-* custom properties (they don't do anything)
* **ripple:** Set `border-radius: 50%` and remove `unbounded` attribute
### Features
* add labs and internal folders for non-client code ([4b0c98c](https://github.com/material-components/material-web/commit/4b0c98c1aaf1166c1d12734097812b123e48da4e))
* **button:** adds `type` property to support form submit and reset ([545ce0d](https://github.com/material-components/material-web/commit/545ce0d8959ae408dd3d84ae459d7e994532cee7))
* **ripple:** add semantic and imperative attaching ([d65327d](https://github.com/material-components/material-web/commit/d65327d21b6e7f930eb45a9a40f177a6e2de2da2))
* **slider:** add full form association support ([ae70f1e](https://github.com/material-components/material-web/commit/ae70f1ea05f1f93b482f37dc2a94a5ca5c99d83a))
* **textfield:** add form association support ([e842f79](https://github.com/material-components/material-web/commit/e842f793115b3b65a650d9cb49caf02575a69a91))
### Bug Fixes
* **all:** remove focus state layer tokens ([933fc2e](https://github.com/material-components/material-web/commit/933fc2e0131393e96883ff21fb7475ecd7e45ed7))
* **focus:** split attachable logic into separate controller ([fbd680a](https://github.com/material-components/material-web/commit/fbd680a9fe7d6021f668716f746a080b6e2e8f30))
* **radio:** checked styles not displaying ([8fb5cd8](https://github.com/material-components/material-web/commit/8fb5cd8ae8221a9362cb80edc92b1b5cc0b2ab55)), closes [#4347](https://github.com/material-components/material-web/issues/4347)
* **ripple:** remove ripple directive ([33daf19](https://github.com/material-components/material-web/commit/33daf19c73ae1599a10286dada80edf288b52011))
* **ripple:** remove unbounded ([b69e242](https://github.com/material-components/material-web/commit/b69e24241e490ca3e83ca605b404cb20f74b02df))
* **ripple:** restrict manually controllable methods ([ea2f04a](https://github.com/material-components/material-web/commit/ea2f04a9e99c2c6d3020590321c23ee9ea8e0f5e))
* **ripple:** wrong start point for pressing unbounded ripples ([88b5cfe](https://github.com/material-components/material-web/commit/88b5cfeb21fcacc49f745dde00cfef459a4b5df6))
* **select:** inherit width of the host ([086565c](https://github.com/material-components/material-web/commit/086565cc8c0e6463a6be60162a22014955b23adb))
* **slider:** improve step support for non-integer values and stepping from min ([68c2721](https://github.com/material-components/material-web/commit/68c27212a12d3082a73029e63f24daf4eb6435d7))
* **slider:** prevent lower handle moving beyond upper and visa versa ([f9da935](https://github.com/material-components/material-web/commit/f9da93553bd64e7e8475f8acb8ee12206af12ac4))
* **slider:** renames `withTickMarks` to `tickmarks` and `withLabel` to `labeled` ([0e94e28](https://github.com/material-components/material-web/commit/0e94e286568492d9917bb1594c9cc1ebbb25d2f8))
* **ssr:** make "for" attribute watcher SSR compatible ([f47bdc3](https://github.com/material-components/material-web/commit/f47bdc39258fe4ba38a4cdebe1810e2385f72811))
### Miscellaneous Chores
* update next version ([25ee94b](https://github.com/material-components/material-web/commit/25ee94b1a7f95374ec5e27dfcf9da85a0ffb71e9))
## [1.0.0-pre.9](https://github.com/material-components/material-web/compare/v1.0.0-pre.8...v1.0.0-pre.9) (2023-05-25)
### ⚠ BREAKING CHANGES
* **ripple:** Use `border-radius` instead of `--md-ripple-shape`
* **focus:** inward focus rings must be specified with `inward` rather than a negative offset.
* **textfield:** Explicit "defaultValue" has been removed. Set the 'value' attribute to communicate a default value for resetting (similar to native <input>)
* **iconbutton:** font icons require using <md-icon> directly
### Features
* **checkbox:** add full form association support ([a61f79c](https://github.com/material-components/material-web/commit/a61f79ceb2a169ea8397132505a1ad61ffd84bc8))
* **chips:** add input chips ([d029b63](https://github.com/material-components/material-web/commit/d029b634c7392947f4edfa27f6218be486447de5))
* **chips:** add removable filter chips ([748d70e](https://github.com/material-components/material-web/commit/748d70eceffd6879329435621d65a415a94c8120))
* **iconbutton:** add disabled container opacity tokens ([d84d48c](https://github.com/material-components/material-web/commit/d84d48c2992187788ff54965433b96b21338c649))
* **iconbutton:** add disabled-icon-opacity token ([7403ce1](https://github.com/material-components/material-web/commit/7403ce1a9ebde15efebb5172bbdf22fe2b83b2e1))
* **listitem:** add noninteractive to list item ([57f7ae2](https://github.com/material-components/material-web/commit/57f7ae23303f5bf1fae4618d934582b1954e3a1f))
* **radio:** add full form association support ([9dc8613](https://github.com/material-components/material-web/commit/9dc86130671ad9d6151f397be4d5ea53212be515))
* **slider:** adds explicit multi-value support via range=true, valueStart, valueEnd ([7ab37e4](https://github.com/material-components/material-web/commit/7ab37e4bff51498e83c7d4f7c8f2c19d9719e37b))
* **switch:** add disabled handle opacity tokens ([c623c94](https://github.com/material-components/material-web/commit/c623c941df5b0492fec82270c07ba41fd7c6192d))
* **switch:** add disabled icon opacity tokens ([61550d2](https://github.com/material-components/material-web/commit/61550d2baa512034d860ab44941bfb27a2f88109))
* **switch:** add disabled track tokens ([a2045f5](https://github.com/material-components/material-web/commit/a2045f54440641df5c580ae3ec81f5083d729f2c))
* **switch:** add full form association support ([921a905](https://github.com/material-components/material-web/commit/921a905758d72f9c016eb3075cd42798d4d60d08))
* **tabs:** adds tabs and tab element ([cbb24df](https://github.com/material-components/material-web/commit/cbb24dfbc3e30ff05040e77dd0564d0c9b4b56aa))
* **tabs:** improves support for dynamically adding/removing tabs ([dd5f3f0](https://github.com/material-components/material-web/commit/dd5f3f07a4dc1bb963495fe2197933dc7185c3a1))
### Bug Fixes
* **button:** theme mixin not validating ([c566a64](https://github.com/material-components/material-web/commit/c566a64ef79daec2e6de64fdc91aa1962834b322))
* **chips:** add touch target ([55c9701](https://github.com/material-components/material-web/commit/55c9701d8c8428f846e75b70bdaa379cc3dfdf5d))
* **chips:** incorrect shape custom property names ([6fa8243](https://github.com/material-components/material-web/commit/6fa8243439dced22e4a9bafbb035f68c1e76113a))
* **demo:** fix demos in internal catalog and fix some broken stories in catalog ([2c5e2b9](https://github.com/material-components/material-web/commit/2c5e2b96c29866e24f84d108699cb6c3d60887ae))
* **focus:** corrected outward/inward animations ([26d69c2](https://github.com/material-components/material-web/commit/26d69c271eef5b5a7c57c94041c5aad61c1a3e54))
* formAssociated being stripped from closure ([c1ba0fb](https://github.com/material-components/material-web/commit/c1ba0fb3b60e8c516ff1eec52c1b42f2ab33e7aa))
* **ripple:** remove shape token and will-change ([a6c988b](https://github.com/material-components/material-web/commit/a6c988beddccf6101ab7ba43ed392f30bb58eb57))
* **switch:** add missing tokens ([b1e9c4a](https://github.com/material-components/material-web/commit/b1e9c4abb3123714469d271c0446ee542f7944fa))
* **tabs:** adds a11y roles for tablist/tab ([0da80a0](https://github.com/material-components/material-web/commit/0da80a01d2a8cfce6d27bb0151f5228b84110bd8))
* **tabs:** high contrast and reduced motion styling; improve tab marshaling ([6116c34](https://github.com/material-components/material-web/commit/6116c347e9b21d8147a982a0cf33382d132cccb0))
* **textfield:** remove defaultValue ([2317c5a](https://github.com/material-components/material-web/commit/2317c5af63c56ccdc4aaf5b3f4ea94860e50e987))
### Miscellaneous Chores
* update next version ([8d31bd9](https://github.com/material-components/material-web/commit/8d31bd9bb95f68784bc7e6a47832df18bd8052ab))
### Code Refactoring
* **iconbutton:** remove <md-icon> ([ec47f9b](https://github.com/material-components/material-web/commit/ec47f9bcc4898fb1af783c61c4d810222dadc0a4))
## [1.0.0-pre.8](https://github.com/material-components/material-web/compare/v1.0.0-pre.7...v1.0.0-pre.8) (2023-05-08)
### Features
* **focus:** improve usability ([34d8db0](https://github.com/material-components/material-web/commit/34d8db09aa196507fca73c452b0bedc864bc2ccd))
### Bug Fixes
* **checkbox:** incorrect logical shape var names ([c2ca4f8](https://github.com/material-components/material-web/commit/c2ca4f8795b1a3f7f489bed02431a66ba13ea3ba))
* **checkbox:** support logical shapes ([e62b16b](https://github.com/material-components/material-web/commit/e62b16b9a60402c92f732fa4d744fe3602c380cc))
* **chips:** incorrect shape custom property names ([7ce0e25](https://github.com/material-components/material-web/commit/7ce0e256b2432f3a5f696d75fa64010786bd79d7))
* **focus:** control not working when `for` reflects as empty ([f83db36](https://github.com/material-components/material-web/commit/f83db369c22dba754733bc605394f24a6aa87641))
* **focus:** update focus-ring tokens ([5934de0](https://github.com/material-components/material-web/commit/5934de06037203b01dc7dd532abe2ee89fec109a))
* **listitem:** hide android tap color since we have ripple ([0d3d032](https://github.com/material-components/material-web/commit/0d3d032a4c0869346f06b2182c29d59ea7b46cde))
* **menu:** fix submenu closing when already opened and all menus closing when hovering over menuitem ([f6d72f9](https://github.com/material-components/material-web/commit/f6d72f9c3ff141389f5116a95e6393e410644978))
* **ripple:** ensure ripple occurs when a keyboard generated click happens after a pointer click ([016b851](https://github.com/material-components/material-web/commit/016b8513e71bff04e2ec41a07f1d05cfd1d2762d))
* **slider:** disabled slider no longer displays pressed handle color when pressed ([4c229d9](https://github.com/material-components/material-web/commit/4c229d98727a0ebc6dad4cb5efc77a487dd2710d))
* **testing:** don't fire focus events twice ([04d3496](https://github.com/material-components/material-web/commit/04d3496a71e9fcc838eb496c3572d6ab57dd4503))
* **tokens:** bugs with component values() functions ([beb5f81](https://github.com/material-components/material-web/commit/beb5f816eaa5fe364d7563596f9bd82006d7c1d1))
### Miscellaneous Chores
* update next version ([2b961f3](https://github.com/material-components/material-web/commit/2b961f363ec91e3437a1a6a03285814460b53f95))
* update next version ([a27290a](https://github.com/material-components/material-web/commit/a27290addc3078fef008addcc6951a4616a4a981))
* update next version ([60afab6](https://github.com/material-components/material-web/commit/60afab619ed9a8dff567b9ae21261501ab9998e9))
## [1.0.0-pre.7](https://github.com/material-components/material-web/compare/v1.0.0-pre.6...v1.0.0-pre.7) (2023-04-24)
### ⚠ BREAKING CHANGES
* **button:** remove label property
### Features
* **aria:** add aria delegation ([e0bbe38](https://github.com/material-components/material-web/commit/e0bbe3850cd5c0d03c8da5697ffc0f723f238e6a))
* **chips:** add filter chips ([ae91366](https://github.com/material-components/material-web/commit/ae913666011ff1f885e9c044a6e842f60b2f906b))
* **circular-progress:** adds screenshot tests for circular-progress element ([e4a29c6](https://github.com/material-components/material-web/commit/e4a29c6e3150e44d2cdef17164dfd4cd3ef165dd))
* **linear-progress:** adds linear-progress element ([1c7fcf3](https://github.com/material-components/material-web/commit/1c7fcf39a502c2a1142de10efa0e59838dc8aba3))
* **linear-progress:** adds linear-progress screenshot tests ([212601d](https://github.com/material-components/material-web/commit/212601d4dfe132f6c3a9cb5e31f1de0d68fd8497))
* **select:** implement select ([9c202f5](https://github.com/material-components/material-web/commit/9c202f5546deac424d164cd1f657626e6741a350))
### Bug Fixes
* **actionelement:** remove actionelement ([b7af8ec](https://github.com/material-components/material-web/commit/b7af8ecda1ba6ecb248652250c299fc42a0de1bb))
* **button:** closure conformance issue ([9e23477](https://github.com/material-components/material-web/commit/9e234770b55e2e6901a1fa6e3ef2822f130c7083))
* **button:** fix template typo ([a44bc3a](https://github.com/material-components/material-web/commit/a44bc3a87c496ef808357e59d20b737ab1306dda))
* **button:** remove label property ([e398099](https://github.com/material-components/material-web/commit/e39809969f5ef14b997bc308b2d6553722ea0a75))
* **chips:** remove flat prefixes ([4fa83bf](https://github.com/material-components/material-web/commit/4fa83bf2c6a7e8eb031258c36b7862d0865bb04b))
* **dialog:** fixes [#4080](https://github.com/material-components/material-web/issues/4080): corrects dialog fullscreen height ([b3a6dac](https://github.com/material-components/material-web/commit/b3a6dacb0e857d53bf8734498c52826e309016e2))
* **elevation:** tidy up tokens and update roadmap ([301eb9a](https://github.com/material-components/material-web/commit/301eb9a18f3044a118fad36fcbccc00f8db1166c))
* **icon:** hide font ligature overflowing text ([2eb914e](https://github.com/material-components/material-web/commit/2eb914e8879fce6aba41aff19a51bdda8edad09f))
* **listitem:** border-radius token affects ripple and focus-ring ([c738f92](https://github.com/material-components/material-web/commit/c738f92144c7ca45382920f8358105a084f819f5))
* **menu,list:** new sys token mismatch between menu and list ([55df403](https://github.com/material-components/material-web/commit/55df403768941438f252c7b825b339340ff047d4))
* **menu:** submenus will open correctly on click ([9d7b291](https://github.com/material-components/material-web/commit/9d7b2910d721bf43fac80fa0c909d0ddbc951852))
* **navigationtab:** remove actionelement ([6da677f](https://github.com/material-components/material-web/commit/6da677fbef9567cc915033effac76704be0a40d2))
* remove [@aria](https://github.com/aria)Property decorator ([7b52c45](https://github.com/material-components/material-web/commit/7b52c4515fa048a772f7d598e948b1d62de11c03))
* remove role attribute from elements ([0a35ff5](https://github.com/material-components/material-web/commit/0a35ff504230aa1eae200afb6ea56bc3902f81c4))
* **segmentedbutton:** remove actionelement ([9442df8](https://github.com/material-components/material-web/commit/9442df8239113e674f08805639cb411b5336e6dd))
* **slider:** ensure scrolling is prevented on mobile browsers ([743451b](https://github.com/material-components/material-web/commit/743451b23fe906faeeb38ab0957996f22953caf6))
* **slider:** fixes [#4061](https://github.com/material-components/material-web/issues/4061) and reduce use of private custom properties ([9312a24](https://github.com/material-components/material-web/commit/9312a241d1a2e1ac01e85784e2aeffe00fdb829e))
* **slider:** fixes label focus and ranged handle dragging on Safari ([72b48da](https://github.com/material-components/material-web/commit/72b48da7cc3bc7dc619af3f668f95d68c6c634e5))
* **slider:** fixes ripple hover state after interaction on Firefox ([356d1bc](https://github.com/material-components/material-web/commit/356d1bc9f86604cdec8a1605dd2500d5985a19da))
* **ssr:** try to remove event listener calls on server ([5e1fe1c](https://github.com/material-components/material-web/commit/5e1fe1ccc71e15d2ded4540d846cd222be9d593e))
* **testing:** remove unnecessary type def ([5553da3](https://github.com/material-components/material-web/commit/5553da3a8bc79d93c1041c2ce074f7617d534dc3))
### Miscellaneous Chores
* update next version ([c9f2f7d](https://github.com/material-components/material-web/commit/c9f2f7ddd418345c2fdbeb07e9e33620524049ef))
## [1.0.0-pre.6](https://github.com/material-components/material-web/compare/v1.0.0-pre.5...v1.0.0-pre.6) (2023-04-10)
### ⚠ BREAKING CHANGES
* **elevation:** remove elevation surfaces
* **iconbutton:** rename selected aria label property, add documentation
* **elevation:** remove surface for tonal surface update
* **iconbutton:** combine button, link, and toggle variants into single components
* **button:** merge standard and link buttons
### Features
* **all:** use system typography tokens in components ([1bc73d2](https://github.com/material-components/material-web/commit/1bc73d2e489f12d5822f779733a2ff086ddaf778))
* **circular-progress:** adds circular-progress element ([3adab6a](https://github.com/material-components/material-web/commit/3adab6ae192489db5d5eb1dfd54552f69a0f0ad7))
* **focus:** export the keydown handler ([d7fdfda](https://github.com/material-components/material-web/commit/d7fdfda16237bc7a51c5ed8fb7a85c170ce3e25f))
* **focus:** implement focus ring animation ([85232d5](https://github.com/material-components/material-web/commit/85232d5916af04a2cdc96e059ad000cd5cc9515e))
* **iconbutton:** combine button, link, and toggle variants into single components ([0aa39e8](https://github.com/material-components/material-web/commit/0aa39e81532dc240890f2479f7ac592169ad3070))
* **iconbutton:** rename selected aria label property, add documentation ([5d3af37](https://github.com/material-components/material-web/commit/5d3af375f0d4a9123a2d5755d0279a2ac1c05165))
* **list,menu:** implement forced colors ([712aab3](https://github.com/material-components/material-web/commit/712aab3efc2b3102dc089833320b013c0b83f0ed))
* **tokens:** generate v0.170 ([2b9daea](https://github.com/material-components/material-web/commit/2b9daead7fbab0f7c355a33b10798f4193535ff7))
* **tokens:** generate v0.172 ([189ef06](https://github.com/material-components/material-web/commit/189ef06018f27d6cd772fd5f53b5e1fd9f0c10f7))
* **typography:** add system custom properties for typography ([bcfed09](https://github.com/material-components/material-web/commit/bcfed098f3a1f430fb9b2489390731fadd26e183))
### Bug Fixes
* **button:** incorrect theme custom properties ([2c1c80d](https://github.com/material-components/material-web/commit/2c1c80d3d65905da1071e240d352baa42508faa4)), closes [#4095](https://github.com/material-components/material-web/issues/4095)
* **button:** merge standard and link buttons ([acfdbb4](https://github.com/material-components/material-web/commit/acfdbb4f9273fe1a62430ec7a8857cca391674cb))
* **button:** tonal surface update ([50157e6](https://github.com/material-components/material-web/commit/50157e61a716b3a0f0a2ff0052eb65e4cb781eca))
* **checkbox:** tonal surface update ([7279356](https://github.com/material-components/material-web/commit/72793562e2aad1e284da021cdb5a94f765dfc903))
* **chips:** tonal surface update ([60ef2ab](https://github.com/material-components/material-web/commit/60ef2abbe7e3b9d28233c13d7de2cee87f73e073))
* complete tonal surface update ([7368e2a](https://github.com/material-components/material-web/commit/7368e2a2e23cd4509e27860ef513dd6fc832964a))
* **dialog:** tonal surface update ([c64f416](https://github.com/material-components/material-web/commit/c64f416ecaabb7f5867527b323abb00377cb99aa))
* **elevation:** remove elevation surfaces ([d801a5f](https://github.com/material-components/material-web/commit/d801a5f7cdb1cd43a832e2c11d33b97ef7e67ac0))
* **fab:** tonal surface update ([92a9071](https://github.com/material-components/material-web/commit/92a907142ce39811159c388034e7c3e27e3b6e22))
* **iconbutton:** tonal surface update ([52b45f1](https://github.com/material-components/material-web/commit/52b45f143545c831c04ed92adaba69f8da953ade))
* **list:** fix strong focus first keyboard nav ([6398186](https://github.com/material-components/material-web/commit/6398186d051f1b7fa309dad28a04d49ab2b4329e))
* **menu:** close menu on focusout and make it configurable ([3445b63](https://github.com/material-components/material-web/commit/3445b631febe5d4ab93c45c3ebc1cc35177649cc))
* **menu:** properly implement selected state ([bfa1bec](https://github.com/material-components/material-web/commit/bfa1bec320b6a73f4a4a89e508223e873920e3ac))
* **menu:** tonal surface update ([7ccc21e](https://github.com/material-components/material-web/commit/7ccc21e0d2674b8aa16027d1c008fe73885b4530))
* **navigationbar:** tonal surface update ([ebe666e](https://github.com/material-components/material-web/commit/ebe666eb6ad1298aab7c26d7c7fd1d8cc0c1e1e2))
* **navigationbar:** tonal surface update ([a5fe8f3](https://github.com/material-components/material-web/commit/a5fe8f30375a56d49b94287bfb3199b0913febb7))
* **navigationdrawer:** tonal surface update ([4f9df51](https://github.com/material-components/material-web/commit/4f9df513ddbe15219044444b9d94657823570c90))
* **radio:** tonal surface update ([b5065a6](https://github.com/material-components/material-web/commit/b5065a68a8c3d02fe8a864f14dd6f573023ca1dc))
* **ripple:** tonal surface update ([f08a9db](https://github.com/material-components/material-web/commit/f08a9db3d8257ceb3202a85fcf0e6c3d50ea8bdb))
* **slider:** tonal surface update ([9a020b9](https://github.com/material-components/material-web/commit/9a020b96e8f786faad51fe9217984a664954a596))
* **switch:** tonal surface update ([6ccc759](https://github.com/material-components/material-web/commit/6ccc7595dc4b0cfa956e278ca1901f31dbcade89))
* **textfield:** tonal surface update ([f15d8ca](https://github.com/material-components/material-web/commit/f15d8ca2faf132a3ab1bf5b67efc9653ffa7ce1a))
### Miscellaneous Chores
* **elevation:** remove surface for tonal surface update ([d12ed3e](https://github.com/material-components/material-web/commit/d12ed3e4e3352b4dc548c4e2a34cdaee85b4cb14))
* update next version ([fba9672](https://github.com/material-components/material-web/commit/fba9672fd997c08de6ee64d1386e049c16d99438))
* update next version ([58b4df3](https://github.com/material-components/material-web/commit/58b4df3c4f611db6123eb2e6d087012ccddb1afd))
* update next version ([a878783](https://github.com/material-components/material-web/commit/a878783d8d61dff6293556e67ee3e6cbd435b73f))
## [1.0.0-pre.5](https://github.com/material-components/material-web/compare/v1.0.0-pre.4...v1.0.0-pre.5) (2023-03-21)
### ⚠ BREAKING CHANGES
* remove old menusurface, autocomplete, and tokens v0.160
* **fab:** remove disabled state
* **iconbutton:** properly size iconbutton to 40x40
* **focus:** refactor focus ring to better match component shape
### Features
* **button:** add label slot ([24298e6](https://github.com/material-components/material-web/commit/24298e696cb76c58a1482e770cc5548fc7c78cbd))
* **chips:** add basic assist chip ([27762d8](https://github.com/material-components/material-web/commit/27762d855ce88bf2400082ed4c1f1d2c7d03580a))
* **chips:** add disabled styles ([324e856](https://github.com/material-components/material-web/commit/324e8568c269271e014c130acd4f8b31aa0efdfc))
* **chips:** add focus ring ([9eb861f](https://github.com/material-components/material-web/commit/9eb861fc835b81511652c6fd2d47aebc9854176d))
* **chips:** add icon support ([7e02a15](https://github.com/material-components/material-web/commit/7e02a15ad89df143495b07d1d03f74f5f1077495))
* **chips:** add link chips ([06bdb86](https://github.com/material-components/material-web/commit/06bdb86803a96e680c35132841b73879e6106434))
* **chips:** add ripple ([9582e00](https://github.com/material-components/material-web/commit/9582e006c0fb23250a33018fffc20ca01aa2ade4))
* **chips:** add suggestion chips ([f3fe55e](https://github.com/material-components/material-web/commit/f3fe55ec2bcc7dd3ae57f62b3dd68fbc951e747c))
* **field,menu:** create a surface client rect api for positioning ([533ae6c](https://github.com/material-components/material-web/commit/533ae6c999558cbc8e03b90f9dd59990cac84784))
* **icon:** add icon documentation ([912d66e](https://github.com/material-components/material-web/commit/912d66ea3058a1cf849e33024a254e6e21d62a65))
* **list-item:** expose / override host focus ([d005d72](https://github.com/material-components/material-web/commit/d005d7265e1d980d748c8d7fe3f7f6d9d848cbb2))
* **list:** add spacing tokens and inherit min-width ([35147b2](https://github.com/material-components/material-web/commit/35147b25b0687ae33c86dc81374d1243e697baa6))
* **menu:** prepare menu to support md-select ([193b220](https://github.com/material-components/material-web/commit/193b220a73718226ec15171197a393008f040caa))
### Bug Fixes
* **button:** enable separate color and opacity tokens ([f90aab2](https://github.com/material-components/material-web/commit/f90aab27b4fa497ab6d320b7caa4c1e569d7d00b))
* **button:** text button background not transparent ([6700947](https://github.com/material-components/material-web/commit/67009478065f7ac61ad83df12bbcce60bebfa7b6))
* **dialog:** incorrect elevation layering ([028e44e](https://github.com/material-components/material-web/commit/028e44e8c932d2d7d506a6dccbfdc7957c888d12))
* **elevation:** disable pointer-events ([6155278](https://github.com/material-components/material-web/commit/615527886b122b6532e9afdbe96ec4768c2494de))
* **fab:** remove disabled state ([c368e7d](https://github.com/material-components/material-web/commit/c368e7d633ae1bbb560cb169293344a00e6c012f)), closes [#4045](https://github.com/material-components/material-web/issues/4045)
* **focus:** refactor focus ring to better match component shape ([61ff279](https://github.com/material-components/material-web/commit/61ff27910eae0e0401824d03601ec252489aa83e))
* **iconbutton:** allow icon button to be asymmetrically sized ([8a37ce2](https://github.com/material-components/material-web/commit/8a37ce2e00e7a0611819f8dadc2ea775b6a047dc))
* **iconbutton:** properly size iconbutton to 40x40 ([567d340](https://github.com/material-components/material-web/commit/567d3406b07ab1655924a96f52b6877aa9daff08))
* **menu:** flatten submenu slot query ([ddac76e](https://github.com/material-components/material-web/commit/ddac76e3bce71cc42fe74d4c65a1418a321aeecb))
* **menu:** incorrect elevation ([427d33d](https://github.com/material-components/material-web/commit/427d33d979a4b41229970e9888a287160b714a64))
* **testing:** token tests not working in Safari Chrome ([618a505](https://github.com/material-components/material-web/commit/618a505f574099519b66f0f28d231657041b5686))
* **tokens:** add override files for all tokens ([2623c1d](https://github.com/material-components/material-web/commit/2623c1dd4e5d7a557195edfa33709b7db8993451))
### Miscellaneous Chores
* remove old menusurface, autocomplete, and tokens v0.160 ([878b914](https://github.com/material-components/material-web/commit/878b9143e790702a524b7e07b81262748e2d3818))
* update next version ([405ec53](https://github.com/material-components/material-web/commit/405ec5399ccf2f34f956a7df06a2f39e806621a6))
## [1.0.0-pre.4](https://github.com/material-components/material-web/compare/v1.0.0-pre.3...v1.0.0-pre.4) (2023-03-08)
### ⚠ BREAKING CHANGES
* **icon,iconbutton,list:** use material symbols for icons
### Features
* **field:** add resizability ([fd605d5](https://github.com/material-components/material-web/commit/fd605d537ce3584c97ffca375e019615c26b748b))
* **tokens:** generate tokens v0.161 ([e2cd832](https://github.com/material-components/material-web/commit/e2cd8327b60691f093fd389f7a259d217f1d9b89))
### Bug Fixes
* **all:** update non-menu components to v0.161 ([828d7ae](https://github.com/material-components/material-web/commit/828d7aeb4d3144e3a0229cc4fa81e7c7135c4760))
* **icon,iconbutton,list:** use material symbols for icons ([232982e](https://github.com/material-components/material-web/commit/232982ef034872968924dbb5620f59352c4028c2))
* **icon:** mark icon and icon button as beta ([ff3d379](https://github.com/material-components/material-web/commit/ff3d379bc874be338c5aa8a9afa1593a879fdefa))
* **text-field:** apply suffix-color and icon size tokens ([a969fda](https://github.com/material-components/material-web/commit/a969fdadb61e2d3ffedd17ddbc9ebe019d5f054c))
* **text-field:** remove indicator expansion animation ([d755d10](https://github.com/material-components/material-web/commit/d755d107fa487e9a06c4279dbd76a1074437e369))
* **textfield:** outlined label jumping horizontally with leading icon ([c98f5e0](https://github.com/material-components/material-web/commit/c98f5e017d2bb74caaf88c94c2866e155b61c98e))
* update license year and holder ([510a867](https://github.com/material-components/material-web/commit/510a867f0d4e95663a6e311b368bc879fecb8361)), closes [#3073](https://github.com/material-components/material-web/issues/3073)
### Miscellaneous Chores
* update next version ([a6176de](https://github.com/material-components/material-web/commit/a6176de68460c3e37aa74e1ffac5457eb093bba3))
* update next version ([367e76a](https://github.com/material-components/material-web/commit/367e76aecfae9e6e3cd99094fa021e77f2d7b80a))
* update next version ([9a36b3a](https://github.com/material-components/material-web/commit/9a36b3a9ae0c7d3181b66e36e6f27907c8565656))
## [1.0.0-pre.3](https://github.com/material-components/material-web/compare/v1.0.0-pre.2...v1.0.0-pre.3) (2023-02-22)
### ⚠ BREAKING CHANGES
* **slider:** fix ripple end hover state when leaving handle
* **controller:** fix label activation utility on slotted elements
* **dialog:** fix exception when opening when compiled with advanced closure settings
* **ripple:** rename press methods to event handlers
* **ripple:** rename focus methods to event handlers
* **ripple:** rename hover methods to event handlers
* **navigation,badge:** migrate to `-text-type` tokens
* **fab:** move to `label-text-type` token, shape corners
* **segementedbutton:** move to `label-text-type` token
* **list,menu:** move to `-text-type` tokens
* **dialog:** migrate to `header-type` and `supporting-text-type` tokens
* **button:** replace label-text-* tokens with label-text-type
* **field & dependents:** convert to use text-type tokens
* **all:** checkbox container-width/height tokens have been renamed to container-size
* **ripple:** remove "state-layer" from token names
* **all:** use shape.resolve-tokens and remove shape.resolve-theme
### Features
* **shape, string-ext:** Allow shape corners to fall back to a single custom property ([1afd925](https://github.com/material-components/material-web/commit/1afd9259adacf4cdf429dd0648b82bd23b3cdad6))
* **slider:** adds slider element ([f0f5ae5](https://github.com/material-components/material-web/commit/f0f5ae57abee9ee5324bf628b31af091c0751b17))
* **tokens:** generate v0.160 ([20de321](https://github.com/material-components/material-web/commit/20de321c7449f100187de0663d074b34c03697f2))
* **typography:** implement resolve-tokens function to use `-text-type` ([1550e8e](https://github.com/material-components/material-web/commit/1550e8e60833687ea7cb059e25aa677e783f14a1))
### Bug Fixes
* **all:** update tokens to 0.160 ([9025af3](https://github.com/material-components/material-web/commit/9025af316a0cee7c710e01cedbc8ce58cdd8bcef))
* **all:** use shape.resolve-tokens and remove shape.resolve-theme ([44a8d74](https://github.com/material-components/material-web/commit/44a8d74f56bfe31a422b93675b4085e0dd4b8876))
* **button:** replace label-text-* tokens with label-text-type ([69f9a17](https://github.com/material-components/material-web/commit/69f9a17a12fa86e1e2ba04fc35ad9b9f138b68ad))
* **controller:** fix label activation utility on slotted elements ([8b58f98](https://github.com/material-components/material-web/commit/8b58f98a829fa93e2278ad041bf136cc9ed8b354))
* **dialog:** fix exception when opening when compiled with advanced closure settings ([c63a1d9](https://github.com/material-components/material-web/commit/c63a1d9caf82f906d19607e46070a0bf73010c66))
* **dialog:** migrate to `header-type` and `supporting-text-type` tokens ([66948a4](https://github.com/material-components/material-web/commit/66948a49011c30b072e645ba958a2a44ce218a8b))
* **docs:** fix documentation to show using `-type` tokens ([c955055](https://github.com/material-components/material-web/commit/c955055ae2b1582e467f3b0902281e1724efdf49))
* **fab:** move to `label-text-type` token, shape corners ([8c01aee](https://github.com/material-components/material-web/commit/8c01aeea08c750f3c25a60a0a2691c571f3a8996))
* **field & dependents:** convert to use text-type tokens ([cc5a7db](https://github.com/material-components/material-web/commit/cc5a7db27d4a2ee58eab1dcd59da59847b94344c))
* **list,menu:** move to `-text-type` tokens ([45a6d45](https://github.com/material-components/material-web/commit/45a6d45577b217148bc9d6e008c24710e4845b61))
* **navigation,badge:** migrate to `-text-type` tokens ([7b86677](https://github.com/material-components/material-web/commit/7b8667711a17cc9f8cf30e2d9fdef61dff6d0bb2))
* **ripple:** remove "state-layer" from token names ([ff84a66](https://github.com/material-components/material-web/commit/ff84a66f3effdd5291781321e11cbbd34001dd26))
* **ripple:** rename focus methods to event handlers ([6e97717](https://github.com/material-components/material-web/commit/6e977178c5bb41e47e24264c47b08b7b8d3b9833))
* **ripple:** rename hover methods to event handlers ([cde7ca0](https://github.com/material-components/material-web/commit/cde7ca0e3bbd0edaecf4dcea9226f258dae4070e))
* **ripple:** rename press methods to event handlers ([0cc7d29](https://github.com/material-components/material-web/commit/0cc7d2959a6aca83942cf37cb95bb0dbc395258b))
* **segementedbutton:** move to `label-text-type` token ([bd125fe](https://github.com/material-components/material-web/commit/bd125fe4562712da5ecc1b4abd559fd1e737f8cd))
* **slider:** fix ripple end hover state when leaving handle ([535d889](https://github.com/material-components/material-web/commit/535d8897758aa72bbff41ee5f7c552bec2b4042f))
* **slider:** use `label-label-text-type` font token ([ad889ea](https://github.com/material-components/material-web/commit/ad889ea31bb069418ab2a42d588bd99309809d0f))
* **testing:** convert test-table to use `-type` tokens ([2046401](https://github.com/material-components/material-web/commit/20464014bb0873253bcf8f14b0e950543292ce6d))
* **testing:** remove header-cell-text-tracking ([43ce8c1](https://github.com/material-components/material-web/commit/43ce8c1d31f118eacde8a8aa1a3e898af1dddc4c))
* **typograph:** remove typography resolver ([2a8ba18](https://github.com/material-components/material-web/commit/2a8ba183607035cceb8776dab030ec311471ebcc))
### Miscellaneous Chores
* update next version ([77b4864](https://github.com/material-components/material-web/commit/77b48640e5d53a04ba414de77af0ca22316cccd4))
## [1.0.0-pre.2](https://github.com/material-components/material-web/compare/v1.0.0-pre.1...v1.0.0-pre.2) (2023-02-06)
### ⚠ BREAKING CHANGES
* **iconbutton:** Make a few API improvements
* **textfield:** remove container-height token
* **iconbutton:** normalize toggle variant API with regular icon button
* **iconbutton:** remove icon properties, use slots instead
### Features
* **divider:** add divider component ([9431c16](https://github.com/material-components/material-web/commit/9431c1643140969e52ca3a065a9ec1c4fb299b3b))
* **menu,list:** expose menu theme mixins and remove divider ([e15c4b8](https://github.com/material-components/material-web/commit/e15c4b86d584cfda5dc850cb697bc9b9552e9536))
* **tokens:** generate tokens v0.152 ([c61f46c](https://github.com/material-components/material-web/commit/c61f46c618c38d45c49e85f809330d40e5de40d3))
### Bug Fixes
* **all:** remove `[@requirecss](https://github.com/requirecss)` comments ([80590ae](https://github.com/material-components/material-web/commit/80590ae88dab9944335e78862da048ff92fee99f))
* **forms:** fix form association for switch, checkbox, and radio, including label activation ([1ddba0c](https://github.com/material-components/material-web/commit/1ddba0ca3cfa7d9964ffd24a0e5aab488a83179e))
* **switch:** update to latest animations, and implement sizing tokens ([9e9bf84](https://github.com/material-components/material-web/commit/9e9bf845be82ce1753ffb0d3bf7fec7947f09428))
### Miscellaneous Chores
* update next version ([a539286](https://github.com/material-components/material-web/commit/a539286c3f5f34b7c2969b963b3859ed633a74ef))
### Code Refactoring
* **iconbutton:** Make a few API improvements ([c72e7fd](https://github.com/material-components/material-web/commit/c72e7fd6f74ecd257d9542f9ef1ec2a64e02b1bf))
* **iconbutton:** normalize toggle variant API with regular icon button ([31391eb](https://github.com/material-components/material-web/commit/31391eb610f987a3f66ca07722a8ebca6a0b0a78))
* **iconbutton:** remove icon properties, use slots instead ([36f1a1a](https://github.com/material-components/material-web/commit/36f1a1a0b34dba43d4a859a19d30070b9998ca9a))
* **textfield:** remove container-height token ([1d81416](https://github.com/material-components/material-web/commit/1d81416863a2682fc123b6219c155998db574da7))
## [1.0.0-pre.1](https://github.com/material-components/material-web/compare/v1.0.0-pre.0...v1.0.0-pre.1) (2023-01-09)
### ⚠ BREAKING CHANGES
* **button:** Remove icon property from Button, require slotted icons
### Bug Fixes
* **button:** remove icon property from Button, require slotted icons ([d3b517a](https://github.com/material-components/material-web/commit/d3b517ad0054b8d12ca7bc27e19ad40db987ba4b))
* **icon, iconbutton:** Cleanup styling ([12c9364](https://github.com/material-components/material-web/commit/12c93641a550c594561883943fa5556d1cc40ca7))
* **icon:** Remove fixed left-to-right direction to fix RTL styling ([5a27f05](https://github.com/material-components/material-web/commit/5a27f05cd7534d7c2118b8d205f78ab0eb307b94))
* **radio:** update motion to current spec ([95897b3](https://github.com/material-components/material-web/commit/95897b3e25ef3915c6047239b1794172822b1b35))
### Miscellaneous Chores
* update next version ([ea33cb8](https://github.com/material-components/material-web/commit/ea33cb81224eb46cde33201e331d59e07046f29a))
## [1.0.0-pre.0](https://github.com/material-components/material-web/compare/v0.1.0-alpha.2...v1.0.0-pre.0) (2023-01-09)
### ⚠ BREAKING CHANGES
* **focus-ring, button:** Button shape properties are now of the form `--md-text-button-container-shape-start-start`
* **formfield:** Removed Formfield. The <label> element can now be used, e.g. `<label>Checkbox <md-checkbox></md-checkbox></label>`.
* **checkbox:** Removed reducedTouchTarget. Instead, set the width and height on the checkbox.
### Features
* add _focus-ring.scss partial to expose theming the focus ring ([c47f800](https://github.com/material-components/material-web/commit/c47f8004ac14ac15b19a61e3fe373300c5312f5c))
* add filled-tonal-icon-button sass partial ([30d9c33](https://github.com/material-components/material-web/commit/30d9c33162b08a769ae452079b4911c9080c5c1a))
* add more detail to error message on sass color function. ([c293a8d](https://github.com/material-components/material-web/commit/c293a8dfffdbd73b6902bb9e27075c11f8415328))
* **all:** Implement stubs for lit-localize support ([e72ca03](https://github.com/material-components/material-web/commit/e72ca03799aad6fd688ba5888eda21a4f4f98367))
* **autocomplete:** Add base render functions ([c289678](https://github.com/material-components/material-web/commit/c28967839a834197714a143bc1f1f6852dd57cee))
* **autocomplete:** Add example in demo on how to filter items ([75d6b82](https://github.com/material-components/material-web/commit/75d6b82485a96f8d70f06f131c37742b55c19522))
* **autocomplete:** Add filled autocomplete theming api support ([ef9bdd1](https://github.com/material-components/material-web/commit/ef9bdd196629b15867bd9d9e481631e03393f8d4))
* **autocomplete:** Add keyboard support ([d2ea3ce](https://github.com/material-components/material-web/commit/d2ea3ce0b623801d36c306a2f1f6d803218bad2a))
* **autocomplete:** Add opening and closing upon interaction ([530b6d3](https://github.com/material-components/material-web/commit/530b6d336e5b9ecbe5b64b932e4c16e93037ac14))
* **autocomplete:** Create autocomplete item and connect action to fill value ([c3aa552](https://github.com/material-components/material-web/commit/c3aa5525c1cdd5975e0b2691e3ac532205683e84))
* **autocomplete:** Create MdAutocompleteList to unset min-width. ([e77d472](https://github.com/material-components/material-web/commit/e77d4726faacf3e7cde6f0d92be2fa7ee5e4611b))
* **autocomplete:** Create MdAutocompleteSurface to adjust width ([cc4603e](https://github.com/material-components/material-web/commit/cc4603e99e3adbbe2b386e07dc627a718bf741c4))
* **button:** Add outlines in high contrast mode (HCM) to Button ([9ec33ba](https://github.com/material-components/material-web/commit/9ec33ba879836bb68db367c6f0a75f76b620ca3f))
* **checkbox:** Checkbox now supports form submission and label activation by using FormController and setting formAssociated. ([7b84fca](https://github.com/material-components/material-web/commit/7b84fca5b810a56d473e36dd962b75f3777c6529))
* **checkbox:** refactor and simplify rendering/style logic ([27f7ea8](https://github.com/material-components/material-web/commit/27f7ea89cee0d1a31e50b81e5db994b97bba7748))
* **controller:** add label activation support to FormController ([4e3054b](https://github.com/material-components/material-web/commit/4e3054bab3a1fe5e462ab812ccc1895312a11176))
* **controller:** add stringConverter for empty reflecting attributes ([2a0d563](https://github.com/material-components/material-web/commit/2a0d563338aa84b8038a969f9f0245a245bd78ba))
* **elevation:** create md-elevation component ([9eb7bf0](https://github.com/material-components/material-web/commit/9eb7bf081fa365b853cfc7044c62ed05f969552a))
* **field:** add leading/trailing content styles ([dc7d949](https://github.com/material-components/material-web/commit/dc7d9494f7801634eed6e371e5da879b4f132c59))
* **focus-ring, button:** Match focus ring shape to button shape ([7fad3a5](https://github.com/material-components/material-web/commit/7fad3a56d9888f7d29fd096d683840d8d2217456))
* **form-field:** Added theme styles to form field ([17075f4](https://github.com/material-components/material-web/commit/17075f485544d186e82c1d93bd441a658f0ccf49))
* **icon-button:** Implement isRTL helper library, and refactor icon-button to use it. ([5dd43fa](https://github.com/material-components/material-web/commit/5dd43faffb15d3d386d717239ee9102988433938))
* **iconbutton:** Add internal `linkAttributes` ([10cf00b](https://github.com/material-components/material-web/commit/10cf00bde4250d171d621d9ec051503684677646))
* **icon:** Implement tokens for md-icon ([0327283](https://github.com/material-components/material-web/commit/0327283b7b0da6174a255b3e1434354ac360ab52))
* **list-item:** Added isActive() method to check active status and minor fixes to keyboard navigation ([9f410f6](https://github.com/material-components/material-web/commit/9f410f6248c177885166d1e79e85fc8ce2e72161))
* **list:** Add basic keyboard navigation to M3 list ([ee35bfe](https://github.com/material-components/material-web/commit/ee35bfe7f1aea803f0410a032d41a83026109d42))
* **list:** Add component styles to match spec layout ([a6ddbaa](https://github.com/material-components/material-web/commit/a6ddbaa48cd5aef32228100d9926bb117fb1c7e8))
* **list:** Add customizable `aria-label`/`role` attributes to list, and customizable `role` to list item. ([8f63406](https://github.com/material-components/material-web/commit/8f63406cdc55c0bb6d1edd6407fc954a10c8e02f))
* **list:** Add list elevation overlay and overlay color/opacity to theme API. ([ebb9a4b](https://github.com/material-components/material-web/commit/ebb9a4b360e0690a0c41eee5d198458a14490de5))
* **list:** Add listId property ([78f125d](https://github.com/material-components/material-web/commit/78f125dcbb9b8f664bada5fa8018d599b5dc0a34))
* **list:** Add ripple to M3 list ([4d292f4](https://github.com/material-components/material-web/commit/4d292f4cc63ce1b354d7ddc7f66a8da87a4751c9))
* **list:** Add support for aria active descendant, id ([d9b1deb](https://github.com/material-components/material-web/commit/d9b1deb2f8b3749cfe15f619b8fe40d867db915f))
* **list:** Add support for fetching list items. ([4b79baa](https://github.com/material-components/material-web/commit/4b79baa980388a07a6d6f4cfe5593b0be6949b80))
* **list:** Added aria-checked attribute support to list item. ([2c06c2e](https://github.com/material-components/material-web/commit/2c06c2ed9b35d76a30b75d198cdf41e3e3bb8663))
* **list:** Added avatar web component to list ([899a4e6](https://github.com/material-components/material-web/commit/899a4e6835ecb9d1afc9979ae9539b6b02a26771))
* **list:** Added focus ring to list item ([2d2b3bb](https://github.com/material-components/material-web/commit/2d2b3bbedabed59046e2b4cbcda7fa0f52b9365b))
* **list:** Added image web component to list ([4587cbc](https://github.com/material-components/material-web/commit/4587cbc33b975b42526bc7660a38f5470b6076ea))
* **list:** Added list divider web component ([d2a1b2e](https://github.com/material-components/material-web/commit/d2a1b2ea18724b117650f50a8f96b8238c14b9c7))
* **list:** Added options list to M3 list ([74704d7](https://github.com/material-components/material-web/commit/74704d7cf23fc80053171ae83076be9a3629e82a))
* **list:** Added soy template annotations for image classes slot ([c277252](https://github.com/material-components/material-web/commit/c27725234d3ceb64c8daaf8c87c1d4759997eee1))
* **list:** Added test harnesses to list ([bf29bc3](https://github.com/material-components/material-web/commit/bf29bc36e548b3b0ad4fbe7b844df4949e9f0af0))
* **list:** Added video web component to list ([261b6ef](https://github.com/material-components/material-web/commit/261b6efc0c56768abc233b48ca1a2591eeea0fcc))
* **list:** Created a separate style module for icon web component in list ([e64cdbe](https://github.com/material-components/material-web/commit/e64cdbeb35f530eee78d1bf15129af9881e49931))
* **menu:** Add `aria-label` support in menu, and set `role=menu/menuitem` for menu and menu item components. ([7e35820](https://github.com/material-components/material-web/commit/7e35820536608a24f60cd411860d4b0f05da6d31))
* **menu:** Add initial menu base component class. ([60c4a41](https://github.com/material-components/material-web/commit/60c4a413d38e0cb5d14caa48f03b5e09ab9c3e6a))
* **menu:** Add menu button component. This manages focus automatically on menu open, setting focus to menu item (rather than menu root) if the menu open originated from a keyboard event. ([a29ac8b](https://github.com/material-components/material-web/commit/a29ac8bebbf74b2239d431af629435979ebb9cdd))
* **menu:** Add menu foundation/adapter and Sass (forked from MDC). ([de29937](https://github.com/material-components/material-web/commit/de2993744d6f83850d0c80cf56a9ff245cbc4168))
* **menu:** Fix menu closing on menu item click. ([d37e23d](https://github.com/material-components/material-web/commit/d37e23de0dd24dc489c8cce58bf41c9b6be18f6b))
* **menu:** Implement menu theming API. Use menu surface/list/list item `theme()` mixins to style subcomponents. ([f305806](https://github.com/material-components/material-web/commit/f3058069559df80d29cdc807e2e0fdcf6eb3b9bd))
* **menusurface:** Add `flipMenuHorizontally` property, add unit tests. ([884c3a2](https://github.com/material-components/material-web/commit/884c3a204b0302434497945443008657ebaf0d7d))
* **menusurface:** Add menu surface theming API. ([5e70115](https://github.com/material-components/material-web/commit/5e7011559ac376616f18589faa64df8e42bd8c8b))
* **menusurface:** Add menusurface class (forked from MWC/MDC). ([5f51f26](https://github.com/material-components/material-web/commit/5f51f26bf9e4c0354a99ecdb5a4cb1786f21cb7f))
* **radio:** change SingleSelectionController to a ReactiveController ([b0e87c5](https://github.com/material-components/material-web/commit/b0e87c538acc7d6110e2c4bf3807829e5c128398))
* **ripple:** Create a ripple directive ([6746d0f](https://github.com/material-components/material-web/commit/6746d0f685734369d16f8a22ae24af2c659b6b78))
* **sass:** Added pick() function to map-ext ([10c506c](https://github.com/material-components/material-web/commit/10c506c7183d38e4b18e6b6c0ffe6a8994bcc064))
* **switch:** add ripple to switch ([4a8c333](https://github.com/material-components/material-web/commit/4a8c33362511c70da2a25322b4b445fa97a72d0e))
* **switch:** add warning for `handle-height` and `handle-width` which are not yet implmented. ([e2f3c28](https://github.com/material-components/material-web/commit/e2f3c28bbf4e0d6f36e7533769c1fdbc0da0475f))
* **switch:** added action-element to fire event on press. ([85e85b2](https://github.com/material-components/material-web/commit/85e85b21ba7bf2563ad41036a7170124949c8d82))
* **switch:** mark opacity tokens as hardcoded. ([ad1db85](https://github.com/material-components/material-web/commit/ad1db85d4f4bcc08f15c0a452a0a36470c29280b))
* **switch:** Switch now supports label activation by setting formAssociated. ([7473f46](https://github.com/material-components/material-web/commit/7473f4647d155b0680fde236d97f14fbfacc78d5))
* **switch:** use tokens to shape the focus ring ([ed58af1](https://github.com/material-components/material-web/commit/ed58af19c7540bdf950011a966e0fb5d9407cd00))
* **text-field:** add blur and jsdoc ([5241b76](https://github.com/material-components/material-web/commit/5241b76dcabfe4a0d9a1010d90aaed65e3875c04))
* **text-field:** add character counter ([1cc64f5](https://github.com/material-components/material-web/commit/1cc64f543a9e1284c126129c788d954f7ce2c9ed))
* **text-field:** add error text ([58848f6](https://github.com/material-components/material-web/commit/58848f61c94f8c20c941af0ead82ea461f34a0ef))
* **text-field:** add icons ([424596e](https://github.com/material-components/material-web/commit/424596edce10c6caa4e64446742343668a80f557))
* **text-field:** add min, max, and step ([c73b59c](https://github.com/material-components/material-web/commit/c73b59cea428bf1b59bf04c13704cd79bcce8703))
* **text-field:** add minLength and maxLength ([0c8a91f](https://github.com/material-components/material-web/commit/0c8a91fc8fa83076e467c6db25e5b024b31e560e))
* **text-field:** add native validation APIs ([e2e2c9d](https://github.com/material-components/material-web/commit/e2e2c9d8a58b2487ce33fe05da4cf0ae35ac7d69))
* **text-field:** add pattern ([810a9a4](https://github.com/material-components/material-web/commit/810a9a4101418abbd640ceafb5537d725a61af50))
* **text-field:** add placeholder color tokens ([b945f30](https://github.com/material-components/material-web/commit/b945f30e75fa58bc883048632dd03d68e0ea551c))
* **text-field:** add prefix and suffix ([8e68857](https://github.com/material-components/material-web/commit/8e688579d122eed0f9b8d95786828fc9c824de81))
* **text-field:** add selection APIs ([091a124](https://github.com/material-components/material-web/commit/091a124eafec6e8422bb622165380cd7e21d94a7))
* **text-field:** add SSR ariaLabelledBy property ([e0386ac](https://github.com/material-components/material-web/commit/e0386acda96de375486b93d87fac09b2b7ea9b34))
* **text-field:** add support for text-align: end ([bf3cb81](https://github.com/material-components/material-web/commit/bf3cb81160412ab5ac04df49aa803d24927c2713))
* **text-field:** add supporting text ([77cc80e](https://github.com/material-components/material-web/commit/77cc80e63495a39284a855121b93ac1a725084a7))
* **text-field:** add textDirection ([4bab4b5](https://github.com/material-components/material-web/commit/4bab4b587465839db58d62b2f9bc763c422133fa))
* **text-field:** add valueAsNumber and valueAsDate ([7792ae1](https://github.com/material-components/material-web/commit/7792ae1b094f03a44c6fda868a1f8563a2b702c9))
* **text-field:** announce error messages ([973a982](https://github.com/material-components/material-web/commit/973a98250bef8ebdef9909b4743d2322fe7b7871))
* **text-field:** error/errorText will override reportValidity ([c757bfa](https://github.com/material-components/material-web/commit/c757bfac45b8c4ab44f46da2769faf7e24fb677f))
* **theming:** add theming by color-scheme mixin. ([6ea69ec](https://github.com/material-components/material-web/commit/6ea69ecb0c94598c8a1d35d08e1af3165f20ce95))
### Bug Fixes
* **button, fab:** Ensure elevation is correct when focused and hovering ([6e0775d](https://github.com/material-components/material-web/commit/6e0775ded3e90aa56f6e38903b2e15f68b7a4de4))
* **button:** Move event listeners to anchor to fix focus ring ([e8ba229](https://github.com/material-components/material-web/commit/e8ba229dd09d98a3ab68d667bf8c7f0df69daa53))
* **button:** Remove `aria-label` and `aria-haspopup` attributes from Button HTML if not set ([5e2a46e](https://github.com/material-components/material-web/commit/5e2a46e9a75b6e98fe228b14c36f95d495bd75eb))
* **button:** Replace `<mwc-icon>` with `<md-icon>` ([8720a77](https://github.com/material-components/material-web/commit/8720a7765a0e84ed97da1610f774abd423c56529))
* **button:** Use correct padding for Text Button ([61eb08e](https://github.com/material-components/material-web/commit/61eb08e7b1d95610fec5de7488c800d25cc22b0c))
* **button:** use new elevation component ([2f1a8df](https://github.com/material-components/material-web/commit/2f1a8dfc417605859bab7695a9fb6392acabf25a))
* **button:** use new elevation component ([545c2eb](https://github.com/material-components/material-web/commit/545c2eb494feffcdba1cc3ea80df16449adc5f0c))
* **checkbox:** Fixes incorrect styling of native input which also caused tapping to check to sometimes fail. ([dd6a56b](https://github.com/material-components/material-web/commit/dd6a56bacecef773b9d69ee0bbacdcabf5657b98))
* **checkbox:** Make focus ring circular ([f330c51](https://github.com/material-components/material-web/commit/f330c51d1765982379c1cba7a50f3d5c2627c74f))
* **checkbox:** Remove unused methods and cleanup styles ([9152fed](https://github.com/material-components/material-web/commit/9152fed0b934ff1aef999b61c8577113fe5ac527))
* **checkbox:** Update checkbox to use property bindings for `disabled` and `checked` on internal input element. ([73ed7a0](https://github.com/material-components/material-web/commit/73ed7a0233955d1a5df206ebe5c5f642f69e1aec))
* **chips:** Remove unused import ([e65ebd8](https://github.com/material-components/material-web/commit/e65ebd8ef107013d843f800945f308f8cf24467e))
* **decorators:** ariaProperty not triggering re-renders from data changes ([a171c8f](https://github.com/material-components/material-web/commit/a171c8fff375f2fe8886f6edfe0b9acf34d103d3))
* **field:** content not expanding ([d0d5340](https://github.com/material-components/material-web/commit/d0d5340d07c10d470a5ef77cc5cc6cd523b176c3))
* **field:** supporting text typography not resolving ([a96664b](https://github.com/material-components/material-web/commit/a96664b835e044dddcf0feaf44697f6ee751d80f))
* **focus:** Update focus ring to new design ([601c331](https://github.com/material-components/material-web/commit/601c331d37d73620f1a9f7bdc85181be607d0fa5))
* **formfield:** fix broken import ([b4bcf4e](https://github.com/material-components/material-web/commit/b4bcf4efff02168c195f0dbbd1c32756ae4c9994))
* **formfield:** Removed Formfield. ([753a03b](https://github.com/material-components/material-web/commit/753a03be963f7b5242e98b73d1309abbe9f5bf51))
* **list,textfield:** Fix TS 4.9 compliation of role property override. ([c70198a](https://github.com/material-components/material-web/commit/c70198a5670bc372140315cec20cbca0ed576115))
* **list:** Changed Headline text from slot content to text property of list item ([62092b7](https://github.com/material-components/material-web/commit/62092b7c9b03d72b24369d991d3dd08120854166))
* **list:** Fixed layout of list variants. ([a885a1f](https://github.com/material-components/material-web/commit/a885a1faffc71b30d5adf0da935e08efda7e0dcf))
* **list:** Fixed list item icon padding ([07aaa8a](https://github.com/material-components/material-web/commit/07aaa8a7633a5dc499ce6d7f426b085963ac2bc4))
* **list:** Modify list focus ring horizontal offset to prevent horizontal overflow. ([a88be95](https://github.com/material-components/material-web/commit/a88be95da7b1bf9b8b380bfbf47c0fbe25c2f2d3))
* **list:** Removed unnecessary options list variant ([6b6d651](https://github.com/material-components/material-web/commit/6b6d651714eef8283060d3d44f9b82447e63974a))
* **list:** use new elevation component ([527b273](https://github.com/material-components/material-web/commit/527b273d8f8b9b931b0b0f4c9de0623efd57f213))
* **menu:** Fix focus management bugs (TAB on menu item closes menu without restoring focus to anchor element, on menu open, menu respects focusState option (first item, last item, or list root). ([305b790](https://github.com/material-components/material-web/commit/305b790faa91e1cb7f1d80e5b7f3761acd38c302))
* **menu:** use new elevation component ([563518b](https://github.com/material-components/material-web/commit/563518b59fac92ade3da73b64a6323e81f7b8aa5))
* **navigationdrawer:** use new elevation component ([c2fe5e1](https://github.com/material-components/material-web/commit/c2fe5e1d1b14c0f6d7a585676d3dfbad108eaf8f))
* **radio:** Radio supports form association and label activation by using FormController and setting `formAssociated`. ([91c2425](https://github.com/material-components/material-web/commit/91c24255c243a97d01a873854046ad3a57033352))
* **radio:** update rendering and styles ([3aff084](https://github.com/material-components/material-web/commit/3aff08429715f49de9296e5efb7b3ebd4d0d804b))
* **ripple:** Improves fix for Safari ripple overflow due to https://bugs.webkit.org/show_bug.cgi?id=247546 to handle hover and pressed states. ([8a35672](https://github.com/material-components/material-web/commit/8a35672c4a10a99a8b7e5bfcc9ea6e6a1a1e48cb))
* **styling:** Removes tap highlight color visible on mobile Safari for checkbox, radio, iconbutton, and textfield. ([eec25b3](https://github.com/material-components/material-web/commit/eec25b393eb4ce84d207d27c7d84a2695fe50c8a))
* **tab:** Fixes how tabs renders icons. ([f7e1bbb](https://github.com/material-components/material-web/commit/f7e1bbb7aee4230c1fd324ececf0d872c16f5bbb))
* **text-field:** container-shape not working for outlined variant ([6b25914](https://github.com/material-components/material-web/commit/6b25914f60a79987506a5ba3d8f7e12dec282486))
* **text-field:** correctly resizes when setting width ([7285b3a](https://github.com/material-components/material-web/commit/7285b3a2dbfa6f03f178168f0779abb506f951dd))
* **text-field:** ensure `value` can overwrite `defaultValue` ([58ae98c](https://github.com/material-components/material-web/commit/58ae98cbc8c2b95138994e6976ea4c8694da627a))
* **text-field:** fixed setting width to less than <input> width ([a5849b9](https://github.com/material-components/material-web/commit/a5849b95466b5b22a094757f83fe7f7f823d493d))
* **text-field:** label floating after type changes ([17d92f6](https://github.com/material-components/material-web/commit/17d92f6b4b06ec376df8ac90f55828b2abb8bf20))
* **text-field:** rename readonly to readOnly ([4e6f01d](https://github.com/material-components/material-web/commit/4e6f01d422d9d1a612eeabd0ad649de1a8f7b0fa))
### Miscellaneous Chores
* update release-please ([0b5283d](https://github.com/material-components/material-web/commit/0b5283dadf5889846132d97e86fd21adb72209ed))
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances
of any kind
* Trolling, insulting or derogatory comments, and personal or political
attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
material-web-contact@google.com. All complaints will be reviewed and
investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
Thank you for your interest in contributing! The following sections describe
ways to get involved.
## Code of conduct
Please review and follow our [code of conduct](CODE_OF_CONDUCT.md).
## Feedback
User feedback is the most valuable to us. It's a great way to start
contributing!
- [File new issues](https://github.com/material-components/material-web/issues/new/choose)
for bugs you run into or feature requests you have.
- [Create a discussion](https://github.com/material-components/material-web/discussions/new/choose)
for help, feedback on changes, or feature proposals.
## Discord
Join the `#material` channel on [Lit's Discord](https://lit.dev/discord) to chat
directly with the team and other users.
## Pull requests
Pull requests are welcome! Keep a few things in mind:
- Create an
[issue](https://github.com/material-components/material-web/issues/new/choose)
or
[discussion](https://github.com/material-components/material-web/discussions/new/choose)
before opening a pull request.
- Trivial changes, such as documentation, don't need an issue.
- Create draft PRs in the `@material/web/labs` folder for new features.
- Please be patient! It may take a while for the team to review. Keep changes
small and scoped to speed things up.
### New components
Please understand that new component implementations are difficult for us to
directly accept. They need to complete several engineer, design, and
accessibility reviews that are not easy with our externally available workflows.
If you want to help build a new component, create a
[new discussion](https://github.com/material-components/material-web/discussions/new/choose).
Add any design docs, code samples, reference implementations in draft PRs, and
get community feedback.
### Contributor License Agreement
Code contributions must
[sign Google's CLA](https://cla.developers.google.com/clas). When you open a
pull request, our friendly bot will check and provide help if you haven't
signed.
[Set your email in git](https://help.github.com/articles/setting-your-email-in-git/)
to the same email used to sign the CLA.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2018-2023 Google, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
# Material Web
<img src="./docs/images/material-web.gif"
title="Material web components"
alt="A collection of Material web components"
style="border-radius: 32px">
[](https://www.npmjs.com/package/@material/web)
[](https://lit.dev/discord/)
[](https://github.com/material-components/material-web/actions/workflows/test.yml)
[](https://npm-stat.com/charts.html?package=%40material%2Fweb)
[](https://www.jsdelivr.com/package/npm/@material/web?tab=stats)
`@material/web` is a library of
[web components](https://developer.mozilla.org/en-US/docs/Web/Web_Components)<!-- {.external} -->
that helps build beautiful and accessible web applications. It uses
[Material 3](https://m3.material.io/)<!-- {.external} -->, the latest version of Google's
open-source design system.
**Note:
[MWC is in maintenance mode pending new maintainers](https://github.com/material-components/material-web/discussions/5642).**
## Resources
- [Introduction](./docs/intro.md)
- [Roadmap](./docs/roadmap.md)
- [Component docs](./docs/components/)
- [Bundle size](./docs/size.md)
- [Browser support and FAQ](./docs/support.md)
## Quick start
> Tip: Using Angular? We recommend using
> [Angular Material](https://material.angular.io/)<!-- {.external} --> components
> instead.
This code snippet is a buildless example that loads `@material/web` from a CDN.
Check out the [quick start](./docs/quick-start.md) guide to install and build
for production.
<!-- LINT.IfChange -->
```html
<head>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
<script type="importmap">
{
"imports": {
"@material/web/": "https://esm.run/@material/web/"
}
}
</script>
<script type="module">
import '@material/web/all.js';
import {styles as typescaleStyles} from '@material/web/typography/md-typescale-styles.js';
document.adoptedStyleSheets.push(typescaleStyles.styleSheet);
</script>
</head>
<body>
<h1 class="md-typescale-display-medium">Hello Material!</h1>
<form>
<p class="md-typescale-body-medium">Check out these controls in a form!</p>
<md-checkbox></md-checkbox>
<div>
<md-radio name="group"></md-radio>
<md-radio name="group"></md-radio>
<md-radio name="group"></md-radio>
</div>
<md-outlined-text-field label="Favorite color" value="Purple"></md-outlined-text-field>
<md-outlined-button type="reset">Reset</md-outlined-button>
</form>
<style>
form {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
</style>
</body>
```
<!-- LINT.ThenChange(./g3doc/docs/quick-start.md) -->
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
Security updates are only applied to the latest published version.
## Reporting a Vulnerability
Report vulnerabilities in a private
[GitHub security advisory](https://github.com/material-components/material-web/security/advisories/new).
**Please do not disclose security vulnerabilities in public issues.**
================================================
FILE: all.ts
================================================
/**
* @license
* Copyright 2023 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @fileoverview A convenience bundle import that includes all components.
*
* WARNING: This import is intended for prototyping and development builds only.
* Import only the individual components used for production.
*/
// LINT.IfChange(imports)
// go/keep-sorted start
import './button/elevated-button.js';
import './button/filled-button.js';
import './button/filled-tonal-button.js';
import './button/outlined-button.js';
import './button/text-button.js';
import './checkbox/checkbox.js';
import './chips/assist-chip.js';
import './chips/chip-set.js';
import './chips/filter-chip.js';
import './chips/input-chip.js';
import './chips/suggestion-chip.js';
import './dialog/dialog.js';
import './divider/divider.js';
import './elevation/elevation.js';
import './fab/branded-fab.js';
import './fab/fab.js';
import './field/filled-field.js';
import './field/outlined-field.js';
import './focus/md-focus-ring.js';
import './icon/icon.js';
import './iconbutton/filled-icon-button.js';
import './iconbutton/filled-tonal-icon-button.js';
import './iconbutton/icon-button.js';
import './iconbutton/outlined-icon-button.js';
import './list/list.js';
import './list/list-item.js';
import './menu/menu.js';
import './menu/menu-item.js';
import './menu/sub-menu.j
gitextract_t0d4cjg1/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yaml │ │ ├── config.yml │ │ ├── documentation-bug.yaml │ │ └── feature.yaml │ └── workflows/ │ ├── build-catalog.yml │ ├── commitlint.yml │ ├── firebase-hosting-merge.yml │ ├── firebase-hosting-pull-request.yml │ ├── nightly.yml │ ├── publish.yml │ ├── release-please.yml │ ├── test.yml │ ├── update-docs-on-main.yml │ └── update-size-on-main.yml ├── .gitignore ├── .release-please-manifest.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── all.ts ├── button/ │ ├── _elevated-button.scss │ ├── _filled-button.scss │ ├── _filled-tonal-button.scss │ ├── _outlined-button.scss │ ├── _text-button.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── elevated-button.ts │ ├── elevated-button_test.ts │ ├── filled-button.ts │ ├── filled-button_test.ts │ ├── filled-tonal-button.ts │ ├── filled-tonal-button_test.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _elevated-button.scss │ │ ├── _elevation.scss │ │ ├── _filled-button.scss │ │ ├── _filled-tonal-button.scss │ │ ├── _icon.scss │ │ ├── _outlined-button.scss │ │ ├── _shared.scss │ │ ├── _text-button.scss │ │ ├── _touch-target.scss │ │ ├── button.ts │ │ ├── button_test.ts │ │ ├── elevated-button.ts │ │ ├── elevated-styles.scss │ │ ├── filled-button.ts │ │ ├── filled-styles.scss │ │ ├── filled-tonal-button.ts │ │ ├── filled-tonal-styles.scss │ │ ├── outlined-button.ts │ │ ├── outlined-styles.scss │ │ ├── shared-elevation-styles.scss │ │ ├── shared-styles.scss │ │ ├── text-button.ts │ │ └── text-styles.scss │ ├── outlined-button.ts │ ├── outlined-button_test.ts │ ├── text-button.ts │ └── text-button_test.ts ├── catalog/ │ ├── .firebaserc │ ├── eleventy-helpers/ │ │ ├── filters/ │ │ │ ├── filter-sort.cjs │ │ │ ├── filter-toc.cjs │ │ │ └── md-markdown.cjs │ │ ├── plugins/ │ │ │ ├── copy-code-button.cjs │ │ │ └── permalinks.cjs │ │ ├── shortcodes/ │ │ │ ├── inline-css.cjs │ │ │ ├── inline-js.cjs │ │ │ └── playground-example.cjs │ │ └── transforms/ │ │ └── minify-html.cjs │ ├── eleventy.config.cjs │ ├── esbuild.config.mjs │ ├── firebase.json │ ├── package.json │ ├── scripts/ │ │ ├── copy-docs.mjs │ │ └── copy-stories.mjs │ ├── site/ │ │ ├── _includes/ │ │ │ ├── default.html │ │ │ └── layouts/ │ │ │ ├── components.html │ │ │ └── docs.html │ │ ├── about/ │ │ │ └── about.json │ │ ├── components/ │ │ │ └── components.json │ │ ├── css/ │ │ │ ├── global.css │ │ │ ├── home-page.css │ │ │ ├── md-layout.css │ │ │ ├── no-js.css │ │ │ ├── stories.css │ │ │ └── syntax-highlight.css │ │ ├── index.html │ │ ├── stories/ │ │ │ └── stories.html │ │ └── theming/ │ │ └── theming.json │ ├── src/ │ │ ├── components/ │ │ │ ├── catalog-component-header-title.ts │ │ │ ├── catalog-component-header.ts │ │ │ ├── copy-code-button.ts │ │ │ ├── drag-playground.ts │ │ │ ├── hct-slider.ts │ │ │ ├── nav-drawer.ts │ │ │ ├── theme-changer.ts │ │ │ └── top-app-bar.ts │ │ ├── hydration-entrypoints/ │ │ │ ├── components/ │ │ │ │ ├── button.ts │ │ │ │ ├── checkbox.ts │ │ │ │ ├── fab.ts │ │ │ │ ├── icon-button.ts │ │ │ │ ├── list.ts │ │ │ │ ├── menu.ts │ │ │ │ ├── select.ts │ │ │ │ └── text-field.ts │ │ │ ├── copy-code-button.ts │ │ │ ├── menu.ts │ │ │ ├── navigation.ts │ │ │ └── playground-elements.ts │ │ ├── inline/ │ │ │ └── apply-saved-theme.ts │ │ ├── pages/ │ │ │ ├── components.ts │ │ │ ├── global.ts │ │ │ ├── home-page.ts │ │ │ └── stories.ts │ │ ├── signals/ │ │ │ ├── drawer-open-state.ts │ │ │ ├── inert.ts │ │ │ └── signal-element.ts │ │ ├── ssr-utils/ │ │ │ ├── dsd-polyfill.ts │ │ │ ├── lit-hydrate-support.ts │ │ │ └── lit-island.ts │ │ ├── ssr.ts │ │ ├── svg/ │ │ │ └── material-design-logo.ts │ │ ├── types/ │ │ │ ├── color-events.ts │ │ │ └── is-land.d.ts │ │ └── utils/ │ │ ├── apply-theme-string.ts │ │ ├── material-color-helpers.ts │ │ └── theme.ts │ ├── stories/ │ │ ├── base.json │ │ ├── components/ │ │ │ ├── knob-ui-components.ts │ │ │ ├── stories-renderer.ts │ │ │ ├── story-knob-panel.ts │ │ │ └── story-renderer.ts │ │ ├── index.html │ │ ├── index.ts │ │ ├── knobs.ts │ │ ├── material-collection.ts │ │ ├── story.ts │ │ └── theme-loader.ts │ └── tsconfig.json ├── checkbox/ │ ├── _checkbox.scss │ ├── checkbox.ts │ ├── checkbox_test.ts │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ └── internal/ │ ├── _checkbox.scss │ ├── checkbox-styles.scss │ ├── checkbox.ts │ └── checkbox_test.ts ├── chips/ │ ├── _assist-chip.scss │ ├── _filter-chip.scss │ ├── _input-chip.scss │ ├── _suggestion-chip.scss │ ├── assist-chip.ts │ ├── assist-chip_test.ts │ ├── chip-set.ts │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── filter-chip.ts │ ├── filter-chip_test.ts │ ├── harness.ts │ ├── input-chip.ts │ ├── input-chip_test.ts │ ├── internal/ │ │ ├── _assist-chip.scss │ │ ├── _chip-set.scss │ │ ├── _elevated.scss │ │ ├── _filter-chip.scss │ │ ├── _input-chip.scss │ │ ├── _selectable.scss │ │ ├── _shared.scss │ │ ├── _suggestion-chip.scss │ │ ├── _trailing-icon.scss │ │ ├── assist-chip.ts │ │ ├── assist-chip_test.ts │ │ ├── assist-styles.scss │ │ ├── chip-set-styles.scss │ │ ├── chip-set.ts │ │ ├── chip-set_test.ts │ │ ├── chip.ts │ │ ├── chip_test.ts │ │ ├── elevated-styles.scss │ │ ├── filter-chip.ts │ │ ├── filter-chip_test.ts │ │ ├── filter-styles.scss │ │ ├── input-chip.ts │ │ ├── input-chip_test.ts │ │ ├── input-styles.scss │ │ ├── multi-action-chip.ts │ │ ├── multi-action-chip_test.ts │ │ ├── selectable-styles.scss │ │ ├── shared-styles.scss │ │ ├── suggestion-chip.ts │ │ ├── suggestion-chip_test.ts │ │ ├── suggestion-styles.scss │ │ ├── trailing-icon-styles.scss │ │ └── trailing-icons.ts │ ├── suggestion-chip.ts │ └── suggestion-chip_test.ts ├── color/ │ └── _color.scss ├── commitlint.config.js ├── common.ts ├── dialog/ │ ├── _dialog.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── dialog.ts │ ├── dialog_test.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _dialog.scss │ │ ├── animations.ts │ │ ├── dialog-styles.scss │ │ └── dialog.ts │ └── test/ │ └── window_size.json ├── divider/ │ ├── _divider.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── divider.ts │ ├── divider_test.ts │ └── internal/ │ ├── _divider.scss │ ├── divider-styles.scss │ └── divider.ts ├── docs/ │ ├── components/ │ │ ├── button.md │ │ ├── checkbox.md │ │ ├── chip.md │ │ ├── dialog.md │ │ ├── divider.md │ │ ├── elevation.md │ │ ├── fab.md │ │ ├── figures/ │ │ │ ├── checkbox/ │ │ │ │ ├── theming.html │ │ │ │ ├── usage-label.html │ │ │ │ └── usage.html │ │ │ ├── fab/ │ │ │ │ ├── extended-fabs.html │ │ │ │ ├── fabs.html │ │ │ │ ├── theming-branded.html │ │ │ │ ├── theming-extended.html │ │ │ │ ├── theming-fab.html │ │ │ │ ├── usage-branded-extended.html │ │ │ │ ├── usage-branded-sizes.html │ │ │ │ ├── usage-branded.html │ │ │ │ ├── usage-color.html │ │ │ │ ├── usage-extended.html │ │ │ │ ├── usage-fab.html │ │ │ │ ├── usage-lowered.html │ │ │ │ ├── usage-sizes.html │ │ │ │ └── usage-without-icon.html │ │ │ ├── iconbutton/ │ │ │ │ ├── buttons.html │ │ │ │ ├── theming-filled-tonal.html │ │ │ │ ├── theming-filled.html │ │ │ │ ├── theming-outlined.html │ │ │ │ ├── theming-standard.html │ │ │ │ ├── usage-filled-tonal.html │ │ │ │ ├── usage-filled.html │ │ │ │ ├── usage-outlined.html │ │ │ │ ├── usage-standard.html │ │ │ │ ├── usage-toggle.html │ │ │ │ └── usage.html │ │ │ ├── list/ │ │ │ │ ├── theming-icon.html │ │ │ │ ├── theming-image.html │ │ │ │ ├── theming-list.html │ │ │ │ ├── usage-icon.html │ │ │ │ ├── usage-image.html │ │ │ │ └── usage.html │ │ │ ├── menu/ │ │ │ │ ├── theming.html │ │ │ │ ├── usage-document.html │ │ │ │ ├── usage-fixed.html │ │ │ │ ├── usage-popover.html │ │ │ │ ├── usage-submenu.html │ │ │ │ └── usage.html │ │ │ ├── select/ │ │ │ │ ├── theming-filled.html │ │ │ │ ├── theming-outlined.html │ │ │ │ └── usage.html │ │ │ └── textfield/ │ │ │ ├── theming-filled.html │ │ │ ├── theming-outlined.html │ │ │ ├── usage-char-counter.html │ │ │ ├── usage-icons.html │ │ │ ├── usage-label.html │ │ │ ├── usage-prefix.html │ │ │ ├── usage-supporting-text.html │ │ │ ├── usage-textarea.html │ │ │ ├── usage-type.html │ │ │ └── usage.html │ │ ├── focus-ring.md │ │ ├── icon-button.md │ │ ├── icon.md │ │ ├── list.md │ │ ├── menu.md │ │ ├── progress.md │ │ ├── radio.md │ │ ├── ripple.md │ │ ├── select.md │ │ ├── slider.md │ │ ├── switch.md │ │ ├── tabs.md │ │ └── text-field.md │ ├── intro.md │ ├── quick-start.md │ ├── roadmap.md │ ├── sass/ │ │ └── sass-ext.md │ ├── size.md │ ├── support.md │ └── theming/ │ ├── README.md │ ├── color.md │ ├── shape.md │ └── typography.md ├── elevation/ │ ├── _elevation.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── elevation.ts │ ├── elevation_test.ts │ └── internal/ │ ├── _elevation.scss │ ├── elevation-styles.scss │ └── elevation.ts ├── fab/ │ ├── _fab.scss │ ├── branded-fab.ts │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── fab.ts │ ├── fab_test.ts │ ├── harness.ts │ └── internal/ │ ├── _fab-branded.scss │ ├── _fab.scss │ ├── _shared.scss │ ├── fab-branded-styles.scss │ ├── fab-styles.scss │ ├── fab.ts │ ├── forced-colors-styles.scss │ ├── shared-styles.scss │ └── shared.ts ├── field/ │ ├── _filled-field.scss │ ├── _outlined-field.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── filled-field.ts │ ├── filled-field_test.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _content.scss │ │ ├── _filled-field.scss │ │ ├── _label.scss │ │ ├── _outlined-field.scss │ │ ├── _shared.scss │ │ ├── _supporting-text.scss │ │ ├── field.ts │ │ ├── field_test.ts │ │ ├── filled-field.ts │ │ ├── filled-styles.scss │ │ ├── outlined-field.ts │ │ ├── outlined-styles.scss │ │ └── shared-styles.scss │ ├── outlined-field.ts │ └── outlined-field_test.ts ├── focus/ │ ├── _focus-ring.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── internal/ │ │ ├── _focus-ring.scss │ │ ├── focus-ring-styles.scss │ │ ├── focus-ring.ts │ │ └── focus-ring_test.ts │ ├── md-focus-ring.ts │ └── md-focus-ring_test.ts ├── icon/ │ ├── _icon.scss │ ├── icon.ts │ ├── icon_test.ts │ └── internal/ │ ├── _icon.scss │ ├── icon-styles.scss │ └── icon.ts ├── iconbutton/ │ ├── _filled-icon-button.scss │ ├── _filled-tonal-icon-button.scss │ ├── _icon-button.scss │ ├── _outlined-icon-button.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── filled-icon-button.ts │ ├── filled-icon-button_test.ts │ ├── filled-tonal-icon-button.ts │ ├── filled-tonal-icon-button_test.ts │ ├── harness.ts │ ├── icon-button.ts │ ├── icon-button_test.ts │ ├── internal/ │ │ ├── _filled-icon-button.scss │ │ ├── _filled-tonal-icon-button.scss │ │ ├── _icon-button.scss │ │ ├── _outlined-icon-button.scss │ │ ├── _shared.scss │ │ ├── filled-styles.scss │ │ ├── filled-tonal-styles.scss │ │ ├── icon-button.ts │ │ ├── outlined-styles.scss │ │ ├── shared-styles.scss │ │ └── standard-styles.scss │ ├── outlined-icon-button.ts │ └── outlined-icon-button_test.ts ├── internal/ │ ├── README.md │ ├── aria/ │ │ ├── aria.ts │ │ ├── aria_test.ts │ │ ├── delegate.ts │ │ └── delegate_test.ts │ ├── controller/ │ │ ├── attachable-controller.ts │ │ ├── is-rtl.ts │ │ ├── is-rtl_test.ts │ │ ├── string-converter.ts │ │ └── string-converter_test.ts │ ├── events/ │ │ ├── dispatch-hooks.ts │ │ ├── dispatch-hooks_test.ts │ │ ├── form-label-activation.ts │ │ ├── form-label-activation_test.ts │ │ ├── redispatch-event.ts │ │ └── redispatch-event_test.ts │ └── motion/ │ ├── _animation.scss │ ├── animation.ts │ └── animation_test.ts ├── labs/ │ ├── README.md │ ├── badge/ │ │ ├── _badge.scss │ │ ├── badge.ts │ │ ├── badge_test.ts │ │ └── internal/ │ │ ├── _badge.scss │ │ ├── badge-styles.scss │ │ └── badge.ts │ ├── behaviors/ │ │ ├── constraint-validation.ts │ │ ├── constraint-validation_test.ts │ │ ├── custom-state-set.ts │ │ ├── custom-state-set_test.ts │ │ ├── element-internals.ts │ │ ├── element-internals_test.ts │ │ ├── focusable.ts │ │ ├── focusable_test.ts │ │ ├── form-associated.ts │ │ ├── form-associated_test.ts │ │ ├── form-submitter.ts │ │ ├── form-submitter_test.ts │ │ ├── mixin.ts │ │ ├── on-report-validity.ts │ │ ├── on-report-validity_test.ts │ │ └── validators/ │ │ ├── checkbox-validator.ts │ │ ├── checkbox-validator_test.ts │ │ ├── radio-validator.ts │ │ ├── radio-validator_test.ts │ │ ├── select-validator.ts │ │ ├── select-validator_test.ts │ │ ├── text-field-validator.ts │ │ ├── text-field-validator_test.ts │ │ ├── validator.ts │ │ └── validator_test.ts │ ├── card/ │ │ ├── _elevated-card.scss │ │ ├── _filled-card.scss │ │ ├── _outlined-card.scss │ │ ├── demo/ │ │ │ ├── demo.ts │ │ │ ├── project.json │ │ │ └── stories.ts │ │ ├── elevated-card.ts │ │ ├── elevated-card_test.ts │ │ ├── filled-card.ts │ │ ├── filled-card_test.ts │ │ ├── internal/ │ │ │ ├── _elevated-card.scss │ │ │ ├── _filled-card.scss │ │ │ ├── _outlined-card.scss │ │ │ ├── _shared.scss │ │ │ ├── card.ts │ │ │ ├── elevated-styles.scss │ │ │ ├── filled-styles.scss │ │ │ ├── outlined-styles.scss │ │ │ └── shared-styles.scss │ │ ├── outlined-card.ts │ │ └── outlined-card_test.ts │ ├── item/ │ │ ├── demo/ │ │ │ ├── demo.ts │ │ │ ├── project.json │ │ │ └── stories.ts │ │ ├── internal/ │ │ │ ├── _item.scss │ │ │ ├── item-styles.scss │ │ │ └── item.ts │ │ └── item.ts │ ├── navigationbar/ │ │ ├── _navigation-bar.scss │ │ ├── demo/ │ │ │ ├── demo.ts │ │ │ ├── project.json │ │ │ └── stories.ts │ │ ├── harness.ts │ │ ├── internal/ │ │ │ ├── _navigation-bar.scss │ │ │ ├── constants.ts │ │ │ ├── navigation-bar-styles.scss │ │ │ ├── navigation-bar.ts │ │ │ └── state.ts │ │ ├── md-navigation-bar_test.ts │ │ └── navigation-bar.ts │ ├── navigationdrawer/ │ │ ├── _navigation-drawer-modal.scss │ │ ├── _navigation-drawer.scss │ │ ├── internal/ │ │ │ ├── _navigation-drawer-modal.scss │ │ │ ├── _navigation-drawer.scss │ │ │ ├── _shared.scss │ │ │ ├── navigation-drawer-modal-styles.scss │ │ │ ├── navigation-drawer-modal.ts │ │ │ ├── navigation-drawer-styles.scss │ │ │ ├── navigation-drawer.ts │ │ │ └── shared-styles.scss │ │ ├── navigation-drawer-modal.ts │ │ └── navigation-drawer.ts │ ├── navigationtab/ │ │ ├── _navigation-tab.scss │ │ ├── harness.ts │ │ ├── internal/ │ │ │ ├── _navigation-tab.scss │ │ │ ├── navigation-tab-styles.scss │ │ │ ├── navigation-tab.ts │ │ │ └── state.ts │ │ ├── md-navigation-tab_test.ts │ │ └── navigation-tab.ts │ ├── segmentedbutton/ │ │ ├── internal/ │ │ │ ├── _outlined-segmented-button.scss │ │ │ ├── _shared.scss │ │ │ ├── outlined-segmented-button.ts │ │ │ ├── outlined-styles.scss │ │ │ ├── segmented-button.ts │ │ │ └── shared-styles.scss │ │ └── outlined-segmented-button.ts │ └── segmentedbuttonset/ │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── internal/ │ │ ├── _outlined-segmented-button-set.scss │ │ ├── _shared.scss │ │ ├── outlined-segmented-button-set.ts │ │ ├── outlined-styles.scss │ │ ├── segmented-button-set.ts │ │ └── shared-styles.scss │ └── outlined-segmented-button-set.ts ├── list/ │ ├── _list-item.scss │ ├── _list.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _list.scss │ │ ├── list-controller.ts │ │ ├── list-navigation-helpers.ts │ │ ├── list-styles.scss │ │ ├── list.ts │ │ └── listitem/ │ │ ├── _list-item.scss │ │ ├── harness.ts │ │ ├── list-item-styles.scss │ │ └── list-item.ts │ ├── list-item.ts │ ├── list-item_test.ts │ ├── list.ts │ ├── list_test.ts │ └── test/ │ ├── assets.ts │ └── window_size.json ├── menu/ │ ├── _menu-item.scss │ ├── _menu.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _menu.scss │ │ ├── controllers/ │ │ │ ├── menuItemController.ts │ │ │ ├── shared.ts │ │ │ ├── surfacePositionController.ts │ │ │ └── typeaheadController.ts │ │ ├── menu-styles.scss │ │ ├── menu.ts │ │ ├── menuitem/ │ │ │ ├── _menu-item.scss │ │ │ ├── harness.ts │ │ │ ├── menu-item-styles.scss │ │ │ └── menu-item.ts │ │ ├── submenu/ │ │ │ ├── _sub-menu.scss │ │ │ ├── sub-menu-styles.scss │ │ │ └── sub-menu.ts │ │ └── types.ts │ ├── menu-item.ts │ ├── menu.ts │ ├── menu_test.ts │ ├── sub-menu.ts │ └── test/ │ └── window_size.json ├── migrations/ │ └── v2/ │ ├── README.md │ ├── query-selector-aria.ts │ └── query-selector-aria_test.ts ├── package.json ├── progress/ │ ├── _circular-progress.scss │ ├── _linear-progress.scss │ ├── circular-progress.ts │ ├── circular-progress_test.ts │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _circular-progress.scss │ │ ├── _linear-progress.scss │ │ ├── circular-progress-styles.scss │ │ ├── circular-progress.ts │ │ ├── linear-progress-styles.scss │ │ ├── linear-progress.ts │ │ └── progress.ts │ ├── linear-progress.ts │ └── linear-progress_test.ts ├── radio/ │ ├── _radio.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _radio.scss │ │ ├── radio-styles.scss │ │ ├── radio.ts │ │ └── single-selection-controller.ts │ ├── radio.ts │ └── radio_test.ts ├── release-please-config.json ├── ripple/ │ ├── _ripple.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── internal/ │ │ ├── _ripple.scss │ │ ├── ripple-styles.scss │ │ ├── ripple.ts │ │ └── ripple_test.ts │ ├── ripple.ts │ └── ripple_test.ts ├── sass/ │ └── ext/ │ ├── _assert.scss │ ├── _assert_test.scss │ ├── _list_ext.scss │ ├── _list_ext_test.scss │ ├── _map_ext.scss │ ├── _map_ext_test.scss │ ├── _string_ext.scss │ ├── _string_ext_test.scss │ ├── _throw.scss │ ├── _throw_test.scss │ ├── _type.scss │ ├── _type_test.scss │ ├── _var.scss │ ├── _var_test.scss │ └── tests.scss ├── scripts/ │ ├── analyzer/ │ │ ├── analyze-element.ts │ │ ├── element-docs-map.ts │ │ ├── markdown-tree-builder.ts │ │ └── update-docs.ts │ ├── component-custom-elements.ts │ ├── css-to-ts.ts │ ├── size/ │ │ ├── bundle-size.ts │ │ └── update-size.ts │ ├── tsconfig.json │ └── update-sass-ext-docs.ts ├── select/ │ ├── _filled-select.scss │ ├── _outlined-select.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── filled-select.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _filled-select.scss │ │ ├── _outlined-select.scss │ │ ├── _shared.scss │ │ ├── filled-select-styles.scss │ │ ├── filled-select.ts │ │ ├── outlined-select-styles.scss │ │ ├── outlined-select.ts │ │ ├── select.ts │ │ ├── selectoption/ │ │ │ ├── harness.ts │ │ │ ├── select-option.ts │ │ │ └── selectOptionController.ts │ │ ├── shared-styles.scss │ │ └── shared.ts │ ├── outlined-select.ts │ ├── select-option.ts │ ├── select_test.ts │ └── test/ │ ├── assets.ts │ └── window_size.json ├── slider/ │ ├── _slider.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _slider.scss │ │ ├── forced-colors-styles.scss │ │ ├── slider-styles.scss │ │ └── slider.ts │ ├── slider.ts │ └── slider_test.ts ├── switch/ │ ├── _switch.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── README.md │ │ ├── _handle.scss │ │ ├── _icon.scss │ │ ├── _switch.scss │ │ ├── _track.scss │ │ ├── switch-styles.scss │ │ ├── switch.ts │ │ └── switch_test.ts │ ├── switch.ts │ └── switch_test.ts ├── tabs/ │ ├── _primary-tab.scss │ ├── _secondary-tab.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── harness.ts │ ├── internal/ │ │ ├── _primary-tab.scss │ │ ├── _secondary-tab.scss │ │ ├── _tab.scss │ │ ├── _tabs.scss │ │ ├── primary-tab-styles.scss │ │ ├── primary-tab.ts │ │ ├── secondary-tab-styles.scss │ │ ├── secondary-tab.ts │ │ ├── tab-styles.scss │ │ ├── tab.ts │ │ ├── tabs-styles.scss │ │ └── tabs.ts │ ├── primary-tab.ts │ ├── secondary-tab.ts │ ├── tabs.ts │ ├── tabs_test.ts │ └── test/ │ └── window_size.json ├── testing/ │ ├── environment.ts │ ├── forms.ts │ ├── harness.ts │ ├── skip-animations.ts │ ├── skip-animations_test.ts │ ├── table/ │ │ ├── _test-table.scss │ │ ├── internal/ │ │ │ ├── _test-table.scss │ │ │ ├── test-table-styles.scss │ │ │ ├── test-table.ts │ │ │ └── test-table_test.ts │ │ └── test-table.ts │ ├── templates.ts │ ├── tokens.ts │ ├── tokens_test.ts │ └── transform-pseudo-classes.ts ├── textfield/ │ ├── _filled-text-field.scss │ ├── _outlined-text-field.scss │ ├── demo/ │ │ ├── demo.ts │ │ ├── project.json │ │ └── stories.ts │ ├── filled-text-field.ts │ ├── filled-text-field_test.ts │ ├── harness.ts │ ├── harness_test.ts │ ├── internal/ │ │ ├── _filled-text-field.scss │ │ ├── _icon.scss │ │ ├── _input.scss │ │ ├── _outlined-text-field.scss │ │ ├── _shared.scss │ │ ├── filled-styles.scss │ │ ├── filled-text-field.ts │ │ ├── outlined-styles.scss │ │ ├── outlined-text-field.ts │ │ ├── shared-styles.scss │ │ ├── text-field.ts │ │ └── text-field_test.ts │ ├── outlined-text-field.ts │ └── outlined-text-field_test.ts ├── tokens/ │ ├── _index.scss │ ├── _md-comp-assist-chip.scss │ ├── _md-comp-badge.scss │ ├── _md-comp-checkbox.scss │ ├── _md-comp-circular-progress.scss │ ├── _md-comp-dialog.scss │ ├── _md-comp-divider.scss │ ├── _md-comp-elevated-button.scss │ ├── _md-comp-elevated-card.scss │ ├── _md-comp-elevation.scss │ ├── _md-comp-fab-branded.scss │ ├── _md-comp-fab.scss │ ├── _md-comp-filled-button.scss │ ├── _md-comp-filled-card.scss │ ├── _md-comp-filled-field.scss │ ├── _md-comp-filled-icon-button.scss │ ├── _md-comp-filled-select.scss │ ├── _md-comp-filled-text-field.scss │ ├── _md-comp-filled-tonal-button.scss │ ├── _md-comp-filled-tonal-icon-button.scss │ ├── _md-comp-filter-chip.scss │ ├── _md-comp-focus-ring.scss │ ├── _md-comp-full-screen-dialog.scss │ ├── _md-comp-icon-button.scss │ ├── _md-comp-icon.scss │ ├── _md-comp-input-chip.scss │ ├── _md-comp-item.scss │ ├── _md-comp-linear-progress.scss │ ├── _md-comp-list-item.scss │ ├── _md-comp-list.scss │ ├── _md-comp-menu-item.scss │ ├── _md-comp-menu.scss │ ├── _md-comp-navigation-bar.scss │ ├── _md-comp-navigation-drawer.scss │ ├── _md-comp-outlined-button.scss │ ├── _md-comp-outlined-card.scss │ ├── _md-comp-outlined-field.scss │ ├── _md-comp-outlined-icon-button.scss │ ├── _md-comp-outlined-segmented-button.scss │ ├── _md-comp-outlined-select.scss │ ├── _md-comp-outlined-text-field.scss │ ├── _md-comp-primary-tab.scss │ ├── _md-comp-radio.scss │ ├── _md-comp-ripple.scss │ ├── _md-comp-secondary-tab.scss │ ├── _md-comp-slider.scss │ ├── _md-comp-suggestion-chip.scss │ ├── _md-comp-switch.scss │ ├── _md-comp-test-table.scss │ ├── _md-comp-text-button.scss │ ├── _md-ref-palette.scss │ ├── _md-ref-typeface.scss │ ├── _md-sys-color.scss │ ├── _md-sys-elevation.scss │ ├── _md-sys-motion.scss │ ├── _md-sys-shape.scss │ ├── _md-sys-state.scss │ ├── _md-sys-typescale.scss │ ├── internal/ │ │ ├── _shape.scss │ │ └── _validate.scss │ ├── v0_192/ │ │ ├── _index.scss │ │ ├── _md-comp-assist-chip.scss │ │ ├── _md-comp-badge.scss │ │ ├── _md-comp-banner.scss │ │ ├── _md-comp-bottom-app-bar.scss │ │ ├── _md-comp-carousel-item.scss │ │ ├── _md-comp-checkbox.scss │ │ ├── _md-comp-circular-progress-indicator.scss │ │ ├── _md-comp-data-table.scss │ │ ├── _md-comp-date-input-modal.scss │ │ ├── _md-comp-date-picker-docked.scss │ │ ├── _md-comp-date-picker-modal.scss │ │ ├── _md-comp-dialog.scss │ │ ├── _md-comp-divider.scss │ │ ├── _md-comp-elevated-button.scss │ │ ├── _md-comp-elevated-card.scss │ │ ├── _md-comp-extended-fab-branded.scss │ │ ├── _md-comp-extended-fab-primary.scss │ │ ├── _md-comp-extended-fab-secondary.scss │ │ ├── _md-comp-extended-fab-surface.scss │ │ ├── _md-comp-extended-fab-tertiary.scss │ │ ├── _md-comp-fab-branded-large.scss │ │ ├── _md-comp-fab-branded.scss │ │ ├── _md-comp-fab-primary-large.scss │ │ ├── _md-comp-fab-primary-small.scss │ │ ├── _md-comp-fab-primary.scss │ │ ├── _md-comp-fab-secondary-large.scss │ │ ├── _md-comp-fab-secondary-small.scss │ │ ├── _md-comp-fab-secondary.scss │ │ ├── _md-comp-fab-surface-large.scss │ │ ├── _md-comp-fab-surface-small.scss │ │ ├── _md-comp-fab-surface.scss │ │ ├── _md-comp-fab-tertiary-large.scss │ │ ├── _md-comp-fab-tertiary-small.scss │ │ ├── _md-comp-fab-tertiary.scss │ │ ├── _md-comp-filled-autocomplete.scss │ │ ├── _md-comp-filled-button.scss │ │ ├── _md-comp-filled-card.scss │ │ ├── _md-comp-filled-icon-button.scss │ │ ├── _md-comp-filled-menu-button.scss │ │ ├── _md-comp-filled-select.scss │ │ ├── _md-comp-filled-text-field.scss │ │ ├── _md-comp-filled-tonal-button.scss │ │ ├── _md-comp-filled-tonal-icon-button.scss │ │ ├── _md-comp-filter-chip.scss │ │ ├── _md-comp-full-screen-dialog.scss │ │ ├── _md-comp-icon-button.scss │ │ ├── _md-comp-input-chip.scss │ │ ├── _md-comp-linear-progress-indicator.scss │ │ ├── _md-comp-list.scss │ │ ├── _md-comp-menu.scss │ │ ├── _md-comp-navigation-bar.scss │ │ ├── _md-comp-navigation-drawer.scss │ │ ├── _md-comp-navigation-rail.scss │ │ ├── _md-comp-outlined-autocomplete.scss │ │ ├── _md-comp-outlined-button.scss │ │ ├── _md-comp-outlined-card.scss │ │ ├── _md-comp-outlined-icon-button.scss │ │ ├── _md-comp-outlined-menu-button.scss │ │ ├── _md-comp-outlined-segmented-button.scss │ │ ├── _md-comp-outlined-select.scss │ │ ├── _md-comp-outlined-text-field.scss │ │ ├── _md-comp-plain-tooltip.scss │ │ ├── _md-comp-primary-navigation-tab.scss │ │ ├── _md-comp-radio-button.scss │ │ ├── _md-comp-rich-tooltip.scss │ │ ├── _md-comp-scrim.scss │ │ ├── _md-comp-search-bar.scss │ │ ├── _md-comp-search-view.scss │ │ ├── _md-comp-secondary-navigation-tab.scss │ │ ├── _md-comp-sheet-bottom.scss │ │ ├── _md-comp-sheet-floating.scss │ │ ├── _md-comp-sheet-side.scss │ │ ├── _md-comp-slider.scss │ │ ├── _md-comp-snackbar.scss │ │ ├── _md-comp-standard-menu-button.scss │ │ ├── _md-comp-suggestion-chip.scss │ │ ├── _md-comp-switch.scss │ │ ├── _md-comp-text-button.scss │ │ ├── _md-comp-time-input.scss │ │ ├── _md-comp-time-picker.scss │ │ ├── _md-comp-top-app-bar-large.scss │ │ ├── _md-comp-top-app-bar-medium.scss │ │ ├── _md-comp-top-app-bar-small-centered.scss │ │ ├── _md-comp-top-app-bar-small.scss │ │ ├── _md-ref-palette.scss │ │ ├── _md-ref-typeface.scss │ │ ├── _md-sys-color.scss │ │ ├── _md-sys-elevation.scss │ │ ├── _md-sys-motion.scss │ │ ├── _md-sys-shape.scss │ │ ├── _md-sys-state.scss │ │ ├── _md-sys-typescale.scss │ │ ├── index.test.scss │ │ └── lib.test.scss │ └── versions/ │ ├── README.md │ ├── v0_192/ │ │ ├── _index.scss │ │ ├── _md-comp-assist-chip.scss │ │ ├── _md-comp-badge.scss │ │ ├── _md-comp-banner.scss │ │ ├── _md-comp-bottom-app-bar.scss │ │ ├── _md-comp-carousel-item.scss │ │ ├── _md-comp-checkbox.scss │ │ ├── _md-comp-circular-progress-indicator.scss │ │ ├── _md-comp-data-table.scss │ │ ├── _md-comp-date-input-modal.scss │ │ ├── _md-comp-date-picker-docked.scss │ │ ├── _md-comp-date-picker-modal.scss │ │ ├── _md-comp-dialog.scss │ │ ├── _md-comp-divider.scss │ │ ├── _md-comp-elevated-button.scss │ │ ├── _md-comp-elevated-card.scss │ │ ├── _md-comp-extended-fab-branded.scss │ │ ├── _md-comp-extended-fab-primary.scss │ │ ├── _md-comp-extended-fab-secondary.scss │ │ ├── _md-comp-extended-fab-surface.scss │ │ ├── _md-comp-extended-fab-tertiary.scss │ │ ├── _md-comp-fab-branded-large.scss │ │ ├── _md-comp-fab-branded.scss │ │ ├── _md-comp-fab-primary-large.scss │ │ ├── _md-comp-fab-primary-small.scss │ │ ├── _md-comp-fab-primary.scss │ │ ├── _md-comp-fab-secondary-large.scss │ │ ├── _md-comp-fab-secondary-small.scss │ │ ├── _md-comp-fab-secondary.scss │ │ ├── _md-comp-fab-surface-large.scss │ │ ├── _md-comp-fab-surface-small.scss │ │ ├── _md-comp-fab-surface.scss │ │ ├── _md-comp-fab-tertiary-large.scss │ │ ├── _md-comp-fab-tertiary-small.scss │ │ ├── _md-comp-fab-tertiary.scss │ │ ├── _md-comp-filled-autocomplete.scss │ │ ├── _md-comp-filled-button.scss │ │ ├── _md-comp-filled-card.scss │ │ ├── _md-comp-filled-icon-button.scss │ │ ├── _md-comp-filled-menu-button.scss │ │ ├── _md-comp-filled-select.scss │ │ ├── _md-comp-filled-text-field.scss │ │ ├── _md-comp-filled-tonal-button.scss │ │ ├── _md-comp-filled-tonal-icon-button.scss │ │ ├── _md-comp-filter-chip.scss │ │ ├── _md-comp-full-screen-dialog.scss │ │ ├── _md-comp-icon-button.scss │ │ ├── _md-comp-input-chip.scss │ │ ├── _md-comp-linear-progress-indicator.scss │ │ ├── _md-comp-list.scss │ │ ├── _md-comp-menu.scss │ │ ├── _md-comp-navigation-bar.scss │ │ ├── _md-comp-navigation-drawer.scss │ │ ├── _md-comp-navigation-rail.scss │ │ ├── _md-comp-outlined-autocomplete.scss │ │ ├── _md-comp-outlined-button.scss │ │ ├── _md-comp-outlined-card.scss │ │ ├── _md-comp-outlined-icon-button.scss │ │ ├── _md-comp-outlined-menu-button.scss │ │ ├── _md-comp-outlined-segmented-button.scss │ │ ├── _md-comp-outlined-select.scss │ │ ├── _md-comp-outlined-text-field.scss │ │ ├── _md-comp-plain-tooltip.scss │ │ ├── _md-comp-primary-navigation-tab.scss │ │ ├── _md-comp-radio-button.scss │ │ ├── _md-comp-rich-tooltip.scss │ │ ├── _md-comp-scrim.scss │ │ ├── _md-comp-search-bar.scss │ │ ├── _md-comp-search-view.scss │ │ ├── _md-comp-secondary-navigation-tab.scss │ │ ├── _md-comp-sheet-bottom.scss │ │ ├── _md-comp-sheet-floating.scss │ │ ├── _md-comp-sheet-side.scss │ │ ├── _md-comp-slider.scss │ │ ├── _md-comp-snackbar.scss │ │ ├── _md-comp-standard-menu-button.scss │ │ ├── _md-comp-suggestion-chip.scss │ │ ├── _md-comp-switch.scss │ │ ├── _md-comp-text-button.scss │ │ ├── _md-comp-time-input.scss │ │ ├── _md-comp-time-picker.scss │ │ ├── _md-comp-top-app-bar-large.scss │ │ ├── _md-comp-top-app-bar-medium.scss │ │ ├── _md-comp-top-app-bar-small-centered.scss │ │ ├── _md-comp-top-app-bar-small.scss │ │ ├── _md-ref-palette.scss │ │ ├── _md-ref-typeface.scss │ │ ├── _md-sys-color.scss │ │ ├── _md-sys-elevation.scss │ │ ├── _md-sys-motion.scss │ │ ├── _md-sys-shape.scss │ │ ├── _md-sys-state.scss │ │ ├── _md-sys-typescale.scss │ │ ├── index.test.scss │ │ └── lib.test.scss │ └── v30_0/ │ └── sass/ │ ├── _index.scss │ ├── _md-comp-app-bar-large-flexible.scss │ ├── _md-comp-app-bar-large.scss │ ├── _md-comp-app-bar-medium-flexible.scss │ ├── _md-comp-app-bar-medium.scss │ ├── _md-comp-app-bar-small.scss │ ├── _md-comp-app-bar.scss │ ├── _md-comp-assist-chip.scss │ ├── _md-comp-badge.scss │ ├── _md-comp-banner.scss │ ├── _md-comp-banners-basic.scss │ ├── _md-comp-banners-rich.scss │ ├── _md-comp-banners.scss │ ├── _md-comp-bottom-app-bar.scss │ ├── _md-comp-button-elevated.scss │ ├── _md-comp-button-filled.scss │ ├── _md-comp-button-group-connected-large.scss │ ├── _md-comp-button-group-connected-medium.scss │ ├── _md-comp-button-group-connected-small.scss │ ├── _md-comp-button-group-connected-xlarge.scss │ ├── _md-comp-button-group-connected-xsmall.scss │ ├── _md-comp-button-group-standard-large.scss │ ├── _md-comp-button-group-standard-medium.scss │ ├── _md-comp-button-group-standard-small.scss │ ├── _md-comp-button-group-standard-xlarge.scss │ ├── _md-comp-button-group-standard-xsmall.scss │ ├── _md-comp-button-large.scss │ ├── _md-comp-button-medium.scss │ ├── _md-comp-button-outlined.scss │ ├── _md-comp-button-small.scss │ ├── _md-comp-button-text.scss │ ├── _md-comp-button-tonal.scss │ ├── _md-comp-button-xlarge.scss │ ├── _md-comp-button-xsmall.scss │ ├── _md-comp-button.scss │ ├── _md-comp-carousel-item.scss │ ├── _md-comp-checkbox.scss │ ├── _md-comp-circular-progress-indicator.scss │ ├── _md-comp-data-table.scss │ ├── _md-comp-date-input-modal.scss │ ├── _md-comp-date-picker-docked.scss │ ├── _md-comp-date-picker-modal.scss │ ├── _md-comp-dialog.scss │ ├── _md-comp-divider.scss │ ├── _md-comp-drag-handle.scss │ ├── _md-comp-elevated-button.scss │ ├── _md-comp-elevated-card.scss │ ├── _md-comp-extended-fab-branded.scss │ ├── _md-comp-extended-fab-large.scss │ ├── _md-comp-extended-fab-medium.scss │ ├── _md-comp-extended-fab-primary-container.scss │ ├── _md-comp-extended-fab-primary.scss │ ├── _md-comp-extended-fab-secondary-container.scss │ ├── _md-comp-extended-fab-secondary.scss │ ├── _md-comp-extended-fab-small.scss │ ├── _md-comp-extended-fab-surface.scss │ ├── _md-comp-extended-fab-tertiary-container.scss │ ├── _md-comp-extended-fab-tertiary.scss │ ├── _md-comp-extended-fab.scss │ ├── _md-comp-fab-branded-large.scss │ ├── _md-comp-fab-branded.scss │ ├── _md-comp-fab-large.scss │ ├── _md-comp-fab-medium.scss │ ├── _md-comp-fab-menu-primary-close-button.scss │ ├── _md-comp-fab-menu-primary-container.scss │ ├── _md-comp-fab-menu-secondary-close-button.scss │ ├── _md-comp-fab-menu-secondary-container.scss │ ├── _md-comp-fab-menu-tertiary-close-button.scss │ ├── _md-comp-fab-menu-tertiary-container.scss │ ├── _md-comp-fab-menu.scss │ ├── _md-comp-fab-primary-container.scss │ ├── _md-comp-fab-primary-large.scss │ ├── _md-comp-fab-primary-small.scss │ ├── _md-comp-fab-primary.scss │ ├── _md-comp-fab-secondary-container.scss │ ├── _md-comp-fab-secondary-large.scss │ ├── _md-comp-fab-secondary-small.scss │ ├── _md-comp-fab-secondary.scss │ ├── _md-comp-fab-small.scss │ ├── _md-comp-fab-surface-large.scss │ ├── _md-comp-fab-surface.scss │ ├── _md-comp-fab-tertiary-container.scss │ ├── _md-comp-fab-tertiary-large.scss │ ├── _md-comp-fab-tertiary-small.scss │ ├── _md-comp-fab-tertiary.scss │ ├── _md-comp-fab.scss │ ├── _md-comp-filled-autocomplete.scss │ ├── _md-comp-filled-button.scss │ ├── _md-comp-filled-card.scss │ ├── _md-comp-filled-icon-button.scss │ ├── _md-comp-filled-menu-button.scss │ ├── _md-comp-filled-select.scss │ ├── _md-comp-filled-text-field.scss │ ├── _md-comp-filled-tonal-button.scss │ ├── _md-comp-filled-tonal-icon-button.scss │ ├── _md-comp-filter-chip.scss │ ├── _md-comp-full-screen-dialog.scss │ ├── _md-comp-icon-button-filled.scss │ ├── _md-comp-icon-button-large.scss │ ├── _md-comp-icon-button-medium.scss │ ├── _md-comp-icon-button-outlined.scss │ ├── _md-comp-icon-button-small.scss │ ├── _md-comp-icon-button-standard.scss │ ├── _md-comp-icon-button-tonal.scss │ ├── _md-comp-icon-button-xlarge.scss │ ├── _md-comp-icon-button-xsmall.scss │ ├── _md-comp-icon-button.scss │ ├── _md-comp-input-chip.scss │ ├── _md-comp-linear-progress-indicator.scss │ ├── _md-comp-list-expand.scss │ ├── _md-comp-list-reorder.scss │ ├── _md-comp-list-reveal.scss │ ├── _md-comp-list.scss │ ├── _md-comp-loading-indicator.scss │ ├── _md-comp-menu.scss │ ├── _md-comp-menus-standard.scss │ ├── _md-comp-menus-vibrant.scss │ ├── _md-comp-menus.scss │ ├── _md-comp-nav-bar-item-horizontal.scss │ ├── _md-comp-nav-bar-item-vertical.scss │ ├── _md-comp-nav-bar.scss │ ├── _md-comp-nav-rail-collapsed.scss │ ├── _md-comp-nav-rail-expanded.scss │ ├── _md-comp-nav-rail-item-horizontal.scss │ ├── _md-comp-nav-rail-item-vertical.scss │ ├── _md-comp-nav-rail-item.scss │ ├── _md-comp-nav-rail.scss │ ├── _md-comp-navigation-bar.scss │ ├── _md-comp-navigation-drawer.scss │ ├── _md-comp-navigation-rail.scss │ ├── _md-comp-outlined-autocomplete.scss │ ├── _md-comp-outlined-button.scss │ ├── _md-comp-outlined-card.scss │ ├── _md-comp-outlined-menu-button.scss │ ├── _md-comp-outlined-segmented-button.scss │ ├── _md-comp-outlined-select.scss │ ├── _md-comp-outlined-text-field.scss │ ├── _md-comp-plain-tooltip.scss │ ├── _md-comp-primary-navigation-tab.scss │ ├── _md-comp-progress-indicator-circular.scss │ ├── _md-comp-progress-indicator-linear.scss │ ├── _md-comp-progress-indicator.scss │ ├── _md-comp-radio-button.scss │ ├── _md-comp-rich-tooltip.scss │ ├── _md-comp-scrim.scss │ ├── _md-comp-search-bar.scss │ ├── _md-comp-search-view.scss │ ├── _md-comp-secondary-navigation-tab.scss │ ├── _md-comp-sheet-bottom.scss │ ├── _md-comp-sheet-floating.scss │ ├── _md-comp-sheet-side.scss │ ├── _md-comp-slider-large.scss │ ├── _md-comp-slider-medium.scss │ ├── _md-comp-slider-small.scss │ ├── _md-comp-slider-xlarge.scss │ ├── _md-comp-slider-xsmall.scss │ ├── _md-comp-slider.scss │ ├── _md-comp-snackbar.scss │ ├── _md-comp-split-button-large.scss │ ├── _md-comp-split-button-medium.scss │ ├── _md-comp-split-button-small.scss │ ├── _md-comp-split-button-xlarge.scss │ ├── _md-comp-split-button-xsmall.scss │ ├── _md-comp-standard-menu-button.scss │ ├── _md-comp-suggestion-chip.scss │ ├── _md-comp-switch.scss │ ├── _md-comp-text-button.scss │ ├── _md-comp-time-input.scss │ ├── _md-comp-time-picker.scss │ ├── _md-comp-toolbar-docked.scss │ ├── _md-comp-toolbar-floating-fab.scss │ ├── _md-comp-toolbar-floating.scss │ ├── _md-comp-toolbar-standard.scss │ ├── _md-comp-toolbar-vibrant.scss │ ├── _md-comp-top-app-bar-large.scss │ ├── _md-comp-top-app-bar-medium.scss │ ├── _md-comp-top-app-bar-small-centered.scss │ ├── _md-comp-top-app-bar-small.scss │ ├── _md-ref-palette.scss │ ├── _md-ref-typeface.scss │ ├── _md-sys-color.scss │ ├── _md-sys-color__dark.scss │ ├── _md-sys-color__dark__high-contrast.scss │ ├── _md-sys-color__dark__medium-contrast.scss │ ├── _md-sys-color__high-contrast.scss │ ├── _md-sys-color__medium-contrast.scss │ ├── _md-sys-elevation.scss │ ├── _md-sys-motion.scss │ ├── _md-sys-shape.scss │ ├── _md-sys-state-focus-indicator.scss │ ├── _md-sys-state.scss │ ├── _md-sys-typescale-emphasized.scss │ └── _md-sys-typescale.scss ├── tsconfig.json ├── typography/ │ ├── _typeface.scss │ ├── _typescale.scss │ └── md-typescale-styles.scss └── web-test-runner.config.js
SYMBOL INDEX (1675 symbols across 288 files)
FILE: button/demo/stories.ts
type StoryKnobs (line 18) | interface StoryKnobs {
method render (line 42) | render({label, disabled, softDisabled}) {
method render (line 123) | render({label, disabled, softDisabled}) {
FILE: button/elevated-button.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdElevatedButton (line 44) | class MdElevatedButton extends ElevatedButton {
FILE: button/filled-button.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdFilledButton (line 42) | class MdFilledButton extends FilledButton {
FILE: button/filled-tonal-button.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdFilledTonalButton (line 43) | class MdFilledTonalButton extends FilledTonalButton {
FILE: button/harness.ts
class ButtonHarness (line 14) | class ButtonHarness extends Harness<Button> {
method getInteractiveElement (line 15) | protected override async getInteractiveElement() {
FILE: button/internal/button.ts
method constructor (line 92) | constructor() {
method focus (line 99) | override focus() {
method blur (line 103) | override blur() {
method render (line 107) | protected override render() {
method renderButton (line 131) | private renderButton() {
method renderLink (line 146) | private renderLink() {
method renderContent (line 164) | private renderContent() {
method handleClick (line 177) | private handleClick(event: MouseEvent) {
method handleSlotChange (line 194) | private handleSlotChange() {
FILE: button/internal/button_test.ts
class TestButton (line 16) | @customElement('test-button')
function setupTest (line 22) | async function setupTest() {
FILE: button/internal/elevated-button.ts
class ElevatedButton (line 16) | class ElevatedButton extends Button {
method renderElevationOrOutline (line 17) | protected override renderElevationOrOutline() {
FILE: button/internal/filled-button.ts
class FilledButton (line 16) | class FilledButton extends Button {
method renderElevationOrOutline (line 17) | protected override renderElevationOrOutline() {
FILE: button/internal/filled-tonal-button.ts
class FilledTonalButton (line 16) | class FilledTonalButton extends Button {
method renderElevationOrOutline (line 17) | protected override renderElevationOrOutline() {
FILE: button/internal/outlined-button.ts
class OutlinedButton (line 14) | class OutlinedButton extends Button {
method renderElevationOrOutline (line 15) | protected override renderElevationOrOutline() {
FILE: button/internal/text-button.ts
class TextButton (line 12) | class TextButton extends Button {}
FILE: button/outlined-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedButton (line 43) | class MdOutlinedButton extends OutlinedButton {
FILE: button/text-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdTextButton (line 41) | class MdTextButton extends TextButton {
FILE: catalog/eleventy-helpers/filters/filter-sort.cjs
function filterSort (line 29) | function filterSort (eleventyConfig) {
FILE: catalog/eleventy-helpers/filters/filter-toc.cjs
function filterToc (line 21) | function filterToc(eleventyConfig) {
FILE: catalog/eleventy-helpers/filters/md-markdown.cjs
function fixLinks (line 17) | function fixLinks($, redirects) {
function blockquote (line 58) | function blockquote($) {
function mdMarkdown (line 118) | function mdMarkdown(eleventyConfig, redirects) {
FILE: catalog/eleventy-helpers/plugins/copy-code-button.cjs
function renderCode (line 14) | function renderCode(originalRule) {
function copyCodeButtonPlugin (line 45) | function copyCodeButtonPlugin(markdownIt) {
FILE: catalog/eleventy-helpers/plugins/permalinks.cjs
function permalinks (line 16) | function permalinks(markdownIt) {
FILE: catalog/eleventy-helpers/shortcodes/inline-css.cjs
function inlineCSS (line 33) | function inlineCSS(eleventyConfig, isDev) {
FILE: catalog/eleventy-helpers/shortcodes/inline-js.cjs
function inlineJS (line 37) | function inlineJS(eleventyConfig, isDev, {jsDir}) {
FILE: catalog/eleventy-helpers/shortcodes/playground-example.cjs
function playgroundExample (line 31) | function playgroundExample(eleventyConfig) {
FILE: catalog/eleventy-helpers/transforms/minify-html.cjs
function minifyHTML (line 16) | function minifyHTML(eleventyConfig, isDev) {
FILE: catalog/eleventy.config.cjs
constant DEV (line 23) | const DEV = process.env.NODE_ENV === 'DEV';
FILE: catalog/esbuild.config.mjs
constant DEV (line 15) | const DEV = process.env.NODE_ENV === 'DEV';
FILE: catalog/scripts/copy-docs.mjs
function copyImages (line 23) | async function copyImages(path = '', includePath = '') {
function getReadmeFiles (line 41) | async function getReadmeFiles(path = '', deep = false) {
function fileIncludeTransform (line 85) | async function fileIncludeTransform(filepath, fileContents) {
function transformReadmes (line 123) | async function transformReadmes(filepaths, outdir = '', replacements = [...
FILE: catalog/src/components/catalog-component-header-title.ts
class CatalogComponentHeaderTitle (line 17) | class CatalogComponentHeaderTitle extends LitElement {
method render (line 18) | render() {
FILE: catalog/src/components/catalog-component-header.ts
class CatalogComponentHeader (line 18) | class CatalogComponentHeader extends LitElement {
method render (line 19) | render() {
FILE: catalog/src/components/copy-code-button.ts
class CopyCodeButton (line 26) | class CopyCodeButton extends LitElement {
method render (line 71) | render() {
method onClick (line 88) | private async onClick() {
method onInput (line 93) | private onInput() {
method getCopyText (line 101) | getCopyText() {
method onCopySuccess (line 110) | private onCopySuccess() {
type HTMLElementTagNameMap (line 124) | interface HTMLElementTagNameMap {
FILE: catalog/src/components/drag-playground.ts
class DragPlayground (line 18) | class DragPlayground extends LitElement {
method render (line 105) | render() {
method onFocus (line 139) | private onFocus() {
method onBlur (line 143) | private onBlur() {
method onKeydown (line 147) | private onKeydown(event: KeyboardEvent) {
method onPointerdown (line 175) | private onPointerdown(event: PointerEvent) {
method onPointerup (line 184) | private onPointerup(event: PointerEvent) {
method onPointermove (line 193) | private onPointermove(event: PointerEvent) {
type HTMLElementTagNameMap (line 213) | interface HTMLElementTagNameMap {
FILE: catalog/src/components/hct-slider.ts
type Range (line 19) | type Range = [number, number];
constant HUE_RANGE (line 21) | const HUE_RANGE: Range = [0, 360];
constant CHROMA_RANGE (line 22) | const CHROMA_RANGE: Range = [0, 150];
constant TONE_RANGE (line 23) | const TONE_RANGE: Range = [0, 100];
class HCTSlider (line 31) | class HCTSlider extends LitElement {
method render (line 53) | override render() {
method onInput (line 81) | private onInput(e: Event) {
method buildGradient (line 94) | private buildGradient() {
type HTMLElementTagNameMap (line 158) | interface HTMLElementTagNameMap {
FILE: catalog/src/components/nav-drawer.ts
class NavDrawer (line 25) | class NavDrawer extends SignalElement(LitElement) {
method render (line 40) | render() {
method renderContent (line 100) | private renderContent(showModal: boolean) {
method renderTocPane (line 112) | private renderTocPane(showModal: boolean) {
method onScrimClick (line 131) | private onScrimClick() {
method firstUpdated (line 135) | firstUpdated() {
method updated (line 145) | updated(changed: PropertyValues<this>) {
FILE: catalog/src/components/theme-changer.ts
class ThemeChanger (line 35) | class ThemeChanger extends LitElement {
method render (line 72) | render() {
method renderHexPicker (line 90) | protected renderHexPicker() {
method renderHctPicker (line 111) | private renderHctPicker() {
method renderColorModePicker (line 138) | private renderColorModePicker() {
method renderModeButton (line 155) | private renderModeButton(mode: ColorMode, icon: string) {
method onSliderInput (line 165) | private onSliderInput() {
method updateHctFromHex (line 179) | private updateHctFromHex(hexColor: string) {
method onHexPickerInput (line 186) | private onHexPickerInput() {
method firstUpdated (line 192) | async firstUpdated() {
method onColorModeSelection (line 206) | private onColorModeSelection(
type HTMLElementTagNameMap (line 339) | interface HTMLElementTagNameMap {
FILE: catalog/src/components/top-app-bar.ts
class TopAppBar (line 25) | class TopAppBar extends SignalElement(LitElement) {
method render (line 32) | render() {
method onPaletteClick (line 121) | private onPaletteClick() {
method onMenuClosed (line 132) | private onMenuClosed() {
method onMenuOpened (line 138) | private onMenuOpened() {
method onKeydown (line 142) | private onKeydown(e: KeyboardEvent) {
method onMenuIconToggle (line 152) | private onMenuIconToggle(e: InputEvent) {
type HTMLElementTagNameMap (line 248) | interface HTMLElementTagNameMap {
FILE: catalog/src/pages/components.ts
function updateMessageTargetOnIframeLoad (line 22) | async function updateMessageTargetOnIframeLoad(
function syncPlaygroundThemeWithPage (line 38) | async function syncPlaygroundThemeWithPage() {
function demoDropdown (line 76) | function demoDropdown() {
FILE: catalog/src/pages/global.ts
function applyColorThemeListeners (line 30) | function applyColorThemeListeners() {
function initializeTheme (line 57) | function initializeTheme() {
function determinePageNavigationAutoMode (line 74) | function determinePageNavigationAutoMode() {
FILE: catalog/src/signals/signal-element.ts
type ReactiveElementConstructor (line 14) | type ReactiveElementConstructor = new (...args: any[]) => ReactiveElement;
function SignalElement (line 21) | function SignalElement<T extends ReactiveElementConstructor>(
FILE: catalog/src/ssr-utils/lit-island.ts
method forceFallback (line 13) | override forceFallback() {}
FILE: catalog/src/types/color-events.ts
type Theme (line 11) | interface Theme {
class ChangeColorEvent (line 18) | class ChangeColorEvent extends Event {
method constructor (line 22) | constructor(public color: string) {
class ChangeDarkModeEvent (line 31) | class ChangeDarkModeEvent extends Event {
method constructor (line 35) | constructor(public mode: 'light' | 'dark' | 'auto') {
type HTMLElementEventMap (line 41) | interface HTMLElementEventMap {
FILE: catalog/src/types/is-land.d.ts
class Island (line 8) | class Island extends HTMLElement {
FILE: catalog/src/utils/apply-theme-string.ts
type WithStylesheet (line 7) | type WithStylesheet = typeof globalThis & {
function applyThemeString (line 26) | function applyThemeString(
FILE: catalog/src/utils/material-color-helpers.ts
function hctFromHex (line 68) | function hctFromHex(value: string) {
function hexFromHct (line 81) | function hexFromHct(hue: number, chroma: number, tone: number) {
function themeFromSourceColor (line 97) | function themeFromSourceColor(color: string, isDark: boolean): Theme {
function applyMaterialTheme (line 118) | function applyMaterialTheme(
FILE: catalog/src/utils/theme.ts
type ColorMode (line 13) | type ColorMode = 'light' | 'dark' | 'auto';
function applyThemeFromColor (line 23) | function applyThemeFromColor(color: string, isDark: boolean) {
function isModeDark (line 41) | function isModeDark(mode: ColorMode, saveAutoMode = true) {
function getCurrentThemeString (line 63) | function getCurrentThemeString(): string | null {
function getCurrentMode (line 72) | function getCurrentMode(): ColorMode | null {
function saveColorMode (line 81) | function saveColorMode(mode: ColorMode) {
function getCurrentSeedColor (line 90) | function getCurrentSeedColor(): string | null {
function saveSeedColor (line 99) | function saveSeedColor(color: string) {
function getLastSavedAutoColorMode (line 108) | function getLastSavedAutoColorMode() {
function saveLastSavedAutoColorMode (line 121) | function saveLastSavedAutoColorMode(mode: 'light' | 'dark') {
function changeColor (line 130) | function changeColor(color: string) {
function changeColorMode (line 143) | function changeColorMode(mode: ColorMode) {
function changeColorAndMode (line 158) | function changeColorAndMode(color: string, mode: ColorMode) {
FILE: catalog/stories/components/knob-ui-components.ts
function boolInput (line 25) | function boolInput(): KnobUi<boolean> {
class KnobColorSelector (line 54) | class KnobColorSelector extends LitElement {
method value (line 117) | set value(val: string) {
method value (line 124) | get value() {
method render (line 128) | render() {
method renderTextInput (line 143) | private renderTextInput() {
method renderColorInput (line 152) | private renderColorInput() {
method onInput (line 169) | private onInput(e: Event) {
method propagateEvt (line 175) | private propagateEvt(e: Event) {
method click (line 183) | click() {
method focus (line 191) | focus() {
type HTMLElementTagNameMap (line 200) | interface HTMLElementTagNameMap {
type ColorPickerOpts (line 212) | type ColorPickerOpts = Partial<typeof defaultColorPickerOpts>;
function colorPicker (line 217) | function colorPicker(opts?: ColorPickerOpts): KnobUi<string> {
type TextInputOptions (line 243) | interface TextInputOptions<T> {
function textInput (line 262) | function textInput<T>(options?: TextInputOptions<T>): KnobUi<T> {
type NumberInputOpts (line 297) | type NumberInputOpts = Partial<typeof defaultNumberInputOpts>;
function numberInput (line 302) | function numberInput(opts?: NumberInputOpts): KnobUi<number> {
function button (line 336) | function button(): KnobUi<number> {
type RadioSelectorConfig (line 353) | interface RadioSelectorConfig<T extends string> {
function radioSelector (line 362) | function radioSelector<T extends string>({
type SelectDropdownConfig (line 388) | interface SelectDropdownConfig<T extends string> {
function selectDropdown (line 396) | function selectDropdown<T extends string>({
function cssCustomProperty (line 432) | function cssCustomProperty(
function setProp (line 450) | function setProp(selector: string) {
FILE: catalog/stories/components/stories-renderer.ts
class StoriesRenderer (line 23) | class StoriesRenderer extends LitElement {
method render (line 74) | override render() {
method renderStories (line 91) | private renderStories(stories: Story[]): TemplateResult[] {
method renderKnobs (line 114) | private renderKnobs(collection: Collection) {
method connectedCallback (line 139) | override connectedCallback() {
method disconnectedCallback (line 146) | override disconnectedCallback() {
method updateObservedKnobs (line 164) | private updateObservedKnobs() {
method getStoriesToRender (line 178) | private getStoriesToRender(collection: Collection): Story[] {
method unobserveKnobs (line 200) | private unobserveKnobs() {
type HTMLElementTagNameMap (line 215) | interface HTMLElementTagNameMap {
FILE: catalog/stories/components/story-knob-panel.ts
constant DEFAULT_DIMENSIONS (line 19) | const DEFAULT_DIMENSIONS = {
class StoryKnobPanel (line 31) | class StoryKnobPanel extends LitElement {
method update (line 50) | override update(changed: PropertyValues) {
method render (line 68) | override render() {
method updated (line 124) | override updated(changed: PropertyValues) {
method close (line 138) | close() {
method show (line 142) | show() {
method onDragIconClick (line 146) | private onDragIconClick() {
method onDragStart (line 150) | private onDragStart(event: PointerEvent) {
method onDrag (line 158) | private onDrag(event: PointerEvent) {
method onDragEnd (line 168) | private onDragEnd(event: PointerEvent) {
method translatePos (line 177) | private translatePos(x: number, y: number) {
type HTMLElementTagNameMap (line 350) | interface HTMLElementTagNameMap {
FILE: catalog/stories/components/story-renderer.ts
class StoryRenderer (line 18) | class StoryRenderer extends LitElement {
method updated (line 29) | override updated(propertiesChanged: PropertyValues) {
method firstUpdated (line 42) | override firstUpdated(changedProperties: PropertyValues) {
method connectedCallback (line 50) | override connectedCallback() {
method disconnectedCallback (line 58) | override disconnectedCallback() {
method dispose (line 67) | dispose() {
method renderComplete (line 77) | get renderComplete() {
type HTMLElementTagNameMap (line 87) | interface HTMLElementTagNameMap {
FILE: catalog/stories/knobs.ts
type KnobInit (line 13) | interface KnobInit<T> {
class Knob (line 32) | class Knob<T, Name extends string = string> extends EventTarget {
method constructor (line 60) | constructor(readonly name: Name, init: KnobInit<T>) {
method isUnset (line 68) | get isUnset() {
method uiTemplate (line 72) | get uiTemplate(): TemplateResult {
method getKnobUiTemplate (line 76) | getKnobUiTemplate(): TemplateResult {
method connectWiring (line 84) | connectWiring(containerOfRenderedStory: HTMLElement | DocumentFragment) {
method disconnectWiring (line 105) | disconnectWiring(containerOfRenderedStory: HTMLElement | DocumentFragm...
method imperativelySet (line 109) | imperativelySet(newValue: T) {
method reset (line 116) | reset() {
type PolymorphicArrayOfKnobs (line 124) | type PolymorphicArrayOfKnobs = ReadonlyArray<Knob<any>>;
type KnobKeys (line 134) | type KnobKeys<Knobs extends PolymorphicArrayOfKnobs> = Knobs[number]['na...
type TypeOfKnobWithName (line 146) | type TypeOfKnobWithName<
class KnobValues (line 154) | class KnobValues<
method constructor (line 159) | constructor(knobsArray: PolymorphicArrayOfKnobs) {
method get (line 178) | get<SearchName extends KnobKeys<Knobs>>(
method set (line 187) | set<SearchName extends KnobKeys<Knobs>>(
method names (line 201) | names<SearchName extends KnobKeys<Knobs>>() {
method reset (line 208) | reset() {
method empty (line 215) | get empty(): boolean {
method connectWiring (line 226) | connectWiring(container: HTMLElement | DocumentFragment) {
method disconnectWiring (line 241) | disconnectWiring(container: HTMLElement | DocumentFragment) {
method renderUI (line 252) | renderUI(): TemplateResult {
type KnobUi (line 265) | interface KnobUi<T> {
type KnobWiring (line 294) | interface KnobWiring<T> {
FILE: catalog/stories/material-collection.ts
function title (line 32) | function title(): KnobUi<void> {
type KnobTypesToKnobs (line 54) | type KnobTypesToKnobs<
type MaterialStoryInit (line 86) | interface MaterialStoryInit<T extends {[name: string]: any}> {
function materialInitsToStoryInits (line 96) | function materialInitsToStoryInits<T extends {[name: string]: any}>(
function setUpDemo (line 118) | function setUpDemo(collection: LitCollection): void {
FILE: catalog/stories/story.ts
type BaseStoryInit (line 16) | interface BaseStoryInit {
type GenericKnobValues (line 24) | type GenericKnobValues = KnobValues<PolymorphicArrayOfKnobs>;
type StoryInit (line 27) | interface StoryInit<KV extends GenericKnobValues = GenericKnobValues>
class StoryImpl (line 33) | class StoryImpl<
method styles (line 45) | get styles() {
method constructor (line 53) | constructor(init: StoryInit, private readonly collection: Collection) {
type Story (line 100) | type Story<
class Collection (line 114) | class Collection<
method constructor (line 122) | constructor(readonly name: string, knobs: T = [] as unknown as T) {
method stories (line 133) | get stories(): Array<Story<T>> {
method tree (line 145) | get tree(): ReadonlyMap<string, Story<T> | Collection<T>> {
method byName (line 149) | static get byName(): ReadonlyMap<string, Collection> {
method addStories (line 153) | addStories(...inits: ReadonlyArray<StoryInit<KnobValues<T>>>) {
method applyStyle (line 169) | applyStyle(customStyle: CSSResult) {
type LitStoryInit (line 177) | interface LitStoryInit<
function isLitStoryInit (line 184) | function isLitStoryInit(init: Partial<LitStoryInit>): init is LitStoryIn...
class LitCollection (line 191) | class LitCollection<
method addStories (line 194) | override addStories(
FILE: catalog/stories/theme-loader.ts
function applyTheme (line 20) | function applyTheme(theme: string) {
FILE: checkbox/checkbox.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdCheckbox (line 33) | class MdCheckbox extends Checkbox {
FILE: checkbox/checkbox_test.ts
method assertValue (line 28) | assertValue(formData) {
method assertValue (line 37) | assertValue(formData) {
method assertValue (line 47) | assertValue(formData) {
method assertValue (line 58) | assertValue(formData) {
method assertValue (line 69) | assertValue(formData) {
method assertValue (line 79) | assertValue(formData) {
method change (line 90) | change(checkbox) {
method assertReset (line 93) | assertReset(checkbox) {
method change (line 103) | change(checkbox) {
method assertReset (line 106) | assertReset(checkbox) {
method change (line 116) | change(checkbox) {
method assertReset (line 119) | assertReset(checkbox) {
method assertRestored (line 130) | assertRestored(checkbox) {
method assertRestored (line 140) | assertRestored(checkbox) {
method assertRestored (line 150) | assertRestored(checkbox) {
FILE: checkbox/demo/stories.ts
type StoryKnobs (line 16) | interface StoryKnobs {
method render (line 24) | render({checked, disabled, indeterminate}) {
method render (line 56) | render({disabled}) {
FILE: checkbox/harness.ts
class CheckboxHarness (line 14) | class CheckboxHarness extends Harness<Checkbox> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
FILE: checkbox/internal/checkbox.ts
class Checkbox (line 52) | class Checkbox extends checkboxBaseClass {
method constructor (line 91) | constructor() {
method update (line 104) | protected override update(changed: PropertyValues<Checkbox>) {
method render (line 119) | protected override render() {
method handleInput (line 169) | private handleInput(event: Event) {
method handleChange (line 176) | private handleChange(event: Event) {
method [getFormValue] (line 185) | override [getFormValue]() {
method [getFormState] (line 193) | override [getFormState]() {
method formResetCallback (line 197) | override formResetCallback() {
method formStateRestoreCallback (line 203) | override formStateRestoreCallback(state: string) {
method [createValidator] (line 207) | override [createValidator]() {
method [getValidityAnchor] (line 211) | override [getValidityAnchor]() {
FILE: checkbox/internal/checkbox_test.ts
type HTMLElementTagNameMap (line 17) | interface HTMLElementTagNameMap {
function setupTest (line 25) | async function setupTest(
function setupFormTest (line 188) | async function setupFormTest(propsInit: Partial<Checkbox> = {}) {
function setupLabelTest (line 233) | async function setupLabelTest() {
FILE: chips/assist-chip.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdAssistChip (line 28) | class MdAssistChip extends AssistChip {
FILE: chips/chip-set.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdChipSet (line 26) | class MdChipSet extends ChipSet {
FILE: chips/demo/stories.ts
type StoryKnobs (line 19) | interface StoryKnobs {
constant GOOGLE_LOGO (line 26) | const GOOGLE_LOGO = svg`
method render (line 49) | render({label, elevated, disabled, scrolling}) {
method render (line 77) | render({label, elevated, disabled, scrolling}) {
method render (line 106) | render({label, disabled, scrolling}) {
method render (line 140) | render({label, elevated, disabled, scrolling}) {
FILE: chips/filter-chip.ts
type HTMLElementTagNameMap (line 18) | interface HTMLElementTagNameMap {
class MdFilterChip (line 30) | class MdFilterChip extends FilterChip {
FILE: chips/harness.ts
class ChipHarness (line 14) | class ChipHarness extends Harness<Chip> {
method getInteractiveElement (line 17) | protected override async getInteractiveElement() {
FILE: chips/input-chip.ts
type HTMLElementTagNameMap (line 17) | interface HTMLElementTagNameMap {
class MdInputChip (line 29) | class MdInputChip extends InputChip {
FILE: chips/internal/assist-chip.ts
class AssistChip (line 19) | class AssistChip extends Chip {
method primaryId (line 30) | protected get primaryId() {
method rippleDisabled (line 34) | protected override get rippleDisabled() {
method getContainerClasses (line 39) | protected override getContainerClasses() {
method renderPrimaryAction (line 49) | protected override renderPrimaryAction(content: unknown) {
method renderOutline (line 78) | protected override renderOutline() {
FILE: chips/internal/assist-chip_test.ts
function setupTest (line 20) | async function setupTest() {
FILE: chips/internal/chip-set.ts
class ChipSet (line 15) | class ChipSet extends LitElement {
method chips (line 16) | get chips() {
method constructor (line 27) | constructor() {
method render (line 37) | protected override render() {
method handleKeyDown (line 41) | private handleKeyDown(event: KeyboardEvent) {
method updateTabIndices (line 115) | private updateTabIndices() {
type MaybeMultiActionChip (line 145) | interface MaybeMultiActionChip extends Chip {
FILE: chips/internal/chip-set_test.ts
class TestChipSet (line 21) | @customElement('test-chip-set')
class TestAssistChip (line 23) | @customElement('test-chip-set-assist-chip')
class TestInputChip (line 25) | @customElement('test-chip-set-input-chip')
function setupTest (line 31) | async function setupTest(children: Node[]) {
function testNavigation (line 78) | async function testNavigation({
FILE: chips/internal/chip.ts
method rippleDisabled (line 88) | protected get rippleDisabled() {
method constructor (line 92) | constructor() {
method focus (line 99) | override focus(options?: FocusOptions) {
method render (line 107) | protected override render() {
method updated (line 115) | protected override updated(changed: PropertyValues<Chip>) {
method getContainerClasses (line 121) | protected getContainerClasses(): ClassInfo {
method renderContainerContent (line 128) | protected renderContainerContent() {
method renderOutline (line 139) | protected renderOutline() {
method renderLeadingIcon (line 143) | protected renderLeadingIcon(): TemplateResult {
method renderPrimaryContent (line 149) | private renderPrimaryContent() {
method handleIconChange (line 163) | private handleIconChange(event: Event) {
method handleClick (line 168) | private handleClick(event: Event) {
FILE: chips/internal/chip_test.ts
class TestChip (line 17) | @customElement('test-chip')
method renderPrimaryAction (line 21) | override renderPrimaryAction() {
function setupTest (line 29) | async function setupTest() {
FILE: chips/internal/filter-chip.ts
class FilterChip (line 23) | class FilterChip extends MultiActionChip {
method primaryId (line 37) | protected get primaryId() {
method getContainerClasses (line 46) | protected override getContainerClasses() {
method renderPrimaryAction (line 56) | protected override renderPrimaryAction(content: unknown) {
method renderLeadingIcon (line 72) | protected override renderLeadingIcon() {
method renderTrailingAction (line 87) | protected override renderTrailingAction(focusListener: EventListener) {
method renderOutline (line 99) | protected override renderOutline() {
method handleClickOnChild (line 107) | private handleClickOnChild(event: MouseEvent) {
FILE: chips/internal/filter-chip_test.ts
class TestFilterChip (line 17) | @customElement('test-filter-chip')
function setupTest (line 25) | async function setupTest() {
FILE: chips/internal/input-chip.ts
class InputChip (line 20) | class InputChip extends MultiActionChip {
method primaryId (line 27) | protected get primaryId() {
method rippleDisabled (line 39) | protected override get rippleDisabled() {
method primaryAction (line 44) | protected get primaryAction() {
method getContainerClasses (line 57) | protected override getContainerClasses() {
method renderPrimaryAction (line 69) | protected override renderPrimaryAction(content: unknown) {
method renderTrailingAction (line 105) | protected override renderTrailingAction(focusListener: EventListener) {
FILE: chips/internal/input-chip_test.ts
function setupTest (line 20) | async function setupTest() {
FILE: chips/internal/multi-action-chip.ts
constant ARIA_LABEL_REMOVE (line 13) | const ARIA_LABEL_REMOVE = 'aria-label-remove';
method ariaLabelRemove (line 19) | get ariaLabelRemove(): string | null {
method ariaLabelRemove (line 34) | set ariaLabelRemove(ariaLabel: string | null) {
method constructor (line 52) | constructor() {
method focus (line 60) | override focus(options?: FocusOptions & {trailing?: boolean}) {
method renderContainerContent (line 70) | protected override renderContainerContent() {
method handleKeyDown (line 81) | private handleKeyDown(event: KeyboardEvent) {
method handleTrailingActionFocus (line 113) | private handleTrailingActionFocus() {
FILE: chips/internal/multi-action-chip_test.ts
class TestMultiActionChip (line 18) | @customElement('test-multi-action-chip')
method renderPrimaryAction (line 32) | protected override renderPrimaryAction(content: unknown) {
method renderTrailingAction (line 36) | protected override renderTrailingAction(focusListener: EventListener) {
function setupTest (line 52) | async function setupTest(
function getSlotTextContent (line 312) | function getSlotTextContent(slot: HTMLSlotElement) {
function getA11yLabelForChipRemoveButton (line 328) | function getA11yLabelForChipRemoveButton(chip: TestMultiActionChip): str...
FILE: chips/internal/suggestion-chip.ts
class SuggestionChip (line 12) | class SuggestionChip extends AssistChip {}
FILE: chips/internal/trailing-icons.ts
type RemoveButtonProperties (line 14) | interface RemoveButtonProperties {
function renderRemoveButton (line 22) | function renderRemoveButton({
function handleRemoveClick (line 55) | function handleRemoveClick(this: Chip, event: Event) {
FILE: chips/suggestion-chip.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdSuggestionChip (line 28) | class MdSuggestionChip extends SuggestionChip {
FILE: dialog/demo/stories.ts
type StoryKnobs (line 21) | interface StoryKnobs {
function showDialog (line 29) | function showDialog(event: Event) {
method render (line 35) | render({icon, headline, supportingText, quick, noFocusTrap}) {
method render (line 61) | render({quick, noFocusTrap}) {
method render (line 83) | render({quick, noFocusTrap}) {
method render (line 120) | render({quick, noFocusTrap}) {
method render (line 195) | render({quick, noFocusTrap}) {
method render (line 237) | render({quick, noFocusTrap}) {
FILE: dialog/dialog.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdDialog (line 47) | class MdDialog extends Dialog {
FILE: dialog/dialog_test.ts
function setupTest (line 18) | async function setupTest() {
function disableDialogAnimations (line 262) | function disableDialogAnimations(dialog: MdDialog) {
FILE: dialog/harness.ts
class DialogHarness (line 14) | class DialogHarness extends Harness<Dialog> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
FILE: dialog/internal/animations.ts
type DialogAnimationArgs (line 12) | type DialogAnimationArgs = Parameters<Element['animate']>;
type DialogAnimation (line 18) | interface DialogAnimation {
constant DIALOG_DEFAULT_OPEN_ANIMATION (line 52) | const DIALOG_DEFAULT_OPEN_ANIMATION: DialogAnimation = {
constant DIALOG_DEFAULT_CLOSE_ANIMATION (line 109) | const DIALOG_DEFAULT_CLOSE_ANIMATION: DialogAnimation = {
FILE: dialog/internal/dialog.ts
class Dialog (line 37) | class Dialog extends dialogBaseClass {
method open (line 46) | get open() {
method open (line 50) | set open(open: boolean) {
method constructor (line 159) | constructor() {
method show (line 176) | async show() {
method close (line 225) | async close(returnValue = this.returnValue) {
method connectedCallback (line 257) | override connectedCallback() {
method disconnectedCallback (line 262) | override disconnectedCallback() {
method render (line 267) | protected override render() {
method firstUpdated (line 333) | protected override firstUpdated() {
method handleDialogClick (line 347) | private handleDialogClick() {
method handleContentClick (line 367) | private handleContentClick() {
method handleSubmit (line 371) | private handleSubmit(event: SubmitEvent) {
method handleCancel (line 383) | private handleCancel(event: Event) {
method handleClose (line 401) | private handleClose() {
method handleKeydown (line 410) | private handleKeydown(event: KeyboardEvent) {
method animateDialog (line 425) | private async animateDialog(animation: DialogAnimation) {
method handleHeadlineChange (line 480) | private handleHeadlineChange(event: Event) {
method handleActionsChange (line 485) | private handleActionsChange(event: Event) {
method handleIconChange (line 490) | private handleIconChange(event: Event) {
method handleAnchorIntersection (line 495) | private handleAnchorIntersection(entry: IntersectionObserverEntry) {
method getIsConnectedPromise (line 506) | private getIsConnectedPromise() {
method handleFocusTrapFocus (line 512) | private handleFocusTrapFocus(event: FocusEvent) {
method getFirstAndLastFocusableChildren (line 563) | private getFirstAndLastFocusableChildren():
function isFocusable (line 598) | function isFocusable(element: Element): element is HTMLElement {
FILE: divider/demo/stories.ts
type StoryKnobs (line 14) | interface StoryKnobs {
method render (line 39) | render(knobs) {
FILE: divider/divider.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdDivider (line 30) | class MdDivider extends Divider {
FILE: divider/internal/divider.ts
class Divider (line 13) | class Divider extends LitElement {
FILE: elevation/demo/stories.ts
type StoryKnobs (line 13) | interface StoryKnobs {
method render (line 67) | render({level}) {
method render (line 81) | render() {
FILE: elevation/elevation.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdElevation (line 28) | class MdElevation extends Elevation {
FILE: elevation/internal/elevation.ts
class Elevation (line 12) | class Elevation extends LitElement {
method connectedCallback (line 13) | override connectedCallback() {
method render (line 20) | protected override render() {
FILE: fab/branded-fab.ts
type HTMLElementTagNameMap (line 18) | interface HTMLElementTagNameMap {
class MdBrandedFab (line 52) | class MdBrandedFab extends Fab {
method getRenderClasses (line 58) | override getRenderClasses() {
FILE: fab/demo/stories.ts
type StoryKnobs (line 19) | interface StoryKnobs {
method render (line 42) | render({icon, label, lowered, size}) {
FILE: fab/fab.ts
type HTMLElementTagNameMap (line 19) | interface HTMLElementTagNameMap {
class MdFab (line 52) | class MdFab extends Fab {
FILE: fab/fab_test.ts
function setupTest (line 21) | async function setupTest() {
function setupTest (line 158) | async function setupTest() {
FILE: fab/harness.ts
class FabHarness (line 14) | class FabHarness extends Harness<Fab> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
FILE: fab/internal/fab.ts
type FabVariant (line 14) | type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';
class Fab (line 17) | class Fab extends SharedFab {
method getRenderClasses (line 23) | protected override getRenderClasses() {
FILE: fab/internal/shared.ts
type FabSize (line 21) | type FabSize = 'medium' | 'small' | 'large';
method render (line 52) | protected override render() {
method getRenderClasses (line 67) | protected getRenderClasses() {
method renderTouchTarget (line 77) | private renderTouchTarget() {
method renderLabel (line 81) | private renderLabel() {
method renderIcon (line 85) | private renderIcon() {
FILE: field/demo/stories.ts
type StoryKnobs (line 16) | interface StoryKnobs {
constant START_CONTENT (line 33) | const START_CONTENT = html`<md-icon slot="start">search</md-icon>`;
constant END_CONTENT (line 34) | const END_CONTENT = html`<md-icon slot="end">event</md-icon>`;
method render (line 46) | render(knobs) {
method render (line 95) | render(knobs) {
FILE: field/filled-field.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdFilledField (line 26) | class MdFilledField extends FilledField {
FILE: field/harness.ts
class FieldHarness (line 14) | class FieldHarness extends Harness<Field> {
method focusWithKeyboard (line 15) | override async focusWithKeyboard(init: KeyboardEventInit = {}) {
method focusWithPointer (line 20) | override async focusWithPointer() {
method blur (line 25) | override async blur() {
method getInteractiveElement (line 30) | protected override async getInteractiveElement() {
FILE: field/internal/field.ts
class Field (line 23) | class Field extends LitElement {
method counterText (line 50) | private get counterText() {
method supportingOrErrorText (line 63) | private get supportingOrErrorText() {
method reannounceError (line 88) | reannounceError() {
method update (line 92) | protected override update(props: PropertyValues<Field>) {
method render (line 115) | protected override render() {
method updated (line 160) | protected override updated(changed: PropertyValues<Field>) {
method renderSupportingText (line 190) | private renderSupportingText() {
method updateSlottedAriaDescribedBy (line 220) | private updateSlottedAriaDescribedBy() {
method renderLabel (line 227) | private renderLabel(isFloating: boolean) {
method animateLabelIfNeeded (line 260) | private animateLabelIfNeeded({
method getLabelKeyframes (line 310) | private getLabelKeyframes() {
method getSurfacePositionClientRect (line 372) | getSurfacePositionClientRect() {
FILE: field/internal/field_test.ts
type HTMLElementTagNameMap (line 18) | interface HTMLElementTagNameMap {
class TestField (line 23) | @customElement('md-test-field')
method labelText (line 25) | get labelText() {
method supportingTextContent (line 29) | get supportingTextContent() {
method didErrorAnnounce (line 33) | didErrorAnnounce() {
method renderOutline (line 42) | protected override renderOutline(floatingLabel: TemplateResult) {
function setupTest (line 50) | async function setupTest(props: Partial<Field> = {}) {
FILE: field/internal/filled-field.ts
class FilledField (line 14) | class FilledField extends Field {
method renderBackground (line 15) | protected override renderBackground() {
method renderStateLayer (line 19) | protected override renderStateLayer() {
method renderIndicator (line 23) | protected override renderIndicator() {
FILE: field/internal/outlined-field.ts
class OutlinedField (line 14) | class OutlinedField extends Field {
method renderOutline (line 15) | protected override renderOutline(floatingLabel: unknown) {
FILE: field/outlined-field.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedField (line 26) | class MdOutlinedField extends OutlinedField {
FILE: focus/demo/stories.ts
type StoryKnobs (line 13) | interface StoryKnobs {
method render (line 46) | render({inward}) {
method render (line 117) | render({inward}) {
FILE: focus/internal/focus-ring.ts
constant EVENTS (line 18) | const EVENTS = ['focusin', 'focusout', 'pointerdown'];
class FocusRing (line 25) | class FocusRing extends LitElement implements Attachable {
method htmlFor (line 36) | get htmlFor() {
method htmlFor (line 40) | set htmlFor(htmlFor: string | null) {
method control (line 44) | get control() {
method control (line 47) | set control(control: HTMLElement | null) {
method attach (line 56) | attach(control: HTMLElement) {
method detach (line 60) | detach() {
method connectedCallback (line 64) | override connectedCallback() {
method handleEvent (line 72) | handleEvent(event: FocusRingEvent) {
method onControlChange (line 94) | private onControlChange(prev: HTMLElement | null, next: HTMLElement | ...
method update (line 103) | override update(changed: PropertyValues<FocusRing>) {
constant HANDLED_BY_FOCUS_RING (line 113) | const HANDLED_BY_FOCUS_RING = Symbol('handledByFocusRing');
type FocusRingEvent (line 115) | interface FocusRingEvent extends Event {
FILE: focus/internal/focus-ring_test.ts
type HTMLElementTagNameMap (line 19) | interface HTMLElementTagNameMap {
function setupTest (line 27) | function setupTest(template: TemplateResult) {
FILE: focus/md-focus-ring.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdFocusRing (line 26) | class MdFocusRing extends FocusRing {
FILE: icon/icon.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdIcon (line 24) | class MdIcon extends Icon {
FILE: icon/internal/icon.ts
class Icon (line 12) | class Icon extends LitElement {
method render (line 13) | protected override render() {
method connectedCallback (line 17) | override connectedCallback() {
FILE: iconbutton/demo/stories.ts
type StoryKnobs (line 18) | interface StoryKnobs {
method render (line 48) | render({icon, disabled, softDisabled}) {
method render (line 98) | render({icon, selectedIcon, disabled, softDisabled}) {
method render (line 162) | render({icon}) {
FILE: iconbutton/filled-icon-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdFilledIconButton (line 39) | class MdFilledIconButton extends IconButton {
method getRenderClasses (line 42) | protected override getRenderClasses() {
FILE: iconbutton/filled-tonal-icon-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdFilledTonalIconButton (line 39) | class MdFilledTonalIconButton extends IconButton {
method getRenderClasses (line 42) | protected override getRenderClasses() {
FILE: iconbutton/harness.ts
class IconButtonHarness (line 14) | class IconButtonHarness extends Harness<IconButton> {
method getInteractiveElement (line 15) | protected override async getInteractiveElement() {
FILE: iconbutton/icon-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdIconButton (line 39) | class MdIconButton extends IconButton {
method getRenderClasses (line 42) | protected override getRenderClasses() {
FILE: iconbutton/icon-button_test.ts
constant ICON_BUTTON_TEMPLATE (line 18) | const ICON_BUTTON_TEMPLATE = html`
constant LINK_ICON_BUTTON_TEMPLATE (line 23) | const LINK_ICON_BUTTON_TEMPLATE = html`
constant ICON_BUTTON_TOGGLE_TEMPLATE (line 28) | const ICON_BUTTON_TOGGLE_TEMPLATE = html`
type IconButtonInternals (line 35) | interface IconButtonInternals {
function setUpTest (line 277) | async function setUpTest(type: string) {
FILE: iconbutton/internal/icon-button.ts
type LinkTarget (line 26) | type LinkTarget = '_blank' | '_parent' | '_self' | '_top';
class IconButton (line 40) | class IconButton extends iconButtonBaseClass {
method constructor (line 105) | constructor() {
method willUpdate (line 139) | protected override willUpdate() {
method render (line 147) | protected override render() {
method renderLink (line 177) | private renderLink() {
method getRenderClasses (line 193) | protected getRenderClasses() {
method renderIcon (line 200) | private renderIcon() {
method renderSelectedIcon (line 204) | private renderSelectedIcon() {
method renderTouchTarget (line 211) | private renderTouchTarget() {
method renderFocusRing (line 215) | private renderFocusRing() {
method renderRipple (line 222) | private renderRipple() {
method connectedCallback (line 230) | override connectedCallback() {
FILE: iconbutton/outlined-icon-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedIconButton (line 39) | class MdOutlinedIconButton extends IconButton {
method getRenderClasses (line 42) | protected override getRenderClasses() {
FILE: internal/aria/aria.ts
type ARIAProperty (line 10) | type ARIAProperty = keyof ARIAMixin;
constant ARIA_PROPERTIES (line 15) | const ARIA_PROPERTIES: ARIAProperty[] = [
type ARIAAttribute (line 59) | type ARIAAttribute = ARIAPropertyToAttribute<ARIAProperty>;
constant ARIA_ATTRIBUTES (line 64) | const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);
function isAriaAttribute (line 75) | function isAriaAttribute(attribute: string): attribute is ARIAAttribute {
function ariaPropertyToAttribute (line 88) | function ariaPropertyToAttribute<K extends ARIAProperty>(property: K) {
type ARIAPropertyToAttribute (line 99) | type ARIAPropertyToAttribute<K extends string> =
type ARIAMixinStrict (line 122) | interface ARIAMixinStrict extends ARIAMixin {
type ARIARole (line 182) | type ARIARole =
FILE: internal/aria/delegate.ts
function mixinDelegatesAria (line 67) | function mixinDelegatesAria<T extends MixinBase<LitElement>>(
function setupDelegatesAriaProperties (line 145) | function setupDelegatesAriaProperties(ctor: typeof ReactiveElement) {
function ariaAttributeToDataAttribute (line 196) | function ariaAttributeToDataAttribute(ariaAttribute: string) {
function ariaAttributeToDataProperty (line 201) | function ariaAttributeToDataProperty(ariaAttribute: string) {
FILE: internal/aria/delegate_test.ts
type HTMLElementTagNameMap (line 18) | interface HTMLElementTagNameMap {
class DelegatesAriaElement (line 26) | @customElement('test-delegates-aria')
method render (line 31) | protected override render() {
function getOuterHTMLAttribute (line 49) | function getOuterHTMLAttribute(
function setupTest (line 59) | async function setupTest(templateWithTestAriaDelegate: TemplateResult) {
FILE: internal/controller/attachable-controller.ts
type Attachable (line 12) | interface Attachable {
constant ATTACHABLE_CONTROLLER (line 66) | const ATTACHABLE_CONTROLLER = Symbol('attachableController');
type AttachableControllerHost (line 72) | interface AttachableControllerHost extends ReactiveControllerHost, HTMLE...
constant FOR_ATTRIBUTE_OBSERVER (line 76) | let FOR_ATTRIBUTE_OBSERVER: MutationObserver | undefined;
class AttachableController (line 116) | class AttachableController implements ReactiveController, Attachable {
method htmlFor (line 117) | get htmlFor() {
method htmlFor (line 121) | set htmlFor(htmlFor: string | null) {
method control (line 129) | get control() {
method control (line 142) | set control(control: HTMLElement | null) {
method constructor (line 160) | constructor(
method attach (line 172) | attach(control: HTMLElement) {
method detach (line 183) | detach() {
method hostConnected (line 191) | hostConnected() {
method hostDisconnected (line 196) | hostDisconnected() {
method setCurrentControl (line 200) | private setCurrentControl(control: HTMLElement | null) {
FILE: internal/controller/is-rtl.ts
function isRtl (line 15) | function isRtl(el: HTMLElement, shouldCheck = true) {
FILE: internal/controller/is-rtl_test.ts
function setDirection (line 5) | function setDirection(node: HTMLElement, rtl: boolean) {
FILE: internal/controller/string-converter.ts
method fromAttribute (line 8) | fromAttribute(value: string | null): string {
method toAttribute (line 11) | toAttribute(value: string): string | null {
FILE: internal/events/dispatch-hooks.ts
type EventWithDispatchHooks (line 15) | interface EventWithDispatchHooks extends Event {
function afterDispatch (line 74) | function afterDispatch(event: Event, callback: () => void) {
constant ELEMENT_DISPATCH_HOOK_TYPES (line 88) | const ELEMENT_DISPATCH_HOOK_TYPES = new WeakMap<Element, Set<string>>();
function setupDispatchHooks (line 113) | function setupDispatchHooks(
FILE: internal/events/form-label-activation.ts
function dispatchActivationClick (line 27) | function dispatchActivationClick(element: HTMLElement) {
function isActivationClick (line 61) | function isActivationClick(event: Event) {
function squelchEvent (line 81) | function squelchEvent(event: Event) {
function squelchEventsForMicrotask (line 93) | async function squelchEventsForMicrotask() {
FILE: internal/events/redispatch-event.ts
function redispatchEvent (line 28) | function redispatchEvent(element: Element, event: Event) {
FILE: internal/motion/animation.ts
constant EASING (line 14) | const EASING = {
type AnimationSignal (line 26) | interface AnimationSignal {
function createAnimationSignal (line 73) | function createAnimationSignal(): AnimationSignal {
function createThrottle (line 98) | function createThrottle() {
function msFromTimeCSSValue (line 121) | function msFromTimeCSSValue(value: string) {
FILE: labs/badge/badge.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdBadge (line 24) | class MdBadge extends Badge {
FILE: labs/badge/internal/badge.ts
class Badge (line 14) | class Badge extends LitElement {
method render (line 17) | protected override render() {
FILE: labs/behaviors/constraint-validation.ts
type ConstraintValidation (line 19) | interface ConstraintValidation extends FormAssociated {
function mixinConstraintValidation (line 151) | function mixinConstraintValidation<
FILE: labs/behaviors/constraint-validation_test.ts
class TestConstraintValidation (line 26) | @customElement('test-constraint-validation')
method render (line 31) | override render() {
method [createValidator] (line 35) | override [createValidator]() {
method [getValidityAnchor] (line 39) | override [getValidityAnchor]() {
method [getFormValue] (line 43) | override [getFormValue]() {
FILE: labs/behaviors/custom-state-set.ts
type WithCustomStateSet (line 63) | interface WithCustomStateSet {
function mixinCustomStateSet (line 118) | function mixinCustomStateSet<
FILE: labs/behaviors/custom-state-set_test.ts
class PolyfilledCustomStateSet (line 20) | class PolyfilledCustomStateSet {
method constructor (line 23) | constructor(private readonly ref: HTMLElement) {}
method has (line 25) | has(state: string): boolean {
method add (line 29) | add(state: string): this {
method delete (line 40) | delete(state: string): boolean {
class TestCustomStateSet (line 47) | @customElement('test-custom-state-set')
method constructor (line 53) | constructor() {
FILE: labs/behaviors/element-internals.ts
type WithElementInternals (line 34) | interface WithElementInternals {
function mixinElementInternals (line 53) | function mixinElementInternals<T extends MixinBase<LitElement>>(
FILE: labs/behaviors/element-internals_test.ts
class TestElementInternals (line 17) | @customElement('test-element-internals')
function setupTest (line 22) | async function setupTest() {
FILE: labs/behaviors/focusable.ts
type Focusable (line 15) | interface Focusable {
function mixinFocusable (line 50) | function mixinFocusable<T extends MixinBase<LitElement>>(
FILE: labs/behaviors/focusable_test.ts
class TestFocusable (line 19) | @customElement('test-focusable')
function setupTest (line 24) | async function setupTest() {
FILE: labs/behaviors/form-associated.ts
type FormAssociated (line 27) | interface FormAssociated {
type FormAssociatedConstructor (line 111) | interface FormAssociatedConstructor {
function mixinFormAssociated (line 206) | function mixinFormAssociated<
type FormValue (line 307) | type FormValue = File | string | FormData;
type FormRestoreState (line 314) | type FormRestoreState =
type FormRestoreReason (line 323) | type FormRestoreReason = 'restore' | 'autocomplete';
FILE: labs/behaviors/form-associated_test.ts
class TestFormAssociated (line 22) | @customElement('test-form-associated')
method state (line 27) | get state(): 'populated' | 'empty' {
method [getFormValue] (line 33) | override [getFormValue]() {
method [getFormState] (line 37) | override [getFormState]() {
method formResetCallback (line 46) | override formResetCallback() {}
method formStateRestoreCallback (line 47) | override formStateRestoreCallback() {}
function setupTestWithoutForm (line 53) | function setupTestWithoutForm() {
function setupTestWithForm (line 65) | function setupTestWithForm() {
class TestDefaultValueFormAssociated (line 221) | @customElement('test-default-value-form-associated')
FILE: labs/behaviors/form-submitter.ts
type FormSubmitterType (line 26) | type FormSubmitterType = 'button' | 'submit' | 'reset';
type FormSubmitter (line 32) | interface FormSubmitter {
function mixinFormSubmitter (line 76) | function mixinFormSubmitter<
FILE: labs/behaviors/form-submitter_test.ts
type HTMLElementTagNameMap (line 18) | interface HTMLElementTagNameMap {
class FormSubmitterButton (line 23) | @customElement('test-form-submitter-button')
function setupTest (line 33) | async function setupTest() {
FILE: labs/behaviors/mixin.ts
type MixinBase (line 29) | type MixinBase<ExpectedBase = object> = abstract new (
type MixinReturn (line 60) | type MixinReturn<MixinBase, MixinClass = object> =
FILE: labs/behaviors/on-report-validity.ts
type OnReportValidity (line 20) | interface OnReportValidity extends ConstraintValidation {
function mixinOnReportValidity (line 86) | function mixinOnReportValidity<
function addFormReportValidListener (line 251) | function addFormReportValidListener(
constant FORM_VALIDATE_HOOKS (line 330) | const FORM_VALIDATE_HOOKS = new WeakMap<HTMLFormElement, EventTarget>();
function getFormValidateHooks (line 342) | function getFormValidateHooks(form: HTMLFormElement) {
function isFirstInvalidControlInForm (line 384) | function isFirstInvalidControlInForm(
FILE: labs/behaviors/on-report-validity_test.ts
class TestOnReportValidity (line 32) | @customElement('test-on-report-validity')
method render (line 37) | override render() {
method [createValidator] (line 41) | override [createValidator]() {
method [getValidityAnchor] (line 45) | override [getValidityAnchor]() {
method [getFormValue] (line 49) | override [getFormValue]() {
FILE: labs/behaviors/validators/checkbox-validator.ts
type CheckboxState (line 12) | interface CheckboxState {
class CheckboxValidator (line 28) | class CheckboxValidator extends Validator<CheckboxState> {
method computeValidity (line 31) | protected override computeValidity(state: CheckboxState) {
method equals (line 46) | protected override equals(prev: CheckboxState, next: CheckboxState) {
method copy (line 50) | protected override copy({checked, required}: CheckboxState) {
FILE: labs/behaviors/validators/radio-validator.ts
type RadioState (line 12) | interface RadioState {
type RadioGroupState (line 27) | type RadioGroupState = readonly [RadioState, ...RadioState[]];
class RadioValidator (line 33) | class RadioValidator extends Validator<RadioGroupState> {
method computeValidity (line 36) | protected override computeValidity(states: RadioGroupState) {
method equals (line 71) | protected override equals(
method copy (line 90) | protected override copy(states: RadioGroupState): RadioGroupState {
FILE: labs/behaviors/validators/select-validator.ts
type SelectState (line 14) | interface SelectState {
class SelectValidator (line 30) | class SelectValidator extends Validator<SelectState> {
method computeValidity (line 33) | protected override computeValidity(state: SelectState) {
method equals (line 49) | protected override equals(prev: SelectState, next: SelectState) {
method copy (line 53) | protected override copy({value, required}: SelectState) {
FILE: labs/behaviors/validators/text-field-validator.ts
type TextFieldState (line 12) | interface TextFieldState {
type InputState (line 39) | interface InputState extends SharedInputAndTextAreaState {
type TextAreaState (line 73) | interface TextAreaState extends SharedInputAndTextAreaState {
type SharedInputAndTextAreaState (line 85) | interface SharedInputAndTextAreaState {
class TextFieldValidator (line 111) | class TextFieldValidator extends Validator<TextFieldState> {
method computeValidity (line 115) | protected override computeValidity({state, renderedControl}: TextField...
method equals (line 210) | protected override equals(
method copy (line 237) | protected override copy({state}: TextFieldState): TextFieldState {
method copyInput (line 248) | private copyInput(state: InputState): InputState {
method copyTextArea (line 260) | private copyTextArea(state: TextAreaState): TextAreaState {
method copySharedState (line 267) | private copySharedState({
function isInputState (line 277) | function isInputState(state: InputState | TextAreaState): state is Input...
FILE: labs/behaviors/validators/text-field-validator_test.ts
type WritableInputState (line 94) | type WritableInputState = {
FILE: labs/behaviors/validators/validator.ts
method constructor (line 40) | constructor(private readonly getCurrentState: () => State) {}
method getValidity (line 52) | getValidity(): ValidityAndMessage {
type ValidityAndMessage (line 125) | interface ValidityAndMessage {
FILE: labs/behaviors/validators/validator_test.ts
type CustomState (line 12) | interface CustomState {
class CustomValidator (line 17) | class CustomValidator extends Validator<CustomState> {
method computeValidity (line 18) | computeValidity({required, value}: CustomState) {
method equals (line 26) | equals(prev: CustomState, next: CustomState) {
method copy (line 30) | copy({value, required}: CustomState) {
FILE: labs/card/demo/stories.ts
type StoryKnobs (line 17) | interface StoryKnobs {}
constant MEDIA_IMAGE (line 19) | const MEDIA_IMAGE =
method render (line 57) | render() {
method render (line 82) | render() {
FILE: labs/card/elevated-card.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdElevatedCard (line 25) | class MdElevatedCard extends Card {
FILE: labs/card/filled-card.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdFilledCard (line 25) | class MdFilledCard extends Card {
FILE: labs/card/internal/card.ts
class Card (line 14) | class Card extends LitElement {
method render (line 15) | protected override render() {
FILE: labs/card/outlined-card.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedCard (line 25) | class MdOutlinedCard extends Card {
FILE: labs/item/demo/stories.ts
type StoryKnobs (line 15) | interface StoryKnobs {
constant LOREM_IPSUM (line 58) | const LOREM_IPSUM =
method render (line 64) | render(knobs) {
method render (line 91) | render(knobs) {
function getKnobContent (line 118) | function getKnobContent(knobs: StoryKnobs, threeLines = false) {
FILE: labs/item/internal/item.ts
class Item (line 13) | class Item extends LitElement {
method render (line 25) | override render() {
method handleTextSlotChange (line 44) | private handleTextSlotChange() {
function slotHasContent (line 64) | function slotHasContent(slot: HTMLSlotElement) {
FILE: labs/item/item.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdItem (line 79) | class MdItem extends Item {
FILE: labs/navigationbar/demo/stories.ts
type StoryKnobs (line 15) | interface StoryKnobs {
method render (line 32) | render(knobs) {
FILE: labs/navigationbar/harness.ts
class NavigationBarHarness (line 15) | class NavigationBarHarness extends Harness<NavigationBar> {
method getInteractiveElement (line 21) | protected override async getInteractiveElement() {
method getTab (line 26) | protected async getTab() {
FILE: labs/navigationbar/internal/constants.ts
type MDCNavigationTabInteractionEventDetail (line 13) | interface MDCNavigationTabInteractionEventDetail {
type NavigationTabInteractionEvent (line 20) | type NavigationTabInteractionEvent =
FILE: labs/navigationbar/internal/navigation-bar.ts
class NavigationBar (line 29) | class NavigationBar
method render (line 43) | protected override render() {
method updated (line 58) | protected override updated(changedProperties: PropertyValues<Navigatio...
method firstUpdated (line 83) | override firstUpdated(changedProperties: PropertyValues) {
method layout (line 88) | layout() {
method handleNavigationTabConnected (line 97) | private handleNavigationTabConnected(event: CustomEvent) {
method handleNavigationTabInteraction (line 104) | private handleNavigationTabInteraction(event: NavigationTabInteraction...
method handleKeydown (line 108) | private handleKeydown(event: KeyboardEvent) {
method onActiveIndexChange (line 154) | private onActiveIndexChange(value: number) {
method onHideInactiveLabelsChange (line 163) | private onHideInactiveLabelsChange(value: boolean) {
FILE: labs/navigationbar/internal/state.ts
type NavigationBarState (line 12) | interface NavigationBarState {
FILE: labs/navigationbar/md-navigation-bar_test.ts
class TestMdNavigationBar (line 18) | @customElement('md-test-navigation-bar')
class TestMdNavigationTab (line 20) | @customElement('md-test-navigation-bar-tab')
type HTMLElementTagNameMap (line 24) | interface HTMLElementTagNameMap {
type NavigationBarProps (line 30) | interface NavigationBarProps {
function setupTest (line 66) | async function setupTest(template = defaultNavBar) {
FILE: labs/navigationbar/navigation-bar.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdNavigationBar (line 24) | class MdNavigationBar extends NavigationBar {
FILE: labs/navigationdrawer/internal/navigation-drawer-modal.ts
class NavigationDrawerModal (line 23) | class NavigationDrawerModal extends navigationDrawerModalBaseClass {
method render (line 27) | protected override render() {
method getScrimClasses (line 53) | private getScrimClasses() {
method getRenderClasses (line 59) | private getRenderClasses() {
method updated (line 66) | protected override updated(
method handleKeyDown (line 82) | private handleKeyDown(event: KeyboardEvent) {
method handleScrimClick (line 88) | private handleScrimClick() {
FILE: labs/navigationdrawer/internal/navigation-drawer.ts
class NavigationDrawer (line 25) | class NavigationDrawer extends navigationDrawerBaseClass {
method render (line 29) | protected override render() {
method getRenderClasses (line 50) | private getRenderClasses() {
method updated (line 57) | protected override updated(
FILE: labs/navigationdrawer/navigation-drawer-modal.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdNavigationDrawerModal (line 24) | class MdNavigationDrawerModal extends NavigationDrawerModal {
FILE: labs/navigationdrawer/navigation-drawer.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdNavigationDrawer (line 24) | class MdNavigationDrawer extends NavigationDrawer {
FILE: labs/navigationtab/harness.ts
class NavigationTabHarness (line 14) | class NavigationTabHarness extends Harness<NavigationTab> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
FILE: labs/navigationtab/internal/navigation-tab.ts
class NavigationTab (line 32) | class NavigationTab
method render (line 46) | protected override render() {
method getRenderClasses (line 72) | private getRenderClasses() {
method renderBadge (line 79) | private renderBadge() {
method renderLabel (line 85) | private renderLabel() {
method firstUpdated (line 98) | override firstUpdated(changedProperties: PropertyValues) {
method focus (line 107) | override focus() {
method blur (line 114) | override blur() {
method handleClick (line 121) | handleClick() {
FILE: labs/navigationtab/internal/state.ts
type NavigationTabState (line 10) | interface NavigationTabState {
FILE: labs/navigationtab/md-navigation-tab_test.ts
class TestNavigationTab (line 15) | @customElement('md-test-navigation-tab')
type HTMLElementTagNameMap (line 19) | interface HTMLElementTagNameMap {
function setupTest (line 27) | async function setupTest() {
FILE: labs/navigationtab/navigation-tab.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdNavigationTab (line 24) | class MdNavigationTab extends NavigationTab {
FILE: labs/segmentedbutton/internal/outlined-segmented-button.ts
class OutlinedSegmentedButton (line 14) | class OutlinedSegmentedButton extends SegmentedButton {
method getRenderClasses (line 15) | protected override getRenderClasses() {
method renderOutline (line 22) | protected override renderOutline() {
FILE: labs/segmentedbutton/internal/segmented-button.ts
class SegmentedButton (line 29) | class SegmentedButton extends segmentedButtonBaseClass {
method update (line 40) | protected override update(props: PropertyValues<SegmentedButton>) {
method nextAnimationState (line 48) | private nextAnimationState(
method handleClick (line 66) | private handleClick() {
method render (line 74) | protected override render() {
method getRenderClasses (line 97) | protected getRenderClasses() {
method renderOutline (line 111) | protected renderOutline(): TemplateResult | typeof nothing {
method renderLeading (line 115) | private renderLeading() {
method renderLeadingWithoutLabel (line 121) | private renderLeadingWithoutLabel() {
method renderLeadingWithLabel (line 139) | private renderLeadingWithLabel() {
method renderLabel (line 157) | private renderLabel() {
method renderTouchTarget (line 163) | private renderTouchTarget() {
FILE: labs/segmentedbutton/outlined-segmented-button.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedSegmentedButton (line 27) | class MdOutlinedSegmentedButton extends OutlinedSegmentedButton {
FILE: labs/segmentedbuttonset/demo/stories.ts
type StoryKnobs (line 15) | interface StoryKnobs {}
method render (line 19) | render() {
method render (line 40) | render() {
method render (line 58) | render() {
method render (line 79) | render() {
method render (line 100) | render() {
method render (line 121) | render() {
method render (line 144) | render() {
FILE: labs/segmentedbuttonset/internal/outlined-segmented-button-set.ts
class OutlinedSegmentedButtonSet (line 12) | class OutlinedSegmentedButtonSet extends SegmentedButtonSet {
method getRenderClasses (line 13) | protected override getRenderClasses() {
FILE: labs/segmentedbuttonset/internal/segmented-button-set.ts
class SegmentedButtonSet (line 27) | class SegmentedButtonSet extends segmentedButtonSetBaseClass {
method getButtonDisabled (line 32) | getButtonDisabled(index: number): boolean {
method setButtonDisabled (line 37) | setButtonDisabled(index: number, disabled: boolean) {
method getButtonSelected (line 42) | getButtonSelected(index: number): boolean {
method setButtonSelected (line 47) | setButtonSelected(index: number, selected: boolean) {
method handleSegmentedButtonInteraction (line 71) | private handleSegmentedButtonInteraction(event: CustomEvent) {
method toggleSelection (line 76) | private toggleSelection(index: number) {
method indexOutOfBounds (line 81) | private indexOutOfBounds(index: number): boolean {
method emitSelectionEvent (line 85) | private emitSelectionEvent(index: number) {
method render (line 99) | protected override render() {
method getRenderClasses (line 113) | protected getRenderClasses() {
FILE: labs/segmentedbuttonset/outlined-segmented-button-set.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedSegmentedButtonSet (line 27) | class MdOutlinedSegmentedButtonSet extends OutlinedSegmentedButtonSet {
FILE: list/demo/stories.ts
type StoryKnobs (line 17) | interface StoryKnobs {
method render (line 38) | render(knobs) {
method render (line 67) | render(knobs) {
function getKnobContent (line 94) | function getKnobContent(knobs: StoryKnobs, threeLines = false) {
FILE: list/harness.ts
constant NAVIGABLE_KEYS (line 15) | const NAVIGABLE_KEYS = {
type HandledListKeys (line 26) | type HandledListKeys =
class ListHarness (line 32) | class ListHarness extends Harness<List> {
method getInteractiveElement (line 36) | protected override async getInteractiveElement() {
method getItems (line 42) | getItems() {
method pressHandledKey (line 54) | async pressHandledKey<T extends string = HandledListKeys>(key: T) {
method keypress (line 63) | override async keypress(key: string, init = {} as KeyboardEventInit) {
FILE: list/internal/list-controller.ts
type NavigableKeys (line 36) | type NavigableKeys = (typeof NavigableKeys)[keyof typeof NavigableKeys];
type ListControllerConfig (line 41) | interface ListControllerConfig<Item extends ListItem> {
class ListController (line 84) | class ListController<Item extends ListItem> {
method constructor (line 94) | constructor(config: ListControllerConfig<Item>) {
method items (line 119) | get items(): Item[] {
method activateNextItem (line 225) | activateNextItem(): Item | null {
method activatePreviousItem (line 245) | activatePreviousItem(): Item | null {
FILE: list/internal/list-navigation-helpers.ts
type ListItem (line 7) | interface ListItem extends HTMLElement {
type ItemRecord (line 15) | interface ItemRecord<Item extends ListItem> {
function activateFirstItem (line 28) | function activateFirstItem<Item extends ListItem>(
function activateLastItem (line 52) | function activateLastItem<Item extends ListItem>(
function deactivateActiveItem (line 75) | function deactivateActiveItem<Item extends ListItem>(
function getActiveItem (line 96) | function getActiveItem<Item extends ListItem>(
function getFirstActivatableItem (line 122) | function getFirstActivatableItem<Item extends ListItem>(
function getLastActivatableItem (line 144) | function getLastActivatableItem<Item extends ListItem>(
function getNextItem (line 169) | function getNextItem<Item extends ListItem>(
function getPrevItem (line 202) | function getPrevItem<Item extends ListItem>(
function activateNextItem (line 229) | function activateNextItem<Item extends ListItem>(
function activatePreviousItem (line 258) | function activatePreviousItem<Item extends ListItem>(
function createDeactivateItemsEvent (line 285) | function createDeactivateItemsEvent() {
type DeactivateItemsEvent (line 293) | type DeactivateItemsEvent = ReturnType<
function createRequestActivationEvent (line 305) | function createRequestActivationEvent() {
type RequestActivationEvent (line 312) | type RequestActivationEvent = ReturnType<
function isItemNotDisabled (line 323) | function isItemNotDisabled<Item extends ListItem>(item: Item) {
FILE: list/internal/list.ts
constant NAVIGABLE_KEY_SET (line 13) | const NAVIGABLE_KEY_SET = new Set<string>(Object.values(NavigableKeys));
type ListItem (line 15) | interface ListItem extends SharedListItem {
class List (line 20) | class List extends LitElement {
method items (line 33) | get items() {
method constructor (line 56) | constructor() {
method render (line 64) | protected override render() {
method activateNextItem (line 80) | activateNextItem(): ListItem | null {
method activatePreviousItem (line 90) | activatePreviousItem(): ListItem | null {
FILE: list/internal/listitem/harness.ts
type HandledListKeys (line 17) | type HandledListKeys =
class ListItemHarness (line 23) | class ListItemHarness<
method getInteractiveElement (line 26) | override async getInteractiveElement() {
method pressHandledKey (line 37) | async pressHandledKey<U extends string = HandledListKeys>(key: U) {
FILE: list/internal/listitem/list-item.ts
type ListItemType (line 26) | type ListItemType = 'text' | 'button' | 'link';
class ListItemEl (line 35) | class ListItemEl extends listItemBaseClass implements ListItem {
method isDisabled (line 72) | private get isDisabled() {
method willUpdate (line 76) | protected override willUpdate(changed: PropertyValues<ListItemEl>) {
method render (line 84) | protected override render() {
method renderListItem (line 102) | protected renderListItem(content: unknown) {
method renderRipple (line 143) | protected renderRipple(): TemplateResult | typeof nothing {
method renderFocusRing (line 157) | protected renderFocusRing(): TemplateResult | typeof nothing {
method onFocusRingVisibilityChanged (line 169) | protected onFocusRingVisibilityChanged(e: Event) {}
method getRenderClasses (line 174) | protected getRenderClasses(): ClassInfo {
method renderBody (line 181) | protected renderBody() {
method onFocus (line 193) | protected onFocus() {
method focus (line 201) | override focus() {
method click (line 207) | override click() {
FILE: list/list-item.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdListItem (line 60) | class MdListItem extends ListItem {
FILE: list/list.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdList (line 39) | class MdList extends List {
FILE: list/test/assets.ts
constant AVATAR_URL (line 6) | const AVATAR_URL =
constant IMAGE_URL (line 12) | const IMAGE_URL =
constant VIDEO_URL (line 22) | const VIDEO_URL =
FILE: menu/demo/stories.ts
type StoryKnobs (line 20) | interface StoryKnobs {
method render (line 99) | render(knobs) {
method render (line 157) | render(knobs) {
method render (line 221) | render(knobs) {
method render (line 374) | render(knobs) {
function toggleMenu (line 424) | function toggleMenu(event: Event | KeyboardEvent) {
function displayCloseEvent (line 454) | function displayCloseEvent(event: CloseMenuEvent) {
function setButtonAriaExpandedFalse (line 482) | function setButtonAriaExpandedFalse(e: Event) {
FILE: menu/harness.ts
class MenuHarness (line 19) | class MenuHarness extends Harness<Menu> {
method getInteractiveElement (line 23) | protected override async getInteractiveElement() {
method getItems (line 29) | getItems() {
method show (line 35) | async show() {
FILE: menu/internal/controllers/menuItemController.ts
type MenuItemAdditions (line 20) | interface MenuItemAdditions {
type MenuItem (line 59) | type MenuItem = MenuItemAdditions & HTMLElement;
type MenuItemType (line 64) | type MenuItemType = 'menuitem' | 'option' | 'button' | 'link';
type MenuItemControllerConfig (line 69) | interface MenuItemControllerConfig {
class MenuItemController (line 97) | class MenuItemController implements ReactiveController {
method constructor (line 108) | constructor(
method typeaheadText (line 125) | get typeaheadText() {
method tagName (line 167) | get tagName() {
method role (line 185) | get role() {
method hostConnected (line 189) | hostConnected() {
method hostUpdate (line 193) | hostUpdate() {
method setTypeaheadText (line 248) | setTypeaheadText(text: string) {
FILE: menu/internal/controllers/shared.ts
type MenuSelf (line 15) | interface MenuSelf {
type Menu (line 84) | type Menu = MenuSelf & LitElement;
type Reason (line 89) | interface Reason {
type ClickReason (line 97) | interface ClickReason extends Reason {
type KeydownReason (line 106) | interface KeydownReason extends Reason {
type DefaultReasons (line 114) | type DefaultReasons = ClickReason | KeydownReason;
function createCloseMenuEvent (line 119) | function createCloseMenuEvent<T extends Reason = DefaultReasons>(
function createStayOpenOnFocusoutEvent (line 138) | function createStayOpenOnFocusoutEvent() {
function createCloseOnFocusoutEvent (line 146) | function createCloseOnFocusoutEvent() {
type CloseMenuEvent (line 159) | type CloseMenuEvent<T extends Reason = DefaultReasons> = ReturnType<
function createDeactivateTypeaheadEvent (line 166) | function createDeactivateTypeaheadEvent() {
type DeactivateTypeaheadEvent (line 174) | type DeactivateTypeaheadEvent = ReturnType<
function createActivateTypeaheadEvent (line 182) | function createActivateTypeaheadEvent() {
type ActivateTypeaheadEvent (line 190) | type ActivateTypeaheadEvent = ReturnType<
type Values (line 233) | type Values<T> = T[keyof T];
function isClosableKey (line 243) | function isClosableKey(
function isSelectableKey (line 257) | function isSelectableKey(
function isElementInSubtree (line 272) | function isElementInSubtree(
type FocusState (line 306) | type FocusState = (typeof FocusState)[keyof typeof FocusState];
FILE: menu/internal/controllers/surfacePositionController.ts
type HTMLElement (line 17) | interface HTMLElement {
type Corner (line 39) | type Corner = (typeof Corner)[keyof typeof Corner];
type SurfacePositionTarget (line 46) | interface SurfacePositionTarget extends HTMLElement {
type SurfacePositionControllerProperties (line 53) | interface SurfacePositionControllerProperties {
class SurfacePositionController (line 138) | class SurfacePositionController implements ReactiveController {
method constructor (line 154) | constructor(
method surfaceStyles (line 164) | get surfaceStyles() {
method position (line 174) | async position() {
method calculateBlock (line 415) | private calculateBlock(config: {
method calculateInline (line 482) | private calculateInline(config: {
method hostUpdate (line 584) | hostUpdate() {
method hostUpdated (line 588) | hostUpdated() {
method onUpdate (line 597) | private async onUpdate() {
method close (line 634) | private close() {
FILE: menu/internal/controllers/typeaheadController.ts
type TypeaheadControllerProperties (line 12) | interface TypeaheadControllerProperties {
type TypeaheadRecord (line 34) | type TypeaheadRecord = [number, MenuItem, string];
constant TYPEAHEAD_RECORD (line 38) | const TYPEAHEAD_RECORD = {
class TypeaheadController (line 73) | class TypeaheadController {
method constructor (line 105) | constructor(
method items (line 109) | private get items() {
method active (line 113) | private get active() {
method beginTypeahead (line 134) | private beginTypeahead(event: KeyboardEvent) {
method typeahead (line 205) | private typeahead(event: KeyboardEvent) {
FILE: menu/internal/menu.ts
constant DEFAULT_TYPEAHEAD_BUFFER_TIME (line 46) | const DEFAULT_TYPEAHEAD_BUFFER_TIME = 200;
function getFocusedElement (line 68) | function getFocusedElement(
method openDirection (line 314) | private get openDirection(): 'UP' | 'DOWN' {
method anchorElement (line 342) | get anchorElement(): (HTMLElement & Partial<SurfacePositionTarget>) | nu...
method anchorElement (line 352) | set anchorElement(
method constructor (line 363) | constructor() {
method items (line 415) | get items(): MenuItem[] {
method willUpdate (line 419) | protected override willUpdate(changed: PropertyValues<Menu>) {
method update (line 432) | override update(changed: PropertyValues<Menu>) {
method connectedCallback (line 468) | override connectedCallback() {
method disconnectedCallback (line 475) | override disconnectedCallback() {
method getBoundingClientRect (line 480) | override getBoundingClientRect() {
method getClientRects (line 487) | override getClientRects() {
method render (line 494) | protected override render() {
method renderSurface (line 501) | private renderSurface() {
method renderMenuItems (line 518) | private renderMenuItems() {
method renderElevation (line 533) | private renderElevation() {
method getSurfaceClasses (line 537) | private getSurfaceClasses(): ClassInfo {
method captureKeydown (line 586) | private captureKeydown(event: KeyboardEvent) {
method animateOpen (line 688) | private async animateOpen() {
method animateClose (line 787) | private animateClose() {
method handleKeydown (line 903) | private handleKeydown(event: KeyboardEvent) {
method setUpGlobalEventListeners (line 911) | private setUpGlobalEventListeners() {
method cleanUpGlobalEventListeners (line 918) | private cleanUpGlobalEventListeners() {
method onCloseMenu (line 952) | private onCloseMenu() {
method onDeactivateItems (line 956) | private onDeactivateItems(event: Event) {
method onRequestActivation (line 961) | private onRequestActivation(event: Event) {
method handleDeactivateTypeahead (line 966) | private handleDeactivateTypeahead(event: DeactivateTypeaheadEvent) {
method handleActivateTypeahead (line 973) | private handleActivateTypeahead(event: ActivateTypeaheadEvent) {
method handleStayOpenOnFocusout (line 980) | private handleStayOpenOnFocusout(event: Event) {
method handleCloseOnFocusout (line 985) | private handleCloseOnFocusout(event: Event) {
method close (line 990) | close() {
method show (line 1000) | show() {
method activateNextItem (line 1010) | activateNextItem() {
method activatePreviousItem (line 1020) | activatePreviousItem() {
method reposition (line 1030) | reposition() {
FILE: menu/internal/menuitem/harness.ts
class MenuItemHarness (line 15) | class MenuItemHarness extends ListItemHarness<MenuItem & LitElement> {}
FILE: menu/internal/menuitem/menu-item.ts
class MenuItemEl (line 36) | class MenuItemEl extends menuItemBaseClass implements MenuItem {
method typeaheadText (line 87) | get typeaheadText() {
method typeaheadText (line 92) | set typeaheadText(text: string) {
method render (line 109) | protected override render() {
method renderListItem (line 127) | protected renderListItem(content: unknown) {
method renderRipple (line 168) | protected renderRipple(): TemplateResult | typeof nothing {
method renderFocusRing (line 178) | protected renderFocusRing(): TemplateResult | typeof nothing {
method getRenderClasses (line 188) | protected getRenderClasses(): ClassInfo {
method renderBody (line 198) | protected renderBody() {
method focus (line 210) | override focus() {
FILE: menu/internal/submenu/sub-menu.ts
class SubMenu (line 39) | class SubMenu extends LitElement {
method item (line 65) | get item() {
method menu (line 69) | get menu() {
method constructor (line 82) | constructor() {
method render (line 91) | override render() {
method firstUpdated (line 108) | protected override firstUpdated() {
method show (line 116) | async show() {
method close (line 199) | async close() {
method onSlotchange (line 215) | protected onSlotchange() {
method onClick (line 285) | protected onClick() {
method onKeydown (line 292) | protected async onKeydown(event: KeyboardEvent) {
method onCloseSubmenu (line 331) | private onCloseSubmenu(event: CloseMenuEvent) {
method onSubMenuKeydown (line 350) | private async onSubMenuKeydown(event: KeyboardEvent) {
method isSubmenuOpenKey (line 380) | private isSubmenuOpenKey(code: string) {
method isSubmenuCloseKey (line 400) | private isSubmenuCloseKey(code: string) {
FILE: menu/internal/types.ts
type MDCMenuItemEventDetail (line 10) | interface MDCMenuItemEventDetail {
type MDCMenuItemComponentEventDetail (line 17) | interface MDCMenuItemComponentEventDetail
type MDCMenuItemEvent (line 24) | interface MDCMenuItemEvent extends Event {
type MDCMenuItemComponentEvent (line 28) | interface MDCMenuItemComponentEvent extends Event {
FILE: menu/menu-item.ts
type HTMLElementTagNameMap (line 17) | interface HTMLElementTagNameMap {
class MdMenuItem (line 38) | class MdMenuItem extends MenuItemEl {
FILE: menu/menu.ts
type HTMLElementTagNameMap (line 24) | interface HTMLElementTagNameMap {
class MdMenu (line 79) | class MdMenu extends Menu {
FILE: menu/sub-menu.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdSubMenu (line 68) | class MdSubMenu extends SubMenu {
FILE: migrations/v2/query-selector-aria.ts
constant HAS_ARIA_ATTRIBUTE_REGEX (line 7) | const HAS_ARIA_ATTRIBUTE_REGEX = /\[(aria-|role)/g;
function ariaSelector (line 25) | function ariaSelector(selector: string) {
FILE: progress/circular-progress.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdCircularProgress (line 33) | class MdCircularProgress extends CircularProgress {
FILE: progress/demo/demo.ts
function cssWire (line 25) | function cssWire<T = string>(prop: string, unit = '') {
FILE: progress/demo/stories.ts
type StoryKnobs (line 19) | interface StoryKnobs {
method render (line 49) | render(knobs) {
method render (line 67) | render({value, max, indeterminate, fourColor}) {
method render (line 111) | render({value, max}) {
FILE: progress/harness.ts
class LinearProgressHarness (line 15) | class LinearProgressHarness extends Harness<LinearProgress> {
method getInteractiveElement (line 16) | override async getInteractiveElement() {
class CircularProgressHarness (line 25) | class CircularProgressHarness extends Harness<CircularProgress> {
method getInteractiveElement (line 26) | override async getInteractiveElement() {
FILE: progress/internal/circular-progress.ts
class CircularProgress (line 14) | class CircularProgress extends Progress {
method renderIndicator (line 15) | protected override renderIndicator() {
method renderDeterminateContainer (line 25) | private renderDeterminateContainer() {
method renderIndeterminateContainer (line 45) | private renderIndeterminateContainer() {
FILE: progress/internal/linear-progress.ts
class LinearProgress (line 16) | class LinearProgress extends Progress {
method renderIndicator (line 26) | protected override renderIndicator() {
FILE: progress/internal/progress.ts
method render (line 42) | protected override render() {
method getRenderClasses (line 58) | protected getRenderClasses() {
FILE: progress/linear-progress.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdLinearProgress (line 32) | class MdLinearProgress extends LinearProgress {
FILE: radio/demo/stories.ts
type StoryKnobs (line 16) | interface StoryKnobs {
method render (line 22) | render({disabled}) {
method render (line 64) | render({disabled}) {
FILE: radio/harness.ts
class RadioHarness (line 14) | class RadioHarness extends Harness<Radio> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
FILE: radio/internal/radio.ts
constant CHECKED (line 34) | const CHECKED = Symbol('checked');
class Radio (line 50) | class Radio extends radioBaseClass {
method checked (line 59) | get checked() {
method checked (line 62) | set checked(checked: boolean) {
method constructor (line 89) | constructor() {
method render (line 99) | protected override render() {
method updated (line 127) | protected override updated() {
method handleClick (line 131) | private async handleClick(event: Event) {
method handleKeydown (line 154) | private async handleKeydown(event: KeyboardEvent) {
method [getFormValue] (line 168) | override [getFormValue]() {
method [getFormState] (line 172) | override [getFormState]() {
method formResetCallback (line 176) | override formResetCallback() {
method formStateRestoreCallback (line 182) | override formStateRestoreCallback(state: string) {
method [createValidator] (line 186) | override [createValidator]() {
method [getValidityAnchor] (line 198) | override [getValidityAnchor]() {
FILE: radio/internal/single-selection-controller.ts
type SingleSelectionElement (line 12) | interface SingleSelectionElement extends HTMLElement {
class SingleSelectionController (line 53) | class SingleSelectionController implements ReactiveController {
method controls (line 58) | get controls(): [SingleSelectionElement, ...SingleSelectionElement[]] {
method constructor (line 74) | constructor(private readonly host: SingleSelectionElement) {}
method hostConnected (line 76) | hostConnected() {
method hostDisconnected (line 98) | hostDisconnected() {
method handleCheckedChange (line 117) | handleCheckedChange() {
method uncheckSiblings (line 136) | private uncheckSiblings() {
method updateTabIndices (line 147) | private updateTabIndices() {
FILE: radio/radio.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdRadio (line 36) | class MdRadio extends Radio {
FILE: radio/radio_test.ts
function simulateKeyDown (line 41) | async function simulateKeyDown(element: HTMLElement, key: string) {
function setupTest (line 49) | async function setupTest(template = defaultRadio) {
function setupLabelTest (line 427) | async function setupLabelTest() {
method assertValue (line 464) | assertValue(formData) {
method assertValue (line 476) | assertValue(formData) {
method assertValue (line 488) | assertValue(formData) {
method assertValue (line 498) | assertValue(formData) {
method assertValue (line 508) | assertValue(formData) {
method change (line 522) | change(radio) {
method assertReset (line 525) | assertReset(radio) {
method change (line 537) | change(radio) {
method assertReset (line 540) | assertReset(radio) {
method assertRestored (line 554) | assertRestored(radio) {
method assertRestored (line 566) | assertRestored(radio) {
FILE: ripple/demo/demo.ts
function cssCustomPropertyAsNumber (line 25) | function cssCustomPropertyAsNumber(
FILE: ripple/demo/stories.ts
type StoryKnobs (line 13) | interface StoryKnobs {
method render (line 69) | render() {
FILE: ripple/internal/ripple.ts
constant PRESS_GROW_MS (line 17) | const PRESS_GROW_MS = 450;
constant MINIMUM_PRESS_MS (line 18) | const MINIMUM_PRESS_MS = 225;
constant INITIAL_ORIGIN_SCALE (line 19) | const INITIAL_ORIGIN_SCALE = 0.2;
constant PADDING (line 20) | const PADDING = 10;
constant SOFT_EDGE_MINIMUM_SIZE (line 21) | const SOFT_EDGE_MINIMUM_SIZE = 75;
constant SOFT_EDGE_CONTAINER_RATIO (line 22) | const SOFT_EDGE_CONTAINER_RATIO = 0.35;
constant PRESS_PSEUDO (line 23) | const PRESS_PSEUDO = '::after';
constant ANIMATION_FILL (line 24) | const ANIMATION_FILL = 'forwards';
type State (line 36) | enum State {
constant EVENTS (line 74) | const EVENTS = [
constant TOUCH_DELAY_MS (line 88) | const TOUCH_DELAY_MS = 150;
constant FORCED_COLORS (line 94) | const FORCED_COLORS = isServer
class Ripple (line 101) | class Ripple extends LitElement implements Attachable {
method htmlFor (line 107) | get htmlFor() {
method htmlFor (line 111) | set htmlFor(htmlFor: string | null) {
method control (line 115) | get control() {
method control (line 118) | set control(control: HTMLElement | null) {
method attach (line 137) | attach(control: HTMLElement) {
method detach (line 141) | detach() {
method connectedCallback (line 145) | override connectedCallback() {
method render (line 152) | protected override render() {
method update (line 161) | protected override update(changedProps: PropertyValues<Ripple>) {
method handlePointerenter (line 173) | handlePointerenter(event: PointerEvent) {
method handlePointerleave (line 185) | handlePointerleave(event: PointerEvent) {
method handlePointerup (line 198) | private handlePointerup(event: PointerEvent) {
method handlePointerdown (line 215) | private async handlePointerdown(event: PointerEvent) {
method handleClick (line 241) | private handleClick() {
method handlePointercancel (line 260) | private handlePointercancel(event: PointerEvent) {
method handleContextmenu (line 268) | private handleContextmenu() {
method determineRippleSize (line 276) | private determineRippleSize() {
method getNormalizedPointerEventCoords (line 298) | private getNormalizedPointerEventCoords(pointerEvent: PointerEvent): {
method getTranslationCoordinates (line 315) | private getTranslationCoordinates(positionEvent?: Event) {
method startPressAnimation (line 344) | private startPressAnimation(positionEvent?: Event) {
method endPressAnimation (line 377) | private async endPressAnimation() {
method shouldReactToEvent (line 415) | private shouldReactToEvent(event: PointerEvent) {
method isTouch (line 435) | private isTouch({pointerType}: PointerEvent) {
method handleEvent (line 440) | async handleEvent(event: Event) {
method onControlChange (line 473) | private onControlChange(prev: HTMLElement | null, next: HTMLElement | ...
FILE: ripple/internal/ripple_test.ts
type RippleStateClasses (line 15) | enum RippleStateClasses {
type HTMLElementTagNameMap (line 21) | interface HTMLElementTagNameMap {
class TestRipple (line 26) | @customElement('test-ripple')
type WithState (line 29) | interface WithState {
function setupTest (line 36) | async function setupTest() {
FILE: ripple/ripple.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdRipple (line 33) | class MdRipple extends Ripple {
FILE: scripts/analyzer/analyze-element.ts
type MdModuleInfo (line 23) | interface MdModuleInfo {
type MdEventInfo (line 39) | interface MdEventInfo {
type MdPropertyInfo (line 50) | interface MdPropertyInfo {
type MdMethodInfo (line 62) | interface MdMethodInfo {
type MdMethodParameterInfo (line 73) | interface MdMethodParameterInfo {
function analyzeElementApi (line 94) | function analyzeElementApi(
constant FIELDS_TO_IGNORE (line 171) | const FIELDS_TO_IGNORE = new Set(['isListItem', 'isMenuItem']);
function analyzeFields (line 185) | function analyzeFields(
constant SUBSTRINGS_TO_NOT_KEBAB (line 253) | const SUBSTRINGS_TO_NOT_KEBAB = new Set(['tabIndex']);
function nameToAttribute (line 261) | function nameToAttribute(propertyName: string) {
constant METHODS_TO_IGNORE (line 274) | const METHODS_TO_IGNORE = new Set([
function analyzeMethods (line 295) | function analyzeMethods(
function analyzeEvents (line 334) | function analyzeEvents(
function makeMarkdownFriendly (line 371) | function makeMarkdownFriendly(text?: string) {
FILE: scripts/analyzer/markdown-tree-builder.ts
class MarkdownTable (line 11) | class MarkdownTable {
method constructor (line 17) | constructor(private readonly columnsInternal: string[]) {}
method columns (line 22) | get columns() {
method rows (line 29) | get rows() {
method addRow (line 40) | addRow(row: string[]) {
method toString (line 55) | toString() {
FILE: scripts/analyzer/update-docs.ts
type MarkdownTableSection (line 24) | interface MarkdownTableSection {
type ElementTableSection (line 29) | interface ElementTableSection {
function updateApiDocs (line 45) | async function updateApiDocs() {
function updateDocFileApiSection (line 75) | async function updateDocFileApiSection(
function generateTableSection (line 119) | function generateTableSection(
function updateRow (line 167) | function updateRow<T extends {[key: string]: unknown}>(
function generateFieldMarkdownTable (line 191) | function generateFieldMarkdownTable(element: MdModuleInfo): MarkdownTable {
function generateMethodMarkdownTable (line 290) | function generateMethodMarkdownTable(element: MdModuleInfo): MarkdownTab...
function generateEventsMarkdownTable (line 357) | function generateEventsMarkdownTable(element: MdModuleInfo): MarkdownTab...
function insertMarkdownTables (line 427) | function insertMarkdownTables(
function replaceFileContents (line 455) | function replaceFileContents(fileContents: string, tablesStrings?: strin...
function stringifyMarkdownTableSections (line 487) | function stringifyMarkdownTableSections(elements: ElementTableSection[]) {
FILE: scripts/component-custom-elements.ts
constant COMPONENT_CUSTOM_ELEMENTS (line 10) | const COMPONENT_CUSTOM_ELEMENTS = {
FILE: scripts/size/bundle-size.ts
type Bundle (line 16) | interface Bundle {
type BundleSize (line 21) | interface BundleSize {
type InputSize (line 27) | interface InputSize {
type Size (line 32) | interface Size {
function getBundleSize (line 38) | async function getBundleSize(bundle: Bundle): Promise<BundleSize> {
function computeBundleSize (line 63) | async function computeBundleSize(input: string | string[]): Promise<Size> {
FILE: scripts/size/update-size.ts
function getImport (line 103) | function getImport(input: string) {
function getCssPercent (line 107) | function getCssPercent(size: Size) {
function bytesToString (line 111) | function bytesToString(bytes: number) {
function camelToSentenceCase (line 115) | function camelToSentenceCase(value: string) {
FILE: scripts/update-sass-ext-docs.ts
type SassdocComment (line 14) | interface SassdocComment {
type SassdocModule (line 30) | interface SassdocModule {
function parseSassFile (line 41) | function parseSassFile(sassFile: string): SassdocModule {
constant TWO_SPACES (line 74) | const TWO_SPACES = ' ';
constant FOUR_SPACES (line 75) | const FOUR_SPACES = ' ';
function sassdocToMarkdown (line 77) | function sassdocToMarkdown(
constant MARKER (line 170) | const MARKER = '<!-- generated_docs_start -->\n';
FILE: select/demo/stories.ts
type StoryKnobs (line 16) | interface StoryKnobs {
method render (line 38) | render(knobs) {
function renderIcon (line 81) | function renderIcon(iconName: string, slot: 'leading-icon' | 'trailing-i...
function renderItems (line 87) | function renderItems() {
FILE: select/filled-select.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdFilledSelect (line 48) | class MdFilledSelect extends FilledSelect {
FILE: select/harness.ts
class SelectHarness (line 19) | class SelectHarness extends Harness<Select> {
method getField (line 20) | protected getField() {
method getInteractiveElement (line 26) | protected override async getInteractiveElement() {
method startHover (line 31) | override async startHover() {
method getItems (line 40) | getItems() {
method click (line 46) | async click() {
method clickOption (line 51) | async clickOption(index: number) {
method isOpen (line 61) | get isOpen() {
class SelectFieldHardness (line 73) | class SelectFieldHardness extends FieldHarness {
method getInteractiveElement (line 75) | override getInteractiveElement() {
FILE: select/internal/select.ts
constant VALUE (line 50) | const VALUE = Symbol('value');
method value (line 174) | get value(): string {
method value (line 178) | set value(value: string) {
method options (line 186) | get options() {
method selectedIndex (line 199) | get selectedIndex(): number {
method selectedIndex (line 205) | set selectedIndex(index: number) {
method selectedOptions (line 215) | get selectedOptions() {
method hasError (line 250) | private get hasError() {
method constructor (line 267) | constructor() {
method select (line 281) | select(value: string) {
method selectIndex (line 294) | selectIndex(index: number) {
method reset (line 304) | reset() {
method showPicker (line 315) | showPicker() {
method [onReportValidity] (line 319) | override [onReportValidity](invalidEvent: Event | null) {
method update (line 332) | protected override update(changed: PropertyValues<Select>) {
method render (line 353) | protected override render() {
method firstUpdated (line 363) | protected override async firstUpdated(changed: PropertyValues<Select>) {
method getRenderClasses (line 385) | private getRenderClasses(): ClassInfo {
method renderField (line 393) | private renderField() {
method renderFieldContent (line 425) | private renderFieldContent() {
method renderLeadingIcon (line 433) | private renderLeadingIcon() {
method renderTrailingIcon (line 441) | private renderTrailingIcon() {
method renderLabel (line 462) | private renderLabel() {
method renderMenu (line 468) | private renderMenu() {
method renderMenuContent (line 506) | private renderMenuContent() {
method handleKeydown (line 514) | private handleKeydown(event: KeyboardEvent) {
method handleClick (line 580) | private handleClick() {
method handleFocus (line 584) | private handleFocus() {
method handleBlur (line 588) | private handleBlur() {
method handleFocusout (line 595) | private handleFocusout(event: FocusEvent) {
method getSelectedOptions (line 610) | private getSelectedOptions() {
method getUpdateComplete (line 621) | override async getUpdateComplete() {
method updateValueAndDisplayText (line 632) | private updateValueAndDisplayText() {
method handleOpening (line 660) | private async handleOpening(e: Event) {
method redispatchEvent (line 690) | private redispatchEvent(e: Event) {
method handleClosed (line 694) | private handleClosed(e: Event) {
method handleCloseMenu (line 702) | private handleCloseMenu(event: CloseMenuEvent) {
method selectItem (line 730) | private selectItem(item: SelectOption) {
method handleRequestSelection (line 748) | private handleRequestSelection(
method handleRequestDeselection (line 769) | private handleRequestDeselection(
method initUserSelection (line 790) | private initUserSelection() {
method handleIconChange (line 809) | private handleIconChange() {
method dispatchInteractionEvents (line 816) | private dispatchInteractionEvents() {
method getErrorText (line 821) | private getErrorText() {
method [getFormValue] (line 829) | override [getFormValue]() {
method formResetCallback (line 833) | override formResetCallback() {
method formStateRestoreCallback (line 837) | override formStateRestoreCallback(state: string) {
method click (line 841) | override click() {
method [createValidator] (line 845) | override [createValidator]() {
method [getValidityAnchor] (line 849) | override [getValidityAnchor]() {
FILE: select/internal/selectoption/harness.ts
class SelectOptionHarness (line 12) | class SelectOptionHarness extends ListItemHarness {}
FILE: select/internal/selectoption/select-option.ts
type SelectOptionSelf (line 29) | interface SelectOptionSelf {
type SelectOption (line 50) | type SelectOption = SelectOptionSelf & MenuItem;
class SelectOptionEl (line 64) | class SelectOptionEl
method typeaheadText (line 109) | get typeaheadText() {
method typeaheadText (line 114) | set typeaheadText(text: string) {
method displayText (line 122) | get displayText() {
method displayText (line 127) | set displayText(text: string) {
method render (line 144) | protected override render() {
method renderListItem (line 162) | protected renderListItem(content: unknown) {
method renderRipple (line 184) | protected renderRipple() {
method renderFocusRing (line 194) | protected renderFocusRing() {
method getRenderClasses (line 204) | protected getRenderClasses(): ClassInfo {
method renderBody (line 214) | protected renderBody() {
method focus (line 226) | override focus() {
FILE: select/internal/selectoption/selectOptionController.ts
function createRequestSelectionEvent (line 19) | function createRequestSelectionEvent() {
function createRequestDeselectionEvent (line 30) | function createRequestDeselectionEvent() {
type SelectOptionConfig (line 40) | type SelectOptionConfig = MenuItemControllerConfig;
class SelectOptionController (line 46) | class SelectOptionController implements ReactiveController {
method role (line 55) | get role() {
method typeaheadText (line 65) | get typeaheadText() {
method setTypeaheadText (line 69) | setTypeaheadText(text: string) {
method displayText (line 80) | get displayText() {
method setDisplayText (line 88) | setDisplayText(text: string) {
method constructor (line 96) | constructor(
method hostUpdate (line 105) | hostUpdate() {
method hostUpdated (line 111) | hostUpdated() {
FILE: select/internal/shared.ts
type SelectOptionRecord (line 12) | type SelectOptionRecord = [SelectOption, number];
function getSelectedItems (line 21) | function getSelectedItems(items: SelectOption[]) {
FILE: select/outlined-select.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdOutlinedSelect (line 48) | class MdOutlinedSelect extends OutlinedSelect {
FILE: select/select-option.ts
type HTMLElementTagNameMap (line 17) | interface HTMLElementTagNameMap {
class MdSelectOption (line 53) | class MdSelectOption extends SelectOptionEl {
FILE: select/select_test.ts
method assertValue (line 162) | assertValue(formData) {
method assertValue (line 176) | assertValue(formData) {
method assertValue (line 188) | assertValue(formData) {
method assertValue (line 200) | assertValue(formData) {
method change (line 216) | change(select) {
method assertReset (line 219) | assertReset(select) {
method change (line 233) | change(select) {
method assertReset (line 236) | assertReset(select) {
method assertRestored (line 252) | assertRestored(select) {
method assertRestored (line 266) | assertRestored(select) {
FILE: select/test/assets.ts
constant AVATAR_URL (line 6) | const AVATAR_URL =
constant IMAGE_URL (line 12) | const IMAGE_URL =
constant VIDEO_URL (line 22) | const VIDEO_URL =
FILE: slider/demo/stories.ts
type StoryKnobs (line 17) | interface StoryKnobs {
method render (line 33) | render({disabled}) {
method render (line 66) | render({disabled}) {
method render (line 142) | render({disabled}) {
FILE: slider/harness.ts
class SliderHarness (line 14) | class SliderHarness extends Harness<Slider> {
method getInteractiveElement (line 15) | override async getInteractiveElement() {
method getInputs (line 22) | getInputs() {
method getHandles (line 28) | getHandles() {
method getLabels (line 35) | getLabels() {
method isLabelShowing (line 39) | isLabelShowing() {
method simulateValueInteraction (line 50) | async simulateValueInteraction(value: number, el?: HTMLInputElement) {
method positionEventAtHandle (line 63) | private positionEventAtHandle(init: PointerEventInit, startHandle = fa...
method simulateStartHover (line 69) | protected override simulateStartHover(
method simulateMousePress (line 80) | protected override simulateMousePress(
FILE: slider/internal/slider.ts
class Slider (line 50) | class Slider extends sliderBaseClass {
method nameStart (line 151) | get nameStart() {
method nameStart (line 154) | set nameStart(name: string) {
method nameEnd (line 163) | get nameEnd() {
method nameEnd (line 166) | set nameEnd(name: string) {
method renderAriaLabelStart (line 194) | private get renderAriaLabelStart() {
method renderAriaValueTextStart (line 205) | private get renderAriaValueTextStart() {
method renderAriaLabelEnd (line 214) | private get renderAriaLabelEnd() {
method renderAriaValueTextEnd (line 229) | private get renderAriaValueTextEnd() {
method constructor (line 249) | constructor() {
method focus (line 262) | override focus() {
method willUpdate (line 266) | protected override willUpdate(changed: PropertyValues) {
method updated (line 286) | protected override updated(changed: PropertyValues) {
method render (line 332) | protected override render() {
method renderTrack (line 404) | private renderTrack() {
method renderLabel (line 411) | private renderLabel(value: string) {
method renderHandle (line 417) | private renderHandle({
method renderInput (line 448) | private renderInput({
method toggleRippleHover (line 496) | private async toggleRippleHover(
method handleFocus (line 522) | private handleFocus(event: Event) {
method startAction (line 526) | private startAction(event: Event) {
method finishAction (line 542) | private finishAction(event: Event) {
method handleKeydown (line 546) | private handleKeydown(event: KeyboardEvent) {
method handleKeyup (line 550) | private handleKeyup(event: KeyboardEvent) {
method handleDown (line 554) | private handleDown(event: PointerEvent) {
method handleUp (line 565) | private async handleUp(event: PointerEvent) {
method handleMove (line 600) | private handleMove(event: PointerEvent) {
method handleEnter (line 605) | private handleEnter(event: PointerEvent) {
method handleLeave (line 609) | private handleLeave() {
method updateOnTop (line 614) | private updateOnTop(input: HTMLInputElement) {
method needsClamping (line 618) | private needsClamping() {
method isActionFlipped (line 633) | private isActionFlipped() {
method flipAction (line 654) | private flipAction() {
method clampAction (line 667) | private clampAction() {
method handleInput (line 676) | private handleInput(event: InputEvent) {
method handleChange (line 714) | private handleChange(event: Event) {
method [getFormValue] (line 732) | override [getFormValue]() {
method formResetCallback (line 743) | override formResetCallback() {
method formStateRestoreCallback (line 755) | override formStateRestoreCallback(
function inBounds (line 771) | function inBounds({x, y}: PointerEvent, element?: HTMLElement | null) {
function isOverlapping (line 779) | function isOverlapping(
type Action (line 796) | interface Action {
FILE: slider/slider.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdSlider (line 38) | class MdSlider extends Slider {
FILE: slider/slider_test.ts
type SliderTestProps (line 16) | interface SliderTestProps {
function getSliderTemplate (line 26) | function getSliderTemplate(props?: SliderTestProps) {
function setupTest (line 40) | async function setupTest(
method assertValue (line 369) | assertValue(formData) {
method assertValue (line 378) | assertValue(formData) {
method assertValue (line 390) | assertValue(formData) {
method assertValue (line 403) | assertValue(formData) {
method assertValue (line 411) | assertValue(formData) {
method assertValue (line 419) | assertValue(formData) {
method assertValue (line 426) | assertValue(formData) {
method assertValue (line 438) | assertValue(formData) {
method assertValue (line 446) | assertValue(formData) {
method change (line 457) | change(slider) {
method assertReset (line 460) | assertReset(slider) {
method change (line 474) | change(slider) {
method assertReset (line 478) | assertReset(slider) {
method change (line 496) | change(slider) {
method assertReset (line 500) | assertReset(slider) {
method assertRestored (line 514) | assertRestored(slider) {
method assertRestored (line 528) | assertRestored(slider) {
method assertRestored (line 546) | assertRestored(slider) {
FILE: switch/demo/stories.ts
type StoryKnobs (line 16) | interface StoryKnobs {
method render (line 25) | render(knobs) {
method render (line 52) | render(knobs) {
FILE: switch/harness.ts
class SwitchHarness (line 14) | class SwitchHarness extends Harness<Switch> {
method getInteractiveElement (line 15) | protected override async getInteractiveElement() {
FILE: switch/internal/switch.ts
class Switch (line 50) | class Switch extends switchBaseClass {
method constructor (line 91) | constructor() {
method render (line 122) | protected override render(): TemplateResult {
method getRenderClasses (line 143) | private getRenderClasses(): ClassInfo {
method renderHandle (line 151) | private renderHandle() {
method renderIcons (line 166) | private renderIcons() {
method renderOnIcon (line 178) | private renderOnIcon() {
method renderOffIcon (line 192) | private renderOffIcon() {
method renderTouchTarget (line 203) | private renderTouchTarget() {
method shouldShowIcons (line 207) | private shouldShowIcons(): boolean {
method handleInput (line 211) | private handleInput(event: Event) {
method handleChange (line 217) | private handleChange(event: Event) {
method [getFormValue] (line 226) | override [getFormValue]() {
method [getFormState] (line 230) | override [getFormState]() {
method formResetCallback (line 234) | override formResetCallback() {
method formStateRestoreCallback (line 240) | override formStateRestoreCallback(state: string) {
method [createValidator] (line 244) | override [createValidator]() {
method [getValidityAnchor] (line 251) | override [getValidityAnchor]() {
FILE: switch/internal/switch_test.ts
class TestSwitch (line 16) | @customElement('md-test-switch')
type HTMLElementTagNameMap (line 20) | interface HTMLElementTagNameMap {
function renderSwitch (line 25) | function renderSwitch(propsInit: Partial<TestSwitch> = {}) {
function renderSwitchInForm (line 35) | function renderSwitchInForm(propsInit: Partial<TestSwitch> = {}) {
function renderSwitchInLabel (line 39) | function renderSwitchInLabel(propsInit: Partial<TestSwitch> = {}) {
function switchElement (line 46) | async function switchElement(
function switchInForm (line 184) | async function switchInForm(
FILE: switch/switch.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdSwitch (line 30) | class MdSwitch extends Switch {
FILE: switch/switch_test.ts
method assertValue (line 32) | assertValue(formData) {
method assertValue (line 41) | assertValue(formData) {
method assertValue (line 50) | assertValue(formData) {
method assertValue (line 61) | assertValue(formData) {
method assertValue (line 69) | assertValue(formData) {
method change (line 80) | change(control) {
method assertReset (line 83) | assertReset(control) {
method change (line 92) | change(control) {
method assertReset (line 95) | assertReset(control) {
method assertRestored (line 106) | assertRestored(control) {
method assertRestored (line 115) | assertRestored(control) {
FILE: tabs/demo/stories.ts
type StoryKnobs (line 20) | interface StoryKnobs {
method render (line 52) | render(knobs) {
method render (line 140) | render(knobs) {
method render (line 201) | render(knobs) {
method render (line 253) | render(knobs) {
method render (line 315) | render(knobs) {
method render (line 509) | render(knobs) {
function getTabContentGenerator (line 577) | function getTabContentGenerator(knobs: StoryKnobs) {
function setupTabPanels (line 589) | function setupTabPanels() {
FILE: tabs/harness.ts
class TabHarness (line 15) | class TabHarness extends Harness<Tab> {
method getInteractiveElement (line 16) | override async getInteractiveElement() {
method completeIndicatorAnimation (line 21) | private async completeIndicatorAnimation() {
method isIndicatorShowing (line 30) | async isIndicatorShowing() {
class TabsHarness (line 41) | class TabsHarness extends Harness<Tabs> {
method getInteractiveElement (line 44) | override async getInteractiveElement() {
method harnessedItems (line 56) | get harnessedItems() {
FILE: tabs/internal/primary-tab.ts
class PrimaryTab (line 14) | class PrimaryTab extends Tab {
method getContentClasses (line 20) | protected override getContentClasses() {
FILE: tabs/internal/secondary-tab.ts
class SecondaryTab (line 12) | class SecondaryTab extends Tab {
FILE: tabs/internal/tab.ts
constant ANIMATE_INDICATOR (line 28) | const ANIMATE_INDICATOR = Symbol('animateIndicator');
class Tab (line 36) | class Tab extends tabBaseClass {
method selected (line 54) | get selected() {
method selected (line 57) | set selected(active: boolean) {
method constructor (line 81) | constructor() {
method render (line 89) | protected override render() {
method getContentClasses (line 109) | protected getContentClasses(): ClassInfo {
method updated (line 116) | protected override updated() {
method handleKeydown (line 120) | private async handleKeydown(event: KeyboardEvent) {
method handleContentClick (line 134) | private handleContentClick(event: Event) {
method [ANIMATE_INDICATOR] (line 141) | [ANIMATE_INDICATOR](previousTab: Tab) {
method getKeyframes (line 158) | private getKeyframes(previousTab: Tab) {
method handleSlotChange (line 190) | private handleSlotChange() {
method handleIconSlotChange (line 206) | private handleIconSlotChange() {
function shouldReduceMotion (line 211) | function shouldReduceMotion() {
FILE: tabs/internal/tabs.ts
class Tabs (line 38) | class Tabs extends LitElement {
method activeTab (line 50) | get activeTab() {
method activeTab (line 53) | set activeTab(tab: Tab | null) {
method activeTabIndex (line 67) | get activeTabIndex() {
method activeTabIndex (line 70) | set activeTabIndex(index: number) {
method focusedTab (line 109) | private get focusedTab() {
method constructor (line 117) | constructor() {
method scrollToTab (line 135) | async scrollToTab(tabToScrollTo?: Tab | null) {
method render (line 168) | protected override render() {
method handleTabClick (line 179) | private async handleTabClick(event: Event) {
method activateTab (line 190) | private activateTab(activeTab: Tab) {
method updateFocusableTab (line 222) | private updateFocusableTab(focusableTab: Tab) {
method handleKeydown (line 229) | private async handleKeydown(event: KeyboardEvent) {
method handleKeyup (line 285) | private handleKeyup() {
method handleFocusout (line 289) | private handleFocusout() {
method handleSlotChange (line 301) | private handleSlotChange() {
function isTab (line 316) | function isTab(element: unknown): element is Tab {
FILE: tabs/primary-tab.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdPrimaryTab (line 28) | class MdPrimaryTab extends PrimaryTab {
FILE: tabs/secondary-tab.ts
type HTMLElementTagNameMap (line 15) | interface HTMLElementTagNameMap {
class MdSecondaryTab (line 28) | class MdSecondaryTab extends SecondaryTab {
FILE: tabs/tabs.ts
type HTMLElementTagNameMap (line 14) | interface HTMLElementTagNameMap {
class MdTabs (line 27) | class MdTabs extends Tabs {
FILE: tabs/tabs_test.ts
type TabsTestProps (line 17) | interface TabsTestProps {
function getTabsTemplate (line 21) | function getTabsTemplate(props?: TabsTestProps) {
function setupTest (line 32) | async function setupTest(props?: TabsTestProps, template = getTabsTempla...
FILE: testing/environment.ts
class Environment (line 16) | class Environment {
method constructor (line 22) | constructor() {
method withoutWebAnimations (line 48) | withoutWebAnimations() {
method waitForStability (line 58) | async waitForStability() {
method waitForLitRender (line 75) | private async waitForLitRender(root: ParentNode) {
method isReactiveElement (line 90) | private isReactiveElement(element: Element): element is ReactiveElement {
method render (line 100) | render(template: TemplateResult) {
method createNewRoot (line 115) | private createNewRoot() {
method getCurrentRoot (line 135) | protected getCurrentRoot(): HTMLElement | undefined {
FILE: testing/forms.ts
type FormTestsOptions (line 14) | interface FormTestsOptions<T extends HTMLElement> {
function createFormTests (line 54) | function createFormTests<T extends HTMLElement>(
type ExpectedFormAssociatedElement (line 250) | interface ExpectedFormAssociatedElement extends HTMLElement {
type FormState (line 270) | type FormState = FormDataEntryValue | Array<[string, FormDataEntryValue]>;
type ValueTest (line 275) | interface ValueTest {
type ResetTest (line 294) | interface ResetTest<T extends HTMLElement> {
type RestoreTest (line 316) | interface RestoreTest<T extends HTMLElement> {
FILE: testing/harness.ts
type HarnessElement (line 18) | type HarnessElement<H extends Harness> = H extends Harness<infer E>
type ElementWithHarness (line 28) | type ElementWithHarness<
function isElementWithHarness (line 50) | function isElementWithHarness(
class Harness (line 62) | class Harness<E extends HTMLElement = HTMLElement> {
method constructor (line 85) | constructor(element: E) {
method reset (line 93) | async reset() {
method clickWithMouse (line 107) | async clickWithMouse(init: PointerEventInit = {}) {
method startClickWithMouse (line 118) | async startClickWithMouse(init: PointerEventInit = {}) {
method endClickWithMouse (line 130) | async endClickWithMouse(init: PointerEventInit = {}) {
method clickWithKeyboard (line 145) | async clickWithKeyboard(init: KeyboardEventInit = {}) {
method startClickWithKeyboard (line 158) | async startClickWithKeyboard(init: KeyboardEventInit = {}) {
method endClickWithKeyboard (line 171) | async endClickWithKeyboard(init: KeyboardEventInit = {}) {
method rightClickWithMouse (line 181) | async rightClickWithMouse() {
method tap (line 196) | async tap(init: PointerEventInit = {}, touchInit: TouchEventInit = {}) {
method startTap (line 213) | async startTap(init: PointerEventInit = {}, touchInit: TouchEventInit ...
method startTapContextMenu (line 224) | async startTapContextMenu(init: MouseEventInit = {}) {
method endTap (line 238) | async endTap(init: PointerEventInit = {}, touchInit: TouchEventInit = ...
method endTapClick (line 249) | async endTapClick(init: PointerEventInit = {}) {
method cancelTap (line 263) | async cancelTap(init: PointerEventInit = {}, touchInit: TouchEventInit...
method startHover (line 271) | async startHover() {
method endHover (line 279) | async endHover() {
method focusWithKeyboard (line 289) | async focusWithKeyboard(init: KeyboardEventInit = {}) {
method focusWithPointer (line 297) | async focusWithPointer() {
method blur (line 306) | async blur() {
method keypress (line 318) | async keypress(key: string, init: KeyboardEventInit = {}) {
method submitForm (line 330) | submitForm(form = this.element.form) {
method getInteractiveElement (line 355) | protected async getInteractiveElement(): Promise<HTMLElement> {
method addPseudoClass (line 367) | protected addPseudoClass(element: HTMLElement, pseudoClass: string) {
method removePseudoClass (line 395) | protected removePseudoClass(element: HTMLElement, pseudoClass: string) {
method simulateClick (line 405) | protected simulateClick(element: HTMLElement, init: MouseEventInit = {...
method simulateContextmenu (line 422) | protected simulateContextmenu(
method simulateKeyboardFocus (line 443) | protected simulateKeyboardFocus(element: HTMLElement) {
method simulatePointerFocus (line 455) | protected simulatePointerFocus(element: HTMLElement) {
method simulateBlur (line 471) | protected simulateBlur(element: HTMLElement) {
method simulateStartHover (line 489) | protected simulateStartHover(
method simulateEndHover (line 531) | protected simulateEndHover(
method simulateMousePress (line 573) | protected simulateMousePress(
method simulateMouseRelease (line 600) | protected simulateMouseRelease(
method simulateTouchPress (line 626) | protected simulateTouchPress(
method simulateTouchRelease (line 665) | protected simulateTouchRelease(
method simulateTouchCancel (line 698) | protected simulateTouchCancel(
method simulateKeypress (line 732) | protected simulateKeypress(
method simulateKeydown (line 748) | protected simulateKeydown(
method simulateKeyup (line 771) | protected simulateKeyup(
method createMouseEventInit (line 794) | protected createMouseEventInit(element: HTMLElement): MouseEventInit {
method createTouch (line 820) | protected createTouch(element: HTMLElement, identifier = 0): Touch {
method forEachNodeFrom (line 847) | protected forEachNodeFrom(
method patchForTransformedPseudoClasses (line 886) | protected patchForTransformedPseudoClasses(element: HTMLElement) {
FILE: testing/skip-animations.ts
function installSkipWebAnimations (line 8) | function installSkipWebAnimations() {
FILE: testing/table/internal/test-table.ts
type TestTableTemplate (line 13) | interface TestTableTemplate<S extends string = string> {
class TestTable (line 29) | class TestTable<S extends string = string> extends LitElement {
method render (line 38) | protected override render() {
method renderTemplates (line 59) | protected renderTemplates() {
method getVariantName (line 99) | private getVariantName(display: TestTableTemplate['display']) {
FILE: testing/table/internal/test-table_test.ts
type HTMLElementTagNameMap (line 17) | interface HTMLElementTagNameMap {
class TestTestTable (line 22) | @customElement('test-test-table')
FILE: testing/table/test-table.ts
type HTMLElementTagNameMap (line 16) | interface HTMLElementTagNameMap {
class MdTestTable (line 26) | class MdTestTable<S extends string = string> extends TestTable<S> {
FILE: testing/templates.ts
type State (line 19) | enum State {
class TemplateBuilder (line 73) | class TemplateBuilder<
method all (line 97) | all(...testCaseProps: Array<TemplateProps<H>>): TestTableTemplate[] {
method variant (line 116) | variant(variant: V, testCaseProps?: TemplateProps<H>): TestTableTempla...
method withHarness (line 134) | withHarness<NewHarness extends Harness>(
method withStateCallback (line 172) | withStateCallback(callback: TemplateStateCallback<H>) {
method withVariants (line 185) | withVariants(
method withVariant (line 209) | withVariant<NewVariant extends string>(
method createHarnessAndApplyState (line 258) | private async createHarnessAndApplyState(
type TemplateVariant (line 295) | interface TemplateVariant<H extends Harness> {
type TemplateVariantOptions (line 311) | interface TemplateVariantOptions<H extends Harness> {
type TemplateRender (line 335) | type TemplateRender<H extends Harness> = (
type TemplateStateCallback (line 352) | type TemplateStateCallback<H extends Harness> = (
type TemplateProps (line 364) | type TemplateProps<H extends Harness = Harness> = Partial<
type SharedTemplateProps (line 372) | interface SharedTemplateProps {
FILE: testing/tokens.ts
function createTokenTests (line 17) | function createTokenTests(styles: CSSResultOrNative[]) {
function getUndefinedTokens (line 45) | function getUndefinedTokens(styles: CSSResultOrNative[]) {
function getUnusedTokens (line 80) | function getUnusedTokens(styles: CSSResultOrNative[]) {
function getDefinedTokensFromRule (line 98) | function getDefinedTokensFromRule(
function getUsedTokensFromRule (line 121) | function getUsedTokensFromRule(
constant CSS_SHORTHAND_PROPERTIES (line 151) | const CSS_SHORTHAND_PROPERTIES = [
function cssResultsToStyleSheets (line 203) | function cssResultsToStyleSheets(styles: CSSResultOrNative[]): CSSStyleS...
FILE: testing/transform-pseudo-classes.ts
function getTransformedPseudoClass (line 34) | function getTransformedPseudoClass(pseudoClass: string) {
function transformPseudoClasses (line 64) | function transformPseudoClasses(
function isCSSGroupingRule (line 94) | function isCSSGroupingRule(rule: CSSRule): rule is CSSGroupingRule {
function visitRule (line 110) | function visitRule(
function rearrangePseudoElements (line 175) | function rearrangePseudoElements(selectorText: string) {
FILE: textfield/demo/stories.ts
type StoryKnobs (line 19) | interface StoryKnobs {
method render (line 54) | render(knobs) {
method render (line 82) | render(knobs) {
method render (line 108) | render(knobs) {
method render (line 154) | render(knobs) {
method render (line 207) | render(knobs) {
function reportValidity (line 235) | async function reportValidity(event: Event) {
function clearInput (line 240) | function clearInput(event: Event) {
function alertValues (line 248) | function alertValues(event: SubmitEvent) {
FILE: textfield/filled-text-field.ts
type HTMLElementTagNameMap (line 20) | interface HTMLElementTagNameMap {
class MdFilledTextField (line 31) | class MdFilledTextField extends FilledTextField {
FILE: textfield/harness.ts
class TextFieldHarness (line 14) | class TextFieldHarness extends Harness<TextField> {
method inputValue (line 31) | async inputValue(value: string) {
method deleteValue (line 53) | async deleteValue(beginIndex?: number, endIndex?: number) {
method reset (line 62) | override async reset() {
method blur (line 68) | override async blur() {
method simulatePointerFocus (line 73) | protected override simulatePointerFocus(input: HTMLElement) {
method simulateInput (line 83) | protected simulateInput(
method simulateDeletion (line 102) | protected simulateDeletion(
method simulateChangeIfNeeded (line 125) | protected simulateChangeIfNeeded(
method getInteractiveElement (line 136) | protected override async getInteractiveElement() {
FILE: textfield/harness_test.ts
function setupTest (line 20) | async function setupTest() {
FILE: textfield/internal/filled-text-field.ts
class FilledTextField (line 16) | class FilledTextField extends TextField {
FILE: textfield/internal/outlined-text-field.ts
class OutlinedTextField (line 16) | class OutlinedTextField extends TextField {
FILE: textfield/internal/text-field.ts
type TextFieldType (line 39) | type TextFieldType =
type UnsupportedTextFieldType (line 52) | type UnsupportedTextFieldType =
type InvalidTextFieldType (line 64) | type InvalidTextFieldType =
method selectionDirection (line 274) | get selectionDirection() {
method selectionDirection (line 277) | set selectionDirection(value: 'forward' | 'backward' | 'none' | null) {
method selectionEnd (line 284) | get selectionEnd() {
method selectionEnd (line 287) | set selectionEnd(value: number | null) {
method selectionStart (line 294) | get selectionStart() {
method selectionStart (line 297) | set selectionStart(value: number | null) {
method valueAsNumber (line 342) | get valueAsNumber() {
method valueAsNumber (line 350) | set valueAsNumber(value: number) {
method valueAsDate (line 363) | get valueAsDate() {
method valueAsDate (line 371) | set valueAsDate(value: Date | null) {
method hasError (line 399) | private get hasError() {
method select (line 419) | select() {
method setRangeText (line 435) | setRangeText(...args: unknown[]) {
method setSelectionRange (line 453) | setSelectionRange(
method showPicker (line 469) | showPicker() {
method stepDown (line 486) | stepDown(stepDecrement?: number) {
method stepUp (line 504) | stepUp(stepIncrement?: number) {
method reset (line 517) | reset() {
method attributeChangedCallback (line 524) | override attributeChangedCallback(
method render (line 538) | protected override render() {
method updated (line 553) | protected override updated(changedProperties: PropertyValues) {
method renderField (line 567) | private renderField() {
method renderLeadingIcon (line 593) | private renderLeadingIcon() {
method renderTrailingIcon (line 601) | private renderTrailingIcon() {
method renderInputOrTextarea (line 609) | private renderInputOrTextarea() {
method renderPrefix (line 690) | private renderPrefix() {
method renderSuffix (line 694) | private renderSuffix() {
method renderAffix (line 698) | private renderAffix(text: string, isSuffix: boolean) {
method getErrorText (line 711) | private getErrorText() {
method handleFocusChange (line 715) | private handleFocusChange() {
method handleInput (line 723) | private handleInput(event: InputEvent) {
method redispatchEvent (line 728) | private redispatchEvent(event: Event) {
method getInputOrTextarea (line 732) | private getInputOrTextarea() {
method getInput (line 753) | private getInput() {
method handleIconChange (line 761) | private handleIconChange() {
method [getFormValue] (line 770) | override [getFormValue]() {
method formResetCallback (line 774) | override formResetCallback() {
method formStateRestoreCallback (line 778) | override formStateRestoreCallback(state: string) {
method focus (line 782) | override focus() {
method [createValidator] (line 788) | override [createValidator](): Validator<unknown> {
method [getValidityAnchor] (line 795) | override [getValidityAnchor](): HTMLElement | null {
method [onReportValidity] (line 799) | override [onReportValidity](invalidEvent: Event | null) {
FILE: textfield/internal/text-field_test.ts
type HTMLElementTagNameMap (line 22) | interface HTMLElementTagNameMap {
class TestTextField (line 27) | @customElement('md-test-text-field')
method getHasError (line 31) | async getHasError() {
method getErrorTextValue (line 39) | async getErrorTextValue() {
function setupTest (line 48) | async function setupTest(
method assertValue (line 612) | assertValue(formData) {
method assertValue (line 622) | assertValue(formData) {
method assertValue (line 632) | assertValue(formData) {
method assertValue (line 643) | assertValue(formData) {
method change (line 655) | change(textField) {
method assertReset (line 658) | assertReset(textField) {
method change (line 670) | change(textField) {
method assertReset (line 673) | assertReset(textField) {
method assertRestored (line 687) | assertRestored(textField) {
FILE: textfield/outlined-text-field.ts
type HTMLElementTagNameMap (line 20) | interface HTMLElementTagNameMap {
class MdOutlinedTextField (line 31) | class MdOutlinedTextField extends OutlinedTextField {
Condensed preview — 1209 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,373K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/bug.yaml",
"chars": 3986,
"preview": "name: 🐛 Bug Report\ndescription: Report a bug that affects a Material Web component\n\nbody:\n - type: dropdown\n id: aff"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 400,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: ❓ Questions, Help, and Advice\n url: https://github.com/material-"
},
{
"path": ".github/ISSUE_TEMPLATE/documentation-bug.yaml",
"chars": 682,
"preview": "name: 🐛 Documentation Bug\ndescription: Report a bug that affects Material Web documentation (https://material-web.dev/)\n"
},
{
"path": ".github/ISSUE_TEMPLATE/feature.yaml",
"chars": 574,
"preview": "name: ✨ Feature Request\ndescription: Request a feature to be added to Material Web Components.\n\nbody:\n - type: textarea"
},
{
"path": ".github/workflows/build-catalog.yml",
"chars": 422,
"preview": "name: Build Catalog\n\non: [push]\n\npermissions:\n contents: read\n\njobs:\n build-catalog:\n runs-on: ubuntu-latest\n st"
},
{
"path": ".github/workflows/commitlint.yml",
"chars": 456,
"preview": "name: commitlint\n\non: [pull_request]\n\npermissions:\n contents: read\n\njobs:\n commitlint:\n runs-on: ubuntu-latest\n\n "
},
{
"path": ".github/workflows/firebase-hosting-merge.yml",
"chars": 825,
"preview": "name: Deploy to Firebase Hosting on release and manual\n'on':\n release:\n types:\n - published\n workflow_dispatch"
},
{
"path": ".github/workflows/firebase-hosting-pull-request.yml",
"chars": 961,
"preview": "# This file was auto-generated by the Firebase CLI\n# https://github.com/firebase/firebase-tools\n\nname: Deploy to Firebas"
},
{
"path": ".github/workflows/nightly.yml",
"chars": 1564,
"preview": "name: Nightly publish\n\non:\n schedule:\n - cron: '21 3 * * *'\n workflow_dispatch:\n # allows triggering from the gi"
},
{
"path": ".github/workflows/publish.yml",
"chars": 669,
"preview": "name: Publish\n\non:\n push:\n tags:\n - 'v*'\n\npermissions:\n contents: read\n\njobs:\n publish:\n runs-on: ubuntu-l"
},
{
"path": ".github/workflows/release-please.yml",
"chars": 309,
"preview": "on:\n push:\n branches:\n - main\n\nname: release-please\n\njobs:\n release-please:\n runs-on: ubuntu-latest\n per"
},
{
"path": ".github/workflows/test.yml",
"chars": 779,
"preview": "name: Tests\n\non: [push]\n\npermissions:\n contents: read\n\njobs:\n build:\n runs-on: ubuntu-latest\n\n steps:\n - us"
},
{
"path": ".github/workflows/update-docs-on-main.yml",
"chars": 1320,
"preview": "name: Update API Docs\n\non:\n push:\n branches: main\n workflow_dispatch:\n # allows triggering from the github UI\n\np"
},
{
"path": ".github/workflows/update-size-on-main.yml",
"chars": 1344,
"preview": "name: Update size\n\non:\n push:\n branches: main\n workflow_dispatch:\n # allows triggering from the github UI\n\npermi"
},
{
"path": ".gitignore",
"chars": 487,
"preview": "node_modules\n*.js\n!web-test-runner.config.js\n!commitlint.config.js\n*.css\n*-styles.ts\n*.map\n*.d.ts\n!types/*.d.ts\n.wireit/"
},
{
"path": ".release-please-manifest.json",
"chars": 19,
"preview": "{\n \".\": \"2.4.1\"\n}\n"
},
{
"path": "CHANGELOG.md",
"chars": 158504,
"preview": "# Changelog\n\n## [2.4.1](https://github.com/material-components/material-web/compare/v2.4.0...v2.4.1) (2025-10-27)\n\n\n### "
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5266,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "CONTRIBUTING.md",
"chars": 2153,
"preview": "# Contributing\n\nThank you for your interest in contributing! The following sections describe\nways to get involved.\n\n## C"
},
{
"path": "LICENSE",
"chars": 11348,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 3146,
"preview": "# Material Web\n\n<img src=\"./docs/images/material-web.gif\"\n title=\"Material web components\"\n alt=\"A collection of Mater"
},
{
"path": "SECURITY.md",
"chars": 352,
"preview": "# Security Policy\n\n## Supported Versions\n\nSecurity updates are only applied to the latest published version.\n\n## Reporti"
},
{
"path": "all.ts",
"chars": 3763,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview A convenie"
},
{
"path": "button/_elevated-button.scss",
"chars": 125,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/elevated-button' show th"
},
{
"path": "button/_filled-button.scss",
"chars": 123,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/filled-button' show them"
},
{
"path": "button/_filled-tonal-button.scss",
"chars": 129,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/filled-tonal-button' sho"
},
{
"path": "button/_outlined-button.scss",
"chars": 125,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/outlined-button' show th"
},
{
"path": "button/_text-button.scss",
"chars": 121,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/text-button' show theme;"
},
{
"path": "button/demo/demo.ts",
"chars": 807,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport './material-collection.j"
},
{
"path": "button/demo/project.json",
"chars": 129,
"preview": "{\n \"extends\": \"/assets/stories/base.json\",\n \"files\": {\n \"demo.ts\": {\n \"hidden\": true\n },\n \"stories.ts\": "
},
{
"path": "button/demo/stories.ts",
"chars": 6968,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/button/el"
},
{
"path": "button/elevated-button.ts",
"chars": 1438,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "button/elevated-button_test.ts",
"chars": 366,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "button/filled-button.ts",
"chars": 1285,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "button/filled-button_test.ts",
"chars": 358,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "button/filled-tonal-button.ts",
"chars": 1424,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "button/filled-tonal-button_test.ts",
"chars": 380,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "button/harness.ts",
"chars": 447,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testi"
},
{
"path": "button/internal/_elevated-button.scss",
"chars": 812,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "button/internal/_elevation.scss",
"chars": 1499,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:map';\n// g"
},
{
"path": "button/internal/_filled-button.scss",
"chars": 806,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "button/internal/_filled-tonal-button.scss",
"chars": 824,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "button/internal/_icon.scss",
"chars": 1042,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@mixin styles() {\n // The icon CSS class ove"
},
{
"path": "button/internal/_outlined-button.scss",
"chars": 2210,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "button/internal/_shared.scss",
"chars": 5551,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:map';\n// g"
},
{
"path": "button/internal/_text-button.scss",
"chars": 908,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "button/internal/_touch-target.scss",
"chars": 394,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@mixin styles() {\n .touch {\n position: ab"
},
{
"path": "button/internal/button.ts",
"chars": 6152,
"preview": "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ri"
},
{
"path": "button/internal/button_test.ts",
"chars": 2174,
"preview": "/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "button/internal/elevated-button.ts",
"chars": 400,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevati"
},
{
"path": "button/internal/elevated-styles.scss",
"chars": 181,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './elevated-butt"
},
{
"path": "button/internal/filled-button.ts",
"chars": 395,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevati"
},
{
"path": "button/internal/filled-styles.scss",
"chars": 177,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './filled-button"
},
{
"path": "button/internal/filled-tonal-button.ts",
"chars": 406,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevati"
},
{
"path": "button/internal/filled-tonal-styles.scss",
"chars": 189,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './filled-tonal-"
},
{
"path": "button/internal/outlined-button.ts",
"chars": 341,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html} from 'lit';\n\nimpo"
},
{
"path": "button/internal/outlined-styles.scss",
"chars": 181,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './outlined-butt"
},
{
"path": "button/internal/shared-elevation-styles.scss",
"chars": 169,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './elevation';\n/"
},
{
"path": "button/internal/shared-styles.scss",
"chars": 253,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './icon';\n@use '"
},
{
"path": "button/internal/text-button.ts",
"chars": 204,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Button} from './button."
},
{
"path": "button/internal/text-styles.scss",
"chars": 173,
"preview": "//\n// Copyright 2021 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './text-button';"
},
{
"path": "button/outlined-button.ts",
"chars": 1298,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "button/outlined-button_test.ts",
"chars": 366,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "button/text-button.ts",
"chars": 1139,
"preview": "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "button/text-button_test.ts",
"chars": 350,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "catalog/.firebaserc",
"chars": 62,
"preview": "{\n \"projects\": {\n \"default\": \"material-web-catalog\"\n }\n}\n"
},
{
"path": "catalog/eleventy-helpers/filters/filter-sort.cjs",
"chars": 1652,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A filter that sorts and "
},
{
"path": "catalog/eleventy-helpers/filters/filter-toc.cjs",
"chars": 685,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A filter that sanitizes "
},
{
"path": "catalog/eleventy-helpers/filters/md-markdown.cjs",
"chars": 3345,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst cheerio = require('cheeri"
},
{
"path": "catalog/eleventy-helpers/plugins/copy-code-button.cjs",
"chars": 1414,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Renders a copy-code-butt"
},
{
"path": "catalog/eleventy-helpers/plugins/permalinks.cjs",
"chars": 2264,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst markdownItAnchor = requir"
},
{
"path": "catalog/eleventy-helpers/shortcodes/inline-css.cjs",
"chars": 1458,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst CleanCSS = require('clean"
},
{
"path": "catalog/eleventy-helpers/shortcodes/inline-js.cjs",
"chars": 1537,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst fsSync = require('fs');\n\n"
},
{
"path": "catalog/eleventy-helpers/shortcodes/playground-example.cjs",
"chars": 2729,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Will render a playground"
},
{
"path": "catalog/eleventy-helpers/transforms/minify-html.cjs",
"chars": 890,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst htmlMinifier = require('h"
},
{
"path": "catalog/eleventy.config.cjs",
"chars": 3773,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst litPlugin = require('@lit"
},
{
"path": "catalog/esbuild.config.mjs",
"chars": 4301,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport gzipPlugin from '@lunche"
},
{
"path": "catalog/firebase.json",
"chars": 815,
"preview": "{\n \"hosting\": {\n \"public\": \"_prod\",\n \"ignore\": [\n \"firebase.json\",\n \"**/.*\",\n \"**/node_modules/**\""
},
{
"path": "catalog/package.json",
"chars": 4801,
"preview": "{\n \"name\": \"material-web-catalog\",\n \"version\": \"0.0.1\",\n \"description\": \"The Material Web Catalog.\",\n \"main\": \"_prod"
},
{
"path": "catalog/scripts/copy-docs.mjs",
"chars": 5501,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {cp, readFile, writeFile"
},
{
"path": "catalog/scripts/copy-stories.mjs",
"chars": 914,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {cp} from 'fs/promises';"
},
{
"path": "catalog/site/_includes/default.html",
"chars": 4632,
"preview": "<!DOCTYPE html>\n\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta\n name=\"viewport\"\n content=\"w"
},
{
"path": "catalog/site/_includes/layouts/components.html",
"chars": 674,
"preview": "{% extends 'default.html' %}\n\n{% block head %}\n <script type=\"module\" src=\"/js/pages/components.js\"></script>\n <link r"
},
{
"path": "catalog/site/_includes/layouts/docs.html",
"chars": 316,
"preview": "{% extends 'default.html' %}\n\n{% block head %}\n <link rel=\"stylesheet\" href=\"/css/md-layout.css\" />\n <link rel=\"styles"
},
{
"path": "catalog/site/about/about.json",
"chars": 75,
"preview": "{\n \"layout\": \"layouts/docs.html\",\n \"tags\": [\"about\"],\n \"hasToc\": true\n}\n"
},
{
"path": "catalog/site/components/components.json",
"chars": 108,
"preview": "{\n \"layout\": \"layouts/components.html\",\n \"tags\": [\"component\"],\n \"hasToc\": true,\n \"isComponent\": true\n}\n"
},
{
"path": "catalog/site/css/global.css",
"chars": 4110,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* latin */\n@font-face {\n font"
},
{
"path": "catalog/site/css/home-page.css",
"chars": 155,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n h1,\n.subtitle {\n text-align: "
},
{
"path": "catalog/site/css/md-layout.css",
"chars": 4691,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n:root {\n --catalog-image-borde"
},
{
"path": "catalog/site/css/no-js.css",
"chars": 3382,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n:root,\n:host :root,\n:host {\n -"
},
{
"path": "catalog/site/css/stories.css",
"chars": 421,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n#dragbar {\n max-width: 100%;\n "
},
{
"path": "catalog/site/css/syntax-highlight.css",
"chars": 4548,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview This file "
},
{
"path": "catalog/site/index.html",
"chars": 704,
"preview": "{% extends 'default.html' %}\n\n{% block head %}\n <script type=\"module\" src=\"/js/pages/home-page.js\"></script>\n <link re"
},
{
"path": "catalog/site/stories/stories.html",
"chars": 3326,
"preview": "---js\n{\n pagination: {\n data: \"collections.component\",\n size: 1,\n alias: \"component\",\n before: components ="
},
{
"path": "catalog/site/theming/theming.json",
"chars": 77,
"preview": "{\n \"layout\": \"layouts/docs.html\",\n \"tags\": [\"theming\"],\n \"hasToc\": true\n}\n"
},
{
"path": "catalog/src/components/catalog-component-header-title.ts",
"chars": 1384,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {css, html, LitElement} "
},
{
"path": "catalog/src/components/catalog-component-header.ts",
"chars": 2228,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {css, html, LitElement} "
},
{
"path": "catalog/src/components/copy-code-button.ts",
"chars": 3160,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/icon/icon"
},
{
"path": "catalog/src/components/drag-playground.ts",
"chars": 5430,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n\nimport { LitElement, css, html"
},
{
"path": "catalog/src/components/hct-slider.ts",
"chars": 4186,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/slider/sl"
},
{
"path": "catalog/src/components/nav-drawer.ts",
"chars": 10832,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {animate, fadeIn, fadeOu"
},
{
"path": "catalog/src/components/theme-changer.ts",
"chars": 8958,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/focus/md-"
},
{
"path": "catalog/src/components/top-app-bar.ts",
"chars": 7619,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/focus/md-"
},
{
"path": "catalog/src/hydration-entrypoints/components/button.ts",
"chars": 337,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/button/el"
},
{
"path": "catalog/src/hydration-entrypoints/components/checkbox.ts",
"chars": 134,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/checkbox/"
},
{
"path": "catalog/src/hydration-entrypoints/components/fab.ts",
"chars": 167,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/fab/brand"
},
{
"path": "catalog/src/hydration-entrypoints/components/icon-button.ts",
"chars": 318,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/iconbutto"
},
{
"path": "catalog/src/hydration-entrypoints/components/list.ts",
"chars": 168,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/list/list"
},
{
"path": "catalog/src/hydration-entrypoints/components/menu.ts",
"chars": 257,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/button/fi"
},
{
"path": "catalog/src/hydration-entrypoints/components/select.ts",
"chars": 235,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/select/fi"
},
{
"path": "catalog/src/hydration-entrypoints/components/text-field.ts",
"chars": 288,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/icon/icon"
},
{
"path": "catalog/src/hydration-entrypoints/copy-code-button.ts",
"chars": 133,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../components/copy-code"
},
{
"path": "catalog/src/hydration-entrypoints/menu.ts",
"chars": 167,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/menu/menu"
},
{
"path": "catalog/src/hydration-entrypoints/navigation.ts",
"chars": 245,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/list/list"
},
{
"path": "catalog/src/hydration-entrypoints/playground-elements.ts",
"chars": 249,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport 'playground-elements/pla"
},
{
"path": "catalog/src/inline/apply-saved-theme.ts",
"chars": 423,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {applyThemeString} from "
},
{
"path": "catalog/src/pages/components.ts",
"chars": 3259,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/iconbutto"
},
{
"path": "catalog/src/pages/global.ts",
"chars": 2560,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview This file "
},
{
"path": "catalog/src/pages/home-page.ts",
"chars": 185,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is used in /site/index."
},
{
"path": "catalog/src/pages/stories.ts",
"chars": 132,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../components/drag-play"
},
{
"path": "catalog/src/signals/drawer-open-state.ts",
"chars": 242,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {signal} from './signal-"
},
{
"path": "catalog/src/signals/inert.ts",
"chars": 382,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {signal} from './signal-"
},
{
"path": "catalog/src/signals/signal-element.ts",
"chars": 1144,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {effect} from '@preact/s"
},
{
"path": "catalog/src/ssr-utils/dsd-polyfill.ts",
"chars": 371,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Declarative shadow dom polyf"
},
{
"path": "catalog/src/ssr-utils/lit-hydrate-support.ts",
"chars": 275,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Must be loaded before any li"
},
{
"path": "catalog/src/ssr-utils/lit-island.ts",
"chars": 314,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Island} from '@11ty/is-"
},
{
"path": "catalog/src/ssr.ts",
"chars": 542,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// This file imports only files"
},
{
"path": "catalog/src/svg/material-design-logo.ts",
"chars": 806,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html} from 'lit';\n\n/**\n"
},
{
"path": "catalog/src/types/color-events.ts",
"chars": 1000,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A theme mapping of token"
},
{
"path": "catalog/src/types/is-land.d.ts",
"chars": 199,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\ndeclare module '@11ty/is-land' "
},
{
"path": "catalog/src/utils/apply-theme-string.ts",
"chars": 1717,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\ntype WithStylesheet = typeof gl"
},
{
"path": "catalog/src/utils/material-color-helpers.ts",
"chars": 4898,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n argbFromHex,\n Hct,\n"
},
{
"path": "catalog/src/utils/theme.ts",
"chars": 4805,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n applyMaterialTheme,\n"
},
{
"path": "catalog/stories/base.json",
"chars": 591,
"preview": "{\n \"files\": {\n \"components/story-renderer.ts\": {\n \"hidden\": true\n },\n \"components/stories-renderer.ts\": {"
},
{
"path": "catalog/stories/components/knob-ui-components.ts",
"chars": 12498,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// These imports are resolved b"
},
{
"path": "catalog/stories/components/stories-renderer.ts",
"chars": 5593,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Slimmed down version of Lit "
},
{
"path": "catalog/stories/components/story-knob-panel.ts",
"chars": 8333,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Fork of Lit stories story-kn"
},
{
"path": "catalog/stories/components/story-renderer.ts",
"chars": 2290,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Slimmed down version of Lit "
},
{
"path": "catalog/stories/index.html",
"chars": 836,
"preview": "<!--\n@license\nCopyright 2023 Google LLC\nSPDX-License-Identifier: Apache-2.0\n-->\n<!DOCTYPE html>\n<html>\n <head>\n <scr"
},
{
"path": "catalog/stories/index.ts",
"chars": 271,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Equivalent of Lit stories en"
},
{
"path": "catalog/stories/knobs.ts",
"chars": 8685,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Slimmed down version of Lit "
},
{
"path": "catalog/stories/material-collection.ts",
"chars": 3407,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Slimmed down version of mate"
},
{
"path": "catalog/stories/story.ts",
"chars": 6719,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Slimmed down version of Lit "
},
{
"path": "catalog/stories/theme-loader.ts",
"chars": 1142,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* Loads the current theme from"
},
{
"path": "catalog/tsconfig.json",
"chars": 545,
"preview": "{\n \"compilerOptions\": {\n \"module\": \"es2022\",\n \"lib\": [\"es2022\", \"dom\", \"dom.iterable\"],\n \"target\": \"es2022\",\n "
},
{
"path": "checkbox/_checkbox.scss",
"chars": 118,
"preview": "//\n// Copyright 2022 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/checkbox' show theme;\n"
},
{
"path": "checkbox/checkbox.ts",
"chars": 856,
"preview": "/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "checkbox/checkbox_test.ts",
"chars": 4788,
"preview": "/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "checkbox/demo/demo.ts",
"chars": 758,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport './material-collection.j"
},
{
"path": "checkbox/demo/project.json",
"chars": 129,
"preview": "{\n \"extends\": \"/assets/stories/base.json\",\n \"files\": {\n \"demo.ts\": {\n \"hidden\": true\n },\n \"stories.ts\": "
},
{
"path": "checkbox/demo/stories.ts",
"chars": 1941,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/checkbox/"
},
{
"path": "checkbox/harness.ts",
"chars": 430,
"preview": "/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testi"
},
{
"path": "checkbox/internal/_checkbox.scss",
"chars": 10805,
"preview": "//\n// Copyright 2022 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "checkbox/internal/checkbox-styles.scss",
"chars": 167,
"preview": "//\n// Copyright 2022 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './checkbox';\n//"
},
{
"path": "checkbox/internal/checkbox.ts",
"chars": 6592,
"preview": "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ri"
},
{
"path": "checkbox/internal/checkbox_test.ts",
"chars": 9295,
"preview": "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html} from 'lit';\n\nimpo"
},
{
"path": "chips/_assist-chip.scss",
"chars": 121,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/assist-chip' show theme;"
},
{
"path": "chips/_filter-chip.scss",
"chars": 121,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/filter-chip' show theme;"
},
{
"path": "chips/_input-chip.scss",
"chars": 120,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/input-chip' show theme;\n"
},
{
"path": "chips/_suggestion-chip.scss",
"chars": 125,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@forward './internal/suggestion-chip' show th"
},
{
"path": "chips/assist-chip.ts",
"chars": 769,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "chips/assist-chip_test.ts",
"chars": 350,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/chip-set.ts",
"chars": 580,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "chips/demo/demo.ts",
"chars": 852,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport './material-collection.j"
},
{
"path": "chips/demo/project.json",
"chars": 129,
"preview": "{\n \"extends\": \"/assets/stories/base.json\",\n \"files\": {\n \"demo.ts\": {\n \"hidden\": true\n },\n \"stories.ts\": "
},
{
"path": "chips/demo/stories.ts",
"chars": 6025,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '@material/web/chips/ass"
},
{
"path": "chips/filter-chip.ts",
"chars": 989,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "chips/filter-chip_test.ts",
"chars": 350,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/harness.ts",
"chars": 1362,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testi"
},
{
"path": "chips/input-chip.ts",
"chars": 889,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from"
},
{
"path": "chips/input-chip_test.ts",
"chars": 346,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/_assist-chip.scss",
"chars": 899,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "chips/internal/_chip-set.scss",
"chars": 163,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n@mixin styles() {\n :host {\n display: flex"
},
{
"path": "chips/internal/_elevated.scss",
"chars": 1355,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use '../../elevation"
},
{
"path": "chips/internal/_filter-chip.scss",
"chars": 1149,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "chips/internal/_input-chip.scss",
"chars": 2214,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "chips/internal/_selectable.scss",
"chars": 1904,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use '../../ripple/ri"
},
{
"path": "chips/internal/_shared.scss",
"chars": 5657,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "chips/internal/_suggestion-chip.scss",
"chars": 911,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use 'sass:list';\n@us"
},
{
"path": "chips/internal/_trailing-icon.scss",
"chars": 1805,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use '../../focus/foc"
},
{
"path": "chips/internal/assist-chip.ts",
"chars": 2182,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevati"
},
{
"path": "chips/internal/assist-chip_test.ts",
"chars": 2715,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/assist-styles.scss",
"chars": 173,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './assist-chip';"
},
{
"path": "chips/internal/chip-set-styles.scss",
"chars": 167,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './chip-set';\n//"
},
{
"path": "chips/internal/chip-set.ts",
"chars": 4464,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, isServer, LitElem"
},
{
"path": "chips/internal/chip-set_test.ts",
"chars": 8723,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/chip.ts",
"chars": 5118,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ri"
},
{
"path": "chips/internal/chip_test.ts",
"chars": 1154,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/elevated-styles.scss",
"chars": 167,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './elevated';\n//"
},
{
"path": "chips/internal/filter-chip.ts",
"chars": 3521,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevati"
},
{
"path": "chips/internal/filter-chip_test.ts",
"chars": 4138,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/filter-styles.scss",
"chars": 173,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './filter-chip';"
},
{
"path": "chips/internal/input-chip.ts",
"chars": 2935,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, nothing} from 'li"
},
{
"path": "chips/internal/input-chip_test.ts",
"chars": 2709,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/input-styles.scss",
"chars": 171,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './input-chip';\n"
},
{
"path": "chips/internal/multi-action-chip.ts",
"chars": 3662,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, isServer} from 'l"
},
{
"path": "chips/internal/multi-action-chip_test.ts",
"chars": 12032,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// import 'jasmine'; (google3-o"
},
{
"path": "chips/internal/selectable-styles.scss",
"chars": 171,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './selectable';\n"
},
{
"path": "chips/internal/shared-styles.scss",
"chars": 163,
"preview": "//\n// Copyright 2023 Google LLC\n// SPDX-License-Identifier: Apache-2.0\n//\n\n// go/keep-sorted start\n@use './shared';\n// g"
},
{
"path": "chips/internal/suggestion-chip.ts",
"chars": 316,
"preview": "/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {AssistChip} from './ass"
}
]
// ... and 1009 more files (download for full content)
About this extraction
This page contains the full source code of the material-components/material-web GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1209 files (4.0 MB), approximately 1.1M tokens, and a symbol index with 1675 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.