@celke/kole-react 0.1.0 → 0.2.0
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/LICENSE +22 -22
- package/README.md +370 -255
- package/dist/components/Preferencias/Preferencias.d.ts +20 -3
- package/dist/estilos.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +360 -337
- package/dist/index.js.map +1 -1
- package/dist/tailwind.css +82 -0
- package/dist/tokens.css +403 -321
- package/package.json +91 -83
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
/** `sistema` = segue o modo do sistema operacional, inclusive quando ele muda com a página aberta. */
|
|
3
|
+
export type Tema = 'claro' | 'escuro' | 'sistema';
|
|
3
4
|
export type Densidade = 'compacta' | 'confortavel' | 'espacosa';
|
|
4
5
|
export interface Preferencias {
|
|
5
6
|
tema: Tema;
|
|
7
|
+
/** O tema que está na tela: com `sistema`, o do sistema operacional agora. */
|
|
6
8
|
escuro: boolean;
|
|
7
9
|
densidade: Densidade;
|
|
8
10
|
definirTema: (t: Tema) => void;
|
|
9
11
|
alternarTema: () => void;
|
|
10
12
|
definirDensidade: (d: Densidade) => void;
|
|
11
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Script para o `<head>` que aplica tema e densidade ANTES da primeira pintura.
|
|
16
|
+
* Sem ele, o `ProvedorPreferencias` só aplica no primeiro efeito, e quem salvou
|
|
17
|
+
* o tema escuro vê a página clara piscar ao abrir. Lê a mesma chave do
|
|
18
|
+
* `localStorage`; passe o mesmo `temaInicial`/`densidadeInicial` do provedor.
|
|
19
|
+
*
|
|
20
|
+
* SSR: `<script dangerouslySetInnerHTML={{ __html: scriptTemaInicial() }} />`.
|
|
21
|
+
* Vite/HTML estático: o README traz o script pronto para colar no index.html.
|
|
22
|
+
*/
|
|
23
|
+
export declare function scriptTemaInicial({ temaInicial, densidadeInicial }?: {
|
|
24
|
+
temaInicial?: Tema;
|
|
25
|
+
densidadeInicial?: Densidade;
|
|
26
|
+
}): string;
|
|
12
27
|
export interface ProvedorPreferenciasProps {
|
|
13
28
|
children: ReactNode;
|
|
29
|
+
/** Tema enquanto a pessoa não escolhe outro. Padrão: `sistema`. */
|
|
14
30
|
temaInicial?: Tema;
|
|
15
31
|
densidadeInicial?: Densidade;
|
|
16
32
|
}
|
|
17
33
|
/**
|
|
18
|
-
* Tema (claro/escuro) e densidade, lembrados no navegador. Aplica
|
|
19
|
-
* `data-theme` no <html> e a classe de densidade no
|
|
34
|
+
* Tema (claro/escuro/sistema) e densidade, lembrados no navegador. Aplica
|
|
35
|
+
* `data-theme` (`light`/`dark`/`system`) no <html> e a classe de densidade no
|
|
36
|
+
* <body>. Para não piscar ao abrir, use também o `scriptTemaInicial` no <head>.
|
|
20
37
|
*/
|
|
21
38
|
export declare function ProvedorPreferencias({ children, temaInicial, densidadeInicial }: ProvedorPreferenciasProps): import("react").JSX.Element;
|
|
22
39
|
export declare function usePreferencias(): Preferencias;
|