karsten-design-system 2.0.23 → 2.0.26
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 +230 -207
- package/dist/components/field-clear-button.d.ts +9 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +605 -168
- package/dist/index.js.map +1 -1
- package/dist/stories/components/breadcrumb.d.ts +2 -1
- package/dist/stories/components/checkbox.d.ts +10 -5
- package/dist/stories/components/dropDown.d.ts +2 -1
- package/dist/stories/components/header.d.ts +8 -1
- package/dist/stories/components/internalMenu.d.ts +2 -1
- package/dist/stories/components/multiselect.d.ts +3 -0
- package/dist/stories/components/select.d.ts +2 -0
- package/dist/stories/components/storybookThemeToggle.d.ts +1 -0
- package/dist/stories/components/table.d.ts +53 -2
- package/dist/stories/components/tooltip.d.ts +3 -1
- package/dist/stories/components/useDropdownPosition.d.ts +24 -0
- package/dist/tokens/theme.d.ts +6 -0
- package/dist/types/components/field-clear-button.d.ts +9 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/internalMenu.d.ts +3 -0
- package/dist/types/stories/components/breadcrumb.d.ts +2 -1
- package/dist/types/stories/components/checkbox.d.ts +10 -5
- package/dist/types/stories/components/dropDown.d.ts +2 -1
- package/dist/types/stories/components/header.d.ts +8 -1
- package/dist/types/stories/components/internalMenu.d.ts +2 -1
- package/dist/types/stories/components/multiselect.d.ts +3 -0
- package/dist/types/stories/components/select.d.ts +2 -0
- package/dist/types/stories/components/storybookThemeToggle.d.ts +1 -0
- package/dist/types/stories/components/table.d.ts +53 -2
- package/dist/types/stories/components/tooltip.d.ts +3 -1
- package/dist/types/stories/components/useDropdownPosition.d.ts +24 -0
- package/dist/types/table.d.ts +2 -0
- package/dist/types/tokens/theme.d.ts +6 -0
- package/dist/types/types/internalMenu.d.ts +3 -0
- package/dist/types/types/table.d.ts +2 -0
- package/dist/types/utils/multiSelectSelection.d.ts +4 -0
- package/dist/types/utils/tableSelection.d.ts +11 -0
- package/dist/utils/multiSelectSelection.d.ts +4 -0
- package/dist/utils/tableSelection.d.ts +11 -0
- package/package.json +88 -87
package/README.md
CHANGED
|
@@ -1,207 +1,230 @@
|
|
|
1
|
-
# Karsten Design System
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Instalação
|
|
6
|
-
|
|
7
|
-
Com npm:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install karsten-design-system
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```jsx
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- `
|
|
78
|
-
- `
|
|
79
|
-
- `
|
|
80
|
-
- `
|
|
81
|
-
- `
|
|
82
|
-
- `
|
|
83
|
-
- `
|
|
84
|
-
- `
|
|
85
|
-
- `
|
|
86
|
-
- `Header` - Cabeçalho
|
|
87
|
-
- `IconButton` - Botão com ícone
|
|
88
|
-
- `InfoCard` - Cartão informativo para
|
|
89
|
-
- `Input` - Campo de
|
|
90
|
-
- `
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
93
|
-
- `
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
96
|
-
- `
|
|
97
|
-
- `
|
|
98
|
-
- `
|
|
99
|
-
- `
|
|
100
|
-
- `
|
|
101
|
-
- `
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
- `npm run storybook` - Inicia o
|
|
146
|
-
- `npm run build-storybook` - Gera o build
|
|
147
|
-
- `npm run build` - Gera o build da biblioteca
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
1
|
+
# Karsten Design System
|
|
2
|
+
|
|
3
|
+
Biblioteca de componentes React estilizados para projetos da Karsten, construída sobre PrimeReact, Tailwind e Vite.
|
|
4
|
+
|
|
5
|
+
## Instalação
|
|
6
|
+
|
|
7
|
+
Com npm:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install karsten-design-system
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Configuração do PrimeReact
|
|
14
|
+
|
|
15
|
+
No main.tsx adicione:
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
import { StrictMode } from "react";
|
|
19
|
+
import { createRoot } from "react-dom/client";
|
|
20
|
+
import "./index.css";
|
|
21
|
+
import App from "./App.tsx";
|
|
22
|
+
|
|
23
|
+
import { PrimeReactProvider } from 'primereact/api'; // Adicione o PrimeReactProvider
|
|
24
|
+
import Tailwind from 'primereact/passthrough/tailwind'; // Importe o Tailwind
|
|
25
|
+
import './index.css';
|
|
26
|
+
|
|
27
|
+
createRoot(document.getElementById("root")!).render(
|
|
28
|
+
<StrictMode>
|
|
29
|
+
<PrimeReactProvider value={{ pt: Tailwind }}> {/* Envolva o app no Provider do PrimeReact */}
|
|
30
|
+
<App />
|
|
31
|
+
</PrimeReactProvider>
|
|
32
|
+
</StrictMode>
|
|
33
|
+
);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Pré-requisitos
|
|
37
|
+
|
|
38
|
+
Dependências peer necessárias no projeto consumidor:
|
|
39
|
+
|
|
40
|
+
- React 19 ou superior
|
|
41
|
+
- React DOM 19 ou superior
|
|
42
|
+
- React Router DOM 7 ou superior
|
|
43
|
+
|
|
44
|
+
Dependências internas importantes (já empacotadas na lib):
|
|
45
|
+
|
|
46
|
+
- PrimeReact 10+
|
|
47
|
+
- PrimeIcons 7+
|
|
48
|
+
- Tailwind 3+
|
|
49
|
+
- Chart.js 4+
|
|
50
|
+
- clsx 2+
|
|
51
|
+
- PostCSS 8+ e Autoprefixer 10+
|
|
52
|
+
|
|
53
|
+
## Como usar
|
|
54
|
+
|
|
55
|
+
1. Importe o componente desejado da biblioteca:
|
|
56
|
+
|
|
57
|
+
```jsx
|
|
58
|
+
import { Button } from 'karsten-design-system'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
2. Use o componente em seu projeto:
|
|
62
|
+
|
|
63
|
+
```jsx
|
|
64
|
+
function App() {
|
|
65
|
+
return <Button label="Clique aqui" />
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Componentes Disponíveis
|
|
70
|
+
|
|
71
|
+
- `Accordion` - Seções expansíveis/colapsáveis de conteúdo.
|
|
72
|
+
- `BasicHeader` - Cabeçalho simples para páginas ou seções.
|
|
73
|
+
- `Breadcrumb` - Navegação hierárquica por páginas.
|
|
74
|
+
- `Button` - Botão com variantes de estilo.
|
|
75
|
+
- `CalendarInput` - Campo de data com calendário.
|
|
76
|
+
- `Card` - Contêiner estilizado para conteúdo.
|
|
77
|
+
- `CardButton` - Cartão clicável com ação.
|
|
78
|
+
- `CardIconsButton` - Cartão com ações por ícones.
|
|
79
|
+
- `Charts` - Gráficos usando Chart.js.
|
|
80
|
+
- `Checkbox` - Caixa de seleção.
|
|
81
|
+
- `CountryDropdown` - Seletor de país.
|
|
82
|
+
- `Divider` - Divisor visual de conteúdo.
|
|
83
|
+
- `EmptyContent` - Estado vazio para listas ou telas.
|
|
84
|
+
- `ExpandablePanel` - Painel expansível com conteúdo.
|
|
85
|
+
- `FileUpload` - Upload de arquivos.
|
|
86
|
+
- `Header` - Cabeçalho completo com ações.
|
|
87
|
+
- `IconButton` - Botão com ícone.
|
|
88
|
+
- `InfoCard` - Cartão informativo para destaque.
|
|
89
|
+
- `Input` - Campo de texto.
|
|
90
|
+
- `InputSwitch` - Toggle liga/desliga.
|
|
91
|
+
- `InputTextArea` - Área de texto multilinha.
|
|
92
|
+
- `InternalMenu` - Menu interno de navegação.
|
|
93
|
+
- `LanguageDropdown` - Seletor de idioma.
|
|
94
|
+
- `Link` - Link estilizado.
|
|
95
|
+
- `MegaMenu` - Menu expandido com múltiplas opções.
|
|
96
|
+
- `Modal` - Modal de conteúdo.
|
|
97
|
+
- `ModalForm` - Modal com formulário.
|
|
98
|
+
- `Multiselect` - Seleção múltipla de opções.
|
|
99
|
+
- `NotificationsSidebar` - Sidebar de notificações.
|
|
100
|
+
- `Paginator` - Paginação de listas.
|
|
101
|
+
- `RadioButton` - Seleção única entre opções.
|
|
102
|
+
- `RightSidebar` - Sidebar posicionada à direita.
|
|
103
|
+
- `Select` - Seletor de opções.
|
|
104
|
+
- `SelectButton` - Seleção por botões.
|
|
105
|
+
- `Sidebar` - Sidebar para navegação ou conteúdo.
|
|
106
|
+
- `Skeleton` - Placeholder de carregamento.
|
|
107
|
+
- `Spinner` - Indicador de carregamento.
|
|
108
|
+
- `Table` - Tabela de dados.
|
|
109
|
+
- `Tabs` - Navegação por abas.
|
|
110
|
+
- `TagStatus` - Tag de status.
|
|
111
|
+
- `TextColor` - Texto com variação de cor.
|
|
112
|
+
- `Toast` - Mensagens temporárias.
|
|
113
|
+
- `Tooltip` - Dica contextual.
|
|
114
|
+
- `TransferList` - Lista de transferência entre colunas.
|
|
115
|
+
|
|
116
|
+
## Desenvolvimento
|
|
117
|
+
|
|
118
|
+
Para contribuir com o projeto:
|
|
119
|
+
|
|
120
|
+
1. Clone o repositório:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git clone https://github.com/KarstenSA/karsten-design-system.git
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
2. Instale as dependências:
|
|
127
|
+
|
|
128
|
+
Com npm:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm install
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
3. Execute o Storybook para desenvolvimento:
|
|
135
|
+
|
|
136
|
+
Com npm:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm run storybook
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Comandos
|
|
143
|
+
|
|
144
|
+
- `npm run dev` - Inicia o Vite em modo desenvolvimento
|
|
145
|
+
- `npm run storybook` - Inicia o Storybook
|
|
146
|
+
- `npm run build-storybook` - Gera o build do Storybook
|
|
147
|
+
- `npm run build` - Gera o build da biblioteca (types + rollup)
|
|
148
|
+
- `npm run lint` - Lint do projeto
|
|
149
|
+
- `npm run format` - Formata o código
|
|
150
|
+
- `npm run preview` - Preview do build do Vite
|
|
151
|
+
|
|
152
|
+
Os scripts estão definidos em [package.json](package.json).
|
|
153
|
+
|
|
154
|
+
## Estrutura do projeto
|
|
155
|
+
|
|
156
|
+
- [src/index.ts](src/index.ts): ponto de exportação da biblioteca
|
|
157
|
+
- [src/stories/components](src/stories/components): componentes e stories do Storybook
|
|
158
|
+
- [src/types](src/types): tipos compartilhados
|
|
159
|
+
- [src/utils](src/utils): utilitários
|
|
160
|
+
- [src/assets](src/assets): ícones, flags e assets gerais
|
|
161
|
+
- [src/mock](src/mock): mocks para exemplos
|
|
162
|
+
|
|
163
|
+
## Como criar um componente
|
|
164
|
+
|
|
165
|
+
1. Crie o componente em [src/stories/components](src/stories/components) seguindo o padrão existente:
|
|
166
|
+
|
|
167
|
+
- Arquivo do componente (ex.: [src/stories/components/button.tsx](src/stories/components/button.tsx))
|
|
168
|
+
- Story do componente (ex.: [src/stories/components/button.stories.ts](src/stories/components/button.stories.ts))
|
|
169
|
+
|
|
170
|
+
2. Exporte o componente no índice da lib em [src/index.ts](src/index.ts):
|
|
171
|
+
|
|
172
|
+
- `export * from './stories/components/meuComponente'`
|
|
173
|
+
|
|
174
|
+
3. Se necessário, crie tipos em [src/types](src/types) e utilitários em [src/utils](src/utils).
|
|
175
|
+
|
|
176
|
+
4. Execute o Storybook para validar o componente:
|
|
177
|
+
|
|
178
|
+
- `npm run storybook`
|
|
179
|
+
|
|
180
|
+
### Padrão de implementação
|
|
181
|
+
|
|
182
|
+
- Baseie-se em componentes PrimeReact e aplique classes Tailwind.
|
|
183
|
+
- Use `clsx` para composição de classes.
|
|
184
|
+
- Exporte componentes e tipos de forma nomeada.
|
|
185
|
+
- Adicione `argTypes` e `tags: ['autodocs']` no story para gerar docs automáticas.
|
|
186
|
+
|
|
187
|
+
Exemplos de referência:
|
|
188
|
+
|
|
189
|
+
- [src/stories/components/button.tsx](src/stories/components/button.tsx)
|
|
190
|
+
- [src/stories/components/button.stories.ts](src/stories/components/button.stories.ts)
|
|
191
|
+
|
|
192
|
+
## Publicando uma Nova Versão no NPM
|
|
193
|
+
|
|
194
|
+
1. Atualize a versão no [package.json](package.json)
|
|
195
|
+
|
|
196
|
+
Antes de publicar, aumente a versão no `package.json` e `package-lock.json`.
|
|
197
|
+
|
|
198
|
+
2. Faça o build
|
|
199
|
+
|
|
200
|
+
Com npm:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
npm run build
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
3. Login no NPM
|
|
207
|
+
|
|
208
|
+
Se ainda não estiver autenticado, faça login:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
npm login
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
4. Publique
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
npm publish --access public
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Resolução de Problemas
|
|
221
|
+
|
|
222
|
+
Se aparecer "peer dependencies missing", instale as dependências peer no projeto consumidor:
|
|
223
|
+
|
|
224
|
+
- React 19+
|
|
225
|
+
- React DOM 19+
|
|
226
|
+
- React Router DOM 7+
|
|
227
|
+
|
|
228
|
+
## Licença
|
|
229
|
+
|
|
230
|
+
Este projeto está licenciado sob a licença MIT.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type FieldClearButtonProps = {
|
|
2
|
+
visible: boolean;
|
|
3
|
+
onClear: () => void;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
hasError?: boolean;
|
|
6
|
+
systemLanguage?: 'pt' | 'en' | 'es';
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function FieldClearButton({ visible, onClear, disabled, hasError, systemLanguage, className, }: FieldClearButtonProps): import("react/jsx-runtime").JSX.Element | null;
|
package/dist/index.d.ts
CHANGED