@goopti/ui 1.0.0 → 1.0.2
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 +183 -183
- package/dist/assets/index-gWZidFXq.js +203 -0
- package/dist/assets/index-p3H2VfDS.css +1 -0
- package/dist/assets/logo-opti-D621QI7V.png +0 -0
- package/dist/index.html +15 -0
- package/package.json +12 -9
- package/dist/components/alert-dialog.d.ts +0 -14
- package/dist/components/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert-dialog.js +0 -25
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/avatar.d.ts +0 -8
- package/dist/components/avatar.d.ts.map +0 -1
- package/dist/components/avatar.js +0 -10
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.d.ts +0 -10
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/badge.js +0 -22
- package/dist/components/badge.js.map +0 -1
- package/dist/components/button.d.ts +0 -11
- package/dist/components/button.d.ts.map +0 -1
- package/dist/components/button.js +0 -30
- package/dist/components/button.js.map +0 -1
- package/dist/components/calendar.d.ts +0 -8
- package/dist/components/calendar.d.ts.map +0 -1
- package/dist/components/calendar.js +0 -50
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/card.d.ts +0 -21
- package/dist/components/card.d.ts.map +0 -1
- package/dist/components/card.js +0 -17
- package/dist/components/card.js.map +0 -1
- package/dist/components/carousel.d.ts +0 -10
- package/dist/components/carousel.d.ts.map +0 -1
- package/dist/components/carousel.js +0 -12
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/checkbox.d.ts +0 -8
- package/dist/components/checkbox.d.ts.map +0 -1
- package/dist/components/checkbox.js +0 -8
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/collapsible.d.ts +0 -9
- package/dist/components/collapsible.d.ts.map +0 -1
- package/dist/components/collapsible.js +0 -11
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/date-picker.d.ts +0 -9
- package/dist/components/date-picker.d.ts.map +0 -1
- package/dist/components/date-picker.js +0 -29
- package/dist/components/date-picker.js.map +0 -1
- package/dist/components/dialog.d.ts +0 -20
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dialog.js +0 -29
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -15
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/dropdown-menu.js +0 -26
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/hover-card.d.ts +0 -8
- package/dist/components/hover-card.d.ts.map +0 -1
- package/dist/components/hover-card.js +0 -10
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/icon.d.ts +0 -8
- package/dist/components/icon.d.ts.map +0 -1
- package/dist/components/icon.js +0 -11
- package/dist/components/icon.js.map +0 -1
- package/dist/components/input-otp.d.ts +0 -9
- package/dist/components/input-otp.d.ts.map +0 -1
- package/dist/components/input-otp.js +0 -22
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input.d.ts +0 -6
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/input.js +0 -7
- package/dist/components/input.js.map +0 -1
- package/dist/components/label.d.ts +0 -6
- package/dist/components/label.d.ts.map +0 -1
- package/dist/components/label.js +0 -7
- package/dist/components/label.js.map +0 -1
- package/dist/components/popover.d.ts +0 -9
- package/dist/components/popover.d.ts.map +0 -1
- package/dist/components/popover.js +0 -21
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress.d.ts +0 -7
- package/dist/components/progress.d.ts.map +0 -1
- package/dist/components/progress.js +0 -7
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio-group.d.ts +0 -12
- package/dist/components/radio-group.d.ts.map +0 -1
- package/dist/components/radio-group.js +0 -7
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/scroll-area.d.ts +0 -7
- package/dist/components/scroll-area.d.ts.map +0 -1
- package/dist/components/scroll-area.js +0 -7
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/select.d.ts +0 -13
- package/dist/components/select.d.ts.map +0 -1
- package/dist/components/select.js +0 -26
- package/dist/components/select.js.map +0 -1
- package/dist/components/separator.d.ts +0 -7
- package/dist/components/separator.d.ts.map +0 -1
- package/dist/components/separator.js +0 -7
- package/dist/components/separator.js.map +0 -1
- package/dist/components/sheet.d.ts +0 -10
- package/dist/components/sheet.d.ts.map +0 -1
- package/dist/components/sheet.js +0 -20
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/skeleton.d.ts +0 -6
- package/dist/components/skeleton.d.ts.map +0 -1
- package/dist/components/skeleton.js +0 -7
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.d.ts +0 -11
- package/dist/components/slider.d.ts.map +0 -1
- package/dist/components/slider.js +0 -31
- package/dist/components/slider.js.map +0 -1
- package/dist/components/switch.d.ts +0 -8
- package/dist/components/switch.d.ts.map +0 -1
- package/dist/components/switch.js +0 -7
- package/dist/components/switch.js.map +0 -1
- package/dist/components/textarea.d.ts +0 -6
- package/dist/components/textarea.d.ts.map +0 -1
- package/dist/components/textarea.js +0 -7
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/toast.d.ts +0 -19
- package/dist/components/toast.d.ts.map +0 -1
- package/dist/components/toast.js +0 -25
- package/dist/components/toast.js.map +0 -1
- package/dist/components/tooltip.d.ts +0 -9
- package/dist/components/tooltip.d.ts.map +0 -1
- package/dist/components/tooltip.js +0 -16
- package/dist/components/tooltip.js.map +0 -1
- package/dist/hooks/use-toast.d.ts +0 -4
- package/dist/hooks/use-toast.d.ts.map +0 -1
- package/dist/hooks/use-toast.js +0 -9
- package/dist/hooks/use-toast.js.map +0 -1
- package/dist/index.d.ts +0 -62
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -36
- package/dist/index.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -6
- package/dist/lib/utils.js.map +0 -1
- package/dist/theme.css +0 -140
package/README.md
CHANGED
|
@@ -1,183 +1,183 @@
|
|
|
1
|
-
# @
|
|
2
|
-
|
|
3
|
-
Um kit de componentes React
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @
|
|
9
|
-
# ou
|
|
10
|
-
yarn add @
|
|
11
|
-
# ou
|
|
12
|
-
pnpm add @
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Uso
|
|
16
|
-
|
|
17
|
-
### 1. Adicione Tailwind CSS ao seu projeto
|
|
18
|
-
|
|
19
|
-
Este kit usa Tailwind CSS. Se ainda
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install -D tailwindcss postcss autoprefixer
|
|
23
|
-
npx tailwindcss init -p
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Configure o `tailwind.config.js`:
|
|
27
|
-
|
|
28
|
-
```js
|
|
29
|
-
export default {
|
|
30
|
-
content: [
|
|
31
|
-
"./index.html",
|
|
32
|
-
"./src/**/*.{js,jsx,ts,tsx}",
|
|
33
|
-
"./node_modules/@
|
|
34
|
-
],
|
|
35
|
-
theme: {
|
|
36
|
-
extend: {},
|
|
37
|
-
},
|
|
38
|
-
plugins: [],
|
|
39
|
-
};
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 2. Importe o CSS do tema
|
|
43
|
-
|
|
44
|
-
```jsx
|
|
45
|
-
import "@
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### 3. Use um componente
|
|
49
|
-
|
|
50
|
-
```jsx
|
|
51
|
-
import { Button } from "@
|
|
52
|
-
|
|
53
|
-
export default function App() {
|
|
54
|
-
return (
|
|
55
|
-
<Button variant="primary">
|
|
56
|
-
Agendar
|
|
57
|
-
</Button>
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Componentes
|
|
63
|
-
|
|
64
|
-
###
|
|
65
|
-
- **Button**
|
|
66
|
-
- **Badge**
|
|
67
|
-
- **Card**
|
|
68
|
-
|
|
69
|
-
###
|
|
70
|
-
- **Input**
|
|
71
|
-
- **Textarea**
|
|
72
|
-
- **Select**
|
|
73
|
-
- **Checkbox**
|
|
74
|
-
- **Radio**
|
|
75
|
-
- **Switch**
|
|
76
|
-
- **Slider**
|
|
77
|
-
- **InputOTP**
|
|
78
|
-
|
|
79
|
-
### Overlays
|
|
80
|
-
- **Dialog**
|
|
81
|
-
- **Sheet**
|
|
82
|
-
- **Popover**
|
|
83
|
-
- **HoverCard**
|
|
84
|
-
- **Dropdown**
|
|
85
|
-
- **Tooltip**
|
|
86
|
-
- **Command**
|
|
87
|
-
|
|
88
|
-
###
|
|
89
|
-
- **Tabs**
|
|
90
|
-
- **Breadcrumb**
|
|
91
|
-
- **Pagination**
|
|
92
|
-
- **Sidebar**
|
|
93
|
-
|
|
94
|
-
### Feedback
|
|
95
|
-
- **Toast**
|
|
96
|
-
- **AlertDialog**
|
|
97
|
-
- **Progress**
|
|
98
|
-
- **Skeleton**
|
|
99
|
-
|
|
100
|
-
### Data & Pickers
|
|
101
|
-
- **DatePicker**
|
|
102
|
-
- **TimePicker**
|
|
103
|
-
- **DataTable**
|
|
104
|
-
- **Carousel**
|
|
105
|
-
|
|
106
|
-
###
|
|
107
|
-
- **Collapsible**
|
|
108
|
-
- **ScrollArea**
|
|
109
|
-
|
|
110
|
-
##
|
|
111
|
-
|
|
112
|
-
### Cores e Tokens
|
|
113
|
-
|
|
114
|
-
O tema
|
|
115
|
-
|
|
116
|
-
1. Copie e edite `node_modules/@
|
|
117
|
-
2. Ou sobrescreva as
|
|
118
|
-
|
|
119
|
-
```css
|
|
120
|
-
:root {
|
|
121
|
-
--primary: 0 0% 100%; /* cor
|
|
122
|
-
--primary-foreground: 215 100% 50%;
|
|
123
|
-
--secondary: 215 100% 50%;
|
|
124
|
-
--muted: 0 0% 95%;
|
|
125
|
-
/* ... mais tokens */
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
###
|
|
130
|
-
|
|
131
|
-
Defina no seu `tailwind.config.js`:
|
|
132
|
-
|
|
133
|
-
```js
|
|
134
|
-
theme: {
|
|
135
|
-
extend: {
|
|
136
|
-
spacing: {
|
|
137
|
-
'4xs': '2px',
|
|
138
|
-
'3xs': '4px',
|
|
139
|
-
// ... conforme seu design system
|
|
140
|
-
},
|
|
141
|
-
borderRadius: {
|
|
142
|
-
none: '0px',
|
|
143
|
-
xs: '4px',
|
|
144
|
-
sm: '6px',
|
|
145
|
-
md: '8px',
|
|
146
|
-
lg: '12px',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Acessibilidade
|
|
153
|
-
|
|
154
|
-
Todos os componentes
|
|
155
|
-
- Teclado: Tab, Arrow, Enter, Escape
|
|
156
|
-
- ARIA labels e roles
|
|
157
|
-
- Contraste de cores WCAG AA
|
|
158
|
-
- Focus management
|
|
159
|
-
- Screen reader support
|
|
160
|
-
|
|
161
|
-
## TypeScript
|
|
162
|
-
|
|
163
|
-
Este pacote inclui tipos completos. Use com
|
|
164
|
-
|
|
165
|
-
```tsx
|
|
166
|
-
import { Button, ButtonProps } from "@
|
|
167
|
-
|
|
168
|
-
interface MyButtonProps extends ButtonProps {
|
|
169
|
-
customProp?: string;
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
##
|
|
174
|
-
|
|
175
|
-
MIT
|
|
176
|
-
|
|
177
|
-
## Suporte
|
|
178
|
-
|
|
179
|
-
Para problemas ou
|
|
180
|
-
|
|
181
|
-
## Changelog
|
|
182
|
-
|
|
183
|
-
Veja [CHANGELOG.md](./CHANGELOG.md) para
|
|
1
|
+
# @goopti/ui
|
|
2
|
+
|
|
3
|
+
Um kit de componentes React acessÃveis e customizáveis, baseado em [shadcn/ui](https://ui.shadcn.com), com tema e tokens da OPTI Soluções.
|
|
4
|
+
|
|
5
|
+
## Instalação
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @goopti/ui
|
|
9
|
+
# ou
|
|
10
|
+
yarn add @goopti/ui
|
|
11
|
+
# ou
|
|
12
|
+
pnpm add @goopti/ui
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Uso Rápido
|
|
16
|
+
|
|
17
|
+
### 1. Adicione Tailwind CSS ao seu projeto
|
|
18
|
+
|
|
19
|
+
Este kit usa Tailwind CSS. Se ainda não tiver configurado:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -D tailwindcss postcss autoprefixer
|
|
23
|
+
npx tailwindcss init -p
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Configure o `tailwind.config.js`:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
export default {
|
|
30
|
+
content: [
|
|
31
|
+
"./index.html",
|
|
32
|
+
"./src/**/*.{js,jsx,ts,tsx}",
|
|
33
|
+
"./node_modules/@goopti/ui/**/*.{js,jsx,ts,tsx}",
|
|
34
|
+
],
|
|
35
|
+
theme: {
|
|
36
|
+
extend: {},
|
|
37
|
+
},
|
|
38
|
+
plugins: [],
|
|
39
|
+
};
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. Importe o CSS do tema
|
|
43
|
+
|
|
44
|
+
```jsx
|
|
45
|
+
import "@goopti/ui/css";
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 3. Use um componente
|
|
49
|
+
|
|
50
|
+
```jsx
|
|
51
|
+
import { Button } from "@goopti/ui/components/button";
|
|
52
|
+
|
|
53
|
+
export default function App() {
|
|
54
|
+
return (
|
|
55
|
+
<Button variant="primary">
|
|
56
|
+
Agendar diagnóstico
|
|
57
|
+
</Button>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Componentes DisponÃveis
|
|
63
|
+
|
|
64
|
+
### Básicos
|
|
65
|
+
- **Button** — Botão em 6 variantes (primary, brand, secondary, outline, ghost, link)
|
|
66
|
+
- **Badge** — Rótulo de status/categoria
|
|
67
|
+
- **Card** — Container de conteúdo com espaçamento
|
|
68
|
+
|
|
69
|
+
### Formulário
|
|
70
|
+
- **Input** — Campo de texto
|
|
71
|
+
- **Textarea** — Campo multilinha
|
|
72
|
+
- **Select** — Dropdown customizado
|
|
73
|
+
- **Checkbox** — Caixa de seleção
|
|
74
|
+
- **Radio** — Grupo de rádio
|
|
75
|
+
- **Switch** — Interruptor on/off
|
|
76
|
+
- **Slider** — Controle deslizante
|
|
77
|
+
- **InputOTP** — Entrada de código 2FA
|
|
78
|
+
|
|
79
|
+
### Overlays
|
|
80
|
+
- **Dialog** — Modal customizado
|
|
81
|
+
- **Sheet** — Painel lateral (drawer)
|
|
82
|
+
- **Popover** — Tooltip com conteúdo
|
|
83
|
+
- **HoverCard** — Card ao passar o mouse
|
|
84
|
+
- **Dropdown** — Menu suspenso
|
|
85
|
+
- **Tooltip** — Dica ao passar o mouse
|
|
86
|
+
- **Command** — Paleta de comandos (⌘K)
|
|
87
|
+
|
|
88
|
+
### Navegação
|
|
89
|
+
- **Tabs** — Abas de conteúdo
|
|
90
|
+
- **Breadcrumb** — Caminho de navegação
|
|
91
|
+
- **Pagination** — Paginador
|
|
92
|
+
- **Sidebar** — Barra lateral com seções
|
|
93
|
+
|
|
94
|
+
### Feedback
|
|
95
|
+
- **Toast** — Notificação temporária
|
|
96
|
+
- **AlertDialog** — Diálogo de confirmação
|
|
97
|
+
- **Progress** — Barra de progresso
|
|
98
|
+
- **Skeleton** — Placeholder de carregamento
|
|
99
|
+
|
|
100
|
+
### Data & Pickers
|
|
101
|
+
- **DatePicker** — Seletor de data
|
|
102
|
+
- **TimePicker** — Seletor de hora
|
|
103
|
+
- **DataTable** — Tabela com sort/filter
|
|
104
|
+
- **Carousel** — Carrossel de itens
|
|
105
|
+
|
|
106
|
+
### Utilitários
|
|
107
|
+
- **Collapsible** — Conteúdo colapsável
|
|
108
|
+
- **ScrollArea** — Ãrea com scroll customizado
|
|
109
|
+
|
|
110
|
+
## Customização
|
|
111
|
+
|
|
112
|
+
### Cores e Tokens
|
|
113
|
+
|
|
114
|
+
O tema padrão está em `src/theme.css`. Para customizar cores, fonts e espaçamento:
|
|
115
|
+
|
|
116
|
+
1. Copie e edite `node_modules/@goopti/ui/dist/theme.css`
|
|
117
|
+
2. Ou sobrescreva as variáveis CSS no seu `globals.css`:
|
|
118
|
+
|
|
119
|
+
```css
|
|
120
|
+
:root {
|
|
121
|
+
--primary: 0 0% 100%; /* cor primária */
|
|
122
|
+
--primary-foreground: 215 100% 50%;
|
|
123
|
+
--secondary: 215 100% 50%;
|
|
124
|
+
--muted: 0 0% 95%;
|
|
125
|
+
/* ... mais tokens */
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Espaçamento, Raio e Sombras
|
|
130
|
+
|
|
131
|
+
Defina no seu `tailwind.config.js`:
|
|
132
|
+
|
|
133
|
+
```js
|
|
134
|
+
theme: {
|
|
135
|
+
extend: {
|
|
136
|
+
spacing: {
|
|
137
|
+
'4xs': '2px',
|
|
138
|
+
'3xs': '4px',
|
|
139
|
+
// ... conforme seu design system
|
|
140
|
+
},
|
|
141
|
+
borderRadius: {
|
|
142
|
+
none: '0px',
|
|
143
|
+
xs: '4px',
|
|
144
|
+
sm: '6px',
|
|
145
|
+
md: '8px',
|
|
146
|
+
lg: '12px',
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Acessibilidade
|
|
153
|
+
|
|
154
|
+
Todos os componentes são construÃdos com acessibilidade em mente:
|
|
155
|
+
- Teclado: Tab, Arrow, Enter, Escape
|
|
156
|
+
- ARIA labels e roles
|
|
157
|
+
- Contraste de cores WCAG AA
|
|
158
|
+
- Focus management
|
|
159
|
+
- Screen reader support
|
|
160
|
+
|
|
161
|
+
## TypeScript
|
|
162
|
+
|
|
163
|
+
Este pacote inclui tipos completos. Use com confiança:
|
|
164
|
+
|
|
165
|
+
```tsx
|
|
166
|
+
import { Button, ButtonProps } from "@goopti/ui/components/button";
|
|
167
|
+
|
|
168
|
+
interface MyButtonProps extends ButtonProps {
|
|
169
|
+
customProp?: string;
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Licença
|
|
174
|
+
|
|
175
|
+
MIT — Use livremente em projetos comerciais e open-source.
|
|
176
|
+
|
|
177
|
+
## Suporte
|
|
178
|
+
|
|
179
|
+
Para problemas ou sugestões, abra uma issue no [repositório GitHub](https://github.com/OPTI-Solucoes/opti-ui).
|
|
180
|
+
|
|
181
|
+
## Changelog
|
|
182
|
+
|
|
183
|
+
Veja [CHANGELOG.md](./CHANGELOG.md) para histórico de versões.
|