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.
Files changed (40) hide show
  1. package/README.md +230 -207
  2. package/dist/components/field-clear-button.d.ts +9 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +605 -168
  5. package/dist/index.js.map +1 -1
  6. package/dist/stories/components/breadcrumb.d.ts +2 -1
  7. package/dist/stories/components/checkbox.d.ts +10 -5
  8. package/dist/stories/components/dropDown.d.ts +2 -1
  9. package/dist/stories/components/header.d.ts +8 -1
  10. package/dist/stories/components/internalMenu.d.ts +2 -1
  11. package/dist/stories/components/multiselect.d.ts +3 -0
  12. package/dist/stories/components/select.d.ts +2 -0
  13. package/dist/stories/components/storybookThemeToggle.d.ts +1 -0
  14. package/dist/stories/components/table.d.ts +53 -2
  15. package/dist/stories/components/tooltip.d.ts +3 -1
  16. package/dist/stories/components/useDropdownPosition.d.ts +24 -0
  17. package/dist/tokens/theme.d.ts +6 -0
  18. package/dist/types/components/field-clear-button.d.ts +9 -0
  19. package/dist/types/index.d.ts +2 -0
  20. package/dist/types/internalMenu.d.ts +3 -0
  21. package/dist/types/stories/components/breadcrumb.d.ts +2 -1
  22. package/dist/types/stories/components/checkbox.d.ts +10 -5
  23. package/dist/types/stories/components/dropDown.d.ts +2 -1
  24. package/dist/types/stories/components/header.d.ts +8 -1
  25. package/dist/types/stories/components/internalMenu.d.ts +2 -1
  26. package/dist/types/stories/components/multiselect.d.ts +3 -0
  27. package/dist/types/stories/components/select.d.ts +2 -0
  28. package/dist/types/stories/components/storybookThemeToggle.d.ts +1 -0
  29. package/dist/types/stories/components/table.d.ts +53 -2
  30. package/dist/types/stories/components/tooltip.d.ts +3 -1
  31. package/dist/types/stories/components/useDropdownPosition.d.ts +24 -0
  32. package/dist/types/table.d.ts +2 -0
  33. package/dist/types/tokens/theme.d.ts +6 -0
  34. package/dist/types/types/internalMenu.d.ts +3 -0
  35. package/dist/types/types/table.d.ts +2 -0
  36. package/dist/types/utils/multiSelectSelection.d.ts +4 -0
  37. package/dist/types/utils/tableSelection.d.ts +11 -0
  38. package/dist/utils/multiSelectSelection.d.ts +4 -0
  39. package/dist/utils/tableSelection.d.ts +11 -0
  40. package/package.json +88 -87
