karsten-design-system 1.1.99 → 1.2.1

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,208 +1,208 @@
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
- - `FilterButton` - Botão para aplicar ou remover filtros em listas ou tabelas.
87
- - `Header` - Cabeçalho estilizado para títulos ou menus.
88
- - `IconButton` - Botão com ícone, ideal para ações rápidas.
89
- - `InfoCard` - Cartão informativo para exibir alertas ou dados destacados.
90
- - `Input` - Campo de entrada para texto.
91
- - `InternalMenu` - Menu de navegação interna, útil para dashboards.
92
- - `Link` - Link estilizado para navegação.
93
- - `MegaMenu` - Menu expandido com múltiplas opções organizadas.
94
- - `Notification` - Notificação para exibir alertas e mensagens.
95
- - `Paginator` - Paginação para navegação em listas ou tabelas.
96
- - `RadioButton` - Botões de seleção única dentro de um grupo.
97
- - `Select` - Componente para seleção de opções em um menu suspenso.
98
- - `Sidebar` - Barra lateral para navegação ou exibição de conteúdo adicional.
99
- - `Skeleton` - Elementos de carregamento em estilo esqueleto.
100
- - `Spinner` - Indicador de carregamento animado.
101
- - `Table` - Tabela para exibição de dados estruturados.
102
- - `Toast` - Mensagens temporárias exibidas no canto da tela.
103
-
104
- ## Desenvolvimento
105
-
106
- Para contribuir com o projeto:
107
-
108
- 1. Clone o repositório:
109
-
110
- ```bash
111
- git clone https://github.com/KarstenSA/karsten-design-system.git
112
- ```
113
-
114
- 2. Instale as dependências:
115
-
116
- Com npm:
117
-
118
- ```bash
119
- npm install
120
- ```
121
-
122
- Com yarn:
123
-
124
- ```bash
125
- yarn
126
- ```
127
-
128
- 3. Execute o Storybook para desenvolvimento:
129
-
130
- Com npm:
131
-
132
- ```bash
133
- npm run storybook
134
- ```
135
-
136
- Com yarn:
137
-
138
- ```bash
139
- yarn storybook
140
- ```
141
-
142
- ## Scripts Disponíveis
143
-
144
- Com npm:
145
-
146
- - `npm run storybook` - Inicia o ambiente de desenvolvimento do Storybook
147
- - `npm run build-storybook` - Gera o build da biblioteca para hospedagem
148
- - `npm run build` - Gera o build da biblioteca para publicação no npm
149
-
150
- Com yarn:
151
-
152
- - `yarn storybook` - Inicia o ambiente de desenvolvimento do Storybook
153
- - `yarn build-storybook` - Gera o build do Storybook para hospedagem
154
- - `yarn build` - Gera o build da biblioteca para publicação no npm
155
-
156
- ## Publicando uma Nova Versão no NPM
157
-
158
- 1. Atualizar a Versão
159
-
160
- Antes de publicar, aumente a versão no `package.json` e `package-lock.json`.
161
-
162
- 2. Fazer o Build
163
-
164
- Com npm:
165
-
166
- ```bash
167
- npm run build
168
- ```
169
-
170
- Com yarn:
171
-
172
- ```bash
173
- yarn build
174
- ```
175
-
176
- 3. Login no NPM
177
-
178
- Se ainda não estiver autenticado, faça login:
179
-
180
- ```bash
181
- npm login
182
- ```
183
-
184
- 4. Publicar
185
-
186
- ```bash
187
- npm publish --access public
188
- ```
189
-
190
- ## Resolução de Problemas
191
-
192
- Se você encontrar o erro "peer dependencies missing", instale as dependências necessárias:
193
-
194
- Com npm:
195
-
196
- ```bash
197
- 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
198
- ```
199
-
200
- Com yarn:
201
-
202
- ```bash
203
- 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
204
- ```
205
-
206
- ## Licença
207
-
208
- Este projeto está licenciado sob a licença MIT.
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
+ - `FilterButton` - Botão para aplicar ou remover filtros em listas ou tabelas.
87
+ - `Header` - Cabeçalho estilizado para títulos ou menus.
88
+ - `IconButton` - Botão com ícone, ideal para ações rápidas.
89
+ - `InfoCard` - Cartão informativo para exibir alertas ou dados destacados.
90
+ - `Input` - Campo de entrada para texto.
91
+ - `InternalMenu` - Menu de navegação interna, útil para dashboards.
92
+ - `Link` - Link estilizado para navegação.
93
+ - `MegaMenu` - Menu expandido com múltiplas opções organizadas.
94
+ - `Notification` - Notificação para exibir alertas e mensagens.
95
+ - `Paginator` - Paginação para navegação em listas ou tabelas.
96
+ - `RadioButton` - Botões de seleção única dentro de um grupo.
97
+ - `Select` - Componente para seleção de opções em um menu suspenso.
98
+ - `Sidebar` - Barra lateral para navegação ou exibição de conteúdo adicional.
99
+ - `Skeleton` - Elementos de carregamento em estilo esqueleto.
100
+ - `Spinner` - Indicador de carregamento animado.
101
+ - `Table` - Tabela para exibição de dados estruturados.
102
+ - `Toast` - Mensagens temporárias exibidas no canto da tela.
103
+
104
+ ## Desenvolvimento
105
+
106
+ Para contribuir com o projeto:
107
+
108
+ 1. Clone o repositório:
109
+
110
+ ```bash
111
+ git clone https://github.com/KarstenSA/karsten-design-system.git
112
+ ```
113
+
114
+ 2. Instale as dependências:
115
+
116
+ Com npm:
117
+
118
+ ```bash
119
+ npm install
120
+ ```
121
+
122
+ Com yarn:
123
+
124
+ ```bash
125
+ yarn
126
+ ```
127
+
128
+ 3. Execute o Storybook para desenvolvimento:
129
+
130
+ Com npm:
131
+
132
+ ```bash
133
+ npm run storybook
134
+ ```
135
+
136
+ Com yarn:
137
+
138
+ ```bash
139
+ yarn storybook
140
+ ```
141
+
142
+ ## Scripts Disponíveis
143
+
144
+ Com npm:
145
+
146
+ - `npm run storybook` - Inicia o ambiente de desenvolvimento do Storybook
147
+ - `npm run build-storybook` - Gera o build da biblioteca para hospedagem
148
+ - `npm run build` - Gera o build da biblioteca para publicação no npm
149
+
150
+ Com yarn:
151
+
152
+ - `yarn storybook` - Inicia o ambiente de desenvolvimento do Storybook
153
+ - `yarn build-storybook` - Gera o build do Storybook para hospedagem
154
+ - `yarn build` - Gera o build da biblioteca para publicação no npm
155
+
156
+ ## Publicando uma Nova Versão no NPM
157
+
158
+ 1. Atualizar a Versão
159
+
160
+ Antes de publicar, aumente a versão no `package.json` e `package-lock.json`.
161
+
162
+ 2. Fazer o Build
163
+
164
+ Com npm:
165
+
166
+ ```bash
167
+ npm run build
168
+ ```
169
+
170
+ Com yarn:
171
+
172
+ ```bash
173
+ yarn build
174
+ ```
175
+
176
+ 3. Login no NPM
177
+
178
+ Se ainda não estiver autenticado, faça login:
179
+
180
+ ```bash
181
+ npm login
182
+ ```
183
+
184
+ 4. Publicar
185
+
186
+ ```bash
187
+ npm publish --access public
188
+ ```
189
+
190
+ ## Resolução de Problemas
191
+
192
+ Se você encontrar o erro "peer dependencies missing", instale as dependências necessárias:
193
+
194
+ Com npm:
195
+
196
+ ```bash
197
+ 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
198
+ ```
199
+
200
+ Com yarn:
201
+
202
+ ```bash
203
+ 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
204
+ ```
205
+
206
+ ## Licença
207
+
208
+ Este projeto está licenciado sob a licença MIT.
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from './stories/components/card';
9
9
  export * from './stories/components/cardButton';
