nocturna-ui 0.0.5 → 0.0.6
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 +37 -35
- package/dist/components/Accordion.d.ts +4 -12
- package/dist/components/Badge.d.ts +6 -8
- package/dist/components/Button.d.ts +7 -10
- package/dist/components/Card.d.ts +4 -6
- package/dist/components/Checkbox.d.ts +4 -6
- package/dist/components/Input.d.ts +15 -22
- package/dist/components/Menu.d.ts +8 -20
- package/dist/components/Modal.d.ts +6 -8
- package/dist/components/Progress.d.ts +4 -7
- package/dist/components/Scroll.d.ts +4 -6
- package/dist/components/Select.d.ts +4 -7
- package/dist/components/Separator.d.ts +4 -6
- package/dist/components/Skeleton.d.ts +13 -15
- package/dist/components/Tabs.d.ts +4 -12
- package/dist/components/Toast.d.ts +5 -7
- package/dist/components/Tooltip.d.ts +4 -6
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.es.js +1486 -1373
- package/dist/index.umd.js +1 -1
- package/dist/providers/ToastProvider.d.ts +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
A **Nocturna UI** é uma biblioteca de componentes React focada em interfaces de alto contraste, tipografia serifada e estética minimalista.
|
|
6
6
|
|
|
7
|
-
Na **v0.0.
|
|
7
|
+
Na **v0.0.6**, introduzimos a identidade visual **Cyber Goth**, nomes de componentes padronizados (API Limpa) e tokens semânticos de cor.
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/nocturna-ui)
|
|
10
10
|
[](https://github.com/gothd/nocturna-ui/actions)
|
|
@@ -38,23 +38,37 @@ npm install react react-dom framer-motion
|
|
|
38
38
|
|
|
39
39
|
## 🩸 Setup Inicial
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Importe o CSS global e envolva sua aplicação no `ToastProvider` para habilitar o sistema de notificações.
|
|
42
42
|
|
|
43
43
|
```tsx
|
|
44
44
|
// No seu arquivo raiz (main.tsx ou App.tsx)
|
|
45
|
-
import {
|
|
45
|
+
import { ToastProvider } from "nocturna-ui";
|
|
46
46
|
import "nocturna-ui/style.css"; // ⚠️ Importação vital dos estilos
|
|
47
47
|
|
|
48
48
|
export default function App({ children }) {
|
|
49
|
-
return <
|
|
49
|
+
return <ToastProvider>{children}</ToastProvider>;
|
|
50
50
|
}
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
##
|
|
55
|
+
## 🎨 Paleta Cyber Goth
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
A versão 0.0.6 introduz 5 variantes de cor principais que permeiam todos os componentes:
|
|
58
|
+
|
|
59
|
+
| Token | Cor (Hex) | Significado Semântico | Estética |
|
|
60
|
+
| ----------- | --------- | --------------------- | ------------- |
|
|
61
|
+
| `primary` | `#FFFFFF` | Padrão / Neutro | Bone White |
|
|
62
|
+
| `secondary` | `#00FF41` | Sucesso | Malware Green |
|
|
63
|
+
| `accent` | `#FF007F` | Destaque | Phantom Pink |
|
|
64
|
+
| `danger` | `#DC2626` | Erro / Perigo | Sanguine Red |
|
|
65
|
+
| `warning` | `#FFD700` | Alerta | Cyber Gold |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 🕸️ Uso Básico
|
|
70
|
+
|
|
71
|
+
Componentes padronizados e tipados:
|
|
58
72
|
|
|
59
73
|
```tsx
|
|
60
74
|
import { Button, Card, Badge, useToast } from "nocturna-ui";
|
|
@@ -63,38 +77,30 @@ export const Ritual = () => {
|
|
|
63
77
|
const { toast } = useToast();
|
|
64
78
|
|
|
65
79
|
return (
|
|
66
|
-
<Card title="
|
|
80
|
+
<Card title="Protocolo de Rede" variant="secondary">
|
|
67
81
|
<div className="flex gap-4 mb-4">
|
|
68
|
-
<Badge variant="
|
|
82
|
+
<Badge variant="secondary">Online</Badge>
|
|
83
|
+
<Badge variant="primary" styleType="solid">
|
|
84
|
+
v2.4
|
|
85
|
+
</Badge>
|
|
69
86
|
</div>
|
|
70
87
|
|
|
71
88
|
<Button
|
|
72
|
-
variant="
|
|
73
|
-
onClick={() =>
|
|
89
|
+
variant="accent"
|
|
90
|
+
onClick={() =>
|
|
91
|
+
toast({
|
|
92
|
+
title: "Upload Iniciado",
|
|
93
|
+
type: "success", // Automático: Usa cor secondary
|
|
94
|
+
})
|
|
95
|
+
}
|
|
74
96
|
>
|
|
75
|
-
|
|
97
|
+
Transferir Dados
|
|
76
98
|
</Button>
|
|
77
99
|
</Card>
|
|
78
100
|
);
|
|
79
101
|
};
|
|
80
102
|
```
|
|
81
103
|
|
|
82
|
-
### Tabela de Aliases
|
|
83
|
-
|
|
84
|
-
| Alias | Componente Original | Função |
|
|
85
|
-
| ---------- | ------------------- | -------------------- |
|
|
86
|
-
| `Button` | `VoidButton` | Ações principais |
|
|
87
|
-
| `Input` | `VeinInput` | Entrada de dados |
|
|
88
|
-
| `Select` | `RitualSelect` | Seleção acessível |
|
|
89
|
-
| `Modal` | `CryptModal` | Diálogos e alertas |
|
|
90
|
-
| `Toast` | `OmenToast` | Notificações |
|
|
91
|
-
| `Menu` | `AltarMenu` | Dropdowns |
|
|
92
|
-
| `Tabs` | `SoulTabs` | Navegação em abas |
|
|
93
|
-
| `Card` | `NocturnaCard` | Container estrutural |
|
|
94
|
-
| `Skeleton` | `SpectreSkeleton` | Estados de loading |
|
|
95
|
-
|
|
96
|
-
_Consulte a [documentação completa](https://gothd.github.io/nocturna-ui/) para a lista total de props e variantes._
|
|
97
|
-
|
|
98
104
|
---
|
|
99
105
|
|
|
100
106
|
## 📜 Uso via CDN (Vanilla JS)
|
|
@@ -106,24 +112,20 @@ A biblioteca injeta uma ponte global `window.NocturnaUI` para uso sem bundlers.
|
|
|
106
112
|
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
|
|
107
113
|
<script src="https://unpkg.com/framer-motion@11/dist/framer-motion.js"></script>
|
|
108
114
|
|
|
109
|
-
<script src="https://unpkg.com/nocturna-ui@0.0.
|
|
110
|
-
<link
|
|
111
|
-
rel="stylesheet"
|
|
112
|
-
href="https://unpkg.com/nocturna-ui@0.0.5/dist/style.css"
|
|
113
|
-
/>
|
|
115
|
+
<script src="https://unpkg.com/nocturna-ui@0.0.6/dist/index.umd.js"></script>
|
|
116
|
+
<link rel="stylesheet" href="https://unpkg.com/nocturna-ui@0.0.6/dist/style.css" />
|
|
114
117
|
|
|
115
118
|
<div id="root"></div>
|
|
116
119
|
|
|
117
120
|
<script>
|
|
118
121
|
const { ToastProvider, Button } = window.NocturnaUI;
|
|
119
122
|
|
|
120
|
-
// Renderização manual necessária em Vanilla JS
|
|
121
123
|
const root = ReactDOM.createRoot(document.getElementById("root"));
|
|
122
124
|
root.render(React.createElement(ToastProvider));
|
|
123
125
|
</script>
|
|
124
126
|
```
|
|
125
127
|
|
|
126
|
-
_Veja o [exemplo
|
|
128
|
+
_Veja o [exemplo completo aqui](./examples/cdn/index.html)._
|
|
127
129
|
|
|
128
130
|
---
|
|
129
131
|
|
|
@@ -131,7 +133,7 @@ _Veja o [exemplo de uso completo pela CDN, com o ToastProvider](./examples/cdn/i
|
|
|
131
133
|
|
|
132
134
|
```bash
|
|
133
135
|
npm test # Roda testes unitários
|
|
134
|
-
npm run test:coverage # Relatório
|
|
136
|
+
npm run test:coverage # Relatório detalhado
|
|
135
137
|
```
|
|
136
138
|
|
|
137
139
|
Desenvolvido com 🖤 por **gothd**.
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export interface
|
|
3
|
-
id: string;
|
|
4
|
-
title: string;
|
|
5
|
-
content: React.ReactNode;
|
|
6
|
-
}
|
|
7
|
-
interface GrimoireAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
2
|
+
export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
3
|
/**
|
|
9
4
|
* Lista de seções do acordeão.
|
|
10
5
|
* Define o ID, título e conteúdo de cada painel.
|
|
@@ -19,15 +14,12 @@ interface GrimoireAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
14
|
}>;
|
|
20
15
|
/**
|
|
21
16
|
* Define a estética visual.
|
|
22
|
-
*
|
|
23
|
-
* - `blood`: Tons de vermelho sangue (Borda Vermelha).
|
|
24
|
-
* @default "void"
|
|
17
|
+
* @default "primary"
|
|
25
18
|
*/
|
|
26
|
-
variant?: "
|
|
19
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
27
20
|
}
|
|
28
21
|
/**
|
|
29
22
|
* Componente de Acordeão com animações de altura (Framer Motion) e estética brutalista.
|
|
30
23
|
* Possui bordas sobrepostas para criar um efeito de lista contínua.
|
|
31
24
|
*/
|
|
32
|
-
export declare const
|
|
33
|
-
export {};
|
|
25
|
+
export declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
3
|
/**
|
|
4
4
|
* O conteúdo do emblema (geralmente texto curto ou ícone).
|
|
5
5
|
*/
|
|
6
6
|
children: React.ReactNode;
|
|
7
7
|
/**
|
|
8
8
|
* Define o tema de cores.
|
|
9
|
-
*
|
|
10
|
-
* - `blood`: Tema agressivo (Vermelho/Preto) para erros ou destaques críticos.
|
|
11
|
-
* @default "void"
|
|
9
|
+
* @default "primary"
|
|
12
10
|
*/
|
|
13
|
-
variant?: "
|
|
11
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
14
12
|
/**
|
|
15
13
|
* Dimensões e escala de fonte do badge.
|
|
16
14
|
* - `sm`: Para contextos densos ou listas.
|
|
@@ -20,8 +18,8 @@ interface SigilBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
20
18
|
size?: "sm" | "md";
|
|
21
19
|
/**
|
|
22
20
|
* Estilo de preenchimento.
|
|
23
|
-
* - `outline`: Borda colorida
|
|
24
|
-
* - `solid`: Fundo preenchido
|
|
21
|
+
* - `outline`: Borda colorida, fundo transparente.
|
|
22
|
+
* - `solid`: Fundo preenchido, texto preto (exceto danger que pode ser branco).
|
|
25
23
|
* @default "outline"
|
|
26
24
|
*/
|
|
27
25
|
styleType?: "outline" | "solid";
|
|
@@ -30,5 +28,5 @@ interface SigilBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
30
28
|
* Componente de Badge (Emblema) para status, tags ou categorias.
|
|
31
29
|
* Utiliza tipografia serifada e uppercase para reforçar a estética gótica/brutalista.
|
|
32
30
|
*/
|
|
33
|
-
export declare const
|
|
31
|
+
export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
34
32
|
export {};
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Define o estilo visual do botão.
|
|
5
|
-
*
|
|
6
|
-
* - `blood`: Estilo vermelho escuro para ações perigosas ou destaque.
|
|
7
|
-
* @default "void"
|
|
5
|
+
* @default "primary"
|
|
8
6
|
*/
|
|
9
|
-
variant?: "
|
|
7
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
10
8
|
/**
|
|
11
|
-
* Controla o tamanho e o padding
|
|
9
|
+
* Controla o tamanho e o padding.
|
|
12
10
|
* @default "md"
|
|
13
11
|
*/
|
|
14
12
|
size?: "sm" | "md" | "lg";
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
|
-
*
|
|
18
|
-
* Utiliza sombras rígidas e transições
|
|
15
|
+
* Botão primário com estética brutalista.
|
|
16
|
+
* Utiliza sombras rígidas (hard shadows) e transições de alto contraste.
|
|
19
17
|
*/
|
|
20
|
-
export declare const
|
|
21
|
-
export {};
|
|
18
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Define o tema visual do card.
|
|
5
|
-
*
|
|
6
|
-
* - `blood`: Borda vermelha escura e sombra avermelhada no hover.
|
|
7
|
-
* @default "void"
|
|
5
|
+
* @default "primary"
|
|
8
6
|
*/
|
|
9
|
-
variant?: "
|
|
7
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
10
8
|
/**
|
|
11
9
|
* Título principal do card. Renderizado em uppercase e fonte serifada.
|
|
12
10
|
* Se omitido, o cabeçalho não será renderizado.
|
|
@@ -34,5 +32,5 @@ interface NocturnaCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
34
32
|
* Possui comportamento de Flex Column para garantir que o conteúdo ocupe a altura disponível,
|
|
35
33
|
* além de sombras rígidas (hard shadows) interativas no hover.
|
|
36
34
|
*/
|
|
37
|
-
export declare const
|
|
35
|
+
export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
38
36
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
|
|
3
3
|
/**
|
|
4
4
|
* Texto opcional exibido ao lado do checkbox.
|
|
5
5
|
* Renderizado com tipografia sans-serif e uppercase.
|
|
@@ -7,16 +7,14 @@ interface HexCheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputEleme
|
|
|
7
7
|
label?: string;
|
|
8
8
|
/**
|
|
9
9
|
* Define o tema visual do componente.
|
|
10
|
-
*
|
|
11
|
-
* - `blood`: Tema vermelho escuro (Borda Vermelha / Check Branco).
|
|
12
|
-
* @default "void"
|
|
10
|
+
* @default "primary"
|
|
13
11
|
*/
|
|
14
|
-
variant?: "
|
|
12
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
15
|
* Checkbox customizado com estética brutalista.
|
|
18
16
|
* Mantém acessibilidade total escondendo o input nativo (`sr-only`)
|
|
19
17
|
* mas preservando a navegabilidade via teclado e leitores de tela.
|
|
20
18
|
*/
|
|
21
|
-
export declare const
|
|
19
|
+
export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
22
20
|
export {};
|
|
@@ -1,37 +1,30 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
3
3
|
/**
|
|
4
|
-
* Define o tema visual do input.
|
|
5
|
-
* - `
|
|
6
|
-
* - `
|
|
7
|
-
*
|
|
4
|
+
* Define o tema visual do input seguindo a paleta Cyber Goth.
|
|
5
|
+
* - `primary`: Bone White (Padrão)
|
|
6
|
+
* - `secondary`: Malware Green
|
|
7
|
+
* - `accent`: Phantom Pink
|
|
8
|
+
* - `danger`: Sanguine Red
|
|
9
|
+
* - `warning`: Cyber Gold
|
|
10
|
+
* @default "primary"
|
|
8
11
|
*/
|
|
9
|
-
variant?: "
|
|
12
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
10
13
|
/**
|
|
11
|
-
* Dimensões do input
|
|
12
|
-
* - `sm`: Compacto
|
|
13
|
-
* - `md`:
|
|
14
|
+
* Dimensões do input.
|
|
15
|
+
* - `sm`: Compacto (32px altura aprox).
|
|
16
|
+
* - `md`: Padrão (48px altura aprox).
|
|
14
17
|
* @default "md"
|
|
15
18
|
*/
|
|
16
19
|
size?: "sm" | "md";
|
|
17
20
|
/**
|
|
18
|
-
*
|
|
19
|
-
* Automaticamente vinculado ao input via `htmlFor` e `id`.
|
|
21
|
+
* Rótulo exibido acima do campo.
|
|
20
22
|
*/
|
|
21
23
|
label?: string;
|
|
22
24
|
/**
|
|
23
25
|
* Mensagem de erro.
|
|
24
|
-
* Se
|
|
25
|
-
* 1. Altera a cor da borda para vermelho.
|
|
26
|
-
* 2. Exibe a mensagem abaixo do input.
|
|
27
|
-
* 3. Adiciona `aria-invalid="true"` e vincula a mensagem via `aria-describedby` para leitores de tela.
|
|
26
|
+
* Se existir, o input assume a cor `danger` automaticamente.
|
|
28
27
|
*/
|
|
29
28
|
error?: string;
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
* Campo de entrada de texto com estética brutalista.
|
|
33
|
-
* Prioriza acessibilidade automática (vínculo label-input e tratamento de erros ARIA).
|
|
34
|
-
* O foco gera uma sombra rígida (hard shadow) característica da Nocturna UI.
|
|
35
|
-
*/
|
|
36
|
-
export declare const VeinInput: React.ForwardRefExoticComponent<VeinInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
37
|
-
export {};
|
|
30
|
+
export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export interface
|
|
3
|
-
/** Identificador único do item. */
|
|
4
|
-
id: string;
|
|
5
|
-
/** Texto do item. */
|
|
6
|
-
label: string;
|
|
7
|
-
/** Ícone opcional à esquerda. */
|
|
8
|
-
icon?: React.ReactNode;
|
|
9
|
-
/** Ação ao clicar. */
|
|
10
|
-
onClick: () => void;
|
|
11
|
-
/** Indica ação destrutiva (vermelho). */
|
|
12
|
-
danger?: boolean;
|
|
13
|
-
/** Desabilita o item. */
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
interface AltarMenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
2
|
+
export interface MenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
3
|
/** Lista de itens do menu. */
|
|
18
4
|
items: Array<{
|
|
19
5
|
/** Identificador único do item. */
|
|
@@ -24,13 +10,16 @@ interface AltarMenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
24
10
|
icon?: React.ReactNode;
|
|
25
11
|
/** Ação ao clicar. */
|
|
26
12
|
onClick: () => void;
|
|
27
|
-
/** Indica ação destrutiva
|
|
13
|
+
/** Indica ação destrutiva. */
|
|
28
14
|
danger?: boolean;
|
|
29
15
|
/** Desabilita o item. */
|
|
30
16
|
disabled?: boolean;
|
|
31
17
|
}>;
|
|
32
|
-
/**
|
|
33
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Define o tema visual do menu.
|
|
20
|
+
* @default "primary"
|
|
21
|
+
*/
|
|
22
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
34
23
|
/** Elemento gatilho opcional. Se omitido, usa ícone padrão. */
|
|
35
24
|
trigger?: React.ReactNode;
|
|
36
25
|
/** Alinhamento do dropdown. */
|
|
@@ -46,5 +35,4 @@ interface AltarMenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
46
35
|
* - `Esc`: Fecha o menu e retorna foco ao gatilho.
|
|
47
36
|
* - `Tab`: Fecha o menu e segue fluxo natural da página.
|
|
48
37
|
*/
|
|
49
|
-
export declare const
|
|
50
|
-
export {};
|
|
38
|
+
export declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Controla a visibilidade do modal.
|
|
5
5
|
* O componente é renderizado via React Portal no `document.body`.
|
|
@@ -26,20 +26,18 @@ interface CryptModalProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
26
26
|
*/
|
|
27
27
|
children?: React.ReactNode;
|
|
28
28
|
/**
|
|
29
|
-
* Define o tema visual.
|
|
30
|
-
*
|
|
31
|
-
* - `blood`: Tema de alerta/erro (Borda Vermelha).
|
|
32
|
-
* @default "void"
|
|
29
|
+
* Define o tema visual do modal.
|
|
30
|
+
* @default "primary"
|
|
33
31
|
*/
|
|
34
|
-
variant?: "
|
|
32
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
35
33
|
}
|
|
36
34
|
/**
|
|
37
|
-
* Modal acessível com estética brutalista
|
|
35
|
+
* Modal acessível com estética brutalista.
|
|
38
36
|
*
|
|
39
37
|
* **Features Automáticas:**
|
|
40
38
|
* - **Focus Trap:** Mantém o foco do teclado preso dentro do modal.
|
|
41
39
|
* - **Scroll Lock:** Impede a rolagem da página de fundo.
|
|
42
40
|
* - **Close on ESC:** Fecha ao pressionar Escape.
|
|
43
41
|
*/
|
|
44
|
-
export declare const
|
|
42
|
+
export declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<HTMLDivElement>>;
|
|
45
43
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
export interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Valor atual do progresso.
|
|
5
5
|
* Utilizado apenas quando `mode="value"`.
|
|
@@ -13,11 +13,9 @@ interface VesselProgressProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
13
13
|
max?: number;
|
|
14
14
|
/**
|
|
15
15
|
* Define o tema visual da barra.
|
|
16
|
-
*
|
|
17
|
-
* - `blood`: Tema de perigo/erro (Vermelho Escuro).
|
|
18
|
-
* @default "void"
|
|
16
|
+
* @default "primary"
|
|
19
17
|
*/
|
|
20
|
-
variant?: "
|
|
18
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
21
19
|
/**
|
|
22
20
|
* Rótulo exibido acima da barra.
|
|
23
21
|
* Renderizado em uppercase e fonte serifada.
|
|
@@ -53,5 +51,4 @@ interface VesselProgressProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
53
51
|
* Barra de progresso multifuncional com estética brutalista.
|
|
54
52
|
* Suporta exibição de valores percentuais, timers decrescentes e estados de carregamento indeterminado.
|
|
55
53
|
*/
|
|
56
|
-
export declare const
|
|
57
|
-
export {};
|
|
54
|
+
export declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface ScrollProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Conteúdo que será rolado.
|
|
5
5
|
* Deve exceder a altura definida em `maxHeight` para ativar a rolagem.
|
|
@@ -7,11 +7,9 @@ interface AbyssScrollProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
/**
|
|
9
9
|
* Define o tema visual da barra de rolagem.
|
|
10
|
-
*
|
|
11
|
-
* - `blood`: Trilho e polegar em tons de vermelho sangue.
|
|
12
|
-
* @default "void"
|
|
10
|
+
* @default "primary"
|
|
13
11
|
*/
|
|
14
|
-
variant?: "
|
|
12
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
15
13
|
/**
|
|
16
14
|
* Altura máxima do container antes de ativar a rolagem.
|
|
17
15
|
* Aceita valores CSS válidos (ex: "400px", "50vh", 300).
|
|
@@ -27,5 +25,5 @@ interface AbyssScrollProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
27
25
|
* - Estilização profunda de scrollbar para manter a imersão gótica.
|
|
28
26
|
* - Suporte a conteúdo dinâmico.
|
|
29
27
|
*/
|
|
30
|
-
export declare const
|
|
28
|
+
export declare const Scroll: React.ForwardRefExoticComponent<ScrollProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
29
|
export {};
|
|
@@ -3,7 +3,7 @@ export interface RitualSelectOption {
|
|
|
3
3
|
value: string;
|
|
4
4
|
label: string;
|
|
5
5
|
}
|
|
6
|
-
interface
|
|
6
|
+
export interface SelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "value"> {
|
|
7
7
|
/**
|
|
8
8
|
* Lista de opções disponíveis para seleção.
|
|
9
9
|
*/
|
|
@@ -34,11 +34,9 @@ interface RitualSelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonEl
|
|
|
34
34
|
label?: string;
|
|
35
35
|
/**
|
|
36
36
|
* Define o tema visual.
|
|
37
|
-
*
|
|
38
|
-
* - `blood`: Tema avermelhado (Erro/Alerta).
|
|
39
|
-
* @default "void"
|
|
37
|
+
* @default "primary"
|
|
40
38
|
*/
|
|
41
|
-
variant?: "
|
|
39
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
42
40
|
/**
|
|
43
41
|
* Altura do componente.
|
|
44
42
|
* - `sm`: Compacto (32px).
|
|
@@ -52,5 +50,4 @@ interface RitualSelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonEl
|
|
|
52
50
|
* Select customizado (Combobox) com suporte a navegação por teclado e estética brutalista.
|
|
53
51
|
* Substitui o `<select>` nativo para permitir estilização profunda do dropdown.
|
|
54
52
|
*/
|
|
55
|
-
export declare const
|
|
56
|
-
export {};
|
|
53
|
+
export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Define o tema visual das linhas e do texto.
|
|
5
|
-
*
|
|
6
|
-
* - `blood`: Linhas vermelho-sangue (Para áreas de perigo ou destaque).
|
|
7
|
-
* @default "void"
|
|
5
|
+
* @default "primary"
|
|
8
6
|
*/
|
|
9
|
-
variant?: "
|
|
7
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
10
8
|
/**
|
|
11
9
|
* Texto opcional exibido no centro do separador.
|
|
12
10
|
* As linhas se ajustam automaticamente ao redor do texto.
|
|
@@ -24,5 +22,5 @@ interface AbyssSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
24
22
|
* Divisor visual com estética brutalista.
|
|
25
23
|
* Cria uma linha horizontal (ou duas, se houver rótulo) para separar seções de conteúdo.
|
|
26
24
|
*/
|
|
27
|
-
export declare const
|
|
25
|
+
export declare const Separator: React.ForwardRefExoticComponent<SeparatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
26
|
export {};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/**
|
|
4
4
|
* Define o tema visual do esqueleto.
|
|
5
|
-
*
|
|
6
|
-
* - `blood`: Vermelho escuro translúcido.
|
|
7
|
-
* @default "void"
|
|
5
|
+
* @default "primary"
|
|
8
6
|
*/
|
|
9
|
-
variant?: "
|
|
7
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
10
8
|
/** Largura manual (ex: "100%", 200). */
|
|
11
9
|
width?: string | number;
|
|
12
10
|
/** Altura manual (ex: "1rem", 40). */
|
|
@@ -20,13 +18,13 @@ interface SpectreSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
20
18
|
* Possui `aria-hidden="true"` automaticamente, pois é um elemento puramente visual
|
|
21
19
|
* e não deve ser lido por leitores de tela.
|
|
22
20
|
*/
|
|
23
|
-
export declare const
|
|
24
|
-
interface
|
|
21
|
+
export declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
interface SkeletonLineProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
25
23
|
/**
|
|
26
24
|
* Define o tema visual do esqueleto.
|
|
27
|
-
* @default "
|
|
25
|
+
* @default "primary"
|
|
28
26
|
*/
|
|
29
|
-
variant?: "
|
|
27
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
30
28
|
/**
|
|
31
29
|
* Largura manual.
|
|
32
30
|
* @default "100%"
|
|
@@ -42,8 +40,8 @@ interface SpectreSkeletonLineProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
42
40
|
* Wrapper conveniente para simular linhas de texto.
|
|
43
41
|
* Altura padrão de 1rem.
|
|
44
42
|
*/
|
|
45
|
-
export declare const
|
|
46
|
-
interface
|
|
43
|
+
export declare const SkeletonLine: React.ForwardRefExoticComponent<SkeletonLineProps & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
interface SkeletonAvatarProps extends Omit<SkeletonProps, "width" | "height"> {
|
|
47
45
|
/**
|
|
48
46
|
* Tamanhos predefinidos para avatares.
|
|
49
47
|
* - `sm`: 32px (w-8)
|
|
@@ -56,9 +54,9 @@ interface SpectreSkeletonAvatarProps extends Omit<SpectreSkeletonProps, "width"
|
|
|
56
54
|
/**
|
|
57
55
|
* Wrapper quadrado para simular avatares ou ícones de perfil.
|
|
58
56
|
*/
|
|
59
|
-
export declare const
|
|
60
|
-
interface
|
|
61
|
-
variant?: "
|
|
57
|
+
export declare const SkeletonAvatar: React.ForwardRefExoticComponent<SkeletonAvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
58
|
+
interface SkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
59
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
62
60
|
/** Número de linhas de texto simuladas no corpo do card. */
|
|
63
61
|
lines?: number;
|
|
64
62
|
/** Se verdadeiro, renderiza uma linha de título mais larga. */
|
|
@@ -68,5 +66,5 @@ interface SpectreSkeletonCardProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
68
66
|
* Padrão composto que simula um Card completo (Título + Texto).
|
|
69
67
|
* Útil para estados de loading de feeds ou grids.
|
|
70
68
|
*/
|
|
71
|
-
export declare const
|
|
69
|
+
export declare const SkeletonCard: React.ForwardRefExoticComponent<SkeletonCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
72
70
|
export {};
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export interface
|
|
3
|
-
id: string;
|
|
4
|
-
label: string;
|
|
5
|
-
content: React.ReactNode;
|
|
6
|
-
}
|
|
7
|
-
interface SoulTabsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
2
|
+
export interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
3
|
/**
|
|
9
4
|
* Array de objetos que definem as abas.
|
|
10
5
|
* Cada objeto deve conter `{ id, label, content }`.
|
|
@@ -19,11 +14,9 @@ interface SoulTabsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
14
|
}>;
|
|
20
15
|
/**
|
|
21
16
|
* Define o tema visual.
|
|
22
|
-
*
|
|
23
|
-
* - `blood`: Tema avermelhado (Vermelho/Preto).
|
|
24
|
-
* @default "void"
|
|
17
|
+
* @default "primary"
|
|
25
18
|
*/
|
|
26
|
-
variant?: "
|
|
19
|
+
variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
|
|
27
20
|
}
|
|
28
21
|
/**
|
|
29
22
|
* Componente de navegação em abas acessível.
|
|
@@ -33,5 +26,4 @@ interface SoulTabsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
33
26
|
* - **Animações:** Transição suave (fade/slide) ao trocar de conteúdo.
|
|
34
27
|
* - **ARIA:** Roles e atributos corretos (`tablist`, `tab`, `tabpanel`).
|
|
35
28
|
*/
|
|
36
|
-
export declare const
|
|
37
|
-
export {};
|
|
29
|
+
export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
|