@thibezer/ui-components-kit 2.15.0 → 2.17.1

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 (105) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +1 -1
  3. package/dist/botao.cjs +1 -1
  4. package/dist/botao.js +1 -1
  5. package/dist/camadas.cjs +89 -89
  6. package/dist/camadas.js +1376 -1320
  7. package/dist/campo-texto.cjs +1 -1
  8. package/dist/campo-texto.js +1 -1
  9. package/dist/canvas.cjs +24 -24
  10. package/dist/canvas.js +757 -751
  11. package/dist/card.cjs +1 -1
  12. package/dist/card.js +1 -1
  13. package/dist/components/ui-avatar/ui-avatar.d.ts +7 -0
  14. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +2 -0
  15. package/dist/components/ui-camadas/camadas-colecao.d.ts +3 -0
  16. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +3 -1
  17. package/dist/components/ui-camadas/camadas-selecao-api.d.ts +1 -0
  18. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +7 -0
  19. package/dist/components/ui-mapa/ui-mapa.d.ts +1 -0
  20. package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +6 -0
  21. package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
  22. package/dist/components/ui-stat/ui-stat.d.ts +12 -0
  23. package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +2 -1
  24. package/dist/components/ui-tabela-propriedades/propriedades-persistencia.d.ts +63 -0
  25. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +1 -0
  26. package/dist/components/ui-tabela-propriedades/tipos.d.ts +16 -0
  27. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +40 -1
  28. package/dist/core/degrade.d.ts +34 -0
  29. package/dist/core/index.d.ts +1 -0
  30. package/dist/core.cjs +1 -1
  31. package/dist/core.js +33 -24
  32. package/dist/cores.cjs +1 -1
  33. package/dist/cores.js +2 -2
  34. package/dist/custom-elements.json +6896 -5351
  35. package/dist/data.cjs +1 -1
  36. package/dist/data.js +89 -79
  37. package/dist/degrade-CIxvOTUv.cjs +1 -0
  38. package/dist/degrade-gDa5sW__.js +119 -0
  39. package/dist/feedback.cjs +1 -1
  40. package/dist/feedback.js +2 -2
  41. package/dist/forms.cjs +1 -1
  42. package/dist/forms.js +2 -2
  43. package/dist/index.cjs +1 -1
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.js +215 -196
  46. package/dist/mapa.cjs +1 -1
  47. package/dist/mapa.js +1 -1
  48. package/dist/modal.cjs +1 -1
  49. package/dist/modal.js +1 -1
  50. package/dist/register.cjs +1 -1
  51. package/dist/register.js +12 -12
  52. package/dist/seletor-mapa-base.cjs +10 -10
  53. package/dist/seletor-mapa-base.js +34 -28
  54. package/dist/tabela.cjs +1 -1
  55. package/dist/tabela.js +83 -73
  56. package/dist/tipos-elementos.d.ts +33 -3
  57. package/dist/tipos-vue.d.ts +30 -3
  58. package/dist/tools.cjs +1 -1
  59. package/dist/tools.js +1 -1
  60. package/dist/ui-badge-1UU8vT-b.js +198 -0
  61. package/dist/ui-badge-CKKKPdt8.cjs +28 -0
  62. package/dist/ui-badge-DE58YSBY.cjs +28 -0
  63. package/dist/ui-badge-KgmI3jOD.js +201 -0
  64. package/dist/ui-botao-Dz8YvmiA.cjs +12 -0
  65. package/dist/ui-botao-bU_bf6SU.js +166 -0
  66. package/dist/ui-botao-xTbH5mpH.cjs +12 -0
  67. package/dist/ui-botao-zLkcMMyP.js +168 -0
  68. package/dist/ui-campo-texto-DVU_sWV1.cjs +16 -0
  69. package/dist/ui-campo-texto-Dliyt9qr.cjs +16 -0
  70. package/dist/ui-campo-texto-W5M0gNE4.js +377 -0
  71. package/dist/ui-campo-texto-btevggO3.js +379 -0
  72. package/dist/ui-card-BYyYxxY1.cjs +20 -0
  73. package/dist/ui-card-CojoGXaT.js +144 -0
  74. package/dist/ui-card-DFnRp9bl.js +146 -0
  75. package/dist/ui-card-DrWVJQKw.cjs +20 -0
  76. package/dist/ui-controle-cores-B1w_Yl69.cjs +32 -0
  77. package/dist/ui-controle-cores-BRjMvmMn.js +291 -0
  78. package/dist/ui-controle-cores-Bq_XUrIQ.cjs +32 -0
  79. package/dist/ui-controle-cores-BtA6yzu3.js +291 -0
  80. package/dist/ui-kit.css +1 -1
  81. package/dist/ui-linha-2kY7TNUJ.cjs +38 -0
  82. package/dist/ui-linha-DAz6DBcl.cjs +38 -0
  83. package/dist/ui-linha-DkxwMhD-.js +749 -0
  84. package/dist/ui-linha-KFF86FW5.js +752 -0
  85. package/dist/ui-modal-4nU-tXjO.cjs +18 -0
  86. package/dist/ui-modal-BrXzVZ65.js +216 -0
  87. package/dist/ui-modal-BwB9fksp.js +214 -0
  88. package/dist/ui-modal-lARKzEVZ.cjs +18 -0
  89. package/dist/ui-paleta-ferramentas-Bu6JaT0s.js +1245 -0
  90. package/dist/ui-paleta-ferramentas-D3Jhwt26.cjs +21 -0
  91. package/dist/ui-seletor-cor-CMuuW-Ym.cjs +83 -0
  92. package/dist/ui-seletor-cor-DFIQ1sin.js +405 -0
  93. package/dist/ui-skeleton-BLEV6h3k.js +653 -0
  94. package/dist/ui-skeleton-B_XTaGrX.cjs +52 -0
  95. package/dist/ui-skeleton-DEHwpDqa.js +648 -0
  96. package/dist/ui-skeleton-sIphhOSx.cjs +52 -0
  97. package/dist/ui-switch-BXIDwC-Y.cjs +66 -0
  98. package/dist/ui-switch-Ctxk-jKS.js +1212 -0
  99. package/dist/ui-switch-DAIgOhqr.cjs +66 -0
  100. package/dist/ui-switch-_F8yubdX.js +1203 -0
  101. package/dist/ui-tabela-propriedades-2bq2nX-b.js +3202 -0
  102. package/dist/ui-tabela-propriedades-CJyo568n.js +3517 -0
  103. package/dist/ui-tabela-propriedades-CnfW9DZG.cjs +142 -0
  104. package/dist/ui-tabela-propriedades-Wa34hfIr.cjs +142 -0
  105. package/package.json +187 -187
