@topjoao/top-design-system 0.1.0 → 0.1.1-beta.0
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 +105 -6
- package/dist/{TopToast-BFY94BWZ.js → TopToast-BI4cWWtd.js} +1174 -684
- package/dist/TopToast-BI4cWWtd.js.map +1 -0
- package/dist/TopToast-tPhTQRza.cjs +2 -0
- package/dist/TopToast-tPhTQRza.cjs.map +1 -0
- package/dist/components/TopAccordion.vue.d.ts +48 -0
- package/dist/components/TopAccordionNavigator.vue.d.ts +35 -0
- package/dist/components/TopAccordionPanel.vue.d.ts +42 -0
- package/dist/components/TopAccordionSummary.vue.d.ts +23 -0
- package/dist/components/TopInputNumber.vue.d.ts +89 -0
- package/dist/components/TopNavBar.vue.d.ts +1 -0
- package/dist/components/internal/topAccordion.d.ts +14 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +10 -10
- package/dist/nuxt.cjs +1 -1
- package/dist/nuxt.cjs.map +1 -1
- package/dist/nuxt.js +20 -0
- package/dist/nuxt.js.map +1 -1
- package/dist/plugin.cjs +1 -1
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.ts +10 -0
- package/dist/plugin.js +4 -4
- package/dist/plugin.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/TopToast-BFY94BWZ.js.map +0 -1
- package/dist/TopToast-CC6iBs5S.cjs +0 -2
- package/dist/TopToast-CC6iBs5S.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ TopSolutions.
|
|
|
21
21
|
| `TopDatePicker` | Campo de data, múltiplas datas ou intervalo. | `Date`/array de `Date` |
|
|
22
22
|
| `TopFileUpload` | Escolha, validação e prévia de arquivos; não faz upload. | `File`/`File[]`/`null` |
|
|
23
23
|
| `TopInputText` | Campo textual com label, erro e acessibilidade. | `string` |
|
|
24
|
+
| `TopInputNumber` | Campo numérico localizado, com moeda, limites e incrementos. | `number \| null` |
|
|
24
25
|
| `TopNavBar` | Navegação responsiva, breadcrumbs, favoritos e Drawer. | `searchValue` e `mobileOpen` opcionais |
|
|
25
26
|
| `TopSelect` | Autocomplete pesquisável com paginação virtual. | opção/opções |
|
|
26
27
|
| `TopTabs` | Abas com painéis nomeados. | `string \| number` |
|
|
@@ -258,7 +259,7 @@ sendo explorado recebem destaque.
|
|
|
258
259
|
| `aiaActive` | `boolean` / `false` | Estado visual do botão Aia. |
|
|
259
260
|
| `aiaLabel`, `supportLabel` | `string` | Textos acessíveis e rótulos do Drawer. |
|
|
260
261
|
| `actions` | `TopNavAction[]` / `[]` | Ações genéricas, como integrações, emitidas por `action`. |
|
|
261
|
-
| `client` | `TopNavClient` | Organização, cliente ou escopo ativo exibido no cabeçalho; não cria ação nem seletor. |
|
|
262
|
+
| `client` | `TopNavClient` | Organização, cliente ou escopo ativo exibido no cabeçalho e como contexto do usuário no rodapé do Drawer; não cria ação nem seletor. |
|
|
262
263
|
| `user` | `TopNavUser` | Dados exclusivamente visuais do usuário. |
|
|
263
264
|
| `userMenuItems` | `TopNavUserMenuItem[]` | Opções emitidas por `user-action`; suporta separadores. |
|
|
264
265
|
| `favoriteItems` | `TopNavItem[]` / `[]` | Favoritos fornecidos pelo pai para dropdown e Drawer. |
|
|
@@ -304,7 +305,7 @@ atalho abre primeiro o Drawer e foca a busca móvel. `Escape` fecha os painéis.
|
|
|
304
305
|
| `drawer-actions` | Ações; recebe `{ actions, select, close }`. |
|
|
305
306
|
| `drawer-before-menu`, `drawer-after-menu` | Conteúdo antes/depois do trilho rolável. |
|
|
306
307
|
| `drawer-menu` | Substitui a árvore; recebe `{ sections, select, close }`. |
|
|
307
|
-
| `drawer-user` | Rodapé de usuário; recebe `{ user, open, toggle }`. |
|
|
308
|
+
| `drawer-user` | Rodapé de usuário; recebe `{ user, client, open, toggle }`. |
|
|
308
309
|
| `drawer-footer` | Conteúdo final adicional; recebe `{ close }`. |
|
|
309
310
|
|
|
310
311
|
### Faixa de favoritos
|
|
@@ -382,7 +383,9 @@ quiser controlar exatamente o que permanece visível.
|
|
|
382
383
|
|
|
383
384
|
Abaixo de `1024px`, a navegação desktop desaparece e o Drawer do PrimeVue assume.
|
|
384
385
|
Ele mantém cabeçalho, busca, ações, trilho translúcido rolável, árvore recursiva,
|
|
385
|
-
favoritos e usuário.
|
|
386
|
+
favoritos e usuário. No rodapé, a foto e o nome do usuário formam a primeira
|
|
387
|
+
linha; o cliente atual aparece abaixo e o subtítulo do cliente recebe uma
|
|
388
|
+
etiqueta quando houver. A transição `menu-expand` existe somente dentro do Drawer;
|
|
386
389
|
os dropdowns desktop abrem sem animação e suas áreas de hover incluem o espaço
|
|
387
390
|
entre gatilho e painel. Nessa largura, os breadcrumbs deixam de rolar
|
|
388
391
|
horizontalmente: eles quebram em linhas e o bloco da página atual ocupa sua
|
|
@@ -614,7 +617,95 @@ MIME (`image/*`), separados por vírgula. `maxFileSize` é contado em bytes. Em
|
|
|
614
617
|
modo simples, a última seleção válida substitui a anterior; com `multiple`,
|
|
615
618
|
arquivos válidos são acumulados sem duplicar nome, tipo e tamanho.
|
|
616
619
|
|
|
617
|
-
##
|
|
620
|
+
## TopInputNumber
|
|
621
|
+
|
|
622
|
+
Campo numérico baseado no `InputNumber` do PrimeVue, com a mesma estrutura de
|
|
623
|
+
label, erro e acessibilidade dos demais campos. Por padrão usa `pt-BR`. No modo
|
|
624
|
+
`decimal`, o usuário informa explicitamente o separador decimal; no modo
|
|
625
|
+
`currency`, a máscara de centavos vem habilitada e transforma `12345` em
|
|
626
|
+
`R$ 123,45`. O `v-model` permanece sempre numérico (`number`) ou `null` quando
|
|
627
|
+
vazio.
|
|
628
|
+
|
|
629
|
+
```vue
|
|
630
|
+
<script setup lang="ts">
|
|
631
|
+
import { ref } from 'vue'
|
|
632
|
+
import { TopInputNumber } from '@topjoao/top-design-system'
|
|
633
|
+
|
|
634
|
+
const quantidade = ref<number | null>(null)
|
|
635
|
+
const valorUnitario = ref<number | null>(null)
|
|
636
|
+
</script>
|
|
637
|
+
|
|
638
|
+
<template>
|
|
639
|
+
<TopInputNumber
|
|
640
|
+
v-model="quantidade"
|
|
641
|
+
label="Quantidade"
|
|
642
|
+
:min="1"
|
|
643
|
+
:min-fraction-digits="2"
|
|
644
|
+
:max-fraction-digits="4"
|
|
645
|
+
required
|
|
646
|
+
/>
|
|
647
|
+
|
|
648
|
+
<TopInputNumber
|
|
649
|
+
v-model="valorUnitario"
|
|
650
|
+
label="Valor unitário"
|
|
651
|
+
mode="currency"
|
|
652
|
+
currency="BRL"
|
|
653
|
+
:min-fraction-digits="2"
|
|
654
|
+
:max-fraction-digits="2"
|
|
655
|
+
/>
|
|
656
|
+
</template>
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
| Prop | Tipo | Padrão | Finalidade |
|
|
660
|
+
|---|---|---|---|
|
|
661
|
+
| `modelValue` | `number \| null` | `null` | Valor numérico controlado. |
|
|
662
|
+
| `label` / `placeholder` | `string` | `''` / `''` | Rótulo e texto auxiliar do campo. |
|
|
663
|
+
| `required` | `boolean` | `false` | Asterisco visual e atributo nativo obrigatório. |
|
|
664
|
+
| `error` | `string` | `''` | Mensagem e estado inválido. |
|
|
665
|
+
| `invalid` | `boolean` | `false` | Força estado inválido sem mostrar mensagem. |
|
|
666
|
+
| `disabled` / `readonly` | `boolean` | `false` / `false` | Remove interação / preserva leitura sem desabilitar. |
|
|
667
|
+
| `locale` | `string` | `'pt-BR'` | Locale para separadores e moeda. |
|
|
668
|
+
| `mode` | `'decimal' \| 'currency'` | `'decimal'` | Formatação decimal ou monetária. |
|
|
669
|
+
| `currency` / `currencyDisplay` | `string` / `'symbol' \| 'code' \| 'name'` | `undefined` / `'symbol'` | Código ISO 4217 e modo de exibição da moeda. |
|
|
670
|
+
| `currencyInputMode` | `'decimal' \| 'cents'` | `'cents'` | Controla a entrada monetária; `decimal` desliga a máscara mesmo quando `cents` é `true`. Não afeta `mode="decimal"`. |
|
|
671
|
+
| `cents` | `boolean` | `true` | Habilita a máscara automática somente em `mode="currency"`; `false` usa o `InputNumber` padrão. |
|
|
672
|
+
| `centsFractionDigits` | `number` | `undefined` (efetivo: `2`) | Primeira opção para definir as casas da máscara monetária. |
|
|
673
|
+
| `currencyFractionDigits` | `number` | `undefined` | Fallback de casas da máscara, usado depois de `centsFractionDigits`. |
|
|
674
|
+
| `useGrouping` / `format` | `boolean` | `true` / `true` | Separadores de milhar e formatação do valor. |
|
|
675
|
+
| `minFractionDigits` / `maxFractionDigits` | `number` | `undefined` | Precisão do PrimeVue. Sem `maxFractionDigits`, o modo decimal aceita até 20 casas; a máscara monetária usa esse valor como último fallback antes de `2`. |
|
|
676
|
+
| `min` / `max` / `step` | `number` | `undefined` / `undefined` / `1` | Limites e passo dos botões/teclado. |
|
|
677
|
+
| `showButtons` / `buttonLayout` | `boolean` / `'stacked' \| 'horizontal' \| 'vertical'` | `false` / `'stacked'` | Exibe e organiza os controles de incremento. |
|
|
678
|
+
| `allowEmpty` / `showClear` / `highlightOnFocus` | `boolean` | `true` / `false` / `false` | Permite limpar, mostra ícone de limpeza e seleciona valor ao focar. |
|
|
679
|
+
|
|
680
|
+
Eventos: `update:modelValue` (`number | null`), `input`, `focus` e `blur`. No
|
|
681
|
+
fluxo padrão do `InputNumber`, o componente também repassa `value-change`.
|
|
682
|
+
Atributos adicionais, como `name`, `autocomplete`, `aria-*` e `data-*`, são
|
|
683
|
+
repassados ao controle interno.
|
|
684
|
+
|
|
685
|
+
Quando a máscara de centavos não está ativa, os slots do `InputNumber` também
|
|
686
|
+
são repassados: `incrementbutton` e
|
|
687
|
+
`decrementbutton` recebem `{ listeners }`; `incrementicon` e `decrementicon`
|
|
688
|
+
substituem os ícones; `clearicon` recebe `{ clearCallback }`.
|
|
689
|
+
|
|
690
|
+
Para reproduzir a digitação monetária do TopLicita, a máscara de centavos já
|
|
691
|
+
vem ativa em `mode="currency"`. O usuário digita somente dígitos: `12345`
|
|
692
|
+
resulta em `R$ 123,45` e o `v-model` recebe `123.45`. Para exigir a vírgula
|
|
693
|
+
decimal digitada pelo usuário, passe `:cents="false"` ou
|
|
694
|
+
`currency-input-mode="decimal"`.
|
|
695
|
+
Como a máscara controla o texto enquanto o usuário digita, nesse modo os
|
|
696
|
+
botões incrementais, o ícone de limpeza e seus slots do `InputNumber` não são
|
|
697
|
+
renderizados.
|
|
698
|
+
|
|
699
|
+
```vue
|
|
700
|
+
<TopInputNumber
|
|
701
|
+
v-model="valorUnitario"
|
|
702
|
+
label="Valor unitário"
|
|
703
|
+
mode="currency"
|
|
704
|
+
currency="BRL"
|
|
705
|
+
/>
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
## TopInputText
|
|
618
709
|
|
|
619
710
|
Campo textual baseado no `InputText` do PrimeVue. O `v-model` é sempre
|
|
620
711
|
`string`, inclusive para códigos, documentos e identificadores compostos
|
|
@@ -863,6 +954,10 @@ import {
|
|
|
863
954
|
type TopDatePickerValue,
|
|
864
955
|
type TopFileUploadError,
|
|
865
956
|
type TopFileUploadValue,
|
|
957
|
+
type TopInputNumberValue,
|
|
958
|
+
type TopInputNumberMode,
|
|
959
|
+
type TopInputNumberButtonLayout,
|
|
960
|
+
type TopInputNumberCurrencyInputMode,
|
|
866
961
|
type TopNavItem,
|
|
867
962
|
type TopNavSection,
|
|
868
963
|
type TopTabItem,
|
|
@@ -878,7 +973,11 @@ obrigatório. `TopNavAction`, `TopNavUser`, `TopNavClient` e
|
|
|
878
973
|
`TopNavBarColors`, `TopNavBarSurfaces`, `TopNavBarBorders`, `TopNavBarShape` e
|
|
879
974
|
`TopNavBarFocus`.
|
|
880
975
|
|
|
881
|
-
`
|
|
976
|
+
`TopInputNumberValue`, `TopInputNumberMode`, `TopInputNumberButtonLayout` e
|
|
977
|
+
`TopInputNumberCurrencyInputMode`
|
|
978
|
+
tipam, respectivamente, o valor, o modo de formatação, o layout dos botões e o
|
|
979
|
+
modo de entrada monetária do campo numérico. `colors` expõe as escalas
|
|
980
|
+
imutáveis `primary`, `secondary`, `success`, `warn` e
|
|
882
981
|
`danger`, cada uma com tons de `50` a `950`.
|
|
883
982
|
|
|
884
983
|
## Desenvolvimento da biblioteca
|
|
@@ -907,7 +1006,7 @@ npm run storybook
|
|
|
907
1006
|
```
|
|
908
1007
|
|
|
909
1008
|
Abra `http://localhost:6006` para acessar as histórias de `TopButton`,
|
|
910
|
-
`TopConfirmDialog`, `TopDatePicker`, `TopInputText`, `TopSelect` e `TopTabs`. Use o botão de
|
|
1009
|
+
`TopConfirmDialog`, `TopDatePicker`, `TopInputText`, `TopInputNumber`, `TopSelect` e `TopTabs`. Use o botão de
|
|
911
1010
|
contraste na barra superior para alternar o preview entre tema claro e escuro.
|
|
912
1011
|
Para gerar a versão estática da documentação, execute:
|
|
913
1012
|
|