10
10
  export * from './stories/components/cardIconsButton';
11
11
  export * from './stories/components/chart';
12
+ export * from './stories/components/charts';
12
13
  export * from './stories/components/dialog';
13
14
  export * from './stories/components/divider';
14
15
  export * from './stories/components/emptyContent';
package/dist/index.js CHANGED
@@ -377,6 +377,55 @@ function Chart(props) {
377
377
  return jsx(Chart$1, { ...props });
378
378
  }
379
379
 
380
+ function Charts({ type, labels, datasets, title, stacked = false, horizontal = false, legendaLateral = false, className, }) {
381
+ const chartData = {
382
+ labels,
383
+ datasets: datasets.map((ds) => ({
384
+ ...ds,
385
+ backgroundColor: ds.backgroundColor || '#13294B',
386
+ borderColor: type === 'pie' || type === 'doughnut'
387
+ ? '#fff'
388
+ : ds.borderColor || '#13294B',
389
+ tension: type === 'filledLine' || type === 'line' ? 0.4 : 0,
390
+ fill: type === 'filledLine' ? true : false,
391
+ borderRadius: 4,
392
+ })),
393
+ };
394
+ const chartType = type === 'filledLine' ? 'line' : type;
395
+ const chartOptions = {
396
+ indexAxis: horizontal ? 'y' : 'x',
397
+ plugins: {
398
+ legend: {
399
+ position: legendaLateral ? 'right' : 'top',
400
+ labels: {
401
+ color: '#495057',
402
+ usePointStyle: true,
403
+ pointStyle: 'circle',
404
+ },
405
+ },
406
+ title: title
407
+ ? {
408
+ display: true,
409
+ text: title,
410
+ }
411
+ : undefined,
412
+ },
413
+ scales: {
414
+ x: {
415
+ stacked: stacked,
416
+ ticks: { color: '#495057' },
417
+ grid: { color: '#ebedef' },
418
+ },
419
+ y: {
420
+ stacked: stacked,
421
+ ticks: { color: '#495057' },
422
+ grid: { color: '#ebedef' },
423
+ },
424
+ },
425
+ };
426
+ return (jsx(Chart$1, { type: chartType, data: chartData, options: chartOptions, className: className, "aria-label": "chart" }));
427
+ }
428
+
380
429
  function Dialog({ title, description, labelConfirmButton, onClose, onClick, }) {
381
430
  return (jsx("div", { className: "fixed inset-0 bg-black bg-opacity-50 z-20 flex justify-center items-center", children: jsxs(Card, { className: "flex flex-col", children: [jsxs("div", { className: "flex flex-row items-center justify-between px-4 pt-4 pb-6 border-b border-b-stone", children: [jsx("h2", { className: "text-primary font-semibold", children: title }), jsx("i", { className: "pi pi-times", style: { color: '#606060', cursor: 'pointer' }, onClick: onClose })] }), jsxs("div", { className: "flex flex-col items-center p-6", children: [jsx("span", { className: "text-primary", children: description }), jsxs("div", { className: "w-100 flex flex-row justify-end pt-10 gap-4", children: [jsx("div", { className: "w-1/3", children: jsx(Button, { label: "Cancelar", variant: "outline", onClick: onClose }) }), jsx("div", { className: "w-1/3", children: jsx(Button, { label: labelConfirmButton, variant: "primary", onClick: onClick }) })] })] })] }) }));
382
431
  }
