@thibezer/ui-components-kit 2.7.0 → 2.8.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 (84) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +28 -4
  3. package/dist/altura-controle-ukMRPckR.cjs +1 -0
  4. package/dist/altura-controle-vxQiXG4q.js +62 -0
  5. package/dist/botao.cjs +1 -1
  6. package/dist/botao.js +1 -1
  7. package/dist/camadas.cjs +98 -94
  8. package/dist/camadas.js +646 -574
  9. package/dist/campo-texto.cjs +1 -1
  10. package/dist/campo-texto.js +1 -1
  11. package/dist/canvas.cjs +28 -28
  12. package/dist/canvas.js +1110 -980
  13. package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
  14. package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
  15. package/dist/components/ui-camadas/camadas-render.d.ts +1 -0
  16. package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
  17. package/dist/components/ui-camadas/ui-camadas.d.ts +5 -0
  18. package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +4 -0
  19. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +13 -0
  20. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +11 -0
  21. package/dist/components/ui-linha/index.d.ts +1 -0
  22. package/dist/components/ui-linha/ui-linha.d.ts +48 -0
  23. package/dist/core/altura-controle.d.ts +34 -0
  24. package/dist/core/index.d.ts +1 -0
  25. package/dist/core.cjs +1 -1
  26. package/dist/core.js +29 -20
  27. package/dist/custom-elements.json +22245 -21471
  28. package/dist/data.cjs +1 -1
  29. package/dist/data.js +1 -1
  30. package/dist/forms.cjs +1 -1
  31. package/dist/forms.js +2 -2
  32. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +0 -1
  33. package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
  34. package/dist/gerencigeo-canvas/mapa_core.d.ts +6 -0
  35. package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
  36. package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.js +179 -176
  40. package/dist/register.cjs +1 -1
  41. package/dist/register.js +5 -5
  42. package/dist/tipos-elementos.d.ts +38 -3
  43. package/dist/tipos-react.d.ts +2 -0
  44. package/dist/tipos-vue.d.ts +34 -3
  45. package/dist/{ui-badge-ChiiiO1r.js → ui-badge-BWhoGgo9.js} +4 -4
  46. package/dist/{ui-badge-DUCxyAG6.cjs → ui-badge-SIR81R9l.cjs} +3 -3
  47. package/dist/ui-botao-D24oXySA.cjs +12 -0
  48. package/dist/ui-botao-Dsj08jjw.js +165 -0
  49. package/dist/{ui-campo-texto-Uu2dJE_0.js → ui-campo-texto-B_OHVGiN.js} +51 -51
  50. package/dist/ui-campo-texto-DauJCde3.cjs +16 -0
  51. package/dist/ui-kit.css +1 -1
  52. package/dist/ui-linha-C6HBnsaw.cjs +19 -0
  53. package/dist/{ui-segmented-kbO1BLVs.js → ui-linha-nCDh2wPm.js} +162 -94
  54. package/dist/{ui-switch-BX6U5Ykm.cjs → ui-switch-D9a8XlVX.cjs} +9 -9
  55. package/dist/{ui-switch-DO5jR0hy.js → ui-switch-DO1R0Ce7.js} +55 -55
  56. package/package.json +2 -2
  57. package/dist/form-validacao-BIOXxt-1.js +0 -140
  58. package/dist/form-validacao-ytRYSF3E.cjs +0 -1
  59. package/dist/ui-badge-BxT-sDmV.cjs +0 -28
  60. package/dist/ui-badge-C0eKBI8E.js +0 -183
  61. package/dist/ui-botao-BOOnP8ds.cjs +0 -12
  62. package/dist/ui-botao-DfqSivHl.js +0 -165
  63. package/dist/ui-campo-texto-CHTfMO-H.cjs +0 -16
  64. package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
  65. package/dist/ui-campo-texto-gum_jDdI.js +0 -380
  66. package/dist/ui-card-B86lJXTP.cjs +0 -20
  67. package/dist/ui-card-C_o5_0cB.js +0 -111
  68. package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
  69. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
  70. package/dist/ui-modal-CvGFGh1h.cjs +0 -18
  71. package/dist/ui-modal-DBOtSTbR.js +0 -238
  72. package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
  73. package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
  74. package/dist/ui-segmented-BOaGRQw4.cjs +0 -19
  75. package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
  76. package/dist/ui-segmented-wUraId2e.js +0 -412
  77. package/dist/ui-skeleton-BilwGdOm.js +0 -634
  78. package/dist/ui-skeleton-SPYqku8P.cjs +0 -52
  79. package/dist/ui-skeleton-W9uwIceA.js +0 -585
  80. package/dist/ui-skeleton-gZrJipCC.cjs +0 -52
  81. package/dist/ui-switch-BcOqOkiV.js +0 -856
  82. package/dist/ui-switch-D7iPKDj-.cjs +0 -53
  83. package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
  84. package/dist/ui-tabela-propriedades-BokvDD3b.js +0 -2648
