gitextract_b6qx7r1_/ ├── .editorconfig ├── .eslintignore ├── .eslintrc.cjs ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── config.yml │ ├── SECURITY.md │ └── workflows/ │ ├── node.js.yml │ └── release.yml ├── .gitignore ├── .gitpod.yml ├── .husky/ │ └── pre-commit ├── .prettierignore ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── cspell.json ├── custom-elements-manifest.config.js ├── docs/ │ ├── _includes/ │ │ ├── component.njk │ │ ├── default.njk │ │ ├── sidebar.njk │ │ └── wa-logo-icon.njk │ ├── _utilities/ │ │ ├── active-links.cjs │ │ ├── anchor-headings.cjs │ │ ├── cem.cjs │ │ ├── code-previews.cjs │ │ ├── copy-code-buttons.cjs │ │ ├── external-links.cjs │ │ ├── highlight-code.cjs │ │ ├── markdown.cjs │ │ ├── prettier.cjs │ │ ├── replacer.cjs │ │ ├── scrolling-tables.cjs │ │ ├── strings.cjs │ │ ├── table-of-contents.cjs │ │ └── typography.cjs │ ├── assets/ │ │ ├── examples/ │ │ │ └── include.html │ │ ├── scripts/ │ │ │ ├── code-previews.js │ │ │ ├── docs.js │ │ │ ├── search.js │ │ │ └── turbo.js │ │ └── styles/ │ │ ├── code-previews.css │ │ ├── docs.css │ │ └── search.css │ ├── eleventy.config.cjs │ └── pages/ │ ├── 404.md │ ├── components/ │ │ ├── alert.md │ │ ├── animated-image.md │ │ ├── animation.md │ │ ├── avatar.md │ │ ├── badge.md │ │ ├── breadcrumb-item.md │ │ ├── breadcrumb.md │ │ ├── button-group.md │ │ ├── button.md │ │ ├── card.md │ │ ├── carousel-item.md │ │ ├── carousel.md │ │ ├── checkbox.md │ │ ├── color-picker.md │ │ ├── copy-button.md │ │ ├── details.md │ │ ├── dialog.md │ │ ├── divider.md │ │ ├── drawer.md │ │ ├── dropdown.md │ │ ├── format-bytes.md │ │ ├── format-date.md │ │ ├── format-number.md │ │ ├── icon-button.md │ │ ├── icon.md │ │ ├── image-comparer.md │ │ ├── include.md │ │ ├── input.md │ │ ├── menu-item.md │ │ ├── menu-label.md │ │ ├── menu.md │ │ ├── mutation-observer.md │ │ ├── option.md │ │ ├── popup.md │ │ ├── progress-bar.md │ │ ├── progress-ring.md │ │ ├── qr-code.md │ │ ├── radio-button.md │ │ ├── radio-group.md │ │ ├── radio.md │ │ ├── range.md │ │ ├── rating.md │ │ ├── relative-time.md │ │ ├── resize-observer.md │ │ ├── select.md │ │ ├── skeleton.md │ │ ├── spinner.md │ │ ├── split-panel.md │ │ ├── switch.md │ │ ├── tab-group.md │ │ ├── tab-panel.md │ │ ├── tab.md │ │ ├── tag.md │ │ ├── textarea.md │ │ ├── tooltip.md │ │ ├── tree-item.md │ │ ├── tree.md │ │ └── visually-hidden.md │ ├── frameworks/ │ │ ├── angular.md │ │ ├── react.md │ │ ├── svelte.md │ │ ├── vue-2.md │ │ └── vue.md │ ├── getting-started/ │ │ ├── customizing.md │ │ ├── form-controls.md │ │ ├── installation.md │ │ ├── localization.md │ │ ├── themes.md │ │ └── usage.md │ ├── index.md │ ├── resources/ │ │ ├── accessibility.md │ │ ├── changelog.md │ │ ├── community.md │ │ └── contributing.md │ ├── tokens/ │ │ ├── border-radius.md │ │ ├── color.md │ │ ├── elevation.md │ │ ├── more.md │ │ ├── spacing.md │ │ ├── transition.md │ │ ├── typography.md │ │ └── z-index.md │ └── tutorials/ │ ├── integrating-with-astro.md │ ├── integrating-with-laravel.md │ ├── integrating-with-nextjs.md │ └── integrating-with-rails.md ├── lint-staged.config.js ├── package.json ├── prettier.config.js ├── scripts/ │ ├── build.js │ ├── make-icons.js │ ├── make-metadata.js │ ├── make-react.js │ ├── make-themes.js │ ├── plop/ │ │ ├── plopfile.js │ │ └── templates/ │ │ └── component/ │ │ ├── component.hbs │ │ ├── define.hbs │ │ ├── docs.hbs │ │ ├── styles.hbs │ │ └── tests.hbs │ └── shared.js ├── src/ │ ├── components/ │ │ ├── alert/ │ │ │ ├── alert.component.ts │ │ │ ├── alert.styles.ts │ │ │ ├── alert.test.ts │ │ │ └── alert.ts │ │ ├── animated-image/ │ │ │ ├── animated-image.component.ts │ │ │ ├── animated-image.styles.ts │ │ │ ├── animated-image.test.ts │ │ │ └── animated-image.ts │ │ ├── animation/ │ │ │ ├── animation.component.ts │ │ │ ├── animation.styles.ts │ │ │ ├── animation.test.ts │ │ │ ├── animation.ts │ │ │ └── animations.ts │ │ ├── avatar/ │ │ │ ├── avatar.component.ts │ │ │ ├── avatar.styles.ts │ │ │ ├── avatar.test.ts │ │ │ └── avatar.ts │ │ ├── badge/ │ │ │ ├── badge.component.ts │ │ │ ├── badge.styles.ts │ │ │ ├── badge.test.ts │ │ │ └── badge.ts │ │ ├── breadcrumb/ │ │ │ ├── breadcrumb.component.ts │ │ │ ├── breadcrumb.styles.ts │ │ │ ├── breadcrumb.test.ts │ │ │ └── breadcrumb.ts │ │ ├── breadcrumb-item/ │ │ │ ├── breadcrumb-item.component.ts │ │ │ ├── breadcrumb-item.styles.ts │ │ │ ├── breadcrumb-item.test.ts │ │ │ └── breadcrumb-item.ts │ │ ├── button/ │ │ │ ├── button.component.ts │ │ │ ├── button.styles.ts │ │ │ ├── button.test.ts │ │ │ └── button.ts │ │ ├── button-group/ │ │ │ ├── button-group.component.ts │ │ │ ├── button-group.styles.ts │ │ │ ├── button-group.test.ts │ │ │ └── button-group.ts │ │ ├── card/ │ │ │ ├── card.component.ts │ │ │ ├── card.styles.ts │ │ │ ├── card.test.ts │ │ │ └── card.ts │ │ ├── carousel/ │ │ │ ├── autoplay-controller.ts │ │ │ ├── carousel.component.ts │ │ │ ├── carousel.styles.ts │ │ │ ├── carousel.test.ts │ │ │ └── carousel.ts │ │ ├── carousel-item/ │ │ │ ├── carousel-item.component.ts │ │ │ ├── carousel-item.styles.ts │ │ │ ├── carousel-item.test.ts │ │ │ └── carousel-item.ts │ │ ├── checkbox/ │ │ │ ├── checkbox.component.ts │ │ │ ├── checkbox.styles.ts │ │ │ ├── checkbox.test.ts │ │ │ └── checkbox.ts │ │ ├── color-picker/ │ │ │ ├── color-picker.component.ts │ │ │ ├── color-picker.styles.ts │ │ │ ├── color-picker.test.ts │ │ │ └── color-picker.ts │ │ ├── copy-button/ │ │ │ ├── copy-button.component.ts │ │ │ ├── copy-button.styles.ts │ │ │ ├── copy-button.test.ts │ │ │ └── copy-button.ts │ │ ├── details/ │ │ │ ├── details.component.ts │ │ │ ├── details.styles.ts │ │ │ ├── details.test.ts │ │ │ └── details.ts │ │ ├── dialog/ │ │ │ ├── dialog.component.ts │ │ │ ├── dialog.styles.ts │ │ │ ├── dialog.test.ts │ │ │ └── dialog.ts │ │ ├── divider/ │ │ │ ├── divider.component.ts │ │ │ ├── divider.styles.ts │ │ │ ├── divider.test.ts │ │ │ └── divider.ts │ │ ├── drawer/ │ │ │ ├── drawer.component.ts │ │ │ ├── drawer.styles.ts │ │ │ ├── drawer.test.ts │ │ │ └── drawer.ts │ │ ├── dropdown/ │ │ │ ├── dropdown.component.ts │ │ │ ├── dropdown.styles.ts │ │ │ ├── dropdown.test.ts │ │ │ └── dropdown.ts │ │ ├── format-bytes/ │ │ │ ├── format-bytes.component.ts │ │ │ ├── format-bytes.test.ts │ │ │ └── format-bytes.ts │ │ ├── format-date/ │ │ │ ├── format-date.component.ts │ │ │ ├── format-date.test.ts │ │ │ └── format-date.ts │ │ ├── format-number/ │ │ │ ├── format-number.component.ts │ │ │ ├── format-number.test.ts │ │ │ └── format-number.ts │ │ ├── icon/ │ │ │ ├── icon.component.ts │ │ │ ├── icon.styles.ts │ │ │ ├── icon.test.ts │ │ │ ├── icon.ts │ │ │ ├── library.default.ts │ │ │ ├── library.system.ts │ │ │ └── library.ts │ │ ├── icon-button/ │ │ │ ├── icon-button.component.ts │ │ │ ├── icon-button.styles.ts │ │ │ ├── icon-button.test.ts │ │ │ └── icon-button.ts │ │ ├── image-comparer/ │ │ │ ├── image-comparer.component.ts │ │ │ ├── image-comparer.styles.ts │ │ │ ├── image-comparer.test.ts │ │ │ └── image-comparer.ts │ │ ├── include/ │ │ │ ├── include.component.ts │ │ │ ├── include.styles.ts │ │ │ ├── include.test.ts │ │ │ ├── include.ts │ │ │ └── request.ts │ │ ├── input/ │ │ │ ├── input.component.ts │ │ │ ├── input.styles.ts │ │ │ ├── input.test.ts │ │ │ └── input.ts │ │ ├── menu/ │ │ │ ├── menu.component.ts │ │ │ ├── menu.styles.ts │ │ │ ├── menu.test.ts │ │ │ └── menu.ts │ │ ├── menu-item/ │ │ │ ├── menu-item.component.ts │ │ │ ├── menu-item.styles.ts │ │ │ ├── menu-item.test.ts │ │ │ ├── menu-item.ts │ │ │ └── submenu-controller.ts │ │ ├── menu-label/ │ │ │ ├── menu-label.component.ts │ │ │ ├── menu-label.styles.ts │ │ │ ├── menu-label.test.ts │ │ │ └── menu-label.ts │ │ ├── mutation-observer/ │ │ │ ├── mutation-observer.component.ts │ │ │ ├── mutation-observer.styles.ts │ │ │ ├── mutation-observer.test.ts │ │ │ └── mutation-observer.ts │ │ ├── option/ │ │ │ ├── option.component.ts │ │ │ ├── option.styles.ts │ │ │ ├── option.test.ts │ │ │ └── option.ts │ │ ├── popup/ │ │ │ ├── popup.component.ts │ │ │ ├── popup.styles.ts │ │ │ ├── popup.test.ts │ │ │ └── popup.ts │ │ ├── progress-bar/ │ │ │ ├── progress-bar.component.ts │ │ │ ├── progress-bar.styles.ts │ │ │ ├── progress-bar.test.ts │ │ │ └── progress-bar.ts │ │ ├── progress-ring/ │ │ │ ├── progress-ring.component.ts │ │ │ ├── progress-ring.styles.ts │ │ │ ├── progress-ring.test.ts │ │ │ └── progress-ring.ts │ │ ├── qr-code/ │ │ │ ├── qr-code.component.ts │ │ │ ├── qr-code.styles.ts │ │ │ ├── qr-code.test.ts │ │ │ └── qr-code.ts │ │ ├── radio/ │ │ │ ├── radio.component.ts │ │ │ ├── radio.styles.ts │ │ │ ├── radio.test.ts │ │ │ └── radio.ts │ │ ├── radio-button/ │ │ │ ├── radio-button.component.ts │ │ │ ├── radio-button.styles.ts │ │ │ ├── radio-button.test.ts │ │ │ └── radio-button.ts │ │ ├── radio-group/ │ │ │ ├── radio-group.component.ts │ │ │ ├── radio-group.styles.ts │ │ │ ├── radio-group.test.ts │ │ │ └── radio-group.ts │ │ ├── range/ │ │ │ ├── range.component.ts │ │ │ ├── range.styles.ts │ │ │ ├── range.test.ts │ │ │ └── range.ts │ │ ├── rating/ │ │ │ ├── rating.component.ts │ │ │ ├── rating.styles.ts │ │ │ ├── rating.test.ts │ │ │ └── rating.ts │ │ ├── relative-time/ │ │ │ ├── relative-time.component.ts │ │ │ ├── relative-time.test.ts │ │ │ └── relative-time.ts │ │ ├── resize-observer/ │ │ │ ├── resize-observer.component.ts │ │ │ ├── resize-observer.styles.ts │ │ │ └── resize-observer.ts │ │ ├── select/ │ │ │ ├── select.component.ts │ │ │ ├── select.styles.ts │ │ │ ├── select.test.ts │ │ │ └── select.ts │ │ ├── skeleton/ │ │ │ ├── skeleton.component.ts │ │ │ ├── skeleton.styles.ts │ │ │ ├── skeleton.test.ts │ │ │ └── skeleton.ts │ │ ├── spinner/ │ │ │ ├── spinner.component.ts │ │ │ ├── spinner.styles.ts │ │ │ ├── spinner.test.ts │ │ │ └── spinner.ts │ │ ├── split-panel/ │ │ │ ├── split-panel.component.ts │ │ │ ├── split-panel.styles.ts │ │ │ ├── split-panel.test.ts │ │ │ └── split-panel.ts │ │ ├── switch/ │ │ │ ├── switch.component.ts │ │ │ ├── switch.styles.ts │ │ │ ├── switch.test.ts │ │ │ └── switch.ts │ │ ├── tab/ │ │ │ ├── tab.component.ts │ │ │ ├── tab.styles.ts │ │ │ ├── tab.test.ts │ │ │ └── tab.ts │ │ ├── tab-group/ │ │ │ ├── tab-group.component.ts │ │ │ ├── tab-group.styles.ts │ │ │ ├── tab-group.test.ts │ │ │ └── tab-group.ts │ │ ├── tab-panel/ │ │ │ ├── tab-panel.component.ts │ │ │ ├── tab-panel.styles.ts │ │ │ ├── tab-panel.test.ts │ │ │ └── tab-panel.ts │ │ ├── tag/ │ │ │ ├── tag.component.ts │ │ │ ├── tag.styles.ts │ │ │ ├── tag.test.ts │ │ │ └── tag.ts │ │ ├── textarea/ │ │ │ ├── textarea.component.ts │ │ │ ├── textarea.styles.ts │ │ │ ├── textarea.test.ts │ │ │ └── textarea.ts │ │ ├── tooltip/ │ │ │ ├── tooltip.component.ts │ │ │ ├── tooltip.styles.ts │ │ │ ├── tooltip.test.ts │ │ │ └── tooltip.ts │ │ ├── tree/ │ │ │ ├── tree.component.ts │ │ │ ├── tree.styles.ts │ │ │ ├── tree.test.ts │ │ │ └── tree.ts │ │ ├── tree-item/ │ │ │ ├── tree-item.component.ts │ │ │ ├── tree-item.styles.ts │ │ │ ├── tree-item.test.ts │ │ │ └── tree-item.ts │ │ └── visually-hidden/ │ │ ├── visually-hidden.component.ts │ │ ├── visually-hidden.styles.ts │ │ ├── visually-hidden.test.ts │ │ └── visually-hidden.ts │ ├── declaration.d.ts │ ├── events/ │ │ ├── events.ts │ │ ├── sl-after-collapse.ts │ │ ├── sl-after-expand.ts │ │ ├── sl-after-hide.ts │ │ ├── sl-after-show.ts │ │ ├── sl-blur.ts │ │ ├── sl-cancel.ts │ │ ├── sl-change.ts │ │ ├── sl-clear.ts │ │ ├── sl-close.ts │ │ ├── sl-collapse.ts │ │ ├── sl-copy.ts │ │ ├── sl-error.ts │ │ ├── sl-expand.ts │ │ ├── sl-finish.ts │ │ ├── sl-focus.ts │ │ ├── sl-hide.ts │ │ ├── sl-hover.ts │ │ ├── sl-initial-focus.ts │ │ ├── sl-input.ts │ │ ├── sl-invalid.ts │ │ ├── sl-lazy-change.ts │ │ ├── sl-lazy-load.ts │ │ ├── sl-load.ts │ │ ├── sl-mutation.ts │ │ ├── sl-remove.ts │ │ ├── sl-reposition.ts │ │ ├── sl-request-close.ts │ │ ├── sl-resize.ts │ │ ├── sl-select.ts │ │ ├── sl-selection-change.ts │ │ ├── sl-show.ts │ │ ├── sl-slide-change.ts │ │ ├── sl-start.ts │ │ ├── sl-tab-hide.ts │ │ └── sl-tab-show.ts │ ├── internal/ │ │ ├── active-elements.ts │ │ ├── animate.ts │ │ ├── closeActiveElement.ts │ │ ├── debounce.ts │ │ ├── default-value.ts │ │ ├── drag.ts │ │ ├── event.ts │ │ ├── form.test.ts │ │ ├── form.ts │ │ ├── math.ts │ │ ├── modal.ts │ │ ├── offset.ts │ │ ├── scroll.ts │ │ ├── scrollend-polyfill.ts │ │ ├── shoelace-element.test.ts │ │ ├── shoelace-element.ts │ │ ├── slot.ts │ │ ├── string.ts │ │ ├── tabbable.test.ts │ │ ├── tabbable.ts │ │ ├── test/ │ │ │ ├── data-testid-helpers.ts │ │ │ ├── element-visible-overflow.ts │ │ │ ├── form-control-base-tests.ts │ │ │ └── wait-for-scrolling.ts │ │ ├── test.ts │ │ └── watch.ts │ ├── shoelace-autoloader.ts │ ├── shoelace.ts │ ├── styles/ │ │ ├── component.styles.ts │ │ └── form-control.styles.ts │ ├── themes/ │ │ ├── _utility.css │ │ ├── dark.css │ │ └── light.css │ ├── translations/ │ │ ├── ar.ts │ │ ├── cs.ts │ │ ├── da.ts │ │ ├── de-ch.ts │ │ ├── de.ts │ │ ├── en-gb.ts │ │ ├── en.ts │ │ ├── es.ts │ │ ├── fa.ts │ │ ├── fi.ts │ │ ├── fr.ts │ │ ├── he.ts │ │ ├── hr.ts │ │ ├── hu.ts │ │ ├── id.ts │ │ ├── it.ts │ │ ├── ja.ts │ │ ├── nb.ts │ │ ├── nl.ts │ │ ├── nn.ts │ │ ├── pl.ts │ │ ├── pt.ts │ │ ├── ru.ts │ │ ├── sl.ts │ │ ├── sv.ts │ │ ├── tr.ts │ │ ├── uk.ts │ │ ├── zh-cn.ts │ │ └── zh-tw.ts │ └── utilities/ │ ├── animation-registry.ts │ ├── animation.ts │ ├── base-path.ts │ ├── form.ts │ ├── icon-library.ts │ └── localize.ts ├── tsconfig.json ├── tsconfig.prod.json └── web-test-runner.config.js