package/dist/card.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-0wu4rjEX.cjs");exports.UICard=e.UICard;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-DrWVJQKw.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-DRtpOo3l.js";
2
+ import { U as m } from "./ui-card-DFnRp9bl.js";
3
3
  export {
4
4
  m as UICard
5
5
  };
@@ -1,4 +1,11 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
+ /**
3
+ * Avatar de usuário ou entidade com suporte a foto, iniciais automáticas, ícone padrão e status.
4
+ *
5
+ * @csspart base - O círculo/container do avatar.
6
+ * @csspart conteudo - Área interna da imagem ou iniciais.
7
+ * @csspart status - Indicador de presença.
8
+ */
2
9
  export declare class UIAvatar extends SafeHTMLElement {
3
10
  static get observedAttributes(): string[];
4
11
  private avatarElement;
@@ -17,6 +17,8 @@ import { SafeHTMLElement } from '../../core/ssr-safe';
17
17
  * ui-ferramenta { id, item, pai?, ativo?, origem } (cancelável: preventDefault reverte a ação)
18
18
  *
19
19
  * `valor` pode ser definido antes de `ferramentas`: fica pendente até a ferramenta existir.
20
+ *
21
+ * @csspart base - Contêiner raiz da paleta de ferramentas.
20
22
  */
21
23
  export declare class UIPaletaFerramentas extends SafeHTMLElement {
22
24
  static get observedAttributes(): string[];
@@ -5,9 +5,12 @@ export interface HostColecao {
5
5
  camadas: CamadaItem[];
6
6
  feicoes: FeicaoItem[];
7
7
  expandedLayers: Set<string>;
8
+ expandedFeatureLimits?: Map<string, number>;
8
9
  selectedFeatureIds: Set<string>;
9
10
  lastClickedFeatureId: string | null;
10
11
  activeSettingsLayerId: string | null;
12
+ editingLayerId?: string | null;
13
+ editingFeatureId?: string | null;
11
14
  camadaAtivaId: string | null;
12
15
  readonly persistir: boolean;
13
16
  /** @internal Guarda de origens/remoções e acesso ao storage. */
@@ -29,7 +29,7 @@ export declare class CamadasDragDropManager {
29
29
  /** Depois de qualquer mudança na ordem/hierarquia de camadas. */
30
30
  private aposReordenarCamadas;
31
31
  private emitirFeicaoMovida;
32
- /** Camada travada (ou sob grupo travado) não recebe nem perde feições pelo arraste. */
32
+ /** Camada travada (ou sob grupo travado) ou feição individualmente travada não pode ser movida entre camadas. */
33
33
  private trocaEntreCamadasTravada;
34
34
  private arrasteBloqueado;
35
35
  /** Render completo: zera o arraste e liga camadas e feições do painel todo. */
@@ -40,6 +40,8 @@ export declare class CamadasDragDropManager {
40
40
  private vincularArrasteFeicoes;
41
41
  /**
42
42
  * Suporte a arraste por toque e ponteiro no handle (.ui-col-drag) para tablets e mobile.
43
+ * Suporta tanto reordenação (acima/abaixo) quanto aninhamento hierárquico (drop-into),
44
+ * mantendo paridade total com o Drag & Drop HTML5.
43
45
  * Os ouvintes de `window` existem só durante o gesto e são soltos em `destruir()`.
44
46
  */
45
47
  bindTouchDragAndDrop(): void;
@@ -4,6 +4,7 @@ export interface HostSelecao {
4
4
  camadas: CamadaItem[];
5
5
  feicoes: FeicaoItem[];
6
6
  expandedLayers: Set<string>;
7
+ expandedFeatureLimits?: ReadonlyMap<string, number>;
7
8
  selectedFeatureIds: Set<string>;
8
9
  lastClickedFeatureId: string | null;
9
10
  searchQuery: string;
@@ -13,6 +13,13 @@ import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoF
13
13
  import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
14
14
  import { SafeHTMLElement } from '../../core/ssr-safe';
15
15
  import { EstilosExternos } from './cad-estilos-externos';
16
+ /**
17
+ * Viewport georreferenciada CAD/GIS com suporte a feições, snap, camadas e medição.
18
+ *
19
+ * @csspart base - Contêiner raiz interno do canvas CAD.
20
+ * @csspart viewport - Área onde o mapa e os renderizadores canvas/Leaflet são montados.
21
+ * @csspart camadas - Painel flutuante retrátil de gerenciamento de camadas.
22
+ */
16
23
  export declare class UICanvasCAD extends SafeHTMLElement {
17
24
  static get observedAttributes(): string[];
18
25
  private shadow;
@@ -9,6 +9,7 @@ import { SafeHTMLElement } from '../../core/ssr-safe';
9
9
  * @attr {string} camadas - Camadas base separadas por vírgula (`osm`, `satelite`, `topografia`, `ruas`).
10
10
  * @attr {string} aria-label - Nome acessível da região do mapa (padrão: "Mapa").
11
11
  * @fires ui-mapa-pronto - O mapa foi criado (`detail.map`); é emitido de novo se o elemento for reconectado.
12
+ * @csspart base - Contêiner interno do mapa Leaflet.
12
13
  */
13
14
  export declare class UIMapa extends SafeHTMLElement {
14
15
  static get observedAttributes(): string[];
@@ -1,6 +1,12 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  import { MapaBaseItem, PosicaoSeletorMapaBase } from './tipos';
3
3
  export declare const MAPAS_BASE_PADRAO: MapaBaseItem[];
4
+ /**
5
+ * Seletor discreto/flutuante para alternar mapas base.
6
+ *
7
+ * @csspart base - Botão gatilho que exibe o mapa base ativo.
8
+ * @csspart lista - Popover com as opções de mapas base disponíveis.
9
+ */
4
10
  export declare class UISeletorMapaBase extends SafeHTMLElement {
5
11
  static get observedAttributes(): string[];
6
12
  private shadow;
@@ -1,6 +1,15 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  export type VarianteSkeleton = 'texto' | 'circular' | 'retangular' | 'card';
3
3
  export type AnimacaoSkeleton = 'shimmer' | 'pulso' | 'nenhum';
4
+ /**
5
+ * Placeholder estrutural animado (Skeleton Loader) para estados de carregamento.
6
+ *
7
+ * @csspart base - Elemento ou contêiner principal do esqueleto.
8
+ * @csspart midia - Bloco de mídia na variante `card`.
9
+ * @csspart avatar - Bloco circular na variante `card`.
10
+ * @csspart titulo - Bloco de título na variante `card`.
11
+ * @csspart linha - Cada linha individual de texto.
12
+ */
4
13
  export declare class UISkeleton extends SafeHTMLElement {
5
14
  static get observedAttributes(): string[];
6
15
  private rootElement;
@@ -1,5 +1,17 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  export type TendenciaStat = 'alta' | 'positivo' | 'baixa' | 'negativo' | 'neutro';
3
+ /**
4
+ * Cartão de métrica / KPI com tendência e slot para gráfico ou ação.
5
+ *
6
+ * @csspart base - Contêiner principal do indicador.
7
+ * @csspart cabecalho - Linha de título e ícone.
8
+ * @csspart rotulo - Rótulo da métrica.
9
+ * @csspart conteudo - Bloco do valor e variação.
10
+ * @csspart valor - Valor em destaque.
11
+ * @csspart indicador - Selo de variação/tendência.
12
+ * @csspart rodape - Rodapé descritivo ou slot auxiliar.
13
+ * @csspart descricao - Texto auxiliar do rodapé.
14
+ */
3
15
  export declare class UIStat extends SafeHTMLElement {
4
16
  static get observedAttributes(): string[];
5
17
  private statElement;
@@ -24,6 +24,7 @@ export declare function marcarSelectMisto(select: HTMLSelectElement, texto: stri
24
24
  export declare function focarProximoEditor(shadow: ShadowRoot, atual: HTMLElement): void;
25
25
  export declare function focarEditorAnterior(shadow: ShadowRoot, atual: HTMLElement): void;
26
26
  export declare function focarPrimeiroEditor(shadow: ShadowRoot): void;
27
+ export declare function sincronizarDomCategorias(shadow: ShadowRoot, categorias: CategoriaPropriedades[], obterCategoriaAberta: (cat: CategoriaPropriedades) => boolean): void;
27
28
  export declare function expandirTodasCategorias(shadow: ShadowRoot, categorias: CategoriaPropriedades[]): void;
28
29
  export declare function colapsarTodasCategorias(shadow: ShadowRoot, categorias: CategoriaPropriedades[]): void;
29
- export declare function alternarCategoria(shadow: ShadowRoot, host: HTMLElement, categorias: CategoriaPropriedades[], idCategoria: string): void;
30
+ export declare function alternarCategoria(shadow: ShadowRoot, host: HTMLElement, categorias: CategoriaPropriedades[], idCategoria: string, estadoAtualOverride?: boolean): boolean | undefined;
@@ -0,0 +1,63 @@
1
+ import { CategoriaPropriedades, EstadoPersistidoPropriedades, UICategoriasEstadoDetail } from './tipos';
2
+ export interface ContextoLembrancaPropriedades {
3
+ persistir: boolean;
4
+ conectado: boolean;
5
+ storageKey: string | null;
6
+ id: string;
7
+ }
8
+ /**
9
+ * Gera a chave determinística usada no localStorage para uma instância do painel.
10
+ */
11
+ export declare function gerarChaveStoragePropriedades(storageKey?: string | null, elementId?: string | null): string;
12
+ /**
13
+ * Valida e sanitiza o JSON vindo do storage campo a campo.
14
+ * Entradas inválidas ou com poluição de protótipo são descartadas sem lançar exceção.
15
+ */
16
+ export declare function normalizarEstadoPersistidoPropriedades(bruto: unknown): EstadoPersistidoPropriedades | null;
17
+ /**
18
+ * Lê o estado persistido do localStorage de forma segura em SSR e ambientes restritos.
19
+ */
20
+ export declare function carregarEstadoPropriedades(storageKey: string): EstadoPersistidoPropriedades | null;
21
+ /**
22
+ * Grava o estado persistido no localStorage com proteção contra cota excedida e restrições de sandbox.
23
+ */
24
+ export declare function salvarEstadoPropriedades(storageKey: string, estado: EstadoPersistidoPropriedades): void;
25
+ /**
26
+ * Remove o estado persistido no localStorage sem falhar em ambientes restritos.
27
+ */
28
+ export declare function limparEstadoPropriedades(storageKey: string): void;
29
+ /** Extrai o identificador normalizado de uma categoria ou devolve `null` se inválido. */
30
+ export declare function idDaCategoria(cat: unknown): string | null;
31
+ /** Estado padrão declarado pelo objeto `CategoriaPropriedades` (`true` quando omitido). */
32
+ export declare function abertoPadraoDaCategoria(cat: CategoriaPropriedades): boolean;
33
+ /** Atualiza `aberto` (e `aberta`, se existir) no objeto da categoria sem quebrar objetos congelados. */
34
+ export declare function sincronizarCampoAberto(cat: CategoriaPropriedades, aberto: boolean): void;
35
+ /**
36
+ * Gerencia o estado lembrado de abertura/fechamento das categorias em memória e no localStorage.
37
+ */
38
+ export declare class LembrancaCategoriasPropriedades {
39
+ private readonly getContexto;
40
+ private preferencias;
41
+ private origensAberto;
42
+ private ultimaChaveCarregada;
43
+ constructor(getContexto: () => ContextoLembrancaPropriedades);
44
+ chaveAtual(): string;
45
+ /** Carrega preferências do storage. Quando `substituirExistentes` é falso, preserva alterações feitas antes da conexão. */
46
+ carregarDoStorage(substituirExistentes?: boolean): boolean;
47
+ /** Recarrega o estado se `id` ou `storage-key` tiver mudado após a conexão. */
48
+ sincronizarSeChaveMudou(): boolean;
49
+ /** Registra os padrões originais enviados pela aplicação para permitir restauração via `limpar()`. */
50
+ registrarOrigens(categorias: CategoriaPropriedades[]): void;
51
+ /** Aplica sobre os objetos mutáveis de `categorias` as preferências lembradas para cada `id`. */
52
+ aplicarEmCategorias(categorias: CategoriaPropriedades[]): void;
53
+ /** Restaura nos objetos mutáveis os valores iniciais enviados pela aplicação. */
54
+ restaurarOrigensEmCategorias(categorias: CategoriaPropriedades[]): void;
55
+ /** Estado efetivo da categoria considerando preferência lembrada e padrão da própria categoria. */
56
+ estaAberta(cat: CategoriaPropriedades): boolean;
57
+ registrar(idCategoria: string, aberto: boolean, persistirAgora?: boolean): void;
58
+ registrarVarias(entradas: Iterable<[string, boolean]>, persistirAgora?: boolean): void;
59
+ salvar(): void;
60
+ limpar(categoriasAtuais?: CategoriaPropriedades[]): void;
61
+ obterEstado(categoriasAtuais: CategoriaPropriedades[]): Record<string, boolean>;
62
+ montarDetalheEvento(categoriasAtuais: CategoriaPropriedades[]): UICategoriasEstadoDetail;
63
+ }
@@ -16,6 +16,7 @@ export interface OpcoesRenderArvore {
16
16
  categorias: CategoriaPropriedades[];
17
17
  termoBusca: string;
18
18
  onToggleCategoria: (idCategoria: string) => void;
19
+ obterCategoriaAberta?: (categoria: CategoriaPropriedades) => boolean;
19
20
  linhaCtx: ContextoLinhaPropriedade;
20
21
  }
21
22
  /**
@@ -71,3 +71,19 @@ export interface ContextoEditorPropriedade {
71
71
  /** Texto exibido para valores mistos (atributo `texto-misto`); padrão "Varia". */
72
72
  obterTextoMisto?: () => string;
73
73
  }
74
+ export interface EstadoPersistidoPropriedades {
75
+ versao: number;
76
+ /** Mapa `categoriaId -> aberto` das preferências de expansão salvas. */
77
+ categorias: Record<string, boolean>;
78
+ ultimaAtualizacao?: number;
79
+ }
80
+ export interface UICategoriasEstadoDetail {
81
+ /** Mapa `categoriaId -> aberto` das categorias atuais e lembradas. */
82
+ estado: Record<string, boolean>;
83
+ abertas: string[];
84
+ fechadas: string[];
85
+ }
86
+ export interface DefinirEstadoCategoriasOpcoes {
87
+ persistir?: boolean;
88
+ emitirEvento?: boolean;
89
+ }
@@ -1,4 +1,4 @@
1
- import { CategoriaPropriedades, SeletorTipoItem } from './tipos';
1
+ import { CategoriaPropriedades, SeletorTipoItem, DefinirEstadoCategoriasOpcoes } from './tipos';
2
2
  import { SafeHTMLElement } from '../../core/ssr-safe';
3
3
  export * from './tipos';
4
4
  export { avaliarExpressaoMatematica } from './avaliador-expressao';
@@ -9,16 +9,20 @@ export * from './propriedades-render-arvore';
9
9
  export * from './propriedades-gerenciador-valores';
10
10
  export * from './propriedades-painel-controles';
11
11
  export * from './propriedades-dom-utils';
12
+ export * from './propriedades-persistencia';
12
13
  export * from './propriedades-flutuante';
13
14
  export * from './propriedades-densidade';
14
15
  export * from './propriedades-valor-misto';
15
16
  export declare class UITabelaPropriedades extends SafeHTMLElement {
17
+ private static instanciasChavePadrao;
16
18
  static get observedAttributes(): string[];
17
19
  private shadow;
18
20
  private listeners;
19
21
  private splitterListeners;
20
22
  private controladorSplitter;
21
23
  private gerenciadorValores;
24
+ private _conectado;
25
+ private readonly lembranca;
22
26
  private _categorias;
23
27
  private _tipos;
24
28
  private _tipoSelecionadoId;
@@ -53,6 +57,18 @@ export declare class UITabelaPropriedades extends SafeHTMLElement {
53
57
  set larguraRotulo(pct: number);
54
58
  get fechavel(): boolean;
55
59
  set fechavel(val: boolean);
60
+ /**
61
+ * Habilita a persistência das abas/categorias abertas no `localStorage`.
62
+ * Ativo por padrão (`true`); defina `persistir="false"` para manter apenas em memória.
63
+ */
64
+ get persistir(): boolean;
65
+ set persistir(val: boolean);
66
+ /**
67
+ * Chave customizada de armazenamento no `localStorage` (`storage-key`).
68
+ * Quando omitida, usa o atributo `id` do componente ou `'default'`.
69
+ */
70
+ get storageKey(): string | null;
71
+ set storageKey(val: string | null);
56
72
  get categorias(): CategoriaPropriedades[];
57
73
  set categorias(novasCategorias: CategoriaPropriedades[]);
58
74
  /**
@@ -82,6 +98,26 @@ export declare class UITabelaPropriedades extends SafeHTMLElement {
82
98
  expandirTudo(): void;
83
99
  colapsarTudo(): void;
84
100
  toggleCategoria(idCategoria: string): void;
101
+ /**
102
+ * Retorna a chave completa de armazenamento utilizada por esta instância no `localStorage`.
103
+ */
104
+ obterChaveStorageAtual(): string;
105
+ /**
106
+ * Retorna um mapa `{ categoriaId: aberto }` refletindo as abas atualmente lembradas e visíveis.
107
+ */
108
+ obterEstadoCategorias(): Record<string, boolean>;
109
+ /**
110
+ * Define programaticamente o estado aberto/fechado de um conjunto de categorias.
111
+ */
112
+ definirEstadoCategorias(estado: Record<string, boolean>, opcoes?: DefinirEstadoCategoriasOpcoes): void;
113
+ /**
114
+ * Remove as preferências lembradas em memória e no `localStorage`, restaurando o padrão das categorias.
115
+ */
116
+ limparEstadoCategorias(): void;
117
+ /**
118
+ * Alias compatível com `<ui-camadas>` para limpar a memória persistida das categorias.
119
+ */
120
+ limparLembranca(): void;
85
121
  get densidade(): 'padrao' | 'compacta' | 'ultracompacta' | 'relaxada';
86
122
  set densidade(val: 'padrao' | 'compacta' | 'ultracompacta' | 'relaxada');
87
123
  alternarDensidade(): string;
@@ -93,6 +129,9 @@ export declare class UITabelaPropriedades extends SafeHTMLElement {
93
129
  alternarColapsoHorizontal(): boolean;
94
130
  private syncState;
95
131
  private toggleExpandirTodas;
132
+ private atualizarRegistroChavePadrao;
133
+ private atualizarVisaoCategorias;
134
+ private emitirEstadoCategorias;
96
135
  private renderSeletorTipos;
97
136
  private renderCategorias;
98
137
  }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Utilitários puros (Camada L1) para resolução e sanitização de degradês internos.
3
+ * Não depende de DOM no nível de módulo (100% SSR-safe).
4
+ */
5
+ /** Atributos aceitos nos hosts de Web Components para ativar/customizar degradê interno. */
6
+ export declare const ATRIBUTOS_DEGRADE: readonly ["degrade", "gradiente", "gradient"];
7
+ /** Classes utilitárias contextuais aceitas para ativação de degradê. */
8
+ export declare const CLASSES_DEGRADE: readonly ["degrade", "ui-degrade", "gradiente", "ui-gradiente"];
9
+ /** Mapa de presets semânticos de degradê para tokens do sistema de design ($L_0$). */
10
+ export declare const PRESETS_DEGRADE: Readonly<Record<string, string>>;
11
+ /** Verifica se o nome de atributo pertence aos aliases de degradê. */
12
+ export declare function ehAtributoDegrade(nome: string): boolean;
13
+ /**
14
+ * Valida e normaliza uma expressão CSS de degradê contra XSS, CSS injection e sintaxe quebrada.
15
+ * Aceita gradientes CSS nativos (lineares, radiais, cônicos, repetidos e em camadas) ou `var(--token)`.
16
+ */
17
+ export declare function gradienteSeguro(valor: string): string | null;
18
+ export interface ResultadoDegrade {
19
+ /** Indica se o componente deve entrar no modo visual de degradê. */
20
+ ativo: boolean;
21
+ /** Token CSS ou gradiente explícito quando especificado; `null` para modo booleano padrão. */
22
+ explicito: string | null;
23
+ }
24
+ /**
25
+ * Resolve o valor bruto dos atributos `degrade` / `gradiente` / `gradient` em estado e valor CSS seguro.
26
+ */
27
+ export declare function resolverDegrade(valor: string | null | undefined, presetPadrao?: string): ResultadoDegrade;
28
+ /** Lê o primeiro atributo de degradê presente no host (`degrade`, `gradiente` ou `gradient`). */
29
+ export declare function obterValorAtributoDegrade(host: Element): string | null;
30
+ /**
31
+ * Sincroniza o estado interno de degradê entre atributos do host e o elemento-alvo no Shadow DOM.
32
+ * Retorna `true` quando algum modo de degradê (atributo ou classe utilitária no host) está ativo.
33
+ */
34
+ export declare function aplicarDegradeNoElemento(host: Element, alvoInterno: HTMLElement | null, presetExplicitoPadrao?: string): boolean;
@@ -7,3 +7,4 @@ export * from './form-validacao';
7
7
  export * from './acessibilidade';
8
8
  export * from './altura-controle';
9
9
  export * from './svg-seguro';
10
+ export * from './degrade';
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./ui-bus-XqBLlTYQ.cjs"),a=require("./zero-js-triggers-CgM9IIQB.cjs"),l=require("./listener-bag-D5omxZ9h.cjs"),t=require("./leaflet-loader-94z5VsdY.cjs"),r=require("./ssr-safe-CiHD1adl.cjs"),i=require("./form-validacao-DIeyQVH5.cjs"),o=require("./acessibilidade-CSzX-DkG.cjs"),e=require("./altura-controle-ukMRPckR.cjs"),s=require("./svg-seguro-J2RM1Ssf.cjs");typeof document<"u"&&a.initZeroJSTriggers();exports.UIBus=n.UIBus;exports.initZeroJSTriggers=a.initZeroJSTriggers;exports.ListenerBag=l.ListenerBag;exports.carregarLeaflet=t.carregarLeaflet;exports.obterLeafletSincrono=t.obterLeafletSincrono;exports.SafeHTMLElement=r.SafeHTMLElement;exports.definirCustomElement=r.definirCustomElement;exports.isBrowser=r.isBrowser;exports.aplicarValidadeInternals=i.aplicarValidadeInternals;exports.validarRestricoesCampoTexto=i.validarRestricoesCampoTexto;exports.cliqueVeioDeRotuloExterno=o.cliqueVeioDeRotuloExterno;exports.gerarIdUnico=o.gerarIdUnico;exports.obterRotuloExterno=o.obterRotuloExterno;exports.TAMANHOS_CONTROLE=e.TAMANHOS_CONTROLE;exports.VARIAVEL_ALTURA_CONTROLE=e.VARIAVEL_ALTURA_CONTROLE;exports.alturaDoTamanho=e.alturaDoTamanho;exports.aplicarAlturaControle=e.aplicarAlturaControle;exports.lerEntradaAltura=e.lerEntradaAltura;exports.normalizarAltura=e.normalizarAltura;exports.normalizarTamanhoControle=e.normalizarTamanhoControle;exports.resolverAlturaControle=e.resolverAlturaControle;exports.higienizarSvg=s.higienizarSvg;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./ui-bus-XqBLlTYQ.cjs"),t=require("./zero-js-triggers-CgM9IIQB.cjs"),u=require("./listener-bag-D5omxZ9h.cjs"),i=require("./leaflet-loader-94z5VsdY.cjs"),o=require("./ssr-safe-CiHD1adl.cjs"),l=require("./form-validacao-DIeyQVH5.cjs"),a=require("./acessibilidade-CSzX-DkG.cjs"),e=require("./altura-controle-ukMRPckR.cjs"),s=require("./svg-seguro-J2RM1Ssf.cjs"),r=require("./degrade-CIxvOTUv.cjs");typeof document<"u"&&t.initZeroJSTriggers();exports.UIBus=n.UIBus;exports.initZeroJSTriggers=t.initZeroJSTriggers;exports.ListenerBag=u.ListenerBag;exports.carregarLeaflet=i.carregarLeaflet;exports.obterLeafletSincrono=i.obterLeafletSincrono;exports.SafeHTMLElement=o.SafeHTMLElement;exports.definirCustomElement=o.definirCustomElement;exports.isBrowser=o.isBrowser;exports.aplicarValidadeInternals=l.aplicarValidadeInternals;exports.validarRestricoesCampoTexto=l.validarRestricoesCampoTexto;exports.cliqueVeioDeRotuloExterno=a.cliqueVeioDeRotuloExterno;exports.gerarIdUnico=a.gerarIdUnico;exports.obterRotuloExterno=a.obterRotuloExterno;exports.TAMANHOS_CONTROLE=e.TAMANHOS_CONTROLE;exports.VARIAVEL_ALTURA_CONTROLE=e.VARIAVEL_ALTURA_CONTROLE;exports.alturaDoTamanho=e.alturaDoTamanho;exports.aplicarAlturaControle=e.aplicarAlturaControle;exports.lerEntradaAltura=e.lerEntradaAltura;exports.normalizarAltura=e.normalizarAltura;exports.normalizarTamanhoControle=e.normalizarTamanhoControle;exports.resolverAlturaControle=e.resolverAlturaControle;exports.higienizarSvg=s.higienizarSvg;exports.ATRIBUTOS_DEGRADE=r.ATRIBUTOS_DEGRADE;exports.CLASSES_DEGRADE=r.CLASSES_DEGRADE;exports.PRESETS_DEGRADE=r.PRESETS_DEGRADE;exports.aplicarDegradeNoElemento=r.aplicarDegradeNoElemento;exports.ehAtributoDegrade=r.ehAtributoDegrade;exports.gradienteSeguro=r.gradienteSeguro;exports.obterValorAtributoDegrade=r.obterValorAtributoDegrade;exports.resolverDegrade=r.resolverDegrade;
package/dist/core.js CHANGED
@@ -1,34 +1,43 @@
1
1
  import { U as t } from "./ui-bus-CUd99VJi.js";
2
- import { i as r } from "./zero-js-triggers-CJT988bR.js";
2
+ import { i as a } from "./zero-js-triggers-CJT988bR.js";
3
3
  import { L as i } from "./listener-bag-DQgv7OON.js";
4
4
  import { c as n, o as m } from "./leaflet-loader-Cjcdgj5R.js";
5
- import { S as p, d as u, i as x } from "./ssr-safe-5cWfJP-s.js";
6
- import { a as d, v as A } from "./form-validacao-BlQFxUVj.js";
7
- import { c as L, g, o as E } from "./acessibilidade-CUlSXc2X.js";
8
- import { T as R, V as S, a as O, b as V, l as h, n as v, c as I, r as U } from "./altura-controle-vxQiXG4q.js";
9
- import { h as z } from "./svg-seguro-ChVJ2L2z.js";
10
- typeof document < "u" && r();
5
+ import { S as E, d as f, i as p } from "./ssr-safe-5cWfJP-s.js";
6
+ import { a as g, v as u } from "./form-validacao-BlQFxUVj.js";
7
+ import { c as S, g as T, o as c } from "./acessibilidade-CUlSXc2X.js";
8
+ import { T as R, V as L, a as C, b, l as O, n as V, c as _, r as h } from "./altura-controle-vxQiXG4q.js";
9
+ import { h as I } from "./svg-seguro-ChVJ2L2z.js";
10
+ import { A as B, C as N, P as z, a as G, e as H, g as M, o as P, r as q } from "./degrade-gDa5sW__.js";
11
+ typeof document < "u" && a();
11
12
  export {
13
+ B as ATRIBUTOS_DEGRADE,
14
+ N as CLASSES_DEGRADE,
12
15
  i as ListenerBag,
13
- p as SafeHTMLElement,
16
+ z as PRESETS_DEGRADE,
17
+ E as SafeHTMLElement,
14
18
  R as TAMANHOS_CONTROLE,
15
19
  t as UIBus,
16
- S as VARIAVEL_ALTURA_CONTROLE,
17
- O as alturaDoTamanho,
18
- V as aplicarAlturaControle,
19
- d as aplicarValidadeInternals,
20
+ L as VARIAVEL_ALTURA_CONTROLE,
21
+ C as alturaDoTamanho,
22
+ b as aplicarAlturaControle,
23
+ G as aplicarDegradeNoElemento,
24
+ g as aplicarValidadeInternals,
20
25
  n as carregarLeaflet,
21
- L as cliqueVeioDeRotuloExterno,
22
- u as definirCustomElement,
23
- g as gerarIdUnico,
24
- z as higienizarSvg,
25
- r as initZeroJSTriggers,
26
- x as isBrowser,
27
- h as lerEntradaAltura,
28
- v as normalizarAltura,
29
- I as normalizarTamanhoControle,
26
+ S as cliqueVeioDeRotuloExterno,
27
+ f as definirCustomElement,
28
+ H as ehAtributoDegrade,
29
+ T as gerarIdUnico,
30
+ M as gradienteSeguro,
31
+ I as higienizarSvg,
32
+ a as initZeroJSTriggers,
33
+ p as isBrowser,
34
+ O as lerEntradaAltura,
35
+ V as normalizarAltura,
36
+ _ as normalizarTamanhoControle,
30
37
  m as obterLeafletSincrono,
31
- E as obterRotuloExterno,
32
- U as resolverAlturaControle,
33
- A as validarRestricoesCampoTexto
38
+ c as obterRotuloExterno,
39
+ P as obterValorAtributoDegrade,
40
+ h as resolverAlturaControle,
41
+ q as resolverDegrade,
42
+ u as validarRestricoesCampoTexto
34
43
  };
package/dist/cores.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-seletor-cor-DPKqf5wb.cjs"),e=require("./ui-controle-cores-CuDFS8Y8.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.normalizarEspessura=r.normalizarEspessura;exports.normalizarOpacidade=r.normalizarOpacidade;exports.UIControleCores=e.UIControleCores;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-seletor-cor-CMuuW-Ym.cjs"),e=require("./ui-controle-cores-B1w_Yl69.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.normalizarEspessura=r.normalizarEspessura;exports.normalizarOpacidade=r.normalizarOpacidade;exports.UIControleCores=e.UIControleCores;
package/dist/cores.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
- import { P as s, U as e, a as l, c as t, e as i, f as m, n as C, b as c, d as n } from "./ui-seletor-cor-FYtRccnK.js";
3
- import { U } from "./ui-controle-cores-C_cVXxCn.js";
2
+ import { P as s, U as e, a as l, c as t, e as i, f as m, n as C, b as c, d as n } from "./ui-seletor-cor-DFIQ1sin.js";
3
+ import { U } from "./ui-controle-cores-BRjMvmMn.js";
4
4
  export {
5
5
  s as PALETA_CORES_PADRAO,
6
6
  U as UIControleCores,