@thibezer/ui-components-kit 2.9.0 → 2.10.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/README.md +6 -3
  3. package/dist/camadas.cjs +53 -55
  4. package/dist/camadas.js +254 -242
  5. package/dist/campo-texto.cjs +1 -1
  6. package/dist/campo-texto.js +1 -1
  7. package/dist/canvas.cjs +54 -53
  8. package/dist/canvas.js +2074 -1907
  9. package/dist/card.cjs +1 -1
  10. package/dist/card.js +1 -1
  11. package/dist/components/ui-area-texto/area-texto-altura.d.ts +16 -0
  12. package/dist/components/ui-area-texto/area-texto-contador.d.ts +6 -0
  13. package/dist/components/ui-area-texto/area-texto-template.d.ts +2 -0
  14. package/dist/components/ui-area-texto/index.d.ts +3 -0
  15. package/dist/components/ui-area-texto/tipos.d.ts +19 -0
  16. package/dist/components/ui-area-texto/ui-area-texto.d.ts +100 -0
  17. package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +5 -1
  18. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +1 -0
  19. package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +7 -1
  20. package/dist/components/ui-canvas-cad/cad-recusas.d.ts +6 -0
  21. package/dist/components/ui-card/card-interacao.d.ts +17 -0
  22. package/dist/components/ui-card/card-secoes.d.ts +10 -0
  23. package/dist/components/ui-card/ui-card.d.ts +23 -0
  24. package/dist/components/ui-texto/ui-texto.d.ts +16 -0
  25. package/dist/core/alvo-digitavel.d.ts +5 -0
  26. package/dist/core/opcoes.d.ts +7 -0
  27. package/dist/cores.cjs +1 -1
  28. package/dist/cores.js +9 -8
  29. package/dist/custom-elements.json +18133 -15664
  30. package/dist/data.cjs +1 -1
  31. package/dist/data.js +1 -1
  32. package/dist/forms.cjs +1 -1
  33. package/dist/forms.d.ts +4 -0
  34. package/dist/forms.js +15 -12
  35. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +2 -0
  36. package/dist/gerencigeo-canvas/feature_desenho.d.ts +13 -1
  37. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +3 -0
  38. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +9 -0
  39. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +13 -2
  40. package/dist/gerencigeo-canvas/mapa_core.d.ts +4 -0
  41. package/dist/gerencigeo-canvas/popup_residual.d.ts +5 -0
  42. package/dist/index.cjs +1 -1
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.js +195 -191
  45. package/dist/opcoes-CupvWVIm.js +24 -0
  46. package/dist/opcoes-vdAUY5OI.cjs +1 -0
  47. package/dist/register.cjs +1 -1
  48. package/dist/register.js +9 -8
  49. package/dist/tipos-elementos.d.ts +74 -0
  50. package/dist/tipos-react.d.ts +4 -0
  51. package/dist/tipos-vue.d.ts +74 -0
  52. package/dist/{ui-badge-BWhoGgo9.js → ui-badge-B5J_c5P5.js} +1 -1
  53. package/dist/{ui-badge-SIR81R9l.cjs → ui-badge-DC4y6Dik.cjs} +1 -1
  54. package/dist/{ui-campo-texto-B_OHVGiN.js → ui-campo-texto-19tIrmBK.js} +91 -93
  55. package/dist/ui-campo-texto-CH8mzX61.cjs +16 -0
  56. package/dist/ui-card-0wu4rjEX.cjs +20 -0
  57. package/dist/ui-card-DRtpOo3l.js +143 -0
  58. package/dist/ui-controle-cores-BEUKOq4n.js +275 -0
  59. package/dist/ui-controle-cores-BLhrZHMh.cjs +32 -0
  60. package/dist/{ui-linha-BYAX4W6x.cjs → ui-linha-C306zxWG.cjs} +6 -6
  61. package/dist/{ui-linha-aqLlaYi7.js → ui-linha-C_azWkcG.js} +103 -99
  62. package/dist/ui-seletor-cor-2yGryC_Z.cjs +86 -0
  63. package/dist/ui-seletor-cor-BuyhoDZz.js +345 -0
  64. package/dist/{ui-switch-DO1R0Ce7.js → ui-switch-BL-x_-SM.js} +460 -173
  65. package/dist/ui-switch-C0i_3QXu.cjs +66 -0
  66. package/package.json +1 -1
  67. package/dist/opcoes-CJYLi6kd.js +0 -12
  68. package/dist/opcoes-CkyDxBuQ.cjs +0 -1
  69. package/dist/ui-campo-texto-DauJCde3.cjs +0 -16
  70. package/dist/ui-card-BNYCQ7g-.js +0 -119
  71. package/dist/ui-card-BrjBL-yo.cjs +0 -20
  72. package/dist/ui-controle-cores-DgEza3wF.js +0 -612
  73. package/dist/ui-controle-cores-uY__TgwW.cjs +0 -117
  74. package/dist/ui-switch-D9a8XlVX.cjs +0 -53
