@thibezer/ui-components-kit 2.2.1 → 2.3.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/CHANGELOG.md +143 -123
- package/README.md +762 -760
- package/dist/camadas.cjs +67 -67
- package/dist/camadas.js +433 -345
- package/dist/canvas.cjs +14 -14
- package/dist/canvas.js +316 -298
- package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
- package/dist/components/ui-cores/cores-utils.d.ts +13 -0
- package/dist/components/ui-cores/index.d.ts +4 -0
- package/dist/components/ui-cores/tipos.d.ts +79 -0
- package/dist/components/ui-cores/ui-controle-cores.d.ts +93 -0
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +65 -0
- package/dist/cores.cjs +1 -0
- package/dist/cores.d.ts +8 -0
- package/dist/cores.js +13 -0
- package/dist/custom-elements.json +16543 -15561
- package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +5 -1
- package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +99 -89
- package/dist/register.cjs +1 -1
- package/dist/register.js +3 -2
- package/dist/tipos-elementos.d.ts +28 -0
- package/dist/tipos-react.d.ts +4 -0
- package/dist/tipos-vue.d.ts +28 -0
- package/dist/ui-controle-cores-BS0WYPdi.js +572 -0
- package/dist/ui-controle-cores-Er6ZcQ7U.cjs +111 -0
- package/package.json +174 -169
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValorCor } from './tipos';
|
|
2
|
+
/** Paleta técnica padrão (CAD/GIS) do seletor de cor. */
|
|
3
|
+
export declare const PALETA_CORES_PADRAO: readonly string[];
|
|
4
|
+
/**
|
|
5
|
+
* Normaliza uma cor para `#rrggbb` minúsculo ou `'none'`.
|
|
6
|
+
* Aceita `#rgb`, `#rrggbb`, `none` e `transparent` (sem cor); devolve `null` para qualquer outro valor.
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizarCor(cor: unknown): ValorCor | null;
|
|
9
|
+
/** Limita a opacidade a [0, 1]; valores inválidos viram `padrao`. */
|
|
10
|
+
export declare function normalizarOpacidade(valor: unknown, padrao?: number): number;
|
|
11
|
+
/** Lista de cores válidas e sem repetição, na ordem recebida. */
|
|
12
|
+
export declare function coresUnicas(cores: unknown): string[];
|
|
13
|
+
export declare function escaparHtml(texto: unknown): string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/** Qual das duas cores de uma forma está em edição. */
|
|
2
|
+
export type AlvoCor = 'preenchimento' | 'traco';
|
|
3
|
+
/**
|
|
4
|
+
* Cor aceita pelos componentes de cor: hexadecimal `#rrggbb` (ou `#rgb`) ou `'none'` (sem cor).
|
|
5
|
+
* Internamente tudo é normalizado para `#rrggbb` minúsculo ou `'none'`.
|
|
6
|
+
*/
|
|
7
|
+
export type ValorCor = string;
|
|
8
|
+
/** Estado emitido pelo `<ui-seletor-cor>` a cada alteração, confirmação ou cancelamento. */
|
|
9
|
+
export interface DetalheSeletorCor {
|
|
10
|
+
/** Alvo em edição no momento do evento. */
|
|
11
|
+
alvo: AlvoCor;
|
|
12
|
+
/** Cor do alvo em edição (no modo simples, a única cor). */
|
|
13
|
+
cor: ValorCor;
|
|
14
|
+
preenchimento: ValorCor;
|
|
15
|
+
traco: ValorCor;
|
|
16
|
+
/** Opacidade do preenchimento, de 0 a 1. */
|
|
17
|
+
opacidade: number;
|
|
18
|
+
}
|
|
19
|
+
/** Opções de `abrirSeletorCor()`. */
|
|
20
|
+
export interface OpcoesSeletorCor {
|
|
21
|
+
/** Elemento ao lado do qual o seletor aparece (à direita; à esquerda se não couber). */
|
|
22
|
+
ancora: Element;
|
|
23
|
+
titulo?: string;
|
|
24
|
+
/**
|
|
25
|
+
* `duplo` mostra as abas Preenchimento/Traço (exige `preenchimento` e `traco`);
|
|
26
|
+
* `simples` edita uma única `cor`. Padrão: `duplo` quando `preenchimento` e `traco` são informados.
|
|
27
|
+
*/
|
|
28
|
+
modo?: 'duplo' | 'simples';
|
|
29
|
+
alvo?: AlvoCor;
|
|
30
|
+
preenchimento?: ValorCor;
|
|
31
|
+
traco?: ValorCor;
|
|
32
|
+
/** Cor inicial do modo simples. */
|
|
33
|
+
cor?: ValorCor;
|
|
34
|
+
/** Opacidade inicial do preenchimento (0 a 1). Padrão 0.35. */
|
|
35
|
+
opacidade?: number;
|
|
36
|
+
/** Mostra o controle de opacidade. Padrão: só quando o alvo é o preenchimento. */
|
|
37
|
+
mostrarOpacidade?: boolean;
|
|
38
|
+
/** A cor inicial representa uma seleção com cores diferentes (mostra "MISTO"). */
|
|
39
|
+
misto?: boolean;
|
|
40
|
+
/** Cores extras oferecidas em "Cores do projeto" (duplicadas e inválidas são ignoradas). */
|
|
41
|
+
coresProjeto?: ValorCor[];
|
|
42
|
+
/** Substitui a paleta padrão. */
|
|
43
|
+
paleta?: ValorCor[];
|
|
44
|
+
/** Cada alteração (pré-visualização, ainda não confirmada). */
|
|
45
|
+
aoAlterar?: (detalhe: DetalheSeletorCor) => void;
|
|
46
|
+
/** Ao fechar confirmando: Concluir, ✕, Enter no hexadecimal, Esc ou clique fora. */
|
|
47
|
+
aoConfirmar?: (detalhe: DetalheSeletorCor) => void;
|
|
48
|
+
/** Ao cancelar: as cores iniciais são restauradas (com um `aoAlterar` antes) e não há confirmação. */
|
|
49
|
+
aoCancelar?: (detalhe: DetalheSeletorCor) => void;
|
|
50
|
+
/** Ao trocar de aba Preenchimento/Traço. */
|
|
51
|
+
aoTrocarAlvo?: (alvo: AlvoCor) => void;
|
|
52
|
+
}
|
|
53
|
+
/** Controle de um seletor aberto por `abrirSeletorCor()`. */
|
|
54
|
+
export interface SeletorCorAberto {
|
|
55
|
+
readonly elemento: HTMLElement;
|
|
56
|
+
/** Fecha o seletor; com `confirmar` (padrão `true`) chama `aoConfirmar`. */
|
|
57
|
+
fechar(confirmar?: boolean): void;
|
|
58
|
+
readonly aberto: boolean;
|
|
59
|
+
}
|
|
60
|
+
/** Detalhe do evento `ui-cores-change` do `<ui-controle-cores>`. */
|
|
61
|
+
export interface DetalheControleCores {
|
|
62
|
+
preenchimento: ValorCor;
|
|
63
|
+
traco: ValorCor;
|
|
64
|
+
opacidade: number;
|
|
65
|
+
alvo: AlvoCor;
|
|
66
|
+
/** `false` durante a pré-visualização no seletor; `true` quando a alteração deve ser gravada. */
|
|
67
|
+
confirmado: boolean;
|
|
68
|
+
/** Quais valores mudaram. */
|
|
69
|
+
alterados: Array<'preenchimento' | 'traco' | 'opacidade'>;
|
|
70
|
+
/** O que gerou a mudança. */
|
|
71
|
+
origem: 'seletor' | 'inverter' | 'sem-cor' | 'padrao';
|
|
72
|
+
}
|
|
73
|
+
/** Textos de atalho exibidos nas dicas dos botões (o kit não registra os atalhos; quem usa decide). */
|
|
74
|
+
export interface AtalhosControleCores {
|
|
75
|
+
alternar?: string;
|
|
76
|
+
inverter?: string;
|
|
77
|
+
semCor?: string;
|
|
78
|
+
padrao?: string;
|
|
79
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
import { AlvoCor, AtalhosControleCores, ValorCor } from './tipos';
|
|
3
|
+
/**
|
|
4
|
+
* <ui-controle-cores> — par de cores de desenho no estilo Illustrator: preenchimento na frente,
|
|
5
|
+
* traço atrás, e botões de canto para inverter, "sem cor" e restaurar o padrão.
|
|
6
|
+
*
|
|
7
|
+
* - Clique na amostra de trás: ela vira o alvo ativo. Clique no alvo ativo (ou duplo clique,
|
|
8
|
+
* Enter, Espaço): abre o `<ui-seletor-cor>` ao lado.
|
|
9
|
+
* - Mudanças feitas pelo usuário emitem `ui-cores-change`; `confirmado: false` é pré-visualização
|
|
10
|
+
* (seletor aberto), `confirmado: true` deve ser gravado. Métodos `definir*` não emitem eventos.
|
|
11
|
+
* - O kit não registra atalhos de teclado; quem usa chama `alternarAlvo()`, `inverter()`,
|
|
12
|
+
* `semCor()` e `restaurarPadrao()` e pode exibir as teclas nas dicas via `atalhos`.
|
|
13
|
+
*
|
|
14
|
+
* Atributos: preenchimento, traco, opacidade, alvo (preenchimento|traco), padrao-preenchimento,
|
|
15
|
+
* padrao-traco, titulo-seletor, so-traco, desabilitado
|
|
16
|
+
* Propriedades: preenchimento, traco, opacidade, alvo, coresProjeto, atalhos, seletorAberto
|
|
17
|
+
* Métodos: definirCores(), obterCores(), definirAlvo(), alternarAlvo(), definirMisto(), inverter(),
|
|
18
|
+
* semCor(), restaurarPadrao(), abrirSeletor(), fecharSeletor()
|
|
19
|
+
* Eventos: ui-cores-change (DetalheControleCores), ui-alvo-change { alvo }
|
|
20
|
+
*/
|
|
21
|
+
export declare class UIControleCores extends SafeHTMLElement {
|
|
22
|
+
static get observedAttributes(): string[];
|
|
23
|
+
private raiz;
|
|
24
|
+
private listeners;
|
|
25
|
+
private renderizado;
|
|
26
|
+
private _preenchimento;
|
|
27
|
+
private _traco;
|
|
28
|
+
private _opacidade;
|
|
29
|
+
private _alvo;
|
|
30
|
+
private _misto;
|
|
31
|
+
private _padrao;
|
|
32
|
+
private _coresProjeto;
|
|
33
|
+
private _atalhos;
|
|
34
|
+
private seletor;
|
|
35
|
+
private estadoAoAbrir;
|
|
36
|
+
constructor();
|
|
37
|
+
connectedCallback(): void;
|
|
38
|
+
disconnectedCallback(): void;
|
|
39
|
+
attributeChangedCallback(nome: string, antigo: string | null, valor: string | null): void;
|
|
40
|
+
get preenchimento(): ValorCor;
|
|
41
|
+
set preenchimento(v: ValorCor);
|
|
42
|
+
get traco(): ValorCor;
|
|
43
|
+
set traco(v: ValorCor);
|
|
44
|
+
get opacidade(): number;
|
|
45
|
+
set opacidade(v: number);
|
|
46
|
+
get alvo(): AlvoCor;
|
|
47
|
+
set alvo(v: AlvoCor);
|
|
48
|
+
/** Cores oferecidas em "Cores do projeto" no seletor. */
|
|
49
|
+
get coresProjeto(): string[];
|
|
50
|
+
set coresProjeto(v: string[]);
|
|
51
|
+
/** Teclas exibidas nas dicas dos botões (ex.: `{ inverter: 'Shift+X' }`). */
|
|
52
|
+
get atalhos(): AtalhosControleCores;
|
|
53
|
+
set atalhos(v: AtalhosControleCores);
|
|
54
|
+
get seletorAberto(): boolean;
|
|
55
|
+
/** Define cores e/ou opacidade sem emitir eventos. Valores inválidos são ignorados; uma cor definida deixa de ser "mista". */
|
|
56
|
+
definirCores(cores?: {
|
|
57
|
+
preenchimento?: ValorCor;
|
|
58
|
+
traco?: ValorCor;
|
|
59
|
+
opacidade?: number;
|
|
60
|
+
}): void;
|
|
61
|
+
obterCores(): {
|
|
62
|
+
preenchimento: ValorCor;
|
|
63
|
+
traco: ValorCor;
|
|
64
|
+
opacidade: number;
|
|
65
|
+
alvo: AlvoCor;
|
|
66
|
+
};
|
|
67
|
+
/** Marca a amostra como ativa sem emitir eventos. */
|
|
68
|
+
definirAlvo(alvo: AlvoCor): void;
|
|
69
|
+
/** Mostra "?" nas amostras cujas cores divergem na seleção atual. */
|
|
70
|
+
definirMisto(misto?: {
|
|
71
|
+
preenchimento?: boolean;
|
|
72
|
+
traco?: boolean;
|
|
73
|
+
}): void;
|
|
74
|
+
/** Alterna o alvo ativo entre preenchimento e traço; emite `ui-alvo-change`. */
|
|
75
|
+
alternarAlvo(): void;
|
|
76
|
+
/** Troca preenchimento e traço; emite `ui-cores-change` confirmado. */
|
|
77
|
+
inverter(): void;
|
|
78
|
+
/** "Sem cor" no alvo indicado (padrão: o ativo); emite `ui-cores-change` confirmado. */
|
|
79
|
+
semCor(alvo?: AlvoCor): void;
|
|
80
|
+
/** Volta às cores de `padrao-preenchimento` e `padrao-traco`; emite `ui-cores-change` confirmado. */
|
|
81
|
+
restaurarPadrao(): void;
|
|
82
|
+
/** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). */
|
|
83
|
+
abrirSeletor(alvo?: AlvoCor): void;
|
|
84
|
+
/** Fecha o seletor aberto por este controle (confirmando, por padrão). */
|
|
85
|
+
fecharSeletor(confirmar?: boolean): void;
|
|
86
|
+
private mudarAlvo;
|
|
87
|
+
private aplicarDoSeletor;
|
|
88
|
+
private emitirCores;
|
|
89
|
+
private dica;
|
|
90
|
+
private renderizar;
|
|
91
|
+
private vincularEventos;
|
|
92
|
+
private atualizar;
|
|
93
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SafeHTMLElement } from '../../core/ssr-safe';
|
|
2
|
+
import { AlvoCor, DetalheSeletorCor, OpcoesSeletorCor, SeletorCorAberto, ValorCor } from './tipos';
|
|
3
|
+
/** Configuração aceita por `UISeletorCor.configurar()` (as opções de `abrirSeletorCor` sem âncora e callbacks). */
|
|
4
|
+
export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
|
|
5
|
+
/**
|
|
6
|
+
* <ui-seletor-cor> — painel de cor no estilo Illustrator: abas Preenchimento/Traço, prévia
|
|
7
|
+
* antes × depois, hexadecimal, seletor do sistema, opacidade do preenchimento, cores do projeto,
|
|
8
|
+
* paleta padrão e "sem cor".
|
|
9
|
+
*
|
|
10
|
+
* Normalmente aberto por `abrirSeletorCor()`, que posiciona o painel junto a uma âncora e cuida
|
|
11
|
+
* de fechar com Esc ou clique fora. Pode também ser usado direto no DOM.
|
|
12
|
+
*
|
|
13
|
+
* Métodos: configurar(opcoes), trocarAlvo(alvo), definirCor(cor), definirOpacidade(v),
|
|
14
|
+
* confirmar(), cancelar(), obterEstado()
|
|
15
|
+
* Eventos: ui-cor-input (pré-visualização), ui-cor-confirmar, ui-cor-cancelar — detail: DetalheSeletorCor;
|
|
16
|
+
* ui-alvo-change { alvo }
|
|
17
|
+
*/
|
|
18
|
+
export declare class UISeletorCor extends SafeHTMLElement {
|
|
19
|
+
private raiz;
|
|
20
|
+
private listeners;
|
|
21
|
+
private _titulo;
|
|
22
|
+
private _duplo;
|
|
23
|
+
private _alvo;
|
|
24
|
+
private _preenchimento;
|
|
25
|
+
private _traco;
|
|
26
|
+
private _opacidade;
|
|
27
|
+
private _mostrarOpacidade;
|
|
28
|
+
private _misto;
|
|
29
|
+
private _coresProjeto;
|
|
30
|
+
private _paleta;
|
|
31
|
+
private inicial;
|
|
32
|
+
constructor();
|
|
33
|
+
connectedCallback(): void;
|
|
34
|
+
disconnectedCallback(): void;
|
|
35
|
+
/** Define o estado inicial (também usado pelo "Cancelar" para restaurar). */
|
|
36
|
+
configurar(opcoes?: ConfiguracaoSeletorCor): void;
|
|
37
|
+
get alvo(): AlvoCor;
|
|
38
|
+
/** Cor do alvo em edição. */
|
|
39
|
+
get cor(): ValorCor;
|
|
40
|
+
get opacidade(): number;
|
|
41
|
+
obterEstado(): DetalheSeletorCor;
|
|
42
|
+
/** Alterna entre Preenchimento e Traço (só no modo duplo). */
|
|
43
|
+
trocarAlvo(alvo: AlvoCor): void;
|
|
44
|
+
/** Aplica uma cor ao alvo em edição e emite `ui-cor-input`. Cores inválidas são ignoradas. */
|
|
45
|
+
definirCor(cor: ValorCor): void;
|
|
46
|
+
/** Opacidade do preenchimento (0 a 1); emite `ui-cor-input`. */
|
|
47
|
+
definirOpacidade(valor: number): void;
|
|
48
|
+
confirmar(): void;
|
|
49
|
+
/** Restaura as cores iniciais (emitindo `ui-cor-input`) e emite `ui-cor-cancelar`. */
|
|
50
|
+
cancelar(): void;
|
|
51
|
+
private get opacidadeVisivel();
|
|
52
|
+
private renderizar;
|
|
53
|
+
private atualizarVisual;
|
|
54
|
+
private vincularEventos;
|
|
55
|
+
private emitir;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Abre um `<ui-seletor-cor>` flutuante ao lado de `ancora` (à direita; à esquerda se não couber).
|
|
59
|
+
* Só um seletor fica aberto por vez: abrir outro descarta o anterior sem confirmar.
|
|
60
|
+
* Fecha confirmando com Concluir, ✕, Enter no hexadecimal, Esc ou clique fora; "Cancelar"
|
|
61
|
+
* restaura as cores iniciais. `X` alterna Preenchimento/Traço enquanto ele está aberto.
|
|
62
|
+
*/
|
|
63
|
+
export declare function abrirSeletorCor(opcoes: OpcoesSeletorCor): SeletorCorAberto;
|
|
64
|
+
/** Fecha o seletor aberto por `abrirSeletorCor()`, se houver. */
|
|
65
|
+
export declare function fecharSeletorCor(confirmar?: boolean): void;
|
package/dist/cores.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-controle-cores-Er6ZcQ7U.cjs");exports.PALETA_CORES_PADRAO=r.PALETA_CORES_PADRAO;exports.UIControleCores=r.UIControleCores;exports.UISeletorCor=r.UISeletorCor;exports.abrirSeletorCor=r.abrirSeletorCor;exports.coresUnicas=r.coresUnicas;exports.escaparHtml=r.escaparHtml;exports.fecharSeletorCor=r.fecharSeletorCor;exports.normalizarCor=r.normalizarCor;exports.normalizarOpacidade=r.normalizarOpacidade;
|
package/dist/cores.d.ts
ADDED
package/dist/cores.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
import { P as e, U as s, a as l, b as t, c as C, e as c, f as i, n as m, d as n } from "./ui-controle-cores-BS0WYPdi.js";
|
|
3
|
+
export {
|
|
4
|
+
e as PALETA_CORES_PADRAO,
|
|
5
|
+
s as UIControleCores,
|
|
6
|
+
l as UISeletorCor,
|
|
7
|
+
t as abrirSeletorCor,
|
|
8
|
+
C as coresUnicas,
|
|
9
|
+
c as escaparHtml,
|
|
10
|
+
i as fecharSeletorCor,
|
|
11
|
+
m as normalizarCor,
|
|
12
|
+
n as normalizarOpacidade
|
|
13
|
+
};
|