package/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.8.1 — 2026-10-21
4
+
5
+ ### `<ui-canvas-cad>`: popups e câmera só a pedido (como CAD/GIS)
6
+
7
+ - **Popups sob demanda (mudança de comportamento):** clicar numa feição, vértice, linha ou polígono **não abre mais o popup nem move o mapa** (o Leaflet abria no clique e fazia auto-pan). Abrem com **duplo clique** sobre a camada, por `abrirPopupFeicao(camadaId, id)` ou, no código, por `marcador.openPopup()` fora de um clique. Popups abertos a pedido não fazem auto-pan. Novo atributo/propriedade `popups`: `sob-demanda` (padrão), `automatico` (comportamento antigo: abre ao selecionar uma feição, com auto-pan e `definirMargensPopup`) e `desligado` (clique e duplo clique não abrem). A consulta SIGEF segue abrindo ao clicar (é um pedido explícito). No modo sob demanda, terminar a edição de vértices não reabre o popup.
8
+ - **Implementação:** `popup_gate.ts` (`PortaoPopups`, `liberarPopups`, `lerModoPopups`) intercepta `map.addLayer` só para popups e separa clique do mouse de abertura pelo código; `FeicaoPopup` aceita `liberar`; `PonteiroFeicoes.duploClique` e `GerenciadorFeicoes.abrirPopupFeicao`/`aoDuploClique`.
9
+ - **`selectPonto(id)` / `selecionarPonto(id)`:** só seleciona. Antes recentralizava o mapa sempre e abria o popup; agora isso acontece apenas com `zoomLevel` informado (pedido de "ir até o ponto").
10
+ - **Zoom em passos finos:** `zoomSnap: 0.25`, `zoomDelta: 0.5`, `wheelPxPerZoomLevel: 90` (antes 1, 1 e 60: cada giro da roda saltava um nível inteiro). Zoom fracionário é aceito por simplificação, clusters, densidade e pré-carga de tiles.
11
+ - **Botão do meio:** o duplo clique que enquadra (`zoomExtents`) agora exige dois cliques limpos; dois arrastes rápidos em sequência (pan) não enquadram mais.
12
+ - **Toque:** removido o zoom próprio da pinça (passos de 1 nível, em paralelo ao `touchZoom` do Leaflet, que também reagia ao mesmo gesto). Um dedo continua arrastando.
13
+ - **Não mudou:** `zoomParaFeicao(s)`, `ajustarTudo`, `ajustarCamada`, `fitBounds`, clique em cluster, ação "zoom" do popup e o botão "Enquadrar" seguem como pedidos explícitos. `zoomExtents` continua considerando só os vértices (não as feições).
14
+
15
+ ### `<ui-camadas>`: busca, espaço da lista e documentação de eventos
16
+
17
+ - **Busca por nome de camada (correção):** o campo "Buscar camada ou feição" só filtrava feições; buscar `eixos` deixava todas as camadas na tela com "Nenhum item correspondente", inclusive a que casava. Agora a árvore mostra só camadas que casam (pelo nome) ou que levam a um resultado, mantendo os grupos ancestrais; um grupo que casa traz suas subcamadas; sem resultado há uma mensagem única (termo escapado). Nova função pura `filtrarCamadasPorBusca()` em `camadas-selecao.ts`; a seleção em intervalo (`Shift`) segue as mesmas linhas.
18
+ - **Mapa base recolhível:** novo atributo/propriedade `mapas-base-recolhido` / `mapasBaseRecolhido`, e o cabeçalho "Mapa Base" vira botão (`aria-expanded`) que mostra o mapa ativo. Novo evento `ui-mapas-base-recolhimento` (`{ recolhido }`), só para ação do usuário. Padrão inalterado (aberta).
19
+ - **Espaço da lista:** `.ui-panel-box` passa de `min-height: 80px` para `140px`, para a árvore não ficar espremida por rodapé e mapas base em painéis `docked` baixos (o corpo rola abaixo disso).
20
+ - **Documentação:** `ui-camada-grupo-adicionar` é emitido com `{ isGroup: true }` (o README dizia `{ grupoId, nome }`); `ui-camada-adicionar` (`{}` ou `{ parentId }`) passa a constar na tabela. Ambos são pedidos: sem handler no aplicativo, os botões não criam nada.
21
+
22
+ ## 2.8.0 — 2026-10-17
23
+
24
+ ### Controles na mesma linha: altura única e `<ui-linha>`
25
+
26
+ - **Novo `<ui-linha>`** (L3): contêiner que alinha botão, campo, lista, segmented e badge na mesma linha. `tamanho`/`densidade` (`sm|md|lg`), `altura`, `alinhar`, `justificar`, `espaco`, `sem-quebra`, `inline`; filhos ganham largura natural (botão e campo deixam de ocupar 100%), campos e listas ocupam o espaço restante e qualquer filho aceita `expandir`.
27
+ - **`tamanho`, `densidade` e `altura` agora funcionam** em `ui-botao`, `ui-campo-texto`, `ui-lista-flutuante` e `ui-segmented` (o README já os documentava, mas só `altura` tinha efeito). Lógica única em `src/core/altura-controle.ts` (exportada em `core`): entrada hostil é descartada, `altura` é limitada a 15–200px.
28
+ - **`ui-segmented` segue `--ui-campo-altura`** (antes tinha alturas fixas de 28/36/42px, o que o desalinhava do botão e do campo). O host passou a `inline-flex` com `vertical-align: middle`. `tamanho` inválido não vira mais classe CSS arbitrária (cai em `md`).
29
+ - **Escala de tokens** `--ui-altura-sm|md|lg` (26/34/42px). **Mudança de comportamento:** a altura padrão dos controles passou de 15px para `--ui-altura-md` (34px), o valor que o README já descrevia como padrão. Quem quiser o antigo define `--ui-campo-altura: 15px`.
30
+ - **`ui-badge[controle]`** assume a altura dos controles (e o alvo de toque mínimo no mobile).
31
+ - Hosts `inline` de botão, campo e lista ganharam `vertical-align: middle`.
32
+ - Teste de contrato `tests/contrato-linha.test.ts` + regressões; guia em `docs/layout-linha.md`.
33
+
3
34
  ## 2.7.0 — 2026-10-17