package/dist/card.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-BrjBL-yo.cjs");exports.UICard=e.UICard;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-0wu4rjEX.cjs");exports.UICard=e.UICard;
package/dist/card.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* empty css */
2
- import { U as m } from "./ui-card-BNYCQ7g-.js";
2
+ import { U as m } from "./ui-card-DRtpOo3l.js";
3
3
  export {
4
4
  m as UICard
5
5
  };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Altura automática da área de texto (atributo `auto-altura`).
3
+ * `calcularAlturaAutomatica` é pura; `ajustarAlturaAutomatica` aplica o resultado no DOM.
4
+ */
5
+ /**
6
+ * Altura (px) a aplicar para o conteúdo caber sem rolagem, ou `null` quando o conteúdo cabe nas linhas
7
+ * mínimas (a altura volta a ser definida por `rows`). Medidas inválidas resultam em `null`.
8
+ */
9
+ export declare function calcularAlturaAutomatica(alturaConteudo: number, alturaVisivel: number): number | null;
10
+ /**
11
+ * Faz o `textarea` crescer com o conteúdo. O envoltorio segura a altura atual durante a medição, para a
12
+ * página não encolher (e rolar sozinha) quando a área está no fim de um documento comprido.
13
+ */
14
+ export declare function ajustarAlturaAutomatica(textarea: HTMLTextAreaElement, envoltorio: HTMLElement): void;
15
+ /** Devolve a altura ao controle de `rows`/redimensionamento do navegador. */
16
+ export declare function limparAlturaAutomatica(textarea: HTMLTextAreaElement, envoltorio: HTMLElement): void;
@@ -0,0 +1,6 @@
1
+ import { EstadoContador } from './tipos';
2
+ /**
3
+ * Estado do contador de caracteres. Função pura: tolera tamanho/limite inválidos (`NaN`, negativos, `Infinity`)
4
+ * e só gera anúncio para leitores de tela perto do limite, evitando falar a cada tecla.
5
+ */
6
+ export declare function calcularContador(tamanho: number, limite: number | null): EstadoContador;
@@ -0,0 +1,2 @@
1
+ export declare const ATRIBUTOS_OBSERVADOS_AREA_TEXTO: string[];
2
+ export declare function criarTemplateAreaTexto(): string;
@@ -0,0 +1,3 @@
1
+ export * from './ui-area-texto';
2
+ export * from './tipos';
3
+ export { calcularContador } from './area-texto-contador';
@@ -0,0 +1,19 @@
1
+ /** Direções em que o usuário pode redimensionar a área de texto (atributo `redimensionar`). */
2
+ export type RedimensionamentoAreaTexto = 'nenhum' | 'vertical' | 'horizontal' | 'ambos';
3
+ /** `detail` de `ui-input` e `ui-change`. */
4
+ export interface DetalheValorAreaTexto {
5
+ value: string;
6
+ }
7
+ /** `detail` de `ui-enviar` (Ctrl/Cmd + Enter). */
8
+ export interface DetalheEnviarAreaTexto {
9
+ value: string;
10
+ }
11
+ /** Nível visual do contador de caracteres. */
12
+ export type NivelContador = 'normal' | 'aviso' | 'excedido';
13
+ export interface EstadoContador {
14
+ /** Texto visível: `42` ou `42 / 500`. */
15
+ texto: string;
16
+ nivel: NivelContador;
17
+ /** Mensagem para leitores de tela; vazia enquanto o nível for `normal`. */
18
+ anuncio: string;
19
+ }
@@ -0,0 +1,100 @@
1
+ import { FormAssociatedElement } from '../../core/form-associated-element';
2
+ /**
3
+ * Área de texto de várias linhas (descrições, observações, laudos) com rótulo, ajuda/erro, contador de
4
+ * caracteres e altura automática. Participa de `<form>` (FACE).
5
+ *
6
+ * @element ui-area-texto
7
+ *
8
+ * @attr {string} label - Rótulo visível (sempre texto puro).
9
+ * @attr {string} placeholder - Texto de apoio quando vazio.
10
+ * @attr {string} value - Valor inicial (também restaurado por `form.reset()`).
11
+ * @attr {boolean} obrigatorio - Campo obrigatório (alias `required`).
12
+ * @attr {number} minlength - Mínimo de caracteres.
13
+ * @attr {number} maxlength - Máximo de caracteres; também é o limite do contador.
14
+ * @attr {string} helper-text - Texto de ajuda abaixo do campo.
15
+ * @attr {boolean} erro - Marca o campo como inválido.
16
+ * @attr {string} mensagem-erro - Mensagem exibida junto com `erro`.
17
+ * @attr {string} mensagem-validacao - Substitui as mensagens de validação nativas.
18
+ * @attr {boolean} disabled - Desabilita o campo.
19
+ * @attr {boolean} readonly - Somente leitura (continua focável e selecionável).
20
+ * @attr {number} linhas - Linhas visíveis (1–50, padrão 4).
21
+ * @attr {boolean} auto-altura - O campo cresce com o conteúdo.
22
+ * @attr {number} linhas-max - Com `auto-altura`, limite de linhas antes de rolar.
23
+ * @attr {string} redimensionar - `nenhum` | `vertical` (padrão) | `horizontal` | `ambos`.
24
+ * @attr {boolean} contador - Exibe o contador de caracteres.
25
+ *
26
+ * @fires ui-input - A cada edição. `detail: { value }`.
27
+ * @fires ui-change - Ao confirmar a edição (blur). `detail: { value }`.
28
+ * @fires ui-enviar - Ctrl/Cmd + Enter. `detail: { value }`. Enter comum insere quebra de linha.
29
+ * @fires input - Evento nativo, reemitido no host.
30
+ * @fires change - Evento nativo, reemitido no host.
31
+ *
32
+ * @csspart rotulo - Rótulo.
33
+ * @csspart campo - Invólucro com borda.
34
+ * @csspart input - O `<textarea>` interno.
35
+ * @csspart rodape - Linha de ajuda e contador.
36
+ * @csspart ajuda - Texto de ajuda ou erro.
37
+ * @csspart contador - Contador de caracteres.
38
+ */
39
+ export declare class UIAreaTexto extends FormAssociatedElement {
40
+ static get observedAttributes(): string[];
41
+ private labelElement;
42
+ private wrapperElement;
43
+ private textareaElement;
44
+ private helperElement;
45
+ private contadorElement;
46
+ private anuncioElement;
47
+ private listeners;
48
+ private _focado;
49
+ private _textareaId;
50
+ private _defaultValue;
51
+ private _nivelAnunciado;
52
+ constructor();
53
+ connectedCallback(): void;
54
+ disconnectedCallback(): void;
55
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
56
+ focus(options?: FocusOptions): void;
57
+ blur(): void;
58
+ /** Seleciona todo o texto. */
59
+ select(): void;
60
+ /** Define a seleção; índices inválidos são ignorados pelo navegador, nunca lançam. */
61
+ setSelectionRange(inicio: number, fim: number, direcao?: 'forward' | 'backward' | 'none'): void;
62
+ /** Apaga o texto programaticamente (sem disparar eventos de edição). */
63
+ limpar(): void;
64
+ get value(): string;
65
+ set value(val: string);
66
+ get name(): string;
67
+ set name(val: string);
68
+ get type(): string;
69
+ get disabled(): boolean;
70
+ set disabled(val: boolean);
71
+ get readOnly(): boolean;
72
+ set readOnly(val: boolean);
73
+ get minLength(): number;
74
+ set minLength(val: number);
75
+ get maxLength(): number;
76
+ set maxLength(val: number);
77
+ formResetCallback(): void;
78
+ formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
79
+ atualizarValidade(): void;
80
+ protected syncState(): void;
81
+ private sincronizarRotulo;
82
+ private sincronizarLimites;
83
+ private sincronizarEstadoInterativo;
84
+ private sincronizarFeedback;
85
+ private sincronizarContador;
86
+ private sincronizarAltura;
87
+ private emitirEdicao;
88
+ private handleInput;
89
+ private handleChange;
90
+ private handleFocus;
91
+ private handleBlur;
92
+ /** Ctrl/Cmd + Enter pede o envio sem submeter o `<form>`; Enter comum continua inserindo quebra de linha. */
93
+ private handleKeyDown;
94
+ /** Clique em `<label>` externo associado ao host foca o textarea. */
95
+ private handleHostClick;
96
+ private handleResize;
97
+ }
98
+ /** Alias semântico: `<ui-textarea>` é idêntico a `<ui-area-texto>`. */
99
+ export declare class UITextarea extends UIAreaTexto {
100
+ }
@@ -9,4 +9,8 @@ export interface ContextoLabelPlaceholder {
9
9
  }
