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 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.5**, introduzimos o sistema de **Aliases**, permitindo importações mais limpas (ex: `Button` ao invés de `VoidButton`), e melhoramos a cobertura de testes.
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
  [![NPM Version](https://img.shields.io/npm/v/nocturna-ui?color=000000&label=npm&style=flat-square)](https://www.npmjs.com/package/nocturna-ui)
10
10
  [![Tests](https://github.com/gothd/nocturna-ui/actions/workflows/test.yml/badge.svg?branch=main)](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
- Para que os componentes funcionem corretamente, você deve importar o CSS global e envolver sua aplicação no `OmenToastProvider` (mesmo que não use notificações imediatamente, ele configura contextos globais).
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 { OmenToastProvider } from "nocturna-ui";
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 <OmenToastProvider>{children}</OmenToastProvider>;
49
+ return <ToastProvider>{children}</ToastProvider>;
50
50
  }
51
51
  ```
52
52
 
53
53
  ---
54
54
 
55
- ## 🕸️ Uso Básico (Aliases)
55
+ ## 🎨 Paleta Cyber Goth
56
56
 
57
- Você não precisa mais decorar nomes místicos como `VoidButton` ou `CryptModal`. Utilize os Aliases funcionais:
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="Invocação">
80
+ <Card title="Protocolo de Rede" variant="secondary">
67
81
  <div className="flex gap-4 mb-4">
68
- <Badge variant="blood">Status: Pendente</Badge>
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="void"
73
- onClick={() => toast({ title: "Pacto Realizado", type: "success" })}
89
+ variant="accent"
90
+ onClick={() =>
91
+ toast({
92
+ title: "Upload Iniciado",
93
+ type: "success", // Automático: Usa cor secondary
94
+ })
95
+ }
74
96
  >
75
- Confirmar
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.5/dist/index.umd.js"></script>
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 de uso completo pela CDN, com o ToastProvider](./examples/cdn/index.html)._
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 de cobertura
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 GrimoireAccordionItem {
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
- * - `void`: Monocromático (Borda Branca).
23
- * - `blood`: Tons de vermelho sangue (Borda Vermelha).
24
- * @default "void"
17
+ * @default "primary"
25
18
  */
26
- variant?: "void" | "blood";
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 GrimoireAccordion: ({ items, variant, className, ...props }: GrimoireAccordionProps) => import("react/jsx-runtime").JSX.Element;
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 SigilBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
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
- * - `void`: Padrão monocromático (Preto/Branco).
10
- * - `blood`: Tema agressivo (Vermelho/Preto) para erros ou destaques críticos.
11
- * @default "void"
9
+ * @default "primary"
12
10
  */
13
- variant?: "void" | "blood";
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 com fundo transparente/preto.
24
- * - `solid`: Fundo preenchido com a cor da variante.
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 SigilBadge: React.ForwardRefExoticComponent<SigilBadgeProps & React.RefAttributes<HTMLSpanElement>>;
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 VoidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
2
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  /**
4
4
  * Define o estilo visual do botão.
5
- * - `void`: Estilo padrão preto e branco.
6
- * - `blood`: Estilo vermelho escuro para ações perigosas ou destaque.
7
- * @default "void"
5
+ * @default "primary"
8
6
  */
9
- variant?: "void" | "blood";
7
+ variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
10
8
  /**
11
- * Controla o tamanho e o padding do botão.
9
+ * Controla o tamanho e o padding.
12
10
  * @default "md"
13
11
  */
14
12
  size?: "sm" | "md" | "lg";
15
13
  }
16
14
  /**
17
- * O botão primário da Nocturna UI.
18
- * Utiliza sombras rígidas e transições brutas.
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 VoidButton: React.ForwardRefExoticComponent<VoidButtonProps & React.RefAttributes<HTMLButtonElement>>;
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 NocturnaCardProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  /**
4
4
  * Define o tema visual do card.
5
- * - `void`: Borda branca e sombra branca no hover.
6
- * - `blood`: Borda vermelha escura e sombra avermelhada no hover.
7
- * @default "void"
5
+ * @default "primary"
8
6
  */
9
- variant?: "void" | "blood";
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 NocturnaCard: React.ForwardRefExoticComponent<NocturnaCardProps & React.RefAttributes<HTMLDivElement>>;
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 HexCheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
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
- * - `void`: Padrão monocromático (Borda Branca / Check Preto).
11
- * - `blood`: Tema vermelho escuro (Borda Vermelha / Check Branco).
12
- * @default "void"
10
+ * @default "primary"
13
11
  */
14
- variant?: "void" | "blood";
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 HexCheckbox: React.ForwardRefExoticComponent<HexCheckboxProps & React.RefAttributes<HTMLInputElement>>;
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 VeinInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
2
+ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
3
3
  /**
4
- * Define o tema visual do input.
5
- * - `void`: Padrão monocromático (Borda Branca).
6
- * - `blood`: Tema vermelho escuro (Borda Vermelha e Texto Vermelho).
7
- * @default "void"
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?: "void" | "blood";
12
+ variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
10
13
  /**
11
- * Dimensões do input (altura e padding).
12
- * - `sm`: Compacto para formulários densos.
13
- * - `md`: Tamanho padrão para legibilidade.
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
- * Texto do rótulo exibido acima do campo.
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 fornecido:
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 AltarMenuItem {
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 (vermelho). */
13
+ /** Indica ação destrutiva. */
28
14
  danger?: boolean;
29
15
  /** Desabilita o item. */
30
16
  disabled?: boolean;
31
17
  }>;
32
- /** Tema visual: 'void' (Padrão) ou 'blood' (Crítico). */
33
- variant?: "void" | "blood";
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 AltarMenu: React.ForwardRefExoticComponent<AltarMenuProps & React.RefAttributes<HTMLButtonElement>>;
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 CryptModalProps extends React.HTMLAttributes<HTMLDivElement> {
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
- * - `void`: Monocromático (Borda Branca).
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?: "void" | "blood";
32
+ variant?: "primary" | "secondary" | "accent" | "danger" | "warning";
35
33
  }
36
34
  /**
37
- * Modal acessível com estética brutalista (Crypt).
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 CryptModal: React.ForwardRefExoticComponent<CryptModalProps & React.RefAttributes<HTMLDivElement>>;
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 VesselProgressProps extends React.HTMLAttributes<HTMLDivElement> {
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
- * - `void`: Padrão monocromático (Branco).
17
- * - `blood`: Tema de perigo/erro (Vermelho Escuro).
18
- * @default "void"
16
+ * @default "primary"
19
17
  */
20
- variant?: "void" | "blood";
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 VesselProgress: React.ForwardRefExoticComponent<VesselProgressProps & React.RefAttributes<HTMLDivElement>>;
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 AbyssScrollProps extends React.HTMLAttributes<HTMLDivElement> {
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
- * - `void`: Trilho escuro com polegar (thumb) branco.
11
- * - `blood`: Trilho e polegar em tons de vermelho sangue.
12
- * @default "void"
10
+ * @default "primary"
13
11
  */
14
- variant?: "void" | "blood";
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 AbyssScroll: React.ForwardRefExoticComponent<AbyssScrollProps & React.RefAttributes<HTMLDivElement>>;
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 RitualSelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "value"> {
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
- * - `void`: Padrão monocromático.
38
- * - `blood`: Tema avermelhado (Erro/Alerta).
39
- * @default "void"
37
+ * @default "primary"
40
38
  */
41
- variant?: "void" | "blood";
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 RitualSelect: React.ForwardRefExoticComponent<RitualSelectProps & React.RefAttributes<HTMLButtonElement>>;
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 AbyssSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  /**
4
4
  * Define o tema visual das linhas e do texto.
5
- * - `void`: Linhas brancas (Padrão).
6
- * - `blood`: Linhas vermelho-sangue (Para áreas de perigo ou destaque).
7
- * @default "void"
5
+ * @default "primary"
8
6
  */
9
- variant?: "void" | "blood";
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 AbyssSeparator: React.ForwardRefExoticComponent<AbyssSeparatorProps & React.RefAttributes<HTMLDivElement>>;
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 SpectreSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  /**
4
4
  * Define o tema visual do esqueleto.
5
- * - `void`: Cinza escuro/preto (Padrão).
6
- * - `blood`: Vermelho escuro translúcido.
7
- * @default "void"
5
+ * @default "primary"
8
6
  */
9
- variant?: "void" | "blood";
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 SpectreSkeleton: React.ForwardRefExoticComponent<SpectreSkeletonProps & React.RefAttributes<HTMLDivElement>>;
24
- interface SpectreSkeletonLineProps extends React.HTMLAttributes<HTMLDivElement> {
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 "void"
25
+ * @default "primary"
28
26
  */
29
- variant?: "void" | "blood";
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 SpectreSkeletonLine: React.ForwardRefExoticComponent<SpectreSkeletonLineProps & React.RefAttributes<HTMLDivElement>>;
46
- interface SpectreSkeletonAvatarProps extends Omit<SpectreSkeletonProps, "width" | "height"> {
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 SpectreSkeletonAvatar: React.ForwardRefExoticComponent<SpectreSkeletonAvatarProps & React.RefAttributes<HTMLDivElement>>;
60
- interface SpectreSkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {
61
- variant?: "void" | "blood";
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 SpectreSkeletonCard: React.ForwardRefExoticComponent<SpectreSkeletonCardProps & React.RefAttributes<HTMLDivElement>>;
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 Tab {
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
- * - `void`: Padrão monocromático (Branco/Preto).
23
- * - `blood`: Tema avermelhado (Vermelho/Preto).
24
- * @default "void"
17
+ * @default "primary"
25
18
  */
26
- variant?: "void" | "blood";
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 SoulTabs: React.ForwardRefExoticComponent<SoulTabsProps & React.RefAttributes<HTMLDivElement>>;
37
- export {};
29
+ export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;