@topjoao/top-design-system 0.1.0-beta.20 → 0.1.0-beta.22

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
@@ -234,8 +234,9 @@ sendo explorado recebem destaque.
234
234
  | `showAia`, `showSupport` | `boolean` / `false` | Exibem as ações opcionais. |
235
235
  | `aiaActive` | `boolean` / `false` | Estado visual do botão Aia. |
236
236
  | `aiaLabel`, `supportLabel` | `string` | Textos acessíveis e rótulos do Drawer. |
237
- | `actions` | `TopNavAction[]` / `[]` | Ações genéricas, como integrações, emitidas por `action`. |
238
- | `user` | `TopNavUser` | Dados exclusivamente visuais do usuário. |
237
+ | `actions` | `TopNavAction[]` / `[]` | Ações genéricas, como integrações, emitidas por `action`. |
238
+ | `client` | `TopNavClient` | Organização, cliente ou escopo ativo exibido no cabeçalho; não cria ação nem seletor. |
239
+ | `user` | `TopNavUser` | Dados exclusivamente visuais do usuário. |
239
240
  | `userMenuItems` | `TopNavUserMenuItem[]` | Opções emitidas por `user-action`; suporta separadores. |
240
241
  | `favoriteItems` | `TopNavItem[]` / `[]` | Favoritos fornecidos pelo pai para dropdown e Drawer. |
241
242
  | `showFavoriteToggle` | `boolean` / `false` | Exibe a estrela da página atual. |
@@ -266,7 +267,7 @@ atalho abre primeiro o Drawer e foca a busca móvel. `Escape` fecha os painéis.
266
267
  | Slot | Uso |
267
268
  |---|---|
268
269
  | `brand` | Marca; recebe `{ compact }`. |
269
- | `context`, `scope` ou `client` | Contexto operacional; aliases com prioridade nessa ordem e `{ compact }`. |
270
+ | `context`, `scope` ou `client` | Contexto operacional; aliases com prioridade nessa ordem, recebem `{ client, compact }`. O slot `client` substitui a apresentação padrão da prop `client`. |
270
271
  | `context-compact` | Variante explícita usada no último estágio de overflow. |
271
272
  | `actions` | Conteúdo adicional do cabeçalho; recebe `{ compact, close }`. |
272
273
  | `aia-icon`, `support-icon` | Ícones customizados das ações quadradas. |
@@ -280,24 +281,36 @@ atalho abre primeiro o Drawer e foca a busca móvel. `Escape` fecha os painéis.
280
281
  | `drawer-actions` | Ações; recebe `{ actions, select, close }`. |
281
282
  | `drawer-before-menu`, `drawer-after-menu` | Conteúdo antes/depois do trilho rolável. |
282
283
  | `drawer-menu` | Substitui a árvore; recebe `{ sections, select, close }`. |
283
- | `drawer-user` | Rodapé de usuário; recebe `{ user, open, toggle }`. |
284
- | `drawer-footer` | Conteúdo final adicional; recebe `{ close }`. |
284
+ | `drawer-user` | Rodapé de usuário; recebe `{ user, open, toggle }`. |
285
+ | `drawer-footer` | Conteúdo final adicional; recebe `{ close }`. |
286
+
287
+ ### Faixa de favoritos
288
+
289
+ No desktop, `favoriteItems` aparece primeiro em uma faixa horizontal abaixo dos
290
+ breadcrumbs. A biblioteca mede uma cópia invisível da faixa com
291
+ `ResizeObserver`: se a largura real não couber, ela é substituída pelo dropdown
292
+ `Favoritos`. O mesmo dropdown é usado depois que a página passa de `120px` de
293
+ scroll e a faixa retorna apenas ao chegar a `24px` ou menos. Os valores evitam
294
+ oscilações perto do topo e reproduzem o comportamento do AppSidebar.
285
295
 
286
296
  ### Aparência e responsividade
287
297
 