4
35
 
5
36
  ### `UIBus`: independente do componente de toast
package/README.md CHANGED
@@ -150,7 +150,7 @@ Configurações simples passadas diretamente nas tags:
150
150
 
151
151
  ### 📏 Ajuste de Altura e Dimensionamento Inteligente (Zero Atrito)
152
152
 
153
- Os campos de texto (`<ui-campo-texto>`), listas flutuantes/selects (`<ui-lista-flutuante>`, `<ui-select>`) e botões (`<ui-botao-primario>`) possuem 4 formas flexíveis de ajuste de altura:
153
+ Os campos de texto (`<ui-campo-texto>`), listas flutuantes/selects (`<ui-lista-flutuante>`, `<ui-select>`), botões (`<ui-botao>`) e o controle segmentado (`<ui-segmented>`) leem **a mesma variável**, `--ui-campo-altura`, e por isso têm sempre a mesma altura lado a lado. Há 5 formas de ajustá-la:
154
154
 
155
155
  #### 1. Via Atributo de Tamanho Predefinido (`tamanho` ou `densidade`):
156
156
  ```html
@@ -194,6 +194,29 @@ UIBus.definirDensidade('relaxada'); // 42px
194
194
  UIBus.definirDensidade(38); // Valor numérico em px customizado
195
195
  ```
196
196
 
