zenite-ui 1.7.37 → 1.7.38

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 (3) hide show
  1. package/README.md +57 -57
  2. package/js/zenite.min.js +1 -1
  3. package/package.json +35 -35
package/README.md CHANGED
@@ -1,58 +1,58 @@
1
- # Zênite UI Framework
2
-
3
- O Zênite UI é um framework front-end moderno, leve e responsivo, focado na simplicidade e na elegância. Construído com HTML5, CSS3 puro e Vanilla JavaScript, foi concebido para acelerar o desenvolvimento de interfaces web de alto padrão.
4
-
5
- ---
6
-
7
- ## 1. Diferenciais
8
- - Leveza: Sem dependências externas pesadas, focado em performance.
9
- - Responsividade: Design totalmente adaptável para qualquer dispositivo.
10
- - Modularidade: Estrutura organizada para importação direta via CDN ou via gerenciadores de pacotes.
11
-
12
- ---
13
-
14
- ## 2. Instalação e Utilização
15
-
16
- Pode utilizar o Zênite UI de duas formas, dependendo da arquitetura do seu projeto:
17
-
18
- ### Opção A: Importação direta via CDN (Mais rápida)
19
- Ideal para projetos estáticos ou sem processo de *build*. Não é necessária a instalação de pacotes locais. Adicione as referências abaixo diretamente no seu arquivo HTML:
20
-
21
- **CSS**
22
-
23
- <link href="https://cdn.jsdelivr.net/npm/zenite-ui@1.7.37/css/zenite.min.css" rel="stylesheet">
24
-
25
- **JavaScript**
26
-
27
- <script src="https://cdn.jsdelivr.net/npm/zenite-ui@1.7.37/js/zenite.min.js"></script>
28
-
29
- ### Opção B: Instalação via NPM (Para Bundlers e Projetos Modernos)
30
- Ideal se estiver utilizando ferramentas como Webpack, Vite, React, etc. Execute o comando abaixo no seu terminal:
31
-
32
- npm install zenite-ui
33
-
34
- **Importação via Bundlers:**
35
- Nos seus arquivos principais (ex: `main.js` ou `index.js`), importe o CSS e o JS:
36
-
37
- import 'zenite-ui/css/zenite.min.css';
38
- import 'zenite-ui';
39
-
40
- **Importação em HTML usando node_modules local:**
41
- Se instalou via NPM mas ainda usa HTML estático:
42
-
43
- <link rel="stylesheet" href="./node_modules/zenite-ui/css/zenite.min.css">
44
- <script src="./node_modules/zenite-ui/js/zenite.min.js"></script>
45
-
46
- ---
47
-
48
- ## 3. Estrutura do Projeto
49
- O framework é composto por diversos módulos para facilitar a manutenção e o desenvolvimento:
50
- - Layout: Grid responsivo, Colunas e classes utilitárias.
51
- - Componentes: Buttons, Cards, Modals, Navbars, entre outros.
52
- - Formulários: Inputs estilizados, Checkboxes e Switches.
53
-
54
- ---
55
-
56
- ## 4. Licença
57
- Este projeto está sob a licença MIT. Desenvolvido por Zênite Tecnologia LTDA.
1
+ # Zênite UI Framework
2
+
3
+ O Zênite UI é um framework front-end moderno, leve e responsivo, focado na simplicidade e na elegância. Construído com HTML5, CSS3 puro e Vanilla JavaScript, foi concebido para acelerar o desenvolvimento de interfaces web de alto padrão.
4
+
5
+ ---
6
+
7
+ ## 1. Diferenciais
8
+ - Leveza: Sem dependências externas pesadas, focado em performance.
9
+ - Responsividade: Design totalmente adaptável para qualquer dispositivo.
10
+ - Modularidade: Estrutura organizada para importação direta via CDN ou via gerenciadores de pacotes.
11
+
12
+ ---
13
+
14
+ ## 2. Instalação e Utilização
15
+
16
+ Pode utilizar o Zênite UI de duas formas, dependendo da arquitetura do seu projeto:
17
+
18
+ ### Opção A: Importação direta via CDN (Mais rápida)
19
+ Ideal para projetos estáticos ou sem processo de *build*. Não é necessária a instalação de pacotes locais. Adicione as referências abaixo diretamente no seu arquivo HTML:
20
+
21
+ **CSS**
22
+
23
+ <link href="https://cdn.jsdelivr.net/npm/zenite-ui@1.7.38/css/zenite.min.css" rel="stylesheet">
24
+
25
+ **JavaScript**
26
+
27
+ <script src="https://cdn.jsdelivr.net/npm/zenite-ui@1.7.38/js/zenite.min.js"></script>
28
+
29
+ ### Opção B: Instalação via NPM (Para Bundlers e Projetos Modernos)
30
+ Ideal se estiver utilizando ferramentas como Webpack, Vite, React, etc. Execute o comando abaixo no seu terminal:
31
+
32
+ npm install zenite-ui
33
+
34
+ **Importação via Bundlers:**
35
+ Nos seus arquivos principais (ex: `main.js` ou `index.js`), importe o CSS e o JS:
36
+
37
+ import 'zenite-ui/css/zenite.min.css';
38
+ import 'zenite-ui';
39
+
40
+ **Importação em HTML usando node_modules local:**
41
+ Se instalou via NPM mas ainda usa HTML estático:
42
+
43
+ <link rel="stylesheet" href="./node_modules/zenite-ui/css/zenite.min.css">
44
+ <script src="./node_modules/zenite-ui/js/zenite.min.js"></script>
45
+
46
+ ---
47
+
48
+ ## 3. Estrutura do Projeto
49
+ O framework é composto por diversos módulos para facilitar a manutenção e o desenvolvimento:
50
+ - Layout: Grid responsivo, Colunas e classes utilitárias.
51
+ - Componentes: Buttons, Cards, Modals, Navbars, entre outros.
52
+ - Formulários: Inputs estilizados, Checkboxes e Switches.
53
+
54
+ ---
55
+
56
+ ## 4. Licença
57
+ Este projeto está sob a licença MIT. Desenvolvido por Zênite Tecnologia LTDA.
58
58
  https://www.npmjs.com/package/zenite-ui