@@ -4605,5 +4654,5 @@ function Toast({ messages }) {
4605
4654
  : ''), "aria-label": "toast", children: [severity === 'success' && jsx(SuccessIcon, {}), severity === 'info' && jsx(InfoIcon, {}), severity === 'error' && jsx(ErrorIcon, {}), jsxs("div", { children: [jsx("strong", { children: summary }), jsx("p", { children: detail })] })] }, id))) }));
4606
4655
  }
4607
4656
 
4608
- export { Accordion, AutoComplete, BasicHeader, Breadcrumb, Button, CalendarInput, Card, CardButton, CardIconsButton, Chart, Dialog, Divider, EmptyContent, ExpandablePanel, FileUpload, FilterButton, Header, IconButton, InfoCard, Input, InputSwitch, InputTextArea, InternalMenu, Link, MegaMenu, Modal, MultiSelect, Notification, Paginator, RadioButton, Select, Sidebar, Skeleton, Spinner, Table, Tabs, TagStatus, Toast, Tooltip };
4657
+ export { Accordion, AutoComplete, BasicHeader, Breadcrumb, Button, CalendarInput, Card, CardButton, CardIconsButton, Chart, Charts, Dialog, Divider, EmptyContent, ExpandablePanel, FileUpload, FilterButton, Header, IconButton, InfoCard, Input, InputSwitch, InputTextArea, InternalMenu, Link, MegaMenu, Modal, MultiSelect, Notification, Paginator, RadioButton, Select, Sidebar, Skeleton, Spinner, Table, Tabs, TagStatus, Toast, Tooltip };
4609
4658
  //# sourceMappingURL=index.js.map