197
+ #### 5. Via Contêiner de Linha (`<ui-linha>`): a forma de menor esforço
198
+ Quando vários controles ficam na mesma linha, envolva-os em `<ui-linha>`: um único atributo define a altura de todos, e o contêiner cuida de alinhamento, espaço, quebra e largura (botão e campo deixam de ocupar 100%).
199
+
200
+ ```html
201
+ <ui-linha tamanho="sm" justificar="entre">
202
+ <ui-segmented valor="todos"><span valor="todos">Todos</span><span valor="abertos">Abertos</span></ui-segmented>
203
+ <ui-campo-texto placeholder="Buscar..."></ui-campo-texto> <!-- ocupa o espaço que sobrar -->
204
+ <ui-botao variante="primario">Adicionar</ui-botao>
205
+ <ui-badge controle>Carlos</ui-badge> <!-- [controle]: badge com a altura dos controles -->
206
+ </ui-linha>
207
+ ```
208
+
209
+ | Atributo (`ui-linha`) | Valores | Padrão |
210
+ | :--- | :--- | :--- |
211
+ | `tamanho` / `densidade` | `sm` (26px), `md` (34px), `lg` (42px); também `compacta`, `padrao`, `relaxada` | herda do token global |
212
+ | `altura` | `40`, `40px`, `2.5rem` (vence `tamanho`) | - |
213
+ | `alinhar` | `centro`, `inicio`, `fim`, `esticar` (use `fim` quando um campo tem rótulo acima) | `centro` |
214
+ | `justificar` | `inicio`, `centro`, `fim`, `entre`, `ao-redor` | `inicio` |
215
+ | `espaco` | `nenhum`, `xs`, `sm`, `md`, `lg` | `sm` |
216
+ | `sem-quebra` / `inline` | booleanos | a linha quebra |
217
+
218
+ Regras do contrato: o filho com `tamanho`/`altura` próprio vence só ele; `expandir` em qualquer filho faz ocupar o espaço restante; CSS do consumidor (`style`, classe) vence as regras do contêiner. Tokens: `--ui-altura-sm|md|lg` (escala), `--ui-campo-altura` (valor efetivo), `--ui-linha-espaco`, `--ui-linha-campo-base`. No mobile (≤ 640px) todos os controles sobem para no mínimo 38px (alvo de toque), sem exceção, para continuarem alinhados. Mais detalhes em [`docs/layout-linha.md`](docs/layout-linha.md).
219
+
197
220
  ---
198
221
 
199
222
  ### 2. Propriedades JavaScript (Dados Complexos)