package/js/zenite.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".zf-combobox").forEach(e=>{let o=e.querySelector(".zf-combobox-input"),n=e.querySelectorAll(".zf-combobox-item"),a=e.querySelector(".zf-combobox-clear"),r=-1,c=()=>{o.value.trim()!==""?e.classList.add("has-value"):e.classList.remove("has-value")},d=()=>Array.from(n).filter(i=>i.style.display!=="none"),u=i=>{if(n.forEach(s=>s.classList.remove("highlighted")),r>=0&&r<i.length){let s=i[r];s.classList.add("highlighted"),s.scrollIntoView({block:"nearest"})}},f=()=>{e.classList.remove("active"),r=-1,u([])};a&&a.addEventListener("mousedown",i=>{i.preventDefault(),i.stopPropagation(),o.value="",c(),n.forEach(s=>s.style.display=""),o.focus()}),o.addEventListener("focus",()=>{e.classList.add("active"),r=-1}),o.addEventListener("mousedown",i=>{i.offsetX>o.offsetWidth-40&&(i.preventDefault(),e.classList.toggle("active"),e.classList.contains("active")||(r=-1))}),o.addEventListener("input",i=>{c();let s=i.target.value.toLowerCase();e.classList.add("active"),n.forEach(l=>{let h=l.textContent.toLowerCase();l.style.display=h.includes(s)?"":"none"}),r=-1,u(d())});let m=i=>{let s=i.querySelector(".zf-cb-name"),l=i.querySelector(".zf-cb-cpf"),h=i.getAttribute("data-id")||"Sem ID",y=s?s.textContent.trim():i.textContent.trim();o.value=y,c(),f();let v={id:h,nome:y,cpf:l?l.textContent.trim():"CPF n\xE3o encontrado"};console.log("Objeto Selecionado:",JSON.stringify(v,null,2))};n.forEach(i=>{i.addEventListener("click",()=>m(i))}),o.addEventListener("keydown",i=>{let s=d(),l=e.classList.contains("active");i.key==="ArrowDown"?(i.preventDefault(),l?(r=r<s.length-1?r+1:r,u(s)):e.classList.add("active")):i.key==="ArrowUp"?(i.preventDefault(),l&&(r=r>0?r-1:0,u(s))):i.key==="Enter"?l&&r>=0&&r<s.length&&(i.preventDefault(),m(s[r])):i.key==="Tab"?l&&r>=0&&r<s.length?(i.preventDefault(),m(s[r])):f():i.key==="Escape"&&f()}),document.addEventListener("click",i=>{e.contains(i.target)||f()})})});var et="dialog[open], .modal-overlay, .message-overlay",ot=["[data-zf-modal-close]","[data-modal-close]",".modal-close",".modal-close-icon",".modal-actions .button-outline",".message-card .button",'button[aria-label*="Fechar" i]','button[aria-label*="Cancelar" i]'].join(", "),nt=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"," "]),rt='input, textarea, select, [contenteditable="true"]',it=t=>{if(t.matches("dialog[open]"))return!0;let e=window.getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"&&t.isConnected},at=()=>Array.from(document.querySelectorAll(et)).filter(it),st=t=>{let e=t.querySelector(ot);if(e){e.click();return}t.matches("dialog[open]")&&(t.close(),t.dispatchEvent(new Event("close",{bubbles:!0})))};document.addEventListener("keydown",t=>{let e=at(),o=e[e.length-1];if(o){if(t.key!=="Escape"){let n=o.contains(t.target),a=t.target.closest?.(rt);nt.has(t.key)&&(!n||!a)&&(t.preventDefault(),t.stopPropagation());return}t.preventDefault(),t.stopPropagation(),st(o)}},!0);var P=new WeakSet,z=new WeakSet;function S(){let t=Array.from(document.querySelectorAll(".sidebar-checkbox")).some(e=>e.checked);document.documentElement.classList.toggle("sidebar-scroll-locked",t),document.body.classList.toggle("sidebar-scroll-locked",t)}function ct(t){let e=t.getAttribute("data-sidebar-target");return e?document.getElementById(e):(t.closest(".app-shell")||document).querySelector(".sidebar-checkbox")||document.getElementById("menu-toggle")}function q(t,e){t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging"),e&&(e.checked=!1),S()}function lt(t){if(P.has(t))return;let e=ct(t);if(!e)return;if(P.add(t),z.has(e)||(z.add(e),e.addEventListener("change",S),S()),!t.querySelector(".sidebar-close-icon")){let r=document.createElement("button");r.type="button",r.className="sidebar-close-icon",r.setAttribute("aria-label","Fechar menu"),r.textContent="\xD7",r.addEventListener("click",()=>q(t,e)),t.prepend(r)}let o=0,n=0,a=!1;t.addEventListener("touchstart",r=>{!e.checked||r.touches.length!==1||(o=r.touches[0].clientX,n=o,a=!0,t.classList.add("sidebar-dragging"))},{passive:!0}),t.addEventListener("touchmove",r=>{if(!a)return;n=r.touches[0].clientX;let c=Math.min(0,n-o);c<0&&(t.style.transform=`translateX(${c}px)`)},{passive:!0}),t.addEventListener("touchend",()=>{if(!a)return;a=!1;let r=o-n,c=Math.min(t.offsetWidth*.35,120);if(r>=c){q(t,e);return}t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging")}),t.addEventListener("touchcancel",()=>{a=!1,t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging")})}function M(){document.querySelectorAll(".sidebar").forEach(lt)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",M):M();var dt=new MutationObserver(M);dt.observe(document.documentElement,{childList:!0,subtree:!0});var C="[data-zf-table-keynav], .zf-table-keynav",W='tbody tr:not([data-zf-table-disabled="true"])',H='a, button, input, select, textarea, [contenteditable="true"], [role="button"]',ut="dialog[open], .modal-overlay, .message-overlay",p=t=>t?.closest?.(C),E=t=>{let e=t?.closest?.(W);return e&&p(e)?e:null},ft=t=>{if(t.matches("dialog[open]"))return!0;let e=window.getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"&&t.isConnected},F=()=>Array.from(document.querySelectorAll(ut)).filter(ft),mt=()=>F().length>0,b=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let t=F(),e=t[t.length-1];if(!e)return;e.querySelector('input:not([disabled]), textarea:not([disabled]), select:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])')?.focus?.({preventScroll:!0})})})},g=t=>Array.from(t?.querySelectorAll?.(W)||[]).filter(e=>e.cells.length>0&&!e.querySelector("td[colspan]")),k=(t,e)=>{let o=t.querySelector(`[data-zf-table-${e}]`);if(o){o.click(),b();return}t.dispatchEvent(new CustomEvent(`zenite:table-${e}`,{bubbles:!0,detail:{row:t,table:p(t),id:t.dataset.zfTableRowId||null}})),b()},pt=t=>{let o=t.closest(".order-table-section")?.querySelector?.("[data-zf-table-create], .order-table-section-action-button");if(o){o.click(),b();return}t.dispatchEvent(new CustomEvent("zenite:table-create",{bubbles:!0,detail:{row:t,table:p(t),id:t.dataset.zfTableRowId||null}})),b()},$=t=>{let e=p(t);e&&g(e).forEach(o=>{o.classList.toggle("zf-table-row-active",o===t),o.tabIndex=o===t?0:-1})},ht=t=>{g(t).forEach(e=>{e.classList.remove("zf-table-row-active"),e.tabIndex=0})},w=t=>{t&&($(t),t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest",inline:"nearest"}))},I=(t,e)=>{let o=p(t),n=g(o),a=n.indexOf(t),r=Math.max(0,Math.min(n.length-1,a+e));w(n[r])},R=(t,e)=>{let o=t.closest(".table-container");o&&(o.scrollLeft+=e)},B=t=>{let e=g(t);if(e.length===0)return;let o=e.find(n=>n.classList.contains("zf-table-row-active"))||e[0];e.forEach(n=>{n.tabIndex=n===o?0:-1})},V=(t=document)=>{t.matches?.(C)&&B(t),t.querySelectorAll?.(C).forEach(B)};document.addEventListener("focusin",t=>{let e=E(t.target);e&&$(e)});document.addEventListener("click",t=>{let e=E(t.target);e&&!t.target.closest(H)&&w(e)});document.addEventListener("contextmenu",t=>{let e=E(t.target);!e||t.target.closest(H)||(t.preventDefault(),w(e),k(e,"edit"))});document.addEventListener("keydown",t=>{if(mt())return;let e=E(t.target);if(e){if(t.key==="ArrowDown"){t.preventDefault(),I(e,1);return}if(t.key==="ArrowUp"){t.preventDefault(),I(e,-1);return}if(t.key==="ArrowLeft"){t.preventDefault(),R(e,-120);return}if(t.key==="ArrowRight"){t.preventDefault(),R(e,120);return}if(t.key==="Home"){t.preventDefault(),w(g(p(e))[0]);return}if(t.key==="End"){t.preventDefault();let o=g(p(e));w(o[o.length-1]);return}if(t.key==="Enter"){t.preventDefault(),k(e,"edit");return}if(t.key==="Delete"){t.preventDefault(),k(e,"delete");return}if(t.key==="Insert"){t.preventDefault(),pt(e);return}t.key==="Escape"&&(t.preventDefault(),ht(p(e)),e.blur())}});document.addEventListener("DOMContentLoaded",()=>V());var gt=new MutationObserver(t=>{t.forEach(e=>{e.addedNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE&&V(o)})})});gt.observe(document.documentElement,{childList:!0,subtree:!0});var yt={footerSelector:".detail-action-bar",margin:8,menuHeight:170,minWidth:192,maxWidth:240},L=()=>({width:window.visualViewport?.width??window.innerWidth,height:window.visualViewport?.height??window.innerHeight}),wt=(t,e)=>{let n=(t?document.querySelector(t):null)?.getBoundingClientRect().top;return n&&n>0?Math.min(e,n):e};function _(t,e={}){let o={...yt,...e},n=t?.getBoundingClientRect(),a=L(),r=wt(o.footerSelector,a.height),c=Math.min(o.maxWidth,Math.max(o.minWidth,a.width-o.margin*4)),d=n?r-n.bottom-o.margin:0,u=n?n.top-o.margin:0,f=d>=o.menuHeight||d>=u?"down":"up",m=n?f==="down"?n.bottom+o.margin:Math.max(o.margin,n.top-o.menuHeight-o.margin):0,i=n?Math.min(Math.max(o.margin,n.right-c),a.width-c-o.margin):0,s=n?Math.min(Math.max(18,n.left+n.width/2-i),c-18):c-28;return{direction:f,top:m,left:i,width:c,arrowOffset:s}}function N(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-floating-menu-top",`${t.top}px`),e.style.setProperty("--zf-floating-menu-left",`${t.left}px`),e.style.setProperty("--zf-floating-menu-width",`${t.width}px`),e.style.setProperty("--zf-floating-menu-arrow-left",`${t.arrowOffset}px`))}function vt(t,e={}){let o=_(t,e);return N(o),o}function U(t,e={}){let o={margin:12,maxHeight:250,minHeight:120,offset:5,...e},n=t?.getBoundingClientRect(),a=L(),r=window.visualViewport?.offsetTop||0,c=window.visualViewport?.offsetLeft||0,d=r+a.height,u=n?Math.max(o.minHeight,d-n.bottom-o.margin):o.maxHeight;return{top:n?n.bottom+r+o.offset:0,left:n?n.left+c:0,width:n?n.width:0,maxHeight:Math.min(o.maxHeight,u)}}function X(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-combobox-portal-top",`${t.top}px`),e.style.setProperty("--zf-combobox-portal-left",`${t.left}px`),e.style.setProperty("--zf-combobox-portal-width",`${t.width}px`),e.style.setProperty("--zf-combobox-portal-max-height",`${t.maxHeight}px`))}function bt(t,e={}){let o=U(t,e);return X(o),o}function j(t,e={}){let o={margin:12,popoverHeight:330,minWidth:340,footerSelector:".detail-action-bar",...e},n=t?.getBoundingClientRect(),a=L(),r=window.visualViewport?.offsetTop||0,c=window.visualViewport?.offsetLeft||0,d=r,u=r+a.height,f=o.footerSelector?document.querySelector(o.footerSelector)?.getBoundingClientRect().top:null,m=Math.min(u,f&&f>0?f+r:u)-o.margin,i=d+o.margin,s=Math.max(0,a.width-o.margin*2),l=Math.min(n?Math.max(n.width,o.minWidth):o.minWidth,s),h=n?Math.min(Math.max(n.left+c,o.margin),c+a.width-l-o.margin):o.margin,y=n?n.top+r:i,v=n?n.bottom+r:i,T=n?m-v-o.margin:0,Y=n?y-i-o.margin:0,O=n&&T<o.popoverHeight&&Y>T,G=n?O?y-o.popoverHeight-o.margin:v+o.margin:i,Q=Math.max(i,m-o.popoverHeight),D=Math.min(Math.max(G,i),Q),tt=Math.max(160,m-D);return{top:D,left:h,width:l,maxHeight:tt,direction:O?"up":"down"}}function J(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-datepicker-portal-top",`${t.top}px`),e.style.setProperty("--zf-datepicker-portal-left",`${t.left}px`),e.style.setProperty("--zf-datepicker-portal-width",`${t.width}px`),e.style.setProperty("--zf-datepicker-portal-max-height",`${t.maxHeight}px`))}function Et(t,e={}){let o=j(t,e);return J(o),o}function Z(t,e={}){let o={margin:8,offset:10,minWidth:96,maxWidth:208,mobileMaxWidth:160,...e},n=t?.getBoundingClientRect(),a=t?.querySelector?.(".calendar-floating-tooltip-local"),r=L(),c=window.visualViewport?.offsetTop||0,d=window.visualViewport?.offsetLeft||0,u=a?.textContent?.trim().length||0,f=r.width<=480?o.mobileMaxWidth:o.maxWidth,m=Math.max(o.minWidth,Math.min(f,u*6.8+32)),i=Math.min(m,r.width-o.margin*2);if(!n)return{top:c+o.margin,left:d+o.margin,width:i,arrowLeft:i/2};let s=n.left+d+n.width/2,l=Math.min(Math.max(d+o.margin,s-i/2),d+r.width-i-o.margin),h=Math.min(Math.max(14,s-l),i-14);return{top:n.top+c-o.offset,left:l,width:i,arrowLeft:h}}function K(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-calendar-tooltip-top",`${t.top}px`),e.style.setProperty("--zf-calendar-tooltip-left",`${t.left}px`),e.style.setProperty("--zf-calendar-tooltip-width",`${t.width}px`),e.style.setProperty("--zf-calendar-tooltip-arrow-left",`${t.arrowLeft}px`))}function A(t,e={}){let o=Z(t,e);return K(o),o}var Lt=()=>{document.addEventListener("pointerover",t=>{let e=t.target.closest?.(".calendar-day");e?.querySelector?.(".calendar-floating-tooltip-local")&&A(e)}),document.addEventListener("focusin",t=>{let e=t.target.closest?.(".calendar-day");e?.querySelector?.(".calendar-floating-tooltip-local")&&A(e)})};Lt();window.ZeniteUI={...window.ZeniteUI||{},getFloatingActionMenuPosition:_,applyFloatingActionMenuPosition:N,openFloatingActionMenu:vt,getFloatingComboboxPosition:U,applyFloatingComboboxPosition:X,openFloatingCombobox:bt,getDatePickerPopoverPosition:j,applyDatePickerPopoverPosition:J,openDatePickerPopover:Et,getCalendarTooltipPosition:Z,applyCalendarTooltipPosition:K,openCalendarTooltip:A};var xt={dark:"#D4AF37",light:"#0A1F44"};function St(){return document.documentElement.getAttribute("data-theme")==="light"?"light":"dark"}function Mt(){let t=document.querySelector('meta[name="theme-color"]');return t||(t=document.createElement("meta"),t.setAttribute("name","theme-color"),document.head.appendChild(t)),t}function x(){Mt().setAttribute("content",xt[St()])}x();var Ct=new MutationObserver(x);Ct.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});document.addEventListener("themechange",x);document.addEventListener("DOMContentLoaded",()=>{x();let t=document.getElementById("theme-toggle"),e=document.getElementById("theme-label");t&&t.addEventListener("change",o=>{o.target.checked?(document.documentElement.removeAttribute("data-theme"),e&&(e.textContent="Modo Escuro Ativado")):(document.documentElement.setAttribute("data-theme","light"),e&&(e.textContent="Modo Claro Ativado"))})});document.addEventListener("DOMContentLoaded",()=>{let t=document.getElementById("form-demo");t&&(t.addEventListener("submit",e=>{e.preventDefault();let o=!0;t.querySelectorAll("input, textarea").forEach(a=>{a.classList.remove("is-valid","is-invalid"),a.checkValidity()?a.classList.add("is-valid"):(a.classList.add("is-invalid"),o=!1)}),o&&alert("Sucesso! O formul\xE1rio est\xE1 perfeitamente preenchido.")}),t.addEventListener("reset",()=>{t.querySelectorAll("input, textarea").forEach(o=>{o.classList.remove("is-valid","is-invalid")})}))});})();
1
+ (()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".zf-combobox").forEach(e=>{let o=e.querySelector(".zf-combobox-input"),n=e.querySelectorAll(".zf-combobox-item"),a=e.querySelector(".zf-combobox-clear"),r=-1,c=!1,d=()=>{o.value.trim()!==""?e.classList.add("has-value"):e.classList.remove("has-value")},p=()=>Array.from(n).filter(i=>i.style.display!=="none"),f=i=>{if(n.forEach(s=>s.classList.remove("highlighted")),r>=0&&r<i.length){let s=i[r];s.classList.add("highlighted"),s.scrollIntoView({block:"nearest"})}},m=()=>{e.classList.remove("active"),r=-1,f([])};a&&a.addEventListener("mousedown",i=>{i.preventDefault(),i.stopPropagation(),o.value="",d(),n.forEach(s=>s.style.display=""),o.focus()}),o.addEventListener("focus",()=>{e.classList.contains("active")||(e.classList.add("active"),r=-1,c=!0,o.blur())}),o.addEventListener("click",i=>{i.offsetX>o.offsetWidth-40||(c?c=!1:o.focus())}),o.addEventListener("mousedown",i=>{i.offsetX>o.offsetWidth-40&&(i.preventDefault(),e.classList.toggle("active"),e.classList.contains("active")||(r=-1))}),o.addEventListener("input",i=>{d();let s=i.target.value.toLowerCase();e.classList.contains("active")||e.classList.add("active"),n.forEach(u=>{let g=u.textContent.toLowerCase();u.style.display=g.includes(s)?"":"none"}),r=-1,f(p())});let l=i=>{let s=i.querySelector(".zf-cb-name"),u=i.querySelector(".zf-cb-cpf"),g=i.getAttribute("data-id")||"Sem ID",v=s?s.textContent.trim():i.textContent.trim();o.value=v,d(),m(),o.blur();let b={id:g,nome:v,cpf:u?u.textContent.trim():"CPF n\xE3o encontrado"};console.log("Objeto Selecionado:",JSON.stringify(b,null,2))};n.forEach(i=>{i.addEventListener("click",()=>l(i))}),o.addEventListener("keydown",i=>{let s=p(),u=e.classList.contains("active");i.key==="ArrowDown"?(i.preventDefault(),u?(r=r<s.length-1?r+1:r,f(s)):e.classList.add("active")):i.key==="ArrowUp"?(i.preventDefault(),u&&(r=r>0?r-1:0,f(s))):i.key==="Enter"?u&&r>=0&&r<s.length&&(i.preventDefault(),l(s[r])):i.key==="Tab"?u&&r>=0&&r<s.length?(i.preventDefault(),l(s[r])):m():i.key==="Escape"&&m()}),document.addEventListener("click",i=>{e.contains(i.target)||m()})})});var et="dialog[open], .modal-overlay, .message-overlay",ot=["[data-zf-modal-close]","[data-modal-close]",".modal-close",".modal-close-icon",".modal-actions .button-outline",".message-card .button",'button[aria-label*="Fechar" i]','button[aria-label*="Cancelar" i]'].join(", "),nt=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"," "]),rt='input, textarea, select, [contenteditable="true"]',it=t=>{if(t.matches("dialog[open]"))return!0;let e=window.getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"&&t.isConnected},at=()=>Array.from(document.querySelectorAll(et)).filter(it),st=t=>{let e=t.querySelector(ot);if(e){e.click();return}t.matches("dialog[open]")&&(t.close(),t.dispatchEvent(new Event("close",{bubbles:!0})))};document.addEventListener("keydown",t=>{let e=at(),o=e[e.length-1];if(o){if(t.key!=="Escape"){let n=o.contains(t.target),a=t.target.closest?.(rt);nt.has(t.key)&&(!n||!a)&&(t.preventDefault(),t.stopPropagation());return}t.preventDefault(),t.stopPropagation(),st(o)}},!0);var P=new WeakSet,z=new WeakSet;function M(){let t=Array.from(document.querySelectorAll(".sidebar-checkbox")).some(e=>e.checked);document.documentElement.classList.toggle("sidebar-scroll-locked",t),document.body.classList.toggle("sidebar-scroll-locked",t)}function ct(t){let e=t.getAttribute("data-sidebar-target");return e?document.getElementById(e):(t.closest(".app-shell")||document).querySelector(".sidebar-checkbox")||document.getElementById("menu-toggle")}function q(t,e){t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging"),e&&(e.checked=!1),M()}function lt(t){if(P.has(t))return;let e=ct(t);if(!e)return;if(P.add(t),z.has(e)||(z.add(e),e.addEventListener("change",M),M()),!t.querySelector(".sidebar-close-icon")){let r=document.createElement("button");r.type="button",r.className="sidebar-close-icon",r.setAttribute("aria-label","Fechar menu"),r.textContent="\xD7",r.addEventListener("click",()=>q(t,e)),t.prepend(r)}let o=0,n=0,a=!1;t.addEventListener("touchstart",r=>{!e.checked||r.touches.length!==1||(o=r.touches[0].clientX,n=o,a=!0,t.classList.add("sidebar-dragging"))},{passive:!0}),t.addEventListener("touchmove",r=>{if(!a)return;n=r.touches[0].clientX;let c=Math.min(0,n-o);c<0&&(t.style.transform=`translateX(${c}px)`)},{passive:!0}),t.addEventListener("touchend",()=>{if(!a)return;a=!1;let r=o-n,c=Math.min(t.offsetWidth*.35,120);if(r>=c){q(t,e);return}t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging")}),t.addEventListener("touchcancel",()=>{a=!1,t.style.removeProperty("transform"),t.classList.remove("sidebar-dragging")})}function C(){document.querySelectorAll(".sidebar").forEach(lt)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",C):C();var dt=new MutationObserver(C);dt.observe(document.documentElement,{childList:!0,subtree:!0});var k="[data-zf-table-keynav], .zf-table-keynav",W='tbody tr:not([data-zf-table-disabled="true"])',H='a, button, input, select, textarea, [contenteditable="true"], [role="button"]',ut="dialog[open], .modal-overlay, .message-overlay",h=t=>t?.closest?.(k),L=t=>{let e=t?.closest?.(W);return e&&h(e)?e:null},ft=t=>{if(t.matches("dialog[open]"))return!0;let e=window.getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"&&t.isConnected},F=()=>Array.from(document.querySelectorAll(ut)).filter(ft),mt=()=>F().length>0,E=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let t=F(),e=t[t.length-1];if(!e)return;e.querySelector('input:not([disabled]), textarea:not([disabled]), select:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])')?.focus?.({preventScroll:!0})})})},y=t=>Array.from(t?.querySelectorAll?.(W)||[]).filter(e=>e.cells.length>0&&!e.querySelector("td[colspan]")),A=(t,e)=>{let o=t.querySelector(`[data-zf-table-${e}]`);if(o){o.click(),E();return}t.dispatchEvent(new CustomEvent(`zenite:table-${e}`,{bubbles:!0,detail:{row:t,table:h(t),id:t.dataset.zfTableRowId||null}})),E()},pt=t=>{let o=t.closest(".order-table-section")?.querySelector?.("[data-zf-table-create], .order-table-section-action-button");if(o){o.click(),E();return}t.dispatchEvent(new CustomEvent("zenite:table-create",{bubbles:!0,detail:{row:t,table:h(t),id:t.dataset.zfTableRowId||null}})),E()},$=t=>{let e=h(t);e&&y(e).forEach(o=>{o.classList.toggle("zf-table-row-active",o===t),o.tabIndex=o===t?0:-1})},ht=t=>{y(t).forEach(e=>{e.classList.remove("zf-table-row-active"),e.tabIndex=0})},w=t=>{t&&($(t),t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest",inline:"nearest"}))},I=(t,e)=>{let o=h(t),n=y(o),a=n.indexOf(t),r=Math.max(0,Math.min(n.length-1,a+e));w(n[r])},R=(t,e)=>{let o=t.closest(".table-container");o&&(o.scrollLeft+=e)},B=t=>{let e=y(t);if(e.length===0)return;let o=e.find(n=>n.classList.contains("zf-table-row-active"))||e[0];e.forEach(n=>{n.tabIndex=n===o?0:-1})},V=(t=document)=>{t.matches?.(k)&&B(t),t.querySelectorAll?.(k).forEach(B)};document.addEventListener("focusin",t=>{let e=L(t.target);e&&$(e)});document.addEventListener("click",t=>{let e=L(t.target);e&&!t.target.closest(H)&&w(e)});document.addEventListener("contextmenu",t=>{let e=L(t.target);!e||t.target.closest(H)||(t.preventDefault(),w(e),A(e,"edit"))});document.addEventListener("keydown",t=>{if(mt())return;let e=L(t.target);if(e){if(t.key==="ArrowDown"){t.preventDefault(),I(e,1);return}if(t.key==="ArrowUp"){t.preventDefault(),I(e,-1);return}if(t.key==="ArrowLeft"){t.preventDefault(),R(e,-120);return}if(t.key==="ArrowRight"){t.preventDefault(),R(e,120);return}if(t.key==="Home"){t.preventDefault(),w(y(h(e))[0]);return}if(t.key==="End"){t.preventDefault();let o=y(h(e));w(o[o.length-1]);return}if(t.key==="Enter"){t.preventDefault(),A(e,"edit");return}if(t.key==="Delete"){t.preventDefault(),A(e,"delete");return}if(t.key==="Insert"){t.preventDefault(),pt(e);return}t.key==="Escape"&&(t.preventDefault(),ht(h(e)),e.blur())}});document.addEventListener("DOMContentLoaded",()=>V());var gt=new MutationObserver(t=>{t.forEach(e=>{e.addedNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE&&V(o)})})});gt.observe(document.documentElement,{childList:!0,subtree:!0});var yt={footerSelector:".detail-action-bar",margin:8,menuHeight:170,minWidth:192,maxWidth:240},x=()=>({width:window.visualViewport?.width??window.innerWidth,height:window.visualViewport?.height??window.innerHeight}),vt=(t,e)=>{let n=(t?document.querySelector(t):null)?.getBoundingClientRect().top;return n&&n>0?Math.min(e,n):e};function _(t,e={}){let o={...yt,...e},n=t?.getBoundingClientRect(),a=x(),r=vt(o.footerSelector,a.height),c=Math.min(o.maxWidth,Math.max(o.minWidth,a.width-o.margin*4)),d=n?r-n.bottom-o.margin:0,p=n?n.top-o.margin:0,f=d>=o.menuHeight||d>=p?"down":"up",m=n?f==="down"?n.bottom+o.margin:Math.max(o.margin,n.top-o.menuHeight-o.margin):0,l=n?Math.min(Math.max(o.margin,n.right-c),a.width-c-o.margin):0,i=n?Math.min(Math.max(18,n.left+n.width/2-l),c-18):c-28;return{direction:f,top:m,left:l,width:c,arrowOffset:i}}function N(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-floating-menu-top",`${t.top}px`),e.style.setProperty("--zf-floating-menu-left",`${t.left}px`),e.style.setProperty("--zf-floating-menu-width",`${t.width}px`),e.style.setProperty("--zf-floating-menu-arrow-left",`${t.arrowOffset}px`))}function wt(t,e={}){let o=_(t,e);return N(o),o}function X(t,e={}){let o={margin:12,maxHeight:250,minHeight:120,offset:5,...e},n=t?.getBoundingClientRect(),a=x(),r=window.visualViewport?.offsetTop||0,c=window.visualViewport?.offsetLeft||0,d=r+a.height,p=n?Math.max(o.minHeight,d-n.bottom-o.margin):o.maxHeight;return{top:n?n.bottom+r+o.offset:0,left:n?n.left+c:0,width:n?n.width:0,maxHeight:Math.min(o.maxHeight,p)}}function U(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-combobox-portal-top",`${t.top}px`),e.style.setProperty("--zf-combobox-portal-left",`${t.left}px`),e.style.setProperty("--zf-combobox-portal-width",`${t.width}px`),e.style.setProperty("--zf-combobox-portal-max-height",`${t.maxHeight}px`))}function bt(t,e={}){let o=X(t,e);return U(o),o}function j(t,e={}){let o={margin:12,popoverHeight:330,minWidth:340,footerSelector:".detail-action-bar",...e},n=t?.getBoundingClientRect(),a=x(),r=window.visualViewport?.offsetTop||0,c=window.visualViewport?.offsetLeft||0,d=r,p=r+a.height,f=o.footerSelector?document.querySelector(o.footerSelector)?.getBoundingClientRect().top:null,m=Math.min(p,f&&f>0?f+r:p)-o.margin,l=d+o.margin,i=Math.max(0,a.width-o.margin*2),s=Math.min(n?Math.max(n.width,o.minWidth):o.minWidth,i),u=n?Math.min(Math.max(n.left+c,o.margin),c+a.width-s-o.margin):o.margin,g=n?n.top+r:l,v=n?n.bottom+r:l,b=n?m-v-o.margin:0,Y=n?g-l-o.margin:0,T=n&&b<o.popoverHeight&&Y>b,G=n?T?g-o.popoverHeight-o.margin:v+o.margin:l,Q=Math.max(l,m-o.popoverHeight),D=Math.min(Math.max(G,l),Q),tt=Math.max(160,m-D);return{top:D,left:u,width:s,maxHeight:tt,direction:T?"up":"down"}}function J(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-datepicker-portal-top",`${t.top}px`),e.style.setProperty("--zf-datepicker-portal-left",`${t.left}px`),e.style.setProperty("--zf-datepicker-portal-width",`${t.width}px`),e.style.setProperty("--zf-datepicker-portal-max-height",`${t.maxHeight}px`))}function Et(t,e={}){let o=j(t,e);return J(o),o}function Z(t,e={}){let o={margin:8,offset:10,minWidth:96,maxWidth:208,mobileMaxWidth:160,...e},n=t?.getBoundingClientRect(),a=t?.querySelector?.(".calendar-floating-tooltip-local"),r=x(),c=window.visualViewport?.offsetTop||0,d=window.visualViewport?.offsetLeft||0,p=a?.textContent?.trim().length||0,f=r.width<=480?o.mobileMaxWidth:o.maxWidth,m=Math.max(o.minWidth,Math.min(f,p*6.8+32)),l=Math.min(m,r.width-o.margin*2);if(!n)return{top:c+o.margin,left:d+o.margin,width:l,arrowLeft:l/2};let i=n.left+d+n.width/2,s=Math.min(Math.max(d+o.margin,i-l/2),d+r.width-l-o.margin),u=Math.min(Math.max(14,i-s),l-14);return{top:n.top+c-o.offset,left:s,width:l,arrowLeft:u}}function K(t,e=document.documentElement){!t||!e||(e.style.setProperty("--zf-calendar-tooltip-top",`${t.top}px`),e.style.setProperty("--zf-calendar-tooltip-left",`${t.left}px`),e.style.setProperty("--zf-calendar-tooltip-width",`${t.width}px`),e.style.setProperty("--zf-calendar-tooltip-arrow-left",`${t.arrowLeft}px`))}function O(t,e={}){let o=Z(t,e);return K(o),o}var Lt=()=>{document.addEventListener("pointerover",t=>{let e=t.target.closest?.(".calendar-day");e?.querySelector?.(".calendar-floating-tooltip-local")&&O(e)}),document.addEventListener("focusin",t=>{let e=t.target.closest?.(".calendar-day");e?.querySelector?.(".calendar-floating-tooltip-local")&&O(e)})};Lt();window.ZeniteUI={...window.ZeniteUI||{},getFloatingActionMenuPosition:_,applyFloatingActionMenuPosition:N,openFloatingActionMenu:wt,getFloatingComboboxPosition:X,applyFloatingComboboxPosition:U,openFloatingCombobox:bt,getDatePickerPopoverPosition:j,applyDatePickerPopoverPosition:J,openDatePickerPopover:Et,getCalendarTooltipPosition:Z,applyCalendarTooltipPosition:K,openCalendarTooltip:O};var xt={dark:"#D4AF37",light:"#0A1F44"};function St(){return document.documentElement.getAttribute("data-theme")==="light"?"light":"dark"}function Mt(){let t=document.querySelector('meta[name="theme-color"]');return t||(t=document.createElement("meta"),t.setAttribute("name","theme-color"),document.head.appendChild(t)),t}function S(){Mt().setAttribute("content",xt[St()])}S();var Ct=new MutationObserver(S);Ct.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});document.addEventListener("themechange",S);document.addEventListener("DOMContentLoaded",()=>{S();let t=document.getElementById("theme-toggle"),e=document.getElementById("theme-label");t&&t.addEventListener("change",o=>{o.target.checked?(document.documentElement.removeAttribute("data-theme"),e&&(e.textContent="Modo Escuro Ativado")):(document.documentElement.setAttribute("data-theme","light"),e&&(e.textContent="Modo Claro Ativado"))})});document.addEventListener("DOMContentLoaded",()=>{let t=document.getElementById("form-demo");t&&(t.addEventListener("submit",e=>{e.preventDefault();let o=!0;t.querySelectorAll("input, textarea").forEach(a=>{a.classList.remove("is-valid","is-invalid"),a.checkValidity()?a.classList.add("is-valid"):(a.classList.add("is-invalid"),o=!1)}),o&&alert("Sucesso! O formul\xE1rio est\xE1 perfeitamente preenchido.")}),t.addEventListener("reset",()=>{t.querySelectorAll("input, textarea").forEach(o=>{o.classList.remove("is-valid","is-invalid")})}))});})();
package/package.json CHANGED
@@ -1,36 +1,36 @@
1
- {
2
- "name": "zenite-ui",
3
- "version": "1.7.37",
4
- "description": "Versão minificada e de alta performance do framework Zenite UI",
5
- "keywords": [
6
- "css",
7
- "framework",
8
- "ui",
9
- "frontend",
10
- "javascript",
11
- "minified"
12
- ],
13
- "homepage": "https://zenitetecnologia.github.io/zenite-ui-docs/",
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/zenitetecnologia/zenite-ui.git"
17
- },
18
- "license": "MIT",
19
- "author": "Zênite Tecnologia",
20
- "type": "module",
21
- "main": "js/zenite.min.js",
22
- "style": "css/zenite.min.css",
23
- "files": [
24
- "css/zenite.min.css",
25
- "js/zenite.min.js"
26
- ],
27
- "scripts": {
28
- "build:css": "esbuild css/zenite.css --bundle --minify --outfile=css/zenite.min.css",
29
- "build:js": "esbuild js/zenite.js --bundle --minify --outfile=js/zenite.min.js",
30
- "build": "npm run build:css && npm run build:js",
31
- "prepublishOnly": "npm run build"
32
- },
33
- "devDependencies": {
34
- "esbuild": "^0.20.2"
35
- }
1
+ {
2
+ "name": "zenite-ui",
3
+ "version": "1.7.38",
4
+ "description": "Versão minificada e de alta performance do framework Zenite UI",
5
+ "keywords": [
6
+ "css",
7
+ "framework",
8
+ "ui",
9
+ "frontend",
10
+ "javascript",
11
+ "minified"
12
+ ],
13
+ "homepage": "https://zenitetecnologia.github.io/zenite-ui-docs/",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/zenitetecnologia/zenite-ui.git"
17
+ },
18
+ "license": "MIT",
19
+ "author": "Zênite Tecnologia",
20
+ "type": "module",
21
+ "main": "js/zenite.min.js",
22
+ "style": "css/zenite.min.css",
23
+ "files": [
24
+ "css/zenite.min.css",
25
+ "js/zenite.min.js"
26
+ ],
27
+ "scripts": {
28
+ "build:css": "esbuild css/zenite.css --bundle --minify --outfile=css/zenite.min.css",
29
+ "build:js": "esbuild js/zenite.js --bundle --minify --outfile=js/zenite.min.js",
30
+ "build": "npm run build:css && npm run build:js",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "devDependencies": {
34
+ "esbuild": "^0.20.2"
35
+ }
36
36
  }