10
10
  export declare function sincronizarLabelEPlaceholder(ctx: ContextoLabelPlaceholder): void;
11
11
  export declare function sincronizarIconeSenha(container: HTMLSpanElement, ehSenhaOuAlternar: boolean, senhaVisivel: boolean): void;
12
- export declare function sincronizarFeedbackErro(wrapper: HTMLDivElement, input: HTMLInputElement, helper: HTMLDivElement, temErro: boolean, mensagemErro: string | null, helperText: string | null): void;
12
+ /**
13
+ * Reflete erro e texto de ajuda no campo. `prefixo` é o bloco BEM do componente (padrão `ui-campo-texto`),
14
+ * permitindo que `<ui-area-texto>` reutilize a mesma regra com suas próprias classes.
15
+ */
16
+ export declare function sincronizarFeedbackErro(wrapper: HTMLElement, input: HTMLInputElement | HTMLTextAreaElement, helper: HTMLElement, temErro: boolean, mensagemErro: string | null, helperText: string | null, prefixo?: string): void;
@@ -8,6 +8,7 @@ export declare class UICampoTexto extends FormAssociatedElement {
8
8
  private rightIconContainer;
9
9
  private leftSlotElement;
10
10
  private _senhaVisivel;
11
+ private listeners;
11
12
  private _checkTimer;
12
13
  private _focado;
13
14
  private _inputId;
@@ -11,5 +11,11 @@ export declare function textoSelecao(quantidade: number): string;
11
11
  export declare function textoFerramenta(ferramenta: string | null): string;
12
12
  /** Escreve na região viva (`#cad-status`); trocar o texto é o que dispara o anúncio. */
13
13
  export declare function anunciar(shadow: ShadowRoot, texto: string): void;
14
- /** Liga os anúncios aos eventos que o próprio componente emite; devolve a função que desliga. */
14
+ /** Tempo (ms) que o aviso visível de uma recusa fica na tela. */
15
+ export declare const TEMPO_AVISO_MS = 5000;
16
+ /**
17
+ * Liga os anúncios aos eventos que o próprio componente emite; devolve a função que desliga.
18
+ * Recusas de desenho e de edição viram aviso visível e anúncio, a menos que o host tenha o atributo `sem-avisos`
19
+ * (o consumidor mostra o próprio aviso a partir de `cad-desenho-recusado` / `cad-edicao-recusada`).
20
+ */
15
21
  export declare function conectarAnuncios(host: HTMLElement, shadow: ShadowRoot): () => void;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Textos (pt-BR) das recusas do <ui-canvas-cad>: o motivo que sai em `cad-desenho-recusado` e `cad-edicao-recusada`
3
+ * vira uma frase para o aviso visível e para o leitor de tela. Funções puras; motivo desconhecido recebe um texto genérico.
4
+ */
5
+ export declare function textoDesenhoRecusado(motivo: unknown): string;
6
+ export declare function textoEdicaoRecusada(motivo: unknown): string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Quando um clique ou uma tecla vinda de dentro do card deve ativá-lo.
3
+ * Responsabilidade única: decidir, sem tocar no DOM, se o evento pertence ao card ou a um controle interno.
4
+ */
5
+ /**
6
+ * O alvo é (ou está dentro de) um controle com comportamento próprio, entre ele e a `raiz` (o host do card)?
7
+ * Aceita `Element`, e não só `HTMLElement`: o alvo de um clique num ícone é o `<path>` do SVG.
8
+ * Controles fora da `raiz` não contam (um card dentro de um `<a>` ou `<label>` continua clicável), e o próprio
9
+ * host e o `role="button"` da base do card não são "controle interno".
10
+ */
11
+ export declare function ehControleInterno(alvo: EventTarget | null | undefined, raiz: Element): boolean;
12
+ /**
13
+ * A tecla ativa o card? Só Enter/Espaço pressionados no próprio card, sem repetição (tecla mantida) e sem
14
+ * Ctrl/Alt/Meta. Teclas vindas de controles internos (campo, botão) não são do card: ativá-lo e chamar
15
+ * `preventDefault` impediria digitar espaço num `<input>` ou acionar o botão.
16
+ */
17
+ export declare function teclaAtivaCard(e: Pick<KeyboardEvent, 'key' | 'repeat' | 'ctrlKey' | 'altKey' | 'metaKey' | 'target'>, base: EventTarget): boolean;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Seções opcionais do card (mídia, cabeçalho, rodapé).
3
+ * Responsabilidade única: dizer se um grupo de slots (nome em português e alias em inglês) tem conteúdo.
4
+ */
5
+ /**
6
+ * Há conteúdo atribuído a algum dos slots `nomes`? Conta elementos e texto não vazio (espaços e quebras de linha
7
+ * entre as tags não contam). Também olha os filhos diretos do host com `slot="..."`, que cobre o intervalo antes do
8
+ * `slotchange`. Só filhos diretos: um `[slot]` aninhado em outro elemento pertence a outro componente.
9
+ */
10
+ export declare function secaoTemConteudo(raiz: ShadowRoot | null, host: Element, nomes: readonly string[]): boolean;
@@ -1,4 +1,24 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
+ /**
3
+ * Cartão de conteúdo com mídia, cabeçalho, corpo e rodapé opcionais; pode ser clicável (vira um botão).
4
+ *
5
+ * @attr {'plano'|'elevado'|'destaque'} elevacao - Profundidade visual (alias `elevation`).
6
+ * @attr {'plano'|'elevado'|'destaque'} variante - Estilo adicional (alias `variant`); valores desconhecidos são ignorados.
7
+ * @attr {boolean} clicavel - Torna o card um botão focável que emite `ui-clique` (alias `clickable`).
8
+ * @attr {boolean} compacto - Reduz os espaçamentos internos (alias `compact`).
9
+ * @attr {boolean} disabled - Desativa a interação e reduz a opacidade.
10
+ * @attr {string} aria-label - Nome acessível do card clicável (um card sem clique não é anunciado como controle).
11
+ * @slot - Corpo do card.
12
+ * @slot midia - Imagem ou vídeo no topo (alias `media`).
13
+ * @slot cabecalho - Título e ações (alias `header`); a seção some quando vazia.
14
+ * @slot rodape - Ações e metadados (alias `footer`); a seção some quando vazia.
15
+ * @csspart base - O contêiner do card.
16
+ * @csspart midia - A seção de mídia.
17
+ * @csspart cabecalho - A seção de cabeçalho.
18
+ * @csspart corpo - A seção do corpo.
19
+ * @csspart rodape - A seção de rodapé.
20
+ * @fires ui-clique - Card clicável ativado por clique, Enter ou Espaço (`detail.id`); também emitido como `ui-click`.
21
+ */
2
22
  export declare class UICard extends SafeHTMLElement {
3
23
  static get observedAttributes(): string[];
4
24
  private cardElement;
@@ -8,6 +28,8 @@ export declare class UICard extends SafeHTMLElement {
8
28
  disconnectedCallback(): void;
9
29
  attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
10
30
  private handleSlotChange;
31
+ /** Leva o foco ao card clicável e habilitado; nos demais casos mantém o comportamento nativo do host. */
32
+ focus(options?: FocusOptions): void;
11
33
  get clicavel(): boolean;
12
34
  set clicavel(val: boolean);
13
35
  get disabled(): boolean;
@@ -15,4 +37,5 @@ export declare class UICard extends SafeHTMLElement {
15
37
  private syncState;
16
38
  private handleClick;
17
39
  private handleKeyDown;
40
+ private emitirClique;
18
41
  }
@@ -3,6 +3,22 @@ export type VarianteTexto = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'corpo' |
3
3
  export type CorTexto = 'primaria' | 'secundaria' | 'destaque' | 'erro' | 'sucesso' | 'alerta';
4
4
  export type PesoTexto = 'normal' | 'medio' | 'seminegrito' | 'negrito';
5
5
  export type AlinhamentoTexto = 'esquerda' | 'centro' | 'direita' | 'justificado';
6
+ /**
7
+ * Tipografia semântica do kit. Texto longo: `linhas` limita o bloco a N linhas com reticências
8
+ * e o conteúdo quebra palavras muito compridas em vez de estourar o contêiner.
9
+ *
10
+ * @element ui-texto
11
+ *
12
+ * @attr {string} variante - `h1`–`h6`, `corpo` (padrão), `corpo-sm`, `caption`, `codigo`.
13
+ * @attr {string} tag - Tag semântica do elemento interno (somente tags de texto permitidas).
14
+ * @attr {string} cor - `primaria`, `secundaria`, `destaque`, `erro`, `sucesso`, `alerta`.
15
+ * @attr {string} peso - `normal`, `medio`, `seminegrito`, `negrito`.
16
+ * @attr {string} alinhamento - `esquerda`, `centro`, `direita`, `justificado`.
17
+ * @attr {boolean} truncar - Uma linha com reticências.
18
+ * @attr {number} linhas - Limita a N linhas (1–50) com reticências; `truncar` tem prioridade.
19
+ *
20
+ * @csspart base - O elemento de texto interno.
21
+ */
6
22
  export declare class UITexto extends SafeHTMLElement {
7
23
  static get observedAttributes(): string[];
8
24
  private container;
@@ -1 +1,6 @@
1
+ /**
2
+ * O alvo real do evento (atravessando shadow roots) é um botão, link ou outro controle acionável?
3
+ * Serve para atalhos globais de Enter: com o foco num botão, o Enter pertence ao botão.
4
+ */
5
+ export declare function focoEmControleAcionavel(evento: Event): boolean;
1
6
  export declare function focoEmCampoDeTexto(evento?: Event): boolean;
@@ -7,3 +7,10 @@
7
7
  export declare function escolherOpcao<T extends string>(valor: string | null | undefined, permitidas: readonly T[], padrao: T): T;
8
8
  /** Como `escolherOpcao`, mas devolve `null` quando o valor não é reconhecido (opção opcional). */
9
9
  export declare function escolherOpcaoOpcional<T extends string>(valor: string | null | undefined, permitidas: readonly T[]): T | null;
10
+ /**
11
+ * Converte um atributo numérico (hostil por definição) num inteiro dentro de [minimo, maximo].
12
+ * Texto vazio, não numérico, `NaN` ou `Infinity` devolvem `padrao`; valores fora da faixa são limitados.
13
+ */
14
+ export declare function escolherInteiro(valor: string | number | null | undefined, minimo: number, maximo: number, padrao: number): number;
15
+ /** Inteiro >= `minimo` ou `null` quando ausente/inválido (para limites opcionais como `maxlength`). */
16
+ export declare function inteiroOuNulo(valor: string | null | undefined, minimo?: number): number | null;
package/dist/cores.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-controle-cores-uY__TgwW.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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-seletor-cor-2yGryC_Z.cjs"),e=require("./ui-controle-cores-BLhrZHMh.cjs");exports.PALETA_CORES_PADRAO=r.PALETA_CORES_PADRAO;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;exports.UIControleCores=e.UIControleCores;
package/dist/cores.js CHANGED
@@ -1,13 +1,14 @@
1
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-DgEza3wF.js";
2
+ import { P as e, U as s, a as t, c as l, e as C, f as c, n as i, b as m } from "./ui-seletor-cor-BuyhoDZz.js";
3
+ import { U as p } from "./ui-controle-cores-BEUKOq4n.js";
3
4
  export {
4
5
  e as PALETA_CORES_PADRAO,
5
- s as UIControleCores,
6
- l as UISeletorCor,
6
+ p as UIControleCores,
7
+ s as UISeletorCor,
7
8
  t as abrirSeletorCor,
8
- C as coresUnicas,
9
- c as escaparHtml,
10
- i as fecharSeletorCor,
11
- m as normalizarCor,
12
- n as normalizarOpacidade
9
+ l as coresUnicas,
10
+ C as escaparHtml,
11
+ c as fecharSeletorCor,
12
+ i as normalizarCor,
13
+ m as normalizarOpacidade
13
14
  };