package/README.md CHANGED
@@ -1,207 +1,230 @@
1
- # Karsten Design System
2
-
3
- Uma biblioteca de componentes React estilizados para projetos da Karsten, construída sobre o PrimeReact.
4
-
5
- ## Instalação
6
-
7
- Com npm:
8
-
9
- ```bash
10
- npm install karsten-design-system
11
- ```
12
-
13
- Com yarn:
14
-
15
- ```bash
16
- yarn add karsten-design-system
17
- ```
18
-
19
- ## Configuração do PrimeReact
20
-
21
- No main.tsx adicione:
22
-
23
- ```js
24
- import { StrictMode } from "react";
25
- import { createRoot } from "react-dom/client";
26
- import "./index.css";
27
- import App from "./App.tsx";
28
-
29
- import { PrimeReactProvider } from 'primereact/api'; // Adicione o PrimeReactProvider
30
- import Tailwind from 'primereact/passthrough/tailwind'; // Importe o Tailwind
31
- import './index.css';
32
-
33
- createRoot(document.getElementById("root")!).render(
34
- <StrictMode>
35
- <PrimeReactProvider value={{ pt: Tailwind }}> {/* Envolva o app no Provider do PrimeReact */}
36
- <App />
37
- </PrimeReactProvider>
38
- </StrictMode>
39
- );
40
- ```
41
-
42
- ## Pré-requisitos
43
-
44
- Esta biblioteca requer as seguintes dependências:
45
-
46
- - React 18 ou superior
47
- - React DOM 18 ou superior
48
- - React Router DOM 7 ou superior
49
- - Tailwind 3.4.0 ou superior
50
- - @types/date-fns 2 ou superior
51
- - Chart.js 4 ou superior
52
- - clsx 2 ou superior
53
- - date-fns 1 ou superior
54
- - Primeicons 7 ou superior
55
- - Primereact 10 ou superior
56
- - Postcss 8 ou superior
57
- - Autoprefixer 10 ou superior
58
-
59
- ## Como usar
60
-
61
- 1. Importe o componente desejado da biblioteca:
62
-
63
- ```jsx
64
- import { Button } from 'karsten-design-system'
65
- ```
66
-
67
- 2. Use o componente em seu projeto:
68
-
69
- ```jsx
70
- function App() {
71
- return <Button label="Clique aqui" />
72
- }
73
- ```
74
-
75
- ## Componentes Disponíveis
76
-
77
- - `Accordion` - Componente para exibir conteúdo em seções expansíveis e colapsáveis.
78
- - `AutoComplete` - Campo de entrada com sugestões automáticas baseadas no texto digitado.
79
- - `Breadcrumb` - Navegação hierárquica para indicar a localização atual do usuário.
80
- - `Button` - Botão estilizado com variantes primária e secundária.
81
- - `Card` - Contêiner estilizado para exibir informações agrupadas.
82
- - `Chart` - Gráficos para visualização de dados em diferentes formatos.
83
- - `DateInput` - Campo de entrada para seleção de datas.
84
- - `Dialog` - Modal para exibição de mensagens ou ações secundárias.
85
- - `Divider` - Linha divisória para separação visual de conteúdo.
86
- - `Header` - Cabeçalho estilizado para títulos ou menus.
87
- - `IconButton` - Botão com ícone, ideal para ações rápidas.
88
- - `InfoCard` - Cartão informativo para exibir alertas ou dados destacados.
89
- - `Input` - Campo de entrada para texto.
90
- - `InternalMenu` - Menu de navegação interna, útil para dashboards.
91
- - `Link` - Link estilizado para navegação.
92
- - `MegaMenu` - Menu expandido com múltiplas opções organizadas.
93
- - `Notification` - Notificação para exibir alertas e mensagens.
94
- - `Paginator` - Paginação para navegação em listas ou tabelas.
95
- - `RadioButton` - Botões de seleção única dentro de um grupo.
96
- - `Select` - Componente para seleção de opções em um menu suspenso.
97
- - `Sidebar` - Barra lateral para navegação ou exibição de conteúdo adicional.
98
- - `Skeleton` - Elementos de carregamento em estilo esqueleto.
99
- - `Spinner` - Indicador de carregamento animado.
100
- - `Table` - Tabela para exibição de dados estruturados.
101
- - `Toast` - Mensagens temporárias exibidas no canto da tela.
102
-
103
- ## Desenvolvimento
104
-
105
- Para contribuir com o projeto:
106
-
107
- 1. Clone o repositório:
108
-
109
- ```bash
110
- git clone https://github.com/KarstenSA/karsten-design-system.git
111
- ```
112
-
113
- 2. Instale as dependências:
114
-
115
- Com npm:
116
-
117
- ```bash
118
- npm install
119
- ```
120
-
121
- Com yarn:
122
-
123
- ```bash
124
- yarn
125
- ```
126
-
127
- 3. Execute o Storybook para desenvolvimento:
128
-
129
- Com npm:
130
-
131
- ```bash
132
- npm run storybook
133
- ```
134
-
135
- Com yarn:
136
-
137
- ```bash
138
- yarn storybook
139
- ```
140
-
141
- ## Scripts Disponíveis
142
-
143
- Com npm:
144
-
145
- - `npm run storybook` - Inicia o ambiente de desenvolvimento do Storybook
146
- - `npm run build-storybook` - Gera o build da biblioteca para hospedagem
147
- - `npm run build` - Gera o build da biblioteca para publicação no npm
148
-
149
- Com yarn:
150
-
151
- - `yarn storybook` - Inicia o ambiente de desenvolvimento do Storybook
152
- - `yarn build-storybook` - Gera o build do Storybook para hospedagem
153
- - `yarn build` - Gera o build da biblioteca para publicação no npm
154
-
155
- ## Publicando uma Nova Versão no NPM
156
-
157
- 1. Atualizar a Versão
158
-
159
- Antes de publicar, aumente a versão no `package.json` e `package-lock.json`.
160
-
161
- 2. Fazer o Build
162
-
163
- Com npm:
164
-
165
- ```bash
166
- npm run build
167
- ```
168
-
169
- Com yarn:
170
-
171
- ```bash
172
- yarn build
173
- ```
174
-
175
- 3. Login no NPM
176
-
177
- Se ainda não estiver autenticado, faça login:
178
-
179
- ```bash
180
- npm login
181
- ```
182
-
183
- 4. Publicar
184
-
185
- ```bash
186
- npm publish --access public
187
- ```
188
-
189
- ## Resolução de Problemas
190
-
191
- Se você encontrar o erro "peer dependencies missing", instale as dependências necessárias:
192
-
193
- Com npm:
194
-
195
- ```bash
196
- npm install react@^18 react-dom@^18 tailwindcss@^3.4.0 @types/date-fns@^2 chart.js@^4 clsx@^2 date-fns@^1 primeicons@^7 primereact@^10 postcss@^8 autoprefixer@^10
197
- ```
198
-
199
- Com yarn:
200
-
201
- ```bash
202
- yarn add react@^18 react-dom@^18 tailwindcss@^3.4.0 @types/date-fns@^2 chart.js@^4 clsx@^2 date-fns@^1 primeicons@^7 primereact@^10 postcss@^8 autoprefixer@^10
203
- ```
204
-
205
- ## Licença
206
-
207
- Este projeto está licenciado sob a licença MIT.
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
@@ -1,4 +1,6 @@
1
+ import './tokens/themes.css';
1
2
  import '../.storybook/index.css';
3
+ export * from './tokens/theme';
2
4
  export * from './stories/components/accordion';
3
5
  export * from './stories/components/basicHeader';
4
6
  export * from './stories/components/breadcrumb';