# @scoped-vaadin/tabsheet

> vaadin-tabsheet

Latest version **24.8.7** (published 2025-09-05) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @scoped-vaadin/tabsheet
pnpm add @scoped-vaadin/tabsheet
yarn add @scoped-vaadin/tabsheet
bun add @scoped-vaadin/tabsheet
```

## Health

**Score 35/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 24.8.7 |
| Published | 2025-09-05 |
| First published | 2023-03-01 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 10 |
| Unpacked size | 42.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Vaadin Ltd |
| Maintainers | robrez |
| Keywords | Vaadin, vaadin-tabsheet, web-components, web-component, polymer |

## Links

- npm: https://www.npmjs.com/package/@scoped-vaadin/tabsheet
- Repository: https://github.com/robrez/scoped-vaadin
- Homepage: https://vaadin.com/components
- Issues: https://github.com/robrez/scoped-vaadin/issues
- npm.io page: https://npm.io/package/@scoped-vaadin/tabsheet

## Dependencies (10)

- [lit](https://npm.io/package/lit.md) ^3.0.0
- [@polymer/polymer](https://npm.io/package/@polymer/polymer.md) ^3.0.0
- [@scoped-vaadin/tabs](https://npm.io/package/@scoped-vaadin/tabs.md) ^24.8.7
- [@open-wc/dedupe-mixin](https://npm.io/package/@open-wc/dedupe-mixin.md) ^1.3.0
- [@scoped-vaadin/scroller](https://npm.io/package/@scoped-vaadin/scroller.md) ^24.8.7
- [@scoped-vaadin/component-base](https://npm.io/package/@scoped-vaadin/component-base.md) ^24.8.7
- [@scoped-vaadin/vaadin-lumo-styles](https://npm.io/package/@scoped-vaadin/vaadin-lumo-styles.md) ^24.8.7
- [@scoped-vaadin/vaadin-themable-mixin](https://npm.io/package/@scoped-vaadin/vaadin-themable-mixin.md) ^24.8.7
- [@scoped-vaadin/vaadin-material-styles](https://npm.io/package/@scoped-vaadin/vaadin-material-styles.md) ^24.8.7
- [@scoped-vaadin/internal-custom-elements-registry](https://npm.io/package/@scoped-vaadin/internal-custom-elements-registry.md) ^24.8.7

## Recent versions

- 24.8.7 (latest) — 2025-09-05
- 24.8.6-alpha.1 — 2025-09-05
- 24.6.2 — 2025-01-17
- 24.6.2-alpha.1 — 2025-01-14
- 23.4.100 — 2024-09-03
- 23.4.1-litcompat.0 — 2024-09-03
- 24.4.2-alpha.1 — 2024-07-11
- 23.4.1 — 2024-05-23
- 23.0.2 — 2024-05-23
- 23.0.2-rc.1 — 2024-03-14
- 24.3.7-alpha.1 — 2024-03-08
- 24.0.0-alpha.1 — 2023-03-14
- 23.0.1 — 2023-03-09
- 23.0.0 — 2023-03-09
- 0.2.0 — 2023-03-02
- … 1 more at https://npm.io/package/@scoped-vaadin/tabsheet/versions

## README

# @scoped-vaadin/web-components

We love [@vaadin/web-components](https://github.com/vaadin/web-components), but have some challenges within a large enterprise. Different teams, invitably, are using different versions of these components and these cannot be deduplicated.

## Challenges

The [Scoped Custom Element Registry](https://github.com/WICG/webcomponents/blob/gh-pages/proposals/Scoped-Custom-Element-Registries.md) proposal aims to solve this problem. The community has created some functional user-land solutions which are based on this proposal:

- [lit](https://www.npmjs.com/package/@lit-labs/scoped-registry-mixin)
- [open-wc](https://www.npmjs.com/package/@open-wc/scoped-elements)

An expirimental Polymer-based mixin has been created here: [robrez/scoped-registry-polymer](https://github.com/robrez/scoped-registry-polymer)

However, there are a few finer details within vaadin-components which may elude scoped-registries.

- Some Vaadin components teleport to a different `DocumentOrShadowRoot`, for example to document.body
  - `vaadin-combobox-overlay`
  - `vaadin-dialog-overlay`
- Some Vaadin components dynamically create elements, for example
  - `document.createElement('vaadin-text-field')`
  - This would need to be created via the shadowRoot containing a scoped registry
- Would need to come up with some meta-data around which elements should be scoped on a per-package-level
  - This could be done relatively easily, but would need to happen

## Goals

For these reasons note above, the repository has the following goals:

### Immediate

- Register alternative tag names which contain Vaadin's _major_ version identifier
  - Registrations are performed _conditionally_, with the intent of _not_ crashing the app
  - This still allows multiple versions of a given component to exist, but they should at least be compatible

### Near term

- Introduce `index.js` as the bare module entry-point
- Separate [side-effects](https://open-wc.org/guides/developing-components/publishing/#do-export-side-effects-separately) from exports

### Long term

- Create scoped registries in each shadow root

## Usage

A typical vaadin usage would look like this:

```js
npm i @vaadin/button
```

```js
import '@vaadin/button';

render() {
  return html`<vaadin-button></vaadin-button>`;
}
```

`@scoped-vaadin` elements, instead, have this pattern:

```js
npm i @scoped-vaadin/button
```

```js
import '@scoped-vaadin/button';

render() {
  return html`<vaadin24-button></vaadin24-button>`;
}
```

## Version Matrix

This repository is not mature. Ideally, versions here would align 1:1 w/ the underlying vaadin versions. There are unfilfilled goals herein; It is likely that changes need to take place when there may not be any underlying vaadin changes.

Below, you can find which underlying vaadin version is used

| local version     | vaadin version |
| ----------------- | -------------- |
| `v24.8.7`         | `24.8.7`       |
| `v24.3.7-alpha.1` | `24.3.7`       |
| `v24.0.0-alpha.1` | `24.0.0`       |
| `v23.0.1`         | `~23.3.8`      |
| `v23.0.0`         | `~23.3.8`      |
| `v0.2.0`          | `~23.3.8`      |
| `v0.1.0`          | `^23.3.7`      |

---
_Source: https://npm.io/package/@scoped-vaadin/tabsheet · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