288
- `appearance` aceita `headerBackground`, `breadcrumbBackground`,
289
- `drawerBackground`, `drawerFooterBackground`, `textColor`, `mutedTextColor`,
290
- `accentColor`, `menuBackground`, `menuTextColor`, `menuHoverBackground`,
291
- `menuExploredBackground`, `borderColor`, `menuBorderColor` (a borda externa de
292
- 6px), `menuOutlineColor`, `radius`, `drawerRadius`, `headerHeight` (`height` é
293
- mantido como alias), `drawerWidth`, `shadow`, `fontFamily`, `fontSize`,
294
- `secondaryFontSize`, `captionFontSize`, `lineHeight`, `fontWeight`,
295
- `strongFontWeight`, `actionSize`, `headerPadding`, `mobileHeaderPadding`,
296
- `breadcrumbPadding`, `mobileBreadcrumbPadding`, `menuItemPadding`,
297
- `itemLineHeight`, `sectionWidth`, `columnWidth` e `contextCompactWidth`.
298
- No Drawer, `mobileActiveBackground`, `mobileActiveTextColor`,
299
- e `mobileDividerColor` controlam respectivamente o módulo ativo e os
300
- separadores horizontais.
298
+ `appearance` é propositalmente pequeno e semântico. Use `colors` para
299
+ `navigation`, `text`, `mutedText`, `accent`, `border`, `menuText`,
300
+ `mobileActiveText` e `favoritesText`; `surfaces` para `breadcrumb`, `drawer`,
301
+ `drawerFooter`, `menu`, `menuHover`, `menuExplored`, `mobileActive`,
302
+ `favorites` e `currentPage`; `borders` para `menu` (a borda externa de 6px),
303
+ `menuOutline`, `mobileDivider`, `favorites` e `currentPage`; `shape` para
304
+ `radius`, `drawerRadius`, `shadow` e `favoritesShadow`; e `focus` para
305
+ `onDark` e `onLight`.
306
+
307
+ ```ts
308
+ const appearance = {
309
+ colors: { navigation: '#09090b', text: '#f4f4f5', border: 'rgb(255 255 255 / 14%)' },
310
+ surfaces: { drawer: '#09090b', menu: '#18181b', menuHover: '#27272a' },
311
+ shape: { radius: '8px', shadow: '0 12px 30px rgb(0 0 0 / 25%)' },
312
+ }
313
+ ```
301
314
 
302
315
  A biblioteca não fixa tipografia inline. Por padrão, família, tamanho, peso e
303
316
  altura de linha são herdados da aplicação consumidora. Além disso, `appearance`
@@ -316,13 +329,26 @@ tema global pode controlar o componente sem precisar usar `!important`:
316
329
  --top-nav-section-width: 16rem;
317
330
  --top-nav-column-width: 18rem;
318
331
  --top-nav-mobile-active-bg: #fff;
319
- --top-nav-mobile-active-fg: #025a84;
320
- --top-nav-mobile-divider: rgb(255 255 255 / 20%);
321
- }
332
+ --top-nav-mobile-active-fg: #025a84;
333
+ --top-nav-mobile-divider: rgb(255 255 255 / 20%);
334
+ --top-nav-mobile-item-gap: 0.25rem;
335
+ --top-nav-mobile-submenu-padding: 0.5rem 0 0.375rem 0.35rem;
336
+ --top-nav-favorites-bg: #f8fafc;
337
+ --top-nav-favorites-fg: #0f172a;
338
+ --top-nav-favorites-border: #e2e8f0;
339
+ --top-nav-favorites-shadow: 0 1px 2px rgb(15 23 42 / 6%);
340
+ --top-nav-focus-ring: #dbeafe;
341
+ --top-nav-focus-ring-light: #1d4ed8;
342
+ --top-nav-current-bg: rgb(255 255 255 / 10%);
343
+ --top-nav-current-border: rgb(255 255 255 / 15%);
344
+ --top-nav-menu-scrollbar-thumb: #94a3b8;
345
+ }
322
346
  ```
323
347
 
324
- As variáveis globais também alcançam o Drawer teleportado. Um valor passado por
325
- `appearance` tem precedência local e não altera os demais tokens do tema.
348
+ As variáveis globais também alcançam o Drawer teleportado. Use-as para ajustes
349
+ estruturais tipografia, larguras, alturas, padding e espaçamentos do menu
350
+ em vez de props no componente. Um valor passado por `appearance` tem precedência
351
+ local e não altera os demais tokens do tema.
326
352
 
327
353
  O breakpoint móvel é `1024px`. No desktop, um `ResizeObserver` reaplica a mesma
328
354
  sequência progressiva do AppSidebar: ações colapsam abaixo de `1440px`, busca
@@ -331,11 +357,13 @@ conteúdo ainda transbordar, o contexto recebe `compact: true`. O último estág
331
357
  também limita o contêiner do contexto a `3.25rem`; use `context-compact` quando
332
358
  quiser controlar exatamente o que permanece visível.
333
359
 
334
- Abaixo de `1024px`, a navegação desktop desaparece e o Drawer do PrimeVue assume.
335
- Ele mantém cabeçalho, busca, ações, trilho translúcido rolável, árvore recursiva,
336
- favoritos e usuário. A transição `menu-expand` existe somente dentro do Drawer;
337
- os dropdowns desktop abrem sem animação e suas áreas de hover incluem o espaço
338
- entre gatilho e painel.
360
+ Abaixo de `1024px`, a navegação desktop desaparece e o Drawer do PrimeVue assume.
361
+ Ele mantém cabeçalho, busca, ações, trilho translúcido rolável, árvore recursiva,
362
+ favoritos e usuário. A transição `menu-expand` existe somente dentro do Drawer;
363
+ os dropdowns desktop abrem sem animação e suas áreas de hover incluem o espaço
364
+ entre gatilho e painel. Nessa largura, os breadcrumbs deixam de rolar
365
+ horizontalmente: eles quebram em linhas e o bloco da página atual ocupa sua
366
+ própria linha para permanecer legível.
339
367
 
340
368
  ## TopButton
341
369