@@ -708,8 +731,9 @@ window.addEventListener('message', (event) => {
708
731
  | `<ui-checkbox>` | Caixa de seleção múltipla com estado indeterminado. | `marcado`, `indeterminado`, `name`, `value` | `ui-change` |
709
732
  | `<ui-radio>` | Opção única com agrupamento automático por nome. | `marcado`, `name`, `value` | `ui-change` |
710
733
  | `<ui-switch>` | Chave de alternância liga/desliga física instantânea. | `ativo`, `name`, `value` | `ui-change` |
711
- | `<ui-segmented>` | Controle segmentado de opções (Pills/Tabs deslizantes). | `opcoes`, `value`, `name`, `tamanho` | `ui-change`, `ui-selecionar` |
712
- | `<ui-badge>` / `<ui-chip>` | Tags de status e chips com botão de remoção. | `variante`, `removivel`, `value` | `ui-remove` |
734
+ | `<ui-segmented>` | Controle segmentado de opções (Pills/Tabs deslizantes). | `opcoes`, `value`, `name`, `tamanho`, `altura` | `ui-change`, `ui-selecionar` |
735
+ | `<ui-badge>` / `<ui-chip>` | Tags de status e chips com botão de remoção. | `variante`, `removivel`, `value`, `controle` | `ui-remove` |
736
+ | `<ui-linha>` | Contêiner que alinha controles na mesma linha (altura única, espaço, quebra). | `tamanho`, `altura`, `alinhar`, `justificar`, `espaco`, `sem-quebra` | - |
713
737
  | `<ui-avatar>` | Avatar com fotos, iniciais e status online. | `nome`, `src`, `status`, `tamanho` | - |
714
738
 
715
739
  ### 🟣 Camada 3: Contêineres, Overlays, Dados & GIS
@@ -731,7 +755,7 @@ window.addEventListener('message', (event) => {
731
755
  | `<ui-seletor-cor>` | Painel de cor flutuante: abas Preenchimento/Traço (ou cor única), prévia antes × depois, hexadecimal, seletor do sistema, opacidade, cores do projeto, paleta e "sem cor". Abra com `abrirSeletorCor({ ancora, ... })`: um por vez, Esc/clique fora confirmam, Cancelar restaura, `X` alterna o alvo. | `abrirSeletorCor()`, `fecharSeletorCor()`, `configurar()`, `modo` (`duplo`, `simples`), `alvo`, `preenchimento`, `traco`, `cor`, `opacidade`, `mostrarOpacidade`, `misto`, `coresProjeto`, `paleta`, `focar` | `ui-cor-input`, `ui-cor-confirmar`, `ui-cor-cancelar`, `ui-alvo-change` |
732
756
  | `<ui-mapa>` | Mapa geográfico interativo com camadas OpenStreetMap. | `lat`, `lng`, `zoom`, `camadas` | - |
733
757
  | `<ui-camadas>` | Painel de camadas vetoriais CAD/GIS com hierarquia em árvore, barra de arraste vertical (`redimensionavel`), estabilidade de altura sem colapso, drag-and-drop, métricas geodésicas e persistência no LocalStorage. | `redimensionavel`, `altura`, `min-altura`, `max-altura`, `flutuante`, `colapsado`, `camada-ativa`, `persistir` | `ui-redimensionar-altura`, `ui-camada-selecionada`, `ui-camada-visibilidade`, `ui-camadas-reordenadas`, `ui-acao-massa` |
734
- | `<ui-canvas-cad>` | Mesa CAD/GIS para poligonais, vértices geodésicos e **feições genéricas** (ponto, linha, polígono, círculo, texto) que você cria: seleção por clique e caixa, popup, edição de vértices, snap, 15 ferramentas de desenho/medição, oficial × prévia, cursores remotos e culling/clusters para 100 mil feições. Linha multiparte, feição `oculta`, selo de texto e contorno de ponto. Nenhuma camada vem pronta. Guia: [`docs/guia-migracao-mapengine.md`](docs/guia-migracao-mapengine.md). | `pontos`, `segmentos`, `ferramentas`, `sem-camadas-padrao`, `sem-painel-camadas`, `sem-barra-rapida`, `sem-atalho-snap`, `aceitar-origem`, `inicializarAgora()`, `definirFeicoes()`, `aplicarLote()`, `definirFerramenta()`, `editarVertices()`, `definirMargensHud()`, `definirEstilosExternos()`, `fitBounds()` | `ui-ponto-selecionado`, `cad-selecao`, `cad-feicao-selecionada`, `cad-feicao-criada`, `cad-feicao-atualizada`, `cad-feicao-hover`, `cad-feicao-menu`, `cad-snap`, `cad-previas` e outros (ver `docs/canvas-cad-eventos.md`) |
758
+ | `<ui-canvas-cad>` | Mesa CAD/GIS para poligonais, vértices geodésicos e **feições genéricas** (ponto, linha, polígono, círculo, texto) que você cria: seleção por clique e caixa, popup, edição de vértices, snap, 15 ferramentas de desenho/medição, oficial × prévia, cursores remotos e culling/clusters para 100 mil feições. Linha multiparte, feição `oculta`, selo de texto e contorno de ponto. Nenhuma camada vem pronta. Guia: [`docs/guia-migracao-mapengine.md`](docs/guia-migracao-mapengine.md). | `pontos`, `segmentos`, `ferramentas`, `sem-camadas-padrao`, `sem-painel-camadas`, `sem-barra-rapida`, `sem-atalho-snap`, `aceitar-origem`, `popups`, `abrirPopupFeicao()`, `inicializarAgora()`, `definirFeicoes()`, `aplicarLote()`, `definirFerramenta()`, `editarVertices()`, `definirMargensHud()`, `definirEstilosExternos()`, `fitBounds()` | `ui-ponto-selecionado`, `cad-selecao`, `cad-feicao-selecionada`, `cad-feicao-criada`, `cad-feicao-atualizada`, `cad-feicao-hover`, `cad-feicao-menu`, `cad-snap`, `cad-previas` e outros (ver `docs/canvas-cad-eventos.md`) |
735
759
 
736
760
  #### `<ui-canvas-cad>`: montar só com API pública (2.1)
737
761
 
@@ -0,0 +1 @@
1
+ "use strict";const d=["sm","md","lg"],e="--ui-campo-altura";const u={sm:"sm",compacta:"sm",compacto:"sm",md:"md",padrao:"md",padrão:"md",normal:"md",lg:"lg",relaxada:"lg",relaxado:"lg",conforto:"lg"},T={sm:"var(--ui-altura-sm, 26px)",md:"var(--ui-altura-md, 34px)",lg:"var(--ui-altura-lg, 42px)"};function A(t){const r=(t??"").trim().toLowerCase();return Object.prototype.hasOwnProperty.call(u,r)?u[r]:null}function m(t){const r=A(t);return r?T[r]:null}function i(t){if(t==null)return null;const r=String(t).trim().toLowerCase(),n=/^(\d+(?:\.\d+)?|\.\d+)(px|rem|em)?$/.exec(r);if(!n)return null;const a=Number(n[1]);if(!Number.isFinite(a)||a<=0)return null;const l=n[2]??"px";return l==="px"?`${Math.min(200,Math.max(15,a))}px`:`${Math.min(12.5,a)}${l}`}function s(t){return i(t.altura)??m(t.tamanho)}function c(t){return{altura:t.getAttribute("altura")??t.getAttribute("height"),tamanho:t.getAttribute("tamanho")??t.getAttribute("size")??t.getAttribute("densidade")}}const o=new WeakSet;function _(t){try{const r=s(c(t));r?(t.style.setProperty(e,r),o.add(t)):o.has(t)&&(t.style.removeProperty(e),o.delete(t))}catch{}}exports.TAMANHOS_CONTROLE=d;exports.VARIAVEL_ALTURA_CONTROLE=e;exports.alturaDoTamanho=m;exports.aplicarAlturaControle=_;exports.lerEntradaAltura=c;exports.normalizarAltura=i;exports.normalizarTamanhoControle=A;exports.resolverAlturaControle=s;
@@ -0,0 +1,62 @@
1
+ const p = ["sm", "md", "lg"], u = "--ui-campo-altura";
2
+ const s = {
3
+ sm: "sm",
4
+ compacta: "sm",
5
+ compacto: "sm",
6
+ md: "md",
7
+ padrao: "md",
8
+ padrão: "md",
9
+ normal: "md",
10
+ lg: "lg",
11
+ relaxada: "lg",
12
+ relaxado: "lg",
13
+ conforto: "lg"
14
+ }, l = {
15
+ sm: "var(--ui-altura-sm, 26px)",
16
+ md: "var(--ui-altura-md, 34px)",
17
+ lg: "var(--ui-altura-lg, 42px)"
18
+ };
19
+ function m(t) {
20
+ const a = (t ?? "").trim().toLowerCase();
21
+ return Object.prototype.hasOwnProperty.call(s, a) ? s[a] : null;
22
+ }
23
+ function i(t) {
24
+ const a = m(t);
25
+ return a ? l[a] : null;
26
+ }
27
+ function c(t) {
28
+ if (t == null) return null;
29
+ const a = String(t).trim().toLowerCase(), n = /^(\d+(?:\.\d+)?|\.\d+)(px|rem|em)?$/.exec(a);
30
+ if (!n) return null;
31
+ const r = Number(n[1]);
32
+ if (!Number.isFinite(r) || r <= 0) return null;
33
+ const e = n[2] ?? "px";
34
+ return e === "px" ? `${Math.min(200, Math.max(15, r))}px` : `${Math.min(12.5, r)}${e}`;
35
+ }
36
+ function A(t) {
37
+ return c(t.altura) ?? i(t.tamanho);
38
+ }
39
+ function d(t) {
40
+ return {
41
+ altura: t.getAttribute("altura") ?? t.getAttribute("height"),
42
+ tamanho: t.getAttribute("tamanho") ?? t.getAttribute("size") ?? t.getAttribute("densidade")
43
+ };
44
+ }
45
+ const o = /* @__PURE__ */ new WeakSet();
46
+ function _(t) {
47
+ try {
48
+ const a = A(d(t));
49
+ a ? (t.style.setProperty(u, a), o.add(t)) : o.has(t) && (t.style.removeProperty(u), o.delete(t));
50
+ } catch {
51
+ }
52
+ }
53
+ export {
54
+ p as T,
55
+ u as V,
56
+ i as a,
57
+ _ as b,
58
+ m as c,
59
+ d as l,
60
+ c as n,
61
+ A as r
62
+ };
package/dist/botao.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-botao-BOOnP8ds.cjs");exports.UIBotao=o.UIBotao;exports.UIBotaoPrimario=o.UIBotaoPrimario;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-botao-D24oXySA.cjs");exports.UIBotao=o.UIBotao;exports.UIBotaoPrimario=o.UIBotaoPrimario;
package/dist/botao.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* empty css */
2
- import { U as t, a as i } from "./ui-botao-DfqSivHl.js";
2
+ import { U as t, a as i } from "./ui-botao-Dsj08jjw.js";
3
3
  export {
4
4
  t as UIBotao,
5
5
  i as UIBotaoPrimario