ds-tis 1.0.0-beta.10 → 1.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,31 +1,28 @@
1
1
  # Design System Core
2
2
 
3
- [![Versão](https://img.shields.io/badge/vers%C3%A3o-1.0.0--beta.10-blue)](./CHANGELOG.md) [![Licença](https://img.shields.io/badge/licen%C3%A7a-Propriet%C3%A1ria-red)](./LICENSE)
3
+ [![Versão](https://img.shields.io/badge/vers%C3%A3o-1.0.0--beta.8-blue)](./CHANGELOG.md) [![Licença](https://img.shields.io/badge/licen%C3%A7a-Propriet%C3%A1ria-red)](./LICENSE)
4
4
 
5
5
  Design system white-label em CSS puro, com tokens DTCG em arquitetura 3-layer (Foundation/Core → Semantic/System → Component), componentes documentados, modos light/dark e paleta brand única customizável.
6
6
 
7
7
  ## Instalação
8
8
 
9
- O pacote beta é distribuído pelo npm registry. Instale a versão corrente com:
9
+ O pacote beta é distribuído pelo npm registry. Instale a beta corrente com:
10
10
 
11
11
  ```bash
12
- npm install ds-tis
12
+ npm install ds-tis@beta
13
13
  ```
14
14
 
15
- Durante a fase beta, as dist-tags npm `latest` e `beta` apontam para a mesma
16
- pré-release. Use `npm install ds-tis@beta` quando quiser explicitar o canal.
17
-
18
15
  Em produção, prefira o pin exato:
19
16
 
20
17
  ```json
21
18
  {
22
19
  "dependencies": {
23
- "ds-tis": "1.0.0-beta.10"
20
+ "ds-tis": "1.0.0-beta.8"
24
21
  }
25
22
  }
26
23
  ```
27
24
 
28
- Como fallback, o mesmo release pode ser instalado pela tag GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.10`.
25
+ Enquanto não houver uma versão estável sob a tag npm `latest`, não use `npm install ds-tis` sem `@beta` ou versão explícita. Como fallback, o mesmo release pode ser instalado pela tag GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.8`.
29
26
 
30
27
  Import principal (o nome do pacote continua `ds-tis`):
31
28
 
@@ -84,16 +84,16 @@ demand for the DS.
84
84
 
85
85
  ## Official imports
86
86
 
87
- Install the current version from the npm registry:
87
+ Install the current beta from the npm registry:
88
88
 
89
89
  ```bash
90
- npm install ds-tis
90
+ npm install ds-tis@beta
91
91
  ```
92
92
 
93
- During the beta phase, the npm `latest` and `beta` dist-tags point to the same
94
- prerelease; `npm install ds-tis@beta` makes the channel explicit. In production,
95
- prefer `"ds-tis": "1.0.0-beta.10"` in `package.json`. GitHub release fallback:
96
- `npm install github:tis-experience/ds-tis#v1.0.0-beta.10`.
93
+ In production, prefer `"ds-tis": "1.0.0-beta.8"` in `package.json`. Until a
94
+ stable release is available under the npm `latest` tag, do not use the bare
95
+ package name without `@beta` or an explicit version. GitHub release fallback:
96
+ `npm install github:tis-experience/ds-tis#v1.0.0-beta.8`.
97
97
 
98
98
  Import the public CSS once in the application's global entrypoint:
99
99
 
@@ -278,7 +278,7 @@ Required sources:
278
278
  - docs/templates/ or ds-tis/templates/* when a relevant template exists
279
279
 
280
280
  Rules:
281
- - Install with `npm install ds-tis`; pin the exact version in production during beta.
281
+ - Install the beta with `npm install ds-tis@beta`; pin the exact version in production.
282
282
  - Import ds-tis/css once in the global entrypoint.
283
283
  - For each component, derive the module from runtime.module in docs/api/components.json; when runtime.level is required, call init after render/hydration and destroy before unmount.
284
284
  - Prefer App-ready components; treat Composition as an explicit app boundary and do not use Experimental in critical flows without recording the limitation.
@@ -70,13 +70,13 @@ Não promova localmente um componente Experimental a App-ready. Se o projeto com
70
70
 
71
71
  ## Imports oficiais
72
72
 
73
- Instale a versão corrente pelo npm registry:
73
+ Instale a beta corrente pelo npm registry:
74
74
 
75
75
  ```bash
76
- npm install ds-tis
76
+ npm install ds-tis@beta
77
77
  ```
78
78
 
79
- Durante a fase beta, as dist-tags npm `latest` e `beta` apontam para a mesma pré-release; `npm install ds-tis@beta` explicita o canal. Em produção, prefira `"ds-tis": "1.0.0-beta.10"` no `package.json`. Fallback por release GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.10`.
79
+ Em produção, prefira `"ds-tis": "1.0.0-beta.8"` no `package.json`. Enquanto não houver versão estável na tag npm `latest`, não use o nome sem `@beta` ou versão explícita. Fallback por release GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.8`.
80
80
 
81
81
  Importe o CSS público uma vez no entrypoint global do app:
82
82
 
@@ -251,7 +251,7 @@ Fontes obrigatorias:
251
251
  - docs/templates/ ou ds-tis/templates/* quando houver template aplicavel
252
252
 
253
253
  Regras:
254
- - Instale via `npm install ds-tis`; durante a beta, fixe a versão exata em produção.
254
+ - Instale a beta via `npm install ds-tis@beta`; em produção, fixe a versão exata.
255
255
  - Importe ds-tis/css uma vez no entrypoint global.
256
256
  - Para cada componente usado, derive o módulo de `runtime.module` em docs/api/components.json; quando `runtime.level` for required, chame init após render/hydration e destroy antes do unmount.
257
257
  - Prefira componentes app-ready; trate composition como fronteira explícita do app e não use experimental em fluxo crítico sem registrar a limitação.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-beta.10",
2
+ "version": "1.0.0-beta.8",
3
3
  "count": 20,
4
4
  "adrs": [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-beta.10",
2
+ "version": "1.0.0-beta.8",
3
3
  "count": 23,
4
4
  "readinessLevels": {
5
5
  "app-ready": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "ds-tis/consumer-context",
3
3
  "schemaVersion": 1,
4
- "version": "1.0.0-beta.10",
4
+ "version": "1.0.0-beta.8",
5
5
  "package": "ds-tis",
6
6
  "entrypoints": {
7
7
  "css": "ds-tis/css",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-beta.10",
2
+ "version": "1.0.0-beta.8",
3
3
  "count": 11,
4
4
  "foundations": [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-beta.10",
2
+ "version": "1.0.0-beta.8",
3
3
  "counts": {
4
4
  "foundation": 276,
5
5
  "semanticLight": 237,
@@ -1,6 +1,6 @@
1
1
  # Design System Core — conteúdo consolidado
2
2
 
3
- > Versão 1.0.0-beta.10. Arquivo destinado a consumo por LLMs que precisem
3
+ > Versão 1.0.0-beta.8. Arquivo destinado a consumo por LLMs que precisem
4
4
  > do design system inteiro em uma requisição. Inclui README, CONTRIBUTING,
5
5
  > CLAUDE.md, CHANGELOG, documentos canônicos atuais em docs/, todos os ADRs e
6
6
  > um resumo dos tokens. Traduções e auditorias históricas ficam fora para
@@ -19,32 +19,29 @@ Para APIs JSON, ver docs/api/
19
19
 
20
20
  # Design System Core
21
21
 
22
- [![Versão](https://img.shields.io/badge/vers%C3%A3o-1.0.0--beta.10-blue)](./CHANGELOG.md) [![Licença](https://img.shields.io/badge/licen%C3%A7a-Propriet%C3%A1ria-red)](./LICENSE)
22
+ [![Versão](https://img.shields.io/badge/vers%C3%A3o-1.0.0--beta.8-blue)](./CHANGELOG.md) [![Licença](https://img.shields.io/badge/licen%C3%A7a-Propriet%C3%A1ria-red)](./LICENSE)
23
23
 
24
24
  Design system white-label em CSS puro, com tokens DTCG em arquitetura 3-layer (Foundation/Core → Semantic/System → Component), componentes documentados, modos light/dark e paleta brand única customizável.
25
25
 
26
26
  ## Instalação
27
27
 
28
- O pacote beta é distribuído pelo npm registry. Instale a versão corrente com:
28
+ O pacote beta é distribuído pelo npm registry. Instale a beta corrente com:
29
29
 
30
30
  ```bash
31
- npm install ds-tis
31
+ npm install ds-tis@beta
32
32
  ```
33
33
 
34
- Durante a fase beta, as dist-tags npm `latest` e `beta` apontam para a mesma
35
- pré-release. Use `npm install ds-tis@beta` quando quiser explicitar o canal.
36
-
37
34
  Em produção, prefira o pin exato:
38
35
 
39
36
  ```json
40
37
  {
41
38
  "dependencies": {
42
- "ds-tis": "1.0.0-beta.10"
39
+ "ds-tis": "1.0.0-beta.8"
43
40
  }
44
41
  }
45
42
  ```
46
43
 
47
- Como fallback, o mesmo release pode ser instalado pela tag GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.10`.
44
+ Enquanto não houver uma versão estável sob a tag npm `latest`, não use `npm install ds-tis` sem `@beta` ou versão explícita. Como fallback, o mesmo release pode ser instalado pela tag GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.8`.
48
45
 
49
46
  Import principal (o nome do pacote continua `ds-tis`):
50
47
 
@@ -291,20 +288,6 @@ A partir de `1.0.0-beta.1`, o sistema entrou em **fase beta** — releases incre
291
288
 
292
289
  ## [Não publicado]
293
290
 
294
- ## [1.0.0-beta.10] — 2026-07-18
295
-
296
- ### Alterado
297
- - **Runtime Node suportado passa de 20 para 22+.** O pacote declara `engines.node >=22`, a documentação de contribuição acompanha o novo mínimo e a CI prova os gates completos em Node 22 e 24.
298
-
299
- ### Corrigido
300
- - **Toolbar da página Icons usa Form Field + Input/Select do DS.** Busca e filtros Size/Weight/Color deixam de reinventar controles com CSS ad hoc e passam a compor `ds-field`, `ds-input` e `ds-select`.
301
- - **Docs consomem Badge e Button do DS sem overrides mortos.** A badge de versão na home usa `ds-badge--brand ds-badge--subtle`; botões “Abrir em nova aba” e CTAs dos templates usam `ds-button--ghost`; callouts locais duplicados e banners gerados passam pelo padrão `ds-callout` do layout das docs.
302
-
303
- ## [1.0.0-beta.9] — 2026-07-18
304
-
305
- ### Corrigido
306
- - **Dist-tags npm refletem o comportamento real do primeiro pacote.** `latest` e `beta` passam a apontar para a beta corrente, tornando `npm install ds-tis` o caminho canônico sem perder o canal explícito `@beta`; produção continua com pin exato e fallback pela tag GitHub.
307
-
308
291
  ## [1.0.0-beta.8] — 2026-07-18
309
292
 
310
293
  ### Adicionado
@@ -1234,9 +1217,7 @@ Consolidação da documentação como fonte única de verdade. Plano em seis fas
1234
1217
  - Reset base com carregamento de Inter + DM Mono.
1235
1218
  - Estrutura do repositório: `css/`, `docs/`, `js/`.
1236
1219
 
1237
- [Não publicado]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.10...HEAD
1238
- [1.0.0-beta.10]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.9...v1.0.0-beta.10
1239
- [1.0.0-beta.9]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.8...v1.0.0-beta.9
1220
+ [Não publicado]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.8...HEAD
1240
1221
  [1.0.0-beta.8]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.7...v1.0.0-beta.8
1241
1222
  [1.0.0-beta.7]: https://github.com/tis-experience/ds-tis/compare/v1.0.0-beta.6...v1.0.0-beta.7
1242
1223
  [1.0.0-beta.6]: https://github.com/tis-experience/ds-tis/releases/tag/v1.0.0-beta.6
@@ -1353,13 +1334,13 @@ Não promova localmente um componente Experimental a App-ready. Se o projeto com
1353
1334
 
1354
1335
  ## Imports oficiais
1355
1336
 
1356
- Instale a versão corrente pelo npm registry:
1337
+ Instale a beta corrente pelo npm registry:
1357
1338
 
1358
1339
  ```bash
1359
- npm install ds-tis
1340
+ npm install ds-tis@beta
1360
1341
  ```
1361
1342
 
1362
- Durante a fase beta, as dist-tags npm `latest` e `beta` apontam para a mesma pré-release; `npm install ds-tis@beta` explicita o canal. Em produção, prefira `"ds-tis": "1.0.0-beta.10"` no `package.json`. Fallback por release GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.10`.
1343
+ Em produção, prefira `"ds-tis": "1.0.0-beta.8"` no `package.json`. Enquanto não houver versão estável na tag npm `latest`, não use o nome sem `@beta` ou versão explícita. Fallback por release GitHub: `npm install github:tis-experience/ds-tis#v1.0.0-beta.8`.
1363
1344
 
1364
1345
  Importe o CSS público uma vez no entrypoint global do app:
1365
1346
 
@@ -1534,7 +1515,7 @@ Fontes obrigatorias:
1534
1515
  - docs/templates/ ou ds-tis/templates/* quando houver template aplicavel
1535
1516
 
1536
1517
  Regras:
1537
- - Instale via `npm install ds-tis`; durante a beta, fixe a versão exata em produção.
1518
+ - Instale a beta via `npm install ds-tis@beta`; em produção, fixe a versão exata.
1538
1519
  - Importe ds-tis/css uma vez no entrypoint global.
1539
1520
  - Para cada componente usado, derive o módulo de `runtime.module` em docs/api/components.json; quando `runtime.level` for required, chame init após render/hydration e destroy antes do unmount.
1540
1521
  - Prefira componentes app-ready; trate composition como fronteira explícita do app e não use experimental em fluxo crítico sem registrar a limitação.
@@ -1859,7 +1840,7 @@ apresentadas como comportamento aprovado do sistema.
1859
1840
 
1860
1841
  > Gerado automaticamente por `scripts/sync-docs.mjs` em 2026-07-18. Não editar manualmente.
1861
1842
  > Para regenerar: `npm run sync:docs`
1862
- > Versão atual: **1.0.0-beta.10**
1843
+ > Versão atual: **1.0.0-beta.8**
1863
1844
 
1864
1845
  ## Status geral
1865
1846
 
@@ -2555,7 +2536,7 @@ Este é um extrato bilíngue-amigável do [CONTRIBUTING.md](../CONTRIBUTING.md)
2555
2536
 
2556
2537
  ## Setup local
2557
2538
 
2558
- Requisitos: Node.js 22+, git, SSH configurado com o GitHub.
2539
+ Requisitos: Node.js 20+, git, SSH configurado com o GitHub.
2559
2540
 
2560
2541
  ```bash
2561
2542
  git clone <repo-url>
@@ -2896,15 +2877,14 @@ com o trabalho concluído e revisado; `main` recebe a mudança por pull request.
2896
2877
 
2897
2878
  ```bash
2898
2879
  npm publish --access public --tag beta
2899
- npm dist-tag add ds-tis@1.0.0-beta.N latest --auth-type=web
2900
2880
  ```
2901
2881
 
2902
2882
  10. **Verificar**:
2903
2883
  - A página inicial mostra a badge `1.0.0-beta.N`.
2904
2884
  - `docs/changelog.html` lista `1.0.0-beta.N` como versão mais recente.
2905
2885
  - `docs/api/tokens-sync.json` tem timestamp recente e zero erros.
2906
- - `npm view ds-tis@beta version` e `npm view ds-tis@latest version` retornam `1.0.0-beta.N`.
2907
- - Uma instalação limpa com `npm install ds-tis` passa no consumer smoke.
2886
+ - `npm view ds-tis@beta version` retorna `1.0.0-beta.N`.
2887
+ - Uma instalação limpa com `npm install ds-tis@beta` passa no consumer smoke.
2908
2888
 
2909
2889
  ## Se algo der errado
2910
2890
 
@@ -2918,11 +2898,10 @@ com o trabalho concluído e revisado; `main` recebe a mudança por pull request.
2918
2898
 
2919
2899
  ## Publicação no npm
2920
2900
 
2921
- Betas são publicadas com `npm publish --access public --tag beta` e a mesma versão
2922
- é promovida para a dist-tag `latest`. Assim, `npm install ds-tis` e
2923
- `npm install ds-tis@beta` resolvem a beta corrente; consumidores de produção
2924
- devem fixar a versão exata. Quando houver versão estável, `latest` passa a apontar
2925
- para ela e `beta` continua sendo o canal de pré-release.
2901
+ Betas são publicadas com `npm publish --access public --tag beta`. A instalação
2902
+ canônica durante a fase beta é `npm install ds-tis@beta`; consumidores de produção
2903
+ devem fixar a versão exata. O nome sem tag (`npm install ds-tis`) vira a
2904
+ orientação padrão quando uma versão estável for promovida para `latest`.
2926
2905
 
2927
2906
 
2928
2907
  ═══════════════════════════════════════════════════════════
@@ -20895,13 +20874,13 @@ Seção expandida com contexto, decisão e locais de uso.
20895
20874
 
20896
20875
  > Gerado automaticamente por `scripts/sync-docs.mjs` em 2026-07-18. Não editar manualmente.
20897
20876
  > Para regenerar: `npm run sync:docs`
20898
- > Versão atual: **1.0.0-beta.10**
20877
+ > Versão atual: **1.0.0-beta.8**
20899
20878
 
20900
20879
  ## Estado atual
20901
20880
 
20902
20881
  | Aspecto | Valor |
20903
20882
  |---------|-------|
20904
- | Versão | 1.0.0-beta.10 |
20883
+ | Versão | 1.0.0-beta.8 |
20905
20884
  | Formato canônico | JSON (DTCG) em `tokens/` |
20906
20885
  | CSS gerado | Style Dictionary → `css/tokens/generated/` |
20907
20886
  | Pipeline | ✅ index.css importa apenas generated/ |
@@ -23695,5 +23674,5 @@ Verificação automática de coerência Figma ↔ JSON ↔ CSS: `scripts/tokens-
23695
23674
  ═══════════════════════════════════════════════════════════
23696
23675
 
23697
23676
  Gerado por scripts/build-llms.mjs.
23698
- Versão: 1.0.0-beta.10
23677
+ Versão: 1.0.0-beta.8
23699
23678
  Site: documentação local
package/docs/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Design System Core
2
2
 
3
- > Design system white-label em CSS puro com tokens DTCG em JSON, componentes documentados, modos light/dark e paleta brand única customizável. Versão atual: 1.0.0-beta.10.
3
+ > Design system white-label em CSS puro com tokens DTCG em JSON, componentes documentados, modos light/dark e paleta brand única customizável. Versão atual: 1.0.0-beta.8.
4
4
 
5
5
  Repositório: definir no ambiente de destino.
6
6
  Site: documentação local
@@ -106,4 +106,4 @@ No pacote instalado: `ds-tis/metadata`, `ds-tis/metadata/components`, `ds-tis/me
106
106
 
107
107
  ---
108
108
 
109
- Gerado por `scripts/build-llms.mjs`. Versão atual: 1.0.0-beta.10.
109
+ Gerado por `scripts/build-llms.mjs`. Versão atual: 1.0.0-beta.8.
@@ -63,7 +63,7 @@
63
63
  <div class="ds-preview__tabs">
64
64
  <button class="ds-preview__tab ds-preview__tab--active" data-tab="preview">Preview</button>
65
65
  <button class="ds-preview__tab" data-tab="code">Code</button>
66
- <button type="button" class="ds-button ds-button--ghost ds-button--sm ds-preview__action" onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba"><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg><span class="ds-button__label">Abrir em nova aba</span></button>
66
+ <button onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba" style="margin-left:auto;background:none;border:none;cursor:pointer;color:var(--ds-content-subtle);padding:0 var(--ds-dimension-12);font-size:var(--ds-font-size-14);font-weight:var(--ds-font-weight-medium);display:flex;align-items:center;gap:var(--ds-dimension-6);white-space:nowrap;" onmouseenter="this.style.color='var(--ds-content-strong)'" onmouseleave="this.style.color='var(--ds-content-subtle)'"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>Abrir em nova aba</button>
67
67
  </div>
68
68
  <div class="ds-preview__canvas" style="padding:0;display:block">
69
69
  <div style="background:var(--ds-background-subtle);padding:var(--ds-dimension-40);min-height:700px;display:flex;align-items:flex-start;justify-content:center">
@@ -63,7 +63,7 @@
63
63
  <div class="ds-preview__tabs">
64
64
  <button class="ds-preview__tab ds-preview__tab--active" data-tab="preview">Preview</button>
65
65
  <button class="ds-preview__tab" data-tab="code">Code</button>
66
- <button type="button" class="ds-button ds-button--ghost ds-button--sm ds-preview__action" onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba"><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg><span class="ds-button__label">Abrir em nova aba</span></button>
66
+ <button onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba" style="margin-left:auto;background:none;border:none;cursor:pointer;color:var(--ds-content-subtle);padding:0 var(--ds-dimension-12);font-size:var(--ds-font-size-14);font-weight:var(--ds-font-weight-medium);display:flex;align-items:center;gap:var(--ds-dimension-6);white-space:nowrap;" onmouseenter="this.style.color='var(--ds-content-strong)'" onmouseleave="this.style.color='var(--ds-content-subtle)'"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>Abrir em nova aba</button>
67
67
  </div>
68
68
  <div class="ds-preview__canvas" style="padding:0;display:block">
69
69
  <div style="background:var(--ds-background-subtle);padding:var(--ds-dimension-32);min-height:640px">
@@ -117,8 +117,8 @@
117
117
  <span class="ds-badge ds-badge--neutral ds-badge--subtle">Form Field</span>
118
118
  </div>
119
119
  <div class="ds-template-card__cta">
120
- <a class="ds-button ds-button--brand ds-button--sm" href="login.html"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
121
- <button type="button" class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('login.html')"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
120
+ <a class="ds-button ds-button--brand ds-button--sm" href="login.html" style="display:inline-flex"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
121
+ <button class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('login.html')" style="display:inline-flex;gap:var(--ds-dimension-6);cursor:pointer"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
122
122
  </div>
123
123
  </div>
124
124
  </div>
@@ -138,8 +138,8 @@
138
138
  <span class="ds-badge ds-badge--neutral ds-badge--subtle">Alert</span>
139
139
  </div>
140
140
  <div class="ds-template-card__cta">
141
- <a class="ds-button ds-button--brand ds-button--sm" href="signup.html"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
142
- <button type="button" class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('signup.html')"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
141
+ <a class="ds-button ds-button--brand ds-button--sm" href="signup.html" style="display:inline-flex"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
142
+ <button class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('signup.html')" style="display:inline-flex;gap:var(--ds-dimension-6);cursor:pointer"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
143
143
  </div>
144
144
  </div>
145
145
  </div>
@@ -159,8 +159,8 @@
159
159
  <span class="ds-badge ds-badge--neutral ds-badge--subtle">Skeleton</span>
160
160
  </div>
161
161
  <div class="ds-template-card__cta">
162
- <a class="ds-button ds-button--brand ds-button--sm" href="dashboard.html"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
163
- <button type="button" class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('dashboard.html')"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
162
+ <a class="ds-button ds-button--brand ds-button--sm" href="dashboard.html" style="display:inline-flex"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
163
+ <button class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('dashboard.html')" style="display:inline-flex;gap:var(--ds-dimension-6);cursor:pointer"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
164
164
  </div>
165
165
  </div>
166
166
  </div>
@@ -180,8 +180,8 @@
180
180
  <span class="ds-badge ds-badge--neutral ds-badge--subtle">Avatar</span>
181
181
  </div>
182
182
  <div class="ds-template-card__cta">
183
- <a class="ds-button ds-button--brand ds-button--sm" href="settings.html"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
184
- <button type="button" class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('settings.html')"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
183
+ <a class="ds-button ds-button--brand ds-button--sm" href="settings.html" style="display:inline-flex"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
184
+ <button class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('settings.html')" style="display:inline-flex;gap:var(--ds-dimension-6);cursor:pointer"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
185
185
  </div>
186
186
  </div>
187
187
  </div>
@@ -201,8 +201,8 @@
201
201
  <span class="ds-badge ds-badge--neutral ds-badge--subtle">Radio</span>
202
202
  </div>
203
203
  <div class="ds-template-card__cta">
204
- <a class="ds-button ds-button--brand ds-button--sm" href="contact.html"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
205
- <button type="button" class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('contact.html')"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
204
+ <a class="ds-button ds-button--brand ds-button--sm" href="contact.html" style="display:inline-flex"><span class="ds-button__label"><span data-lang="pt">Documentação</span><span data-lang="en">Documentation</span></span></a>
205
+ <button class="ds-button ds-button--ghost ds-button--sm" onclick="openTemplate('contact.html')" style="display:inline-flex;gap:var(--ds-dimension-6);cursor:pointer"><span class="ds-button__label"><span data-lang="pt">Template</span><span data-lang="en">Template</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg></button>
206
206
  </div>
207
207
  </div>
208
208
  </div>
@@ -60,7 +60,7 @@
60
60
  <div class="ds-preview__tabs">
61
61
  <button class="ds-preview__tab ds-preview__tab--active" data-tab="preview">Preview</button>
62
62
  <button class="ds-preview__tab" data-tab="code">Code</button>
63
- <button type="button" class="ds-button ds-button--ghost ds-button--sm ds-preview__action" onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba"><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg><span class="ds-button__label">Abrir em nova aba</span></button>
63
+ <button onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba" style="margin-left:auto;background:none;border:none;cursor:pointer;color:var(--ds-content-subtle);padding:0 var(--ds-dimension-12);font-size:var(--ds-font-size-14);font-weight:var(--ds-font-weight-medium);display:flex;align-items:center;gap:var(--ds-dimension-6);white-space:nowrap;" onmouseenter="this.style.color='var(--ds-content-strong)'" onmouseleave="this.style.color='var(--ds-content-subtle)'"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>Abrir em nova aba</button>
64
64
  </div>
65
65
  <div class="ds-preview__canvas" style="padding:0;display:block">
66
66
  <div style="min-height:540px;display:flex;align-items:center;justify-content:center;background:var(--ds-background-subtle);padding:var(--ds-dimension-40)">
@@ -63,7 +63,7 @@
63
63
  <div class="ds-preview__tabs">
64
64
  <button class="ds-preview__tab ds-preview__tab--active" data-tab="preview">Preview</button>
65
65
  <button class="ds-preview__tab" data-tab="code">Code</button>
66
- <button type="button" class="ds-button ds-button--ghost ds-button--sm ds-preview__action" onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba"><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg><span class="ds-button__label">Abrir em nova aba</span></button>
66
+ <button onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba" style="margin-left:auto;background:none;border:none;cursor:pointer;color:var(--ds-content-subtle);padding:0 var(--ds-dimension-12);font-size:var(--ds-font-size-14);font-weight:var(--ds-font-weight-medium);display:flex;align-items:center;gap:var(--ds-dimension-6);white-space:nowrap;" onmouseenter="this.style.color='var(--ds-content-strong)'" onmouseleave="this.style.color='var(--ds-content-subtle)'"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>Abrir em nova aba</button>
67
67
  </div>
68
68
  <div class="ds-preview__canvas" style="padding:0;display:block">
69
69
  <div style="background:var(--ds-background-subtle);padding:var(--ds-dimension-32);min-height:680px">
@@ -62,7 +62,7 @@
62
62
  <div class="ds-preview__tabs">
63
63
  <button class="ds-preview__tab ds-preview__tab--active" data-tab="preview">Preview</button>
64
64
  <button class="ds-preview__tab" data-tab="code">Code</button>
65
- <button type="button" class="ds-button ds-button--ghost ds-button--sm ds-preview__action" onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba"><svg class="ds-button__icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg><span class="ds-button__label">Abrir em nova aba</span></button>
65
+ <button onclick="openPreviewInNewTab()" aria-label="Abrir preview em nova aba" style="margin-left:auto;background:none;border:none;cursor:pointer;color:var(--ds-content-subtle);padding:0 var(--ds-dimension-12);font-size:var(--ds-font-size-14);font-weight:var(--ds-font-weight-medium);display:flex;align-items:center;gap:var(--ds-dimension-6);white-space:nowrap;" onmouseenter="this.style.color='var(--ds-content-strong)'" onmouseleave="this.style.color='var(--ds-content-subtle)'"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>Abrir em nova aba</button>
66
66
  </div>
67
67
  <div class="ds-preview__canvas" style="padding:0;display:block">
68
68
  <div style="min-height:660px;display:flex;align-items:center;justify-content:center;background:var(--ds-background-subtle);padding:var(--ds-dimension-40)">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ds-tis",
3
- "version": "1.0.0-beta.10",
3
+ "version": "1.0.0-beta.8",
4
4
  "description": "White-label CSS design system with DTCG tokens, component contracts, and light/dark mode",
5
5
  "homepage": "https://tis-experience.github.io/ds-tis/",
6
6
  "repository": {
@@ -76,7 +76,7 @@
76
76
  "author": "TIS Experience Engineering",
77
77
  "license": "UNLICENSED",
78
78
  "engines": {
79
- "node": ">=22"
79
+ "node": ">=20"
80
80
  },
81
81
  "publishConfig": {
82
82
  "access": "public",