@vasakgroup/vue-libvasak 0.6.0 → 0.6.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.
@@ -1 +1 @@
1
- (function(f,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tauri-apps/api/event"),require("@vasakgroup/plugin-vicons"),require("@tauri-apps/api/window")):typeof define=="function"&&define.amd?define(["exports","vue","@tauri-apps/api/event","@vasakgroup/plugin-vicons","@tauri-apps/api/window"],e):(f=typeof globalThis<"u"?globalThis:f||self,e(f.VueLibVasak={},f.Vue,f.TauriEvent,f.VasakVicons,f.TauriWindow))})(this,(function(f,e,Be,q,Ee){"use strict";function $e(t,a){const o=e.ref("");let n=null,l=!1,r=0;async function s(){const i=++r,c=t.value;if(!c){o.value="";return}const p=a.value==="symbol"?await q.getSymbolSource(c):await q.getIconSource(c);i===r&&(o.value=p)}return e.onMounted(async()=>{const i=await Be.listen("vicons:theme-changed",s);if(l){i();return}n=i,await s()}),e.onUnmounted(()=>{l=!0,n?.()}),e.watch(t,s),o}const ze=["src","alt"],S=e.defineComponent({__name:"ThemeIcon",props:{name:{},type:{default:"icon"},size:{default:18},alt:{default:""}},setup(t){const a=t,o=$e(e.toRef(a,"name"),e.toRef(a,"type")),n=e.computed(()=>`${a.size}px`);return(l,r)=>e.unref(o)?(e.openBlock(),e.createElementBlock("img",{key:0,src:e.unref(o),alt:t.alt,style:e.normalizeStyle({width:n.value,height:n.value}),class:"shrink-0 object-contain"},null,12,ze)):(e.openBlock(),e.createElementBlock("span",{key:1,style:e.normalizeStyle({width:n.value,height:n.value}),class:"shrink-0"},null,4))}}),Ve={class:"flex flex-col gap-2"},Se=["aria-expanded"],Le={key:1,class:"flex flex-col gap-1"},O=e.defineComponent({__name:"SideGroup",props:{title:{},collapsed:{type:Boolean,default:!1},defaultOpen:{type:Boolean,default:!0}},setup(t){const a=t,o=e.ref(a.defaultOpen);return e.watch(()=>a.collapsed,n=>{n&&(o.value=!0)}),(n,l)=>(e.openBlock(),e.createElementBlock("section",Ve,[t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"group flex w-full items-center justify-between rounded-corner px-2 py-1 text-tx-muted text-xs uppercase tracking-[0.08em] hover:bg-ui-surface/60","aria-expanded":o.value,onClick:l[0]||(l[0]=r=>o.value=!o.value)},[e.createElementVNode("span",null,e.toDisplayString(t.title),1),e.createVNode(S,{name:"pan-down-symbolic",type:"symbol",size:12,class:e.normalizeClass(["transition-transform duration-200",o.value?"":"-rotate-90"])},null,8,["class"])],8,Se)),o.value||t.collapsed?(e.openBlock(),e.createElementBlock("div",Le,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)]))}}),De=["title","aria-label","disabled","aria-current"],Ne={key:1},Me={key:0,class:"min-w-0 flex-1 truncate font-medium"},Ae={key:1,class:"rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"},P=e.defineComponent({__name:"SideButton",props:{label:{},icon:{default:""},active:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},badge:{default:""}},emits:["click"],setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",title:t.collapsed?t.label:void 0,"aria-label":t.collapsed?t.label:void 0,disabled:t.disabled,"aria-current":t.active?"page":void 0,class:e.normalizeClass(["group relative flex w-full items-center gap-3 rounded-corner border px-3 py-2 text-left text-sm transition-all duration-200",[t.active?"border-secondary bg-primary/15 text-tx-main shadow-sm":"border-transparent bg-transparent hover:border-ui-border hover:bg-ui-surface/70",t.disabled?"cursor-not-allowed opacity-60":"cursor-pointer",t.collapsed?"justify-center px-2":""]]),onClick:o[0]||(o[0]=n=>a.$emit("click"))},[e.createElementVNode("span",{class:e.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide",t.active?"border-secondary bg-primary/20":""]),"aria-hidden":"true"},[t.icon?(e.openBlock(),e.createBlock(S,{key:0,name:t.icon,size:20},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Ne,e.toDisplayString(t.label.charAt(0).toUpperCase()),1))],2),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Me,e.toDisplayString(t.label),1)),!t.collapsed&&t.badge!==""?(e.openBlock(),e.createElementBlock("span",Ae,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,De))}}),Te={key:0,class:"flex flex-col gap-2 border-ui-border border-b p-2"},Ie={class:"flex items-center gap-2"},Oe=["aria-label","aria-expanded"],Pe={key:0,class:"min-w-0 flex-1"},je={key:0,class:"truncate font-semibold text-sm"},Fe={key:1,class:"truncate text-tx-muted text-xs"},Re={key:0},Ke={key:1,class:"flex border-ui-border border-b p-2"},Ue=["aria-label","aria-expanded"],qe={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2"},H="hidden h-8 w-8 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-surface/70 transition-colors hover:bg-ui-surface md:inline-flex",W=767,G=e.defineComponent({__name:"SideBar",props:{title:{default:""},subtitle:{default:""},categories:{default:()=>[]},modelValue:{default:""},collapsed:{type:Boolean,default:void 0},collapseLabel:{default:"Collapse"},expandLabel:{default:"Expand"}},emits:["update:modelValue","update:collapsed","change"],setup(t,{expose:a,emit:o}){const n=t,l=o,r=e.ref(n.collapsed??!1),s=e.ref(!1);let i=null,c=null;const p=e.computed(()=>s.value||r.value),h=e.computed(()=>!!(n.title||n.subtitle));e.computed(()=>n.categories.length>0);function E(){return document.documentElement?.clientWidth||window.innerWidth}function C(){s.value=E()<=W}function w(){r.value=!r.value,l("update:collapsed",r.value)}function k(g){l("update:modelValue",g),l("change",g)}return e.watch(()=>n.collapsed,g=>{g!==void 0&&(r.value=g)}),e.onMounted(()=>{i=window.matchMedia(`(max-width: ${W}px)`),C(),i.addEventListener("change",C),window.addEventListener("resize",C),typeof ResizeObserver<"u"&&document.documentElement&&(c=new ResizeObserver(C),c.observe(document.documentElement))}),e.onBeforeUnmount(()=>{i?.removeEventListener("change",C),window.removeEventListener("resize",C),c?.disconnect(),c=null}),a({collapsed:p}),(g,u)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-all duration-300",["w-[84px]",p.value?"md:w-[84px]":"md:w-72"]])},[h.value||g.$slots.header?(e.openBlock(),e.createElementBlock("header",Te,[e.createElementVNode("div",Ie,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(H),"aria-label":p.value?t.expandLabel:t.collapseLabel,"aria-expanded":!p.value,onClick:w},[e.createVNode(S,{name:p.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Oe),h.value&&!p.value?(e.openBlock(),e.createElementBlock("div",Pe,[t.title?(e.openBlock(),e.createElementBlock("p",je,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.subtitle?(e.openBlock(),e.createElementBlock("p",Fe,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),g.$slots.header&&!p.value?(e.openBlock(),e.createElementBlock("div",Re,[e.renderSlot(g.$slots,"header",{collapsed:p.value})])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ke,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(H),"aria-label":p.value?t.expandLabel:t.collapseLabel,"aria-expanded":!p.value,onClick:w},[e.createVNode(S,{name:p.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Ue)])),e.createElementVNode("div",qe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,y=>(e.openBlock(),e.createBlock(O,{key:y.id,title:y.title,collapsed:p.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.items,d=>(e.openBlock(),e.createBlock(P,{key:d.id,label:d.label,icon:d.icon,badge:d.badge,disabled:d.disabled,collapsed:p.value,active:t.modelValue===d.id,onClick:b=>k(d.id)},null,8,["label","icon","badge","disabled","collapsed","active","onClick"]))),128))]),_:2},1032,["title","collapsed"]))),128)),e.renderSlot(g.$slots,"default",{collapsed:p.value})])],2))}}),He={class:"flex min-w-0 flex-col gap-1"},We=["for"],Ge={class:"relative flex min-w-0 items-center"},Xe=["id"],X=e.defineComponent({inheritAttrs:!1,__name:"SelectField",props:e.mergeModels({label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const a=t,o=e.useAttrs(),n=e.useId(),l=e.computed(()=>o.id??n),[r,s]=e.useModel(t,"modelValue",{set(i){return s.number?Number(i):i}});return(i,c)=>(e.openBlock(),e.createElementBlock("div",He,[a.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:l.value,class:"text-tx-muted text-xs"},e.toDisplayString(a.label),9,We)):e.createCommentVNode("",!0),e.createElementVNode("div",Ge,[e.withDirectives(e.createElementVNode("select",e.mergeProps({id:l.value,"onUpdate:modelValue":c[0]||(c[0]=p=>e.isRef(r)?r.value=p:null),class:"min-w-0 flex-1 appearance-none truncate rounded-corner border border-ui-border bg-ui-surface/60 py-1.5 pr-8 pl-2 text-sm text-tx-main"},e.unref(o)),[e.renderSlot(i.$slots,"default")],16,Xe),[[e.vModelSelect,e.unref(r)]]),e.createVNode(S,{name:"pan-down-symbolic",type:"symbol",size:14,class:"pointer-events-none absolute right-2"})])]))}}),M=Symbol("barra de vasak");function A(t){return t==="left"||t==="right"?"vertical":"horizontal"}const Y=["top","bottom","left","right"];function J(t){return typeof t=="string"&&Y.includes(t)}function L(){const t=e.inject(M,null);if(t)return t;const a=e.ref("top");return{posicion:a,orientacion:e.computed(()=>A(a.value)),vertical:e.computed(()=>A(a.value)==="vertical")}}const T=["minimize","maximize","close"],Ye="window",Je="barPosition";function Q(t){const o=t?.[Ye]?.[Je];return J(o)?o:null}function Z(t="top"){const a=e.ref(t);let o=null,n=!1;async function l(){try{const{readConfig:r}=await import("@vasakgroup/plugin-config-manager"),s=await r();a.value=Q(s)??t}catch{}}return e.onMounted(async()=>{await l();try{const{listen:r}=await import("@tauri-apps/api/event"),s=await r("config-changed",()=>{l()});if(n){s();return}o=s}catch{}}),e.onBeforeUnmount(()=>{n=!0,o?.(),o=null}),a}function v(t){const a=e.getCurrentInstance(),o={};for(const n of t){const l=`on${n[0].toUpperCase()}${n.slice(1)}`;a?.vnode.props?.[l]&&(o[n]=()=>a.emit(n))}return o}const Qe=["title","aria-label"],Ze=["title","aria-label"],ve=["title","aria-label"],j="flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors",F=e.defineComponent({__name:"WindowControls",props:{controls:{default:()=>T},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"}},emits:["minimize","maximize","close"],setup(t,{emit:a}){const o=t,n=a,{vertical:l}=L(),r=e.computed(()=>({minimize:o.controls.includes("minimize"),maximize:o.controls.includes("maximize"),close:o.controls.includes("close")}));function s(){return Ee.getCurrentWindow()}const i=e.getCurrentInstance();function c(C){return!!i?.vnode.props?.[`on${C}`]}function p(){if(c("Minimize"))return n("minimize");s().minimize()}function h(){if(c("Maximize"))return n("maximize");s().toggleMaximize()}function E(){if(c("Close"))return n("close");s().close()}return(C,w)=>t.controls.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex shrink-0 gap-1",e.unref(l)?"flex-col":""]),"data-tauri-drag-region":""},[r.value.minimize?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass([j,"hover:bg-status-success"]),title:t.minimizeLabel,"aria-label":t.minimizeLabel,onClick:w[0]||(w[0]=k=>p())},[e.createVNode(S,{name:"window-minimize",size:24})],10,Qe)):e.createCommentVNode("",!0),r.value.maximize?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass([j,"hover:bg-status-warning"]),title:t.maximizeLabel,"aria-label":t.maximizeLabel,onClick:w[1]||(w[1]=k=>h())},[e.createVNode(S,{name:"window-maximize",size:24})],10,Ze)):e.createCommentVNode("",!0),r.value.close?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:e.normalizeClass([j,"hover:bg-status-error"]),title:t.closeLabel,"aria-label":t.closeLabel,onClick:w[2]||(w[2]=k=>E())},[e.createVNode(S,{name:"window-close",size:24})],10,ve)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),_e={key:0,class:"flex shrink-0 items-center","data-tauri-drag-region":""},et={key:1,class:"min-w-0 shrink truncate text-sm","data-tauri-drag-region":""},R=e.defineComponent({__name:"AppBar",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},controls:{default:()=>T}},emits:["minimize","maximize","close"],setup(t){const a=t,o=L(),n=e.computed(()=>a.position??o.posicion.value),l=e.computed(()=>n.value==="left"||n.value==="right");return e.provide(M,{posicion:n,orientacion:e.computed(()=>l.value?"vertical":"horizontal"),vertical:l}),(r,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex shrink-0 items-center gap-2 p-1 font-title",l.value?"h-full flex-col":"w-full"]),"data-tauri-drag-region":""},[r.$slots.identidad?(e.openBlock(),e.createElementBlock("div",_e,[e.renderSlot(r.$slots,"identidad")])):e.createCommentVNode("",!0),(r.$slots.titulo||t.title)&&!l.value?(e.openBlock(),e.createElementBlock("p",et,[e.renderSlot(r.$slots,"titulo",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto",l.value?"flex-col":""]),"data-tauri-drag-region":""},[e.renderSlot(r.$slots,"default")],2),r.$slots.acciones?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["flex shrink-0 items-center gap-1",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"acciones")],2)):e.createCommentVNode("",!0),e.createVNode(F,e.mergeProps({controls:t.controls,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel},e.toHandlers(e.unref(v)(["minimize","maximize","close"]))),null,16,["controls","minimize-label","maximize-label","close-label"]),r.$slots.centro?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["pointer-events-none absolute flex items-center justify-center",l.value?"inset-x-0 top-1/2 -translate-y-1/2 flex-col":"inset-y-0 left-1/2 -translate-x-1/2"])},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-auto flex items-center gap-2",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"centro")],2)],2)):e.createCommentVNode("",!0)],2))}}),tt={class:"flex min-h-0 min-w-0 flex-1"},_=e.defineComponent({__name:"WindowFrame",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},controls:{default:()=>T},hideBar:{type:Boolean,default:!1}},emits:["minimize","maximize","close"],setup(t){const a=t,o=Z(),n=e.computed(()=>a.position??o.value),l=e.computed(()=>A(n.value)),r=e.computed(()=>l.value==="vertical");e.provide(M,{posicion:n,orientacion:l,vertical:r});const s={top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"};return(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80",s[n.value]])},[t.hideBar?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(R,e.mergeProps({key:0,position:n.value,title:t.title,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel,controls:t.controls},e.toHandlers(e.unref(v)(["minimize","maximize","close"]))),e.createSlots({default:e.withCtx(()=>[e.renderSlot(i.$slots,"barra")]),_:2},[i.$slots.identidad?{name:"identidad",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"identidad")]),key:"0"}:void 0,i.$slots.titulo?{name:"titulo",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"titulo")]),key:"1"}:void 0,i.$slots.centro?{name:"centro",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"centro")]),key:"2"}:void 0,i.$slots.acciones?{name:"acciones",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"acciones")]),key:"3"}:void 0]),1040,["position","title","minimize-label","maximize-label","close-label","controls"])),e.createElementVNode("div",tt,[e.renderSlot(i.$slots,"default")])],2))}}),ot=["aria-selected","title","aria-label","tabindex"],nt={key:1,"aria-hidden":"true"},at={key:2,class:"min-w-0 flex-1 truncate"},lt=["title","aria-label"],rt={class:"whitespace-nowrap"},it={key:0,class:"size-2 shrink-0 rounded-full bg-current","aria-hidden":"true"},st=["title","aria-label"],ct=500,ee=8,te=6,K=e.defineComponent({__name:"TabItem",props:{tab:{},active:{type:Boolean,default:!1},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},tabindex:{default:0}},emits:["select","close","menu","mover","navegar"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=L(),s=e.ref(null),i=e.ref(null),c=e.ref(!1),p=e.ref(!1),h=e.ref(!1),E=e.ref({top:0,left:0,right:0});let C=null,w=null;const k=e.computed(()=>o.tab.closable!==!1),g=e.computed(()=>o.tab.tooltip??o.tab.label),u=e.computed(()=>o.tab.dirty?`${o.tab.label} · ${o.dirtyLabel}`:o.tab.label),y=e.computed(()=>o.tab.label.trim().charAt(0).toUpperCase()),d=e.computed(()=>c.value||h.value),b=e.computed(()=>!!o.tab.dirty&&!(d.value&&k.value)),x=e.computed(()=>k.value&&(d.value||o.active||!o.tab.dirty)),B=e.computed(()=>l.value&&(c.value||p.value||h.value)),V=e.computed(()=>{const $={position:"fixed",top:`${E.value.top}px`,zIndex:50};return r.value==="right"?{...$,right:`${E.value.right+te}px`}:{...$,left:`${E.value.left+te}px`}});function xe(){const $=s.value;if(!$)return;const m=$.getBoundingClientRect();E.value={top:m.top,left:m.right,right:window.innerWidth-m.left}}function Zt($){const m=$.relatedTarget;m&&i.value?.contains(m)||(h.value=!1)}function vt(){c.value=!0,xe()}function _t(){p.value=!0,xe()}function N(){C!==null&&clearTimeout(C),C=null,w=null}function eo($){$.button===0&&(w={x:$.clientX,y:$.clientY},C=setTimeout(()=>{w&&n("menu",w),N()},ct))}function to($){if(!w)return;(Math.abs($.clientX-w.x)>ee||Math.abs($.clientY-w.y)>ee)&&N()}function oo($){$.button===1&&k.value&&($.preventDefault(),n("close"))}function no($){$.preventDefault(),n("menu",{x:$.clientX,y:$.clientY})}return e.onBeforeUnmount(N),($,m)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"raiz",ref:s,class:e.normalizeClass(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors",[t.active?"bg-primary font-bold text-tx-on-primary":"bg-ui-bg/80 hover:bg-ui-surface/70",e.unref(l)?"size-8 justify-center p-0 text-sm":"w-34 max-w-34 px-3 py-1 text-sm"]]),role:"tab","aria-selected":t.active,title:g.value,"aria-label":u.value,tabindex:t.tabindex,onClick:m[5]||(m[5]=e.withModifiers(z=>n("select"),["stop"])),onKeydown:[m[6]||(m[6]=e.withKeys(e.withModifiers(z=>n("select"),["stop"]),["enter"])),m[7]||(m[7]=e.withKeys(e.withModifiers(z=>n("select"),["prevent","stop"]),["space"])),m[8]||(m[8]=e.withKeys(e.withModifiers(z=>n("navegar","anterior"),["prevent","stop"]),["left"])),m[9]||(m[9]=e.withKeys(e.withModifiers(z=>n("navegar","anterior"),["prevent","stop"]),["up"])),m[10]||(m[10]=e.withKeys(e.withModifiers(z=>n("navegar","siguiente"),["prevent","stop"]),["right"])),m[11]||(m[11]=e.withKeys(e.withModifiers(z=>n("navegar","siguiente"),["prevent","stop"]),["down"])),m[12]||(m[12]=e.withKeys(e.withModifiers(z=>n("navegar","primera"),["prevent","stop"]),["home"])),m[13]||(m[13]=e.withKeys(e.withModifiers(z=>n("navegar","ultima"),["prevent","stop"]),["end"])),m[14]||(m[14]=e.withKeys(e.withModifiers(z=>n("mover",-1),["alt","prevent","stop"]),["left"])),m[15]||(m[15]=e.withKeys(e.withModifiers(z=>n("mover",-1),["alt","prevent","stop"]),["up"])),m[16]||(m[16]=e.withKeys(e.withModifiers(z=>n("mover",1),["alt","prevent","stop"]),["right"])),m[17]||(m[17]=e.withKeys(e.withModifiers(z=>n("mover",1),["alt","prevent","stop"]),["down"])),m[18]||(m[18]=e.withKeys(e.withModifiers(z=>k.value&&n("close"),["prevent","stop"]),["delete"]))],onAuxclick:e.withModifiers(oo,["stop"]),onContextmenu:no,onPointerdown:eo,onPointermove:to,onPointerup:N,onPointerleave:N,onMouseenter:vt,onMouseleave:m[19]||(m[19]=z=>c.value=!1),onFocus:_t,onBlur:m[20]||(m[20]=z=>p.value=!1)},[t.tab.icon?(e.openBlock(),e.createBlock(S,{key:0,name:t.tab.icon,size:16,class:"shrink-0"},null,8,["name"])):e.unref(l)?(e.openBlock(),e.createElementBlock("span",nt,e.toDisplayString(y.value),1)):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",at,e.toDisplayString(t.tab.label),1)),b.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(["size-2 shrink-0 rounded-full bg-current",e.unref(l)?"absolute right-0.5 top-0.5":""]),"aria-hidden":"true"},null,2)):x.value&&!e.unref(l)?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${u.value}`,onClick:m[0]||(m[0]=e.withModifiers(z=>n("close"),["stop"]))},[e.createVNode(S,{name:"gtk-close",type:"symbol",size:12})],8,lt)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 scale-95","leave-active-class":"transition duration-100 ease-in","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[B.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg",t.active?"font-bold":""]),ref_key:"desplegadoRef",ref:i,style:e.normalizeStyle(V.value),onMouseenter:m[2]||(m[2]=z=>h.value=!0),onMouseleave:m[3]||(m[3]=z=>h.value=!1),onFocusin:m[4]||(m[4]=z=>h.value=!0),onFocusout:Zt},[e.createElementVNode("span",rt,e.toDisplayString(t.tab.label),1),t.tab.dirty?(e.openBlock(),e.createElementBlock("span",it)):e.createCommentVNode("",!0),k.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${u.value}`,onClick:m[1]||(m[1]=e.withModifiers(z=>n("close"),["stop"]))},[e.createVNode(S,{name:"gtk-close",type:"symbol",size:12})],8,st)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:1})]))],42,ot))}}),dt=["aria-orientation"],mt=["draggable","onDragstart","onDragover","onDrop"],ft=["title","aria-label"],oe=e.defineComponent({__name:"TabBar",props:{tabs:{},modelValue:{default:""},newLabel:{default:""},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},fixedOrder:{type:Boolean,default:!1}},emits:["update:modelValue","select","close","new","reorder","menu"],setup(t,{emit:a}){const o=t,n=a,{vertical:l}=L(),r=e.ref(null),s=e.ref(0),i=e.ref(null),c=e.ref(null);function p(d){n("update:modelValue",d),n("select",d)}async function h(d,b){const x=o.tabs.length-1;if(x<0)return;const B=b==="primera"?0:b==="ultima"?x:b==="anterior"?(d-1+o.tabs.length)%o.tabs.length:(d+1)%o.tabs.length;s.value=B,await e.nextTick(),r.value?.querySelectorAll('[role="tab"]')?.[B]?.focus()}function E(d,b){if(o.fixedOrder)return;const x=d+b;if(x<0||x>=o.tabs.length)return;const B=[...o.tabs],[V]=B.splice(d,1);V&&(B.splice(x,0,V),s.value=x,n("reorder",B))}function C(d){const b=r.value;if(!b)return;const x=d.deltaY||d.deltaX||0,B=l.value?b.scrollTop:b.scrollLeft;l.value?b.scrollTop+=x:b.scrollLeft+=x,(l.value?b.scrollTop:b.scrollLeft)!==B&&d.preventDefault()}function w(d,b){o.fixedOrder||(i.value=d,b.dataTransfer?.setData("text/plain",String(d)),b.dataTransfer&&(b.dataTransfer.effectAllowed="move"))}function k(d,b){o.fixedOrder||i.value===null||(b.preventDefault(),c.value=d,b.dataTransfer&&(b.dataTransfer.dropEffect="move"))}function g(d){const b=i.value;if(u(),o.fixedOrder||b===null||b===d)return;const x=[...o.tabs],[B]=x.splice(b,1);B&&(x.splice(d,0,B),n("reorder",x))}function u(){i.value=null,c.value=null}const y=e.computed(()=>l.value?"flex h-full flex-col items-center gap-1 overflow-y-auto overflow-x-hidden":"flex items-center gap-1 overflow-x-auto overflow-y-hidden");return(d,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 items-center gap-1",e.unref(l)?"w-full flex-col":"h-full"]),role:"tablist","aria-orientation":e.unref(l)?"vertical":"horizontal"},[e.createElementVNode("div",{ref_key:"carril",ref:r,class:e.normalizeClass(y.value),onWheel:C},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(x,B)=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:e.normalizeClass(["transition-opacity",[i.value===B?"opacity-40":"",c.value===B&&i.value!==B?"ring-2 ring-secondary rounded-corner":""]]),draggable:!t.fixedOrder,onDragstart:V=>w(B,V),onDragover:V=>k(B,V),onDrop:e.withModifiers(V=>g(B),["prevent"]),onDragend:u},[e.createVNode(K,{tab:x,active:x.id===t.modelValue,"close-label":t.closeLabel,"dirty-label":t.dirtyLabel,tabindex:B===s.value?0:-1,onSelect:V=>p(x.id),onClose:V=>n("close",x.id),onMenu:V=>n("menu",{id:x.id,...V}),onNavegar:V=>h(B,V),onMover:V=>E(B,V)},null,8,["tab","active","close-label","dirty-label","tabindex","onSelect","onClose","onMenu","onNavegar","onMover"])],42,mt))),128))],34),t.newLabel?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.newLabel,"aria-label":t.newLabel,onClick:b[0]||(b[0]=x=>n("new"))},[e.createVNode(S,{name:"gtk-add",type:"symbol",size:14})],8,ft)):e.createCommentVNode("",!0)],10,dt))}}),ut={class:"relative flex shrink-0 items-center"},pt=["title","aria-label","aria-expanded"],bt=["value","placeholder","aria-label"],ne=e.defineComponent({__name:"BarSearch",props:{modelValue:{default:""},placeholder:{default:""},label:{default:"Search"},collapsed:{type:Boolean,default:!1}},emits:["update:modelValue","search","open","close"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=L(),s=e.ref(!1),i=e.ref(null),c=e.computed(()=>l.value||o.collapsed),p=e.computed(()=>!c.value||s.value),h=e.computed(()=>{if(!c.value)return"";const g="absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";return r.value==="left"?`${g} left-full top-0 ml-1`:r.value==="right"?`${g} right-full top-0 mr-1`:r.value==="bottom"?`${g} bottom-full right-0 mb-1`:`${g} top-full right-0 mt-1`});async function E(){s.value=!0,n("open"),await e.nextTick(),i.value?.focus()}function C(){s.value&&(s.value=!1,n("close"))}function w(g){n("update:modelValue",g.target.value)}function k(){n("search",o.modelValue)}return(g,u)=>(e.openBlock(),e.createElementBlock("div",ut,[c.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.label,"aria-label":t.label,"aria-expanded":s.value,onMousedown:u[0]||(u[0]=e.withModifiers(()=>{},["prevent"])),onClick:u[1]||(u[1]=y=>s.value?C():E())},[e.createVNode(S,{name:"system-search",type:"symbol",size:14})],40,pt)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(h.value)},[e.createElementVNode("input",{ref_key:"campo",ref:i,type:"search",class:e.normalizeClass(["w-full rounded-corner border border-ui-border bg-ui-bg/80 px-2 py-1 text-sm outline-none focus:border-ui-border-strong",c.value?"":"w-48"]),value:t.modelValue,placeholder:t.placeholder||t.label,"aria-label":t.label,onInput:w,onKeydown:[e.withKeys(k,["enter"]),e.withKeys(C,["esc"])],onBlur:C},null,42,bt)],2)):e.createCommentVNode("",!0)]))}}),kt=["type","disabled"],gt={key:0,class:"w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"},yt=["src","alt"],ht={key:2},Ct=["src","alt"],wt=e.defineComponent({__name:"ActionButton",props:{label:{},disabled:{type:Boolean,default:!1},variant:{default:"primary"},loading:{type:Boolean,default:!1},customClass:{default:()=>({})},size:{default:"md"},fullWidth:{type:Boolean,default:!1},iconSrc:{default:""},iconAlt:{default:""},iconRight:{type:Boolean,default:!1},type:{default:"button"},stopPropagation:{type:Boolean,default:!1},preventDefault:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l={primary:"bg-primary dark:bg-primary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-primary/90 dark:hover:bg-primary-dark/90",secondary:"bg-secondary dark:bg-secondary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-secondary/80 dark:hover:bg-secondary-dark/80",danger:"bg-status-error dark:bg-status-error-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-status-error/90 dark:hover:bg-status-error-dark/90"},r={sm:"px-2 py-1 text-xs",md:"px-3 py-1 text-sm",lg:"px-4 py-2 text-base"},s=i=>{o.stopPropagation&&i.stopPropagation(),o.preventDefault&&i.preventDefault(),!o.disabled&&!o.loading&&n("click")};return(i,c)=>(e.openBlock(),e.createElementBlock("button",{type:o.type,onClick:s,class:e.normalizeClass(["rounded-corner transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",[l[o.variant],r[o.size],o.fullWidth?"w-full":"",o.iconSrc&&!o.label?"px-2 py-2":"",t.customClass]]),disabled:o.disabled||o.loading},[t.loading?(e.openBlock(),e.createElementBlock("span",gt)):e.createCommentVNode("",!0),o.iconSrc&&!o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:1,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,yt)):e.createCommentVNode("",!0),o.label?(e.openBlock(),e.createElementBlock("span",ht,e.toDisplayString(o.label),1)):e.createCommentVNode("",!0),o.iconSrc&&o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:3,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,Ct)):e.createCommentVNode("",!0)],10,kt))}}),I=(t,a)=>{const o=t.__vccOpts||t;for(const[n,l]of a)o[n]=l;return o},ae=I(wt,[["__scopeId","data-v-2eaf6e27"]]),xt={class:"text-base font-semibold m-0 text-primary dark:text-primary-dark"},le=I(e.defineComponent({__name:"ConfigSection",props:{title:{},icon:{default:""},customClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-4 p-4 background rounded-corner",t.customClass])},[e.createElementVNode("h3",xt,e.toDisplayString(t.icon?`${t.icon} ${t.title}`:t.title),1),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-45bd4eab"]]),Bt={class:"flex items-center gap-3 flex-1 min-w-0"},Et=["src","alt"],$t={class:"min-w-0"},zt={class:"font-semibold truncate"},Vt={key:0,class:"text-xs text-gray-400 truncate"},St={key:1,class:"text-xs text-gray-400 truncate"},Lt={key:2,class:"text-xs text-gray-400 flex gap-2 mt-1"},Dt={key:1,class:"w-2 h-2 rounded-full bg-green-500"},re=e.defineComponent({__name:"DeviceCard",props:{icon:{},title:{},subtitle:{default:""},metadata:{default:""},extraInfo:{default:()=>[]},isConnected:{type:Boolean,default:!1},showActionButton:{type:Boolean,default:!0},actionLabel:{default:"Conectar"},showStatusIndicator:{type:Boolean,default:!1},customClass:{default:""},clickable:{type:Boolean,default:!1}},emits:["action","click"],setup(t,{emit:a}){const o=a,n=()=>{o("action")},l=()=>{o("click")};return(r,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4",[{"border-l-4 border-green-500":t.isConnected},t.customClass]]),onClick:l},[e.createElementVNode("div",Bt,[e.createElementVNode("img",{src:t.icon,alt:t.title,class:"h-7 w-7 shrink-0"},null,8,Et),e.createElementVNode("div",$t,[e.createElementVNode("div",zt,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",Vt,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0),t.metadata?(e.openBlock(),e.createElementBlock("div",St,e.toDisplayString(t.metadata),1)):e.createCommentVNode("",!0),t.extraInfo&&t.extraInfo.length>0?(e.openBlock(),e.createElementBlock("div",Lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.extraInfo,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:c},e.toDisplayString(i),1))),128))])):e.createCommentVNode("",!0)])]),t.showActionButton?(e.openBlock(),e.createElementBlock("button",{key:0,class:"bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",onClick:e.withModifiers(n,["stop"])},e.toDisplayString(t.actionLabel),1)):e.createCommentVNode("",!0),t.showStatusIndicator&&t.isConnected?(e.openBlock(),e.createElementBlock("div",Dt)):e.createCommentVNode("",!0)],2))}}),U=Symbol("menú de vasak");function D(){const t=e.inject(U,null);if(t)return t;const a=e.ref(!1);return{abierto:a,idDelMenu:"vsk-menu-suelto",idDeLaEtiqueta:e.ref(null),ponerLaEtiqueta:()=>{},disparador:e.ref(null),ponerElDisparador:()=>{},focoAlAbrir:e.ref("ninguno"),abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1},alternar:()=>{a.value=!a.value}}}let ie=0;function se(){return ie+=1,`vsk-menu-${ie}`}const Nt={class:"relative inline-block"},ce=e.defineComponent({__name:"DropdownMenu",props:{open:{type:Boolean,default:void 0}},emits:["update:open"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(!1),r=e.ref(null),s=e.ref(null),i=e.ref("ninguno"),c=se();let p=null;const h=e.computed({get:()=>o.open??l.value,set:k=>{o.open===void 0&&(l.value=k),n("update:open",k)}});e.watch(h,k=>{if(k){const g=document.activeElement;p=g instanceof HTMLElement?g:null}else i.value="ninguno"});function E(k="ninguno"){i.value=k,h.value=!0}function C(k={}){if(h.value=!1,!k.devolverElFoco)return;const g=p??r.value;g?.isConnected&&g.focus()}function w(k="ninguno"){if(h.value){C({devolverElFoco:!0});return}E(k)}return e.provide(U,{abierto:h,idDelMenu:c,idDeLaEtiqueta:s,ponerLaEtiqueta:k=>{s.value=k},disparador:r,ponerElDisparador:k=>{r.value=k},focoAlAbrir:i,abrir:E,cerrar:C,alternar:w}),(k,g)=>(e.openBlock(),e.createElementBlock("div",Nt,[e.renderSlot(k.$slots,"default")]))}}),Mt=["id","aria-labelledby","inert"],At={role:"none",class:"py-1"},de=e.defineComponent({inheritAttrs:!1,__name:"DropdownMenuContent",props:{side:{default:"bottom"},align:{default:"start"},sideOffset:{default:4}},setup(t){const a=t,o=D(),{idDelMenu:n,idDeLaEtiqueta:l}=o,r=e.computed(()=>o.disparador.value),s=e.computed(()=>o.abierto.value),i=e.ref(null),c=e.ref({top:0,left:0});function p(){if(!r.value||!i.value)return;const u=r.value.getBoundingClientRect(),y=i.value.getBoundingClientRect();let d=0,b=0;switch(a.side){case"bottom":d=u.bottom+a.sideOffset;break;case"top":d=u.top-y.height-a.sideOffset;break;case"left":b=u.left-y.width-a.sideOffset,d=u.top;break;case"right":b=u.right+a.sideOffset,d=u.top;break}switch(a.align){case"start":(a.side==="bottom"||a.side==="top")&&(b=u.left);break;case"center":(a.side==="bottom"||a.side==="top")&&(b=u.left+u.width/2-y.width/2);break;case"end":(a.side==="bottom"||a.side==="top")&&(b=u.right-y.width);break}c.value={top:d,left:b}}function h(){return i.value?Array.from(i.value.querySelectorAll('[role="menuitem"]')):[]}function E(u){const y=h();if(!y.length)return;const d=y.length;y[(u%d+d)%d]?.focus()}function C(){const u=document.activeElement;return u instanceof HTMLElement?h().indexOf(u):-1}function w(u){const y=C();switch(u.key){case"ArrowDown":u.preventDefault(),E(y+1);break;case"ArrowUp":u.preventDefault(),E(y<=0?-1:y-1);break;case"Home":u.preventDefault(),E(0);break;case"End":u.preventDefault(),E(-1);break;case"Escape":u.preventDefault(),u.stopPropagation(),o.cerrar({devolverElFoco:!0});break;case"Tab":u.preventDefault(),o.cerrar({devolverElFoco:!0});break}}e.watch(s,async u=>{if(u)switch(await e.nextTick(),requestAnimationFrame(()=>{p()}),o.focoAlAbrir.value){case"primero":E(0);break;case"ultimo":E(-1);break;default:i.value?.focus()}});function k(){s.value&&p()}function g(u){const y=u.target,d=!!y.closest("[dropdown-content]"),b=!!r.value?.contains(y);!d&&!b&&o.cerrar()}return e.onMounted(()=>{document.addEventListener("click",g),window.addEventListener("resize",k),window.addEventListener("scroll",k,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",g),window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)}),(u,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-in-out","leave-active-class":"transition-all duration-150 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95",onEnter:y[1]||(y[1]=d=>d.offsetHeight),onLeave:y[2]||(y[2]=d=>d.offsetHeight)},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({ref_key:"contenido",ref:i},u.$attrs,{id:e.unref(n),role:"menu",tabindex:"-1","aria-orientation":"vertical","aria-labelledby":e.unref(l)??void 0,inert:!s.value,style:{position:"fixed",top:`${c.value.top}px`,left:`${c.value.left}px`,zIndex:50},"dropdown-content":"",class:"min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",onClick:y[0]||(y[0]=d=>d.stopPropagation()),onKeydown:w}),[e.createElementVNode("div",At,[e.renderSlot(u.$slots,"default")])],16,Mt),[[e.vShow,s.value]])]),_:3})]))}}),Tt=["aria-disabled","onKeydown"],me=e.defineComponent({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,default:!1}},emits:["select","click"],setup(t,{emit:a}){const o=t,n=a,l=D();function r(s){o.disabled||(n("select"),n("click",s),l.cerrar({devolverElFoco:!0}))}return(s,i)=>(e.openBlock(),e.createElementBlock("div",{role:"menuitem",tabindex:"0","aria-disabled":t.disabled||void 0,class:e.normalizeClass(["px-3 py-2 text-sm transition-colors outline-none",{"opacity-50 cursor-not-allowed":t.disabled,"cursor-pointer hover:bg-primary hover:text-tx-on-primary focus-visible:bg-primary focus-visible:text-tx-on-primary":!t.disabled}]),onClick:r,onKeydown:[e.withKeys(e.withModifiers(r,["prevent"]),["enter"]),e.withKeys(e.withModifiers(r,["prevent"]),["space"])]},[e.renderSlot(s.$slots,"default")],42,Tt))}}),fe=e.defineComponent({__name:"DropdownMenuLabel",setup(t){const a=D(),o=`${se()}-titulo`;return e.onMounted(()=>{a.ponerLaEtiqueta(o)}),e.onBeforeUnmount(()=>{a.ponerLaEtiqueta(null)}),(n,l)=>(e.openBlock(),e.createElementBlock("div",{id:o,role:"presentation",class:"px-3 py-2 text-sm font-semibold text-tx-main"},[e.renderSlot(n.$slots,"default")]))}}),It={role:"separator","aria-orientation":"horizontal",class:"bg-ui-bg/80 my-4 h-0.5"},ue=e.defineComponent({__name:"DropdownMenuSeparator",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",It))}});function pe(t){const a=t.filter(n=>n.type!==e.Comment&&!(n.type===e.Text&&typeof n.children=="string"&&!n.children.trim()));if(a.length!==1)return null;const o=a[0];return o.type===e.Fragment&&Array.isArray(o.children)?pe(o.children):o}function Ot(t){if(t instanceof HTMLElement)return t;const a=t?.$el;return a instanceof HTMLElement?a:null}const be=e.defineComponent({name:"DropdownMenuTrigger",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(t,{slots:a,attrs:o}){const n=D(),l=e.ref(null);function r(){n.ponerElDisparador(Ot(l.value))}function s(){t.disabled||(r(),n.alternar())}function i(c){if(!t.disabled)switch(c.key){case"Enter":case" ":c.preventDefault(),r(),n.alternar("primero");break;case"ArrowDown":c.preventDefault(),r(),n.abrir("primero");break;case"ArrowUp":c.preventDefault(),r(),n.abrir("ultimo");break;case"Escape":n.abierto.value&&(c.preventDefault(),n.cerrar({devolverElFoco:!0}));break}}return()=>{const c={ref:h=>{l.value=h,r()},"aria-haspopup":"menu","aria-expanded":n.abierto.value?"true":"false","aria-controls":n.abierto.value?n.idDelMenu:void 0,onClick:s,onKeydown:i},p=a.default?.()??[];if(t.asChild){const h=pe(p);if(h)return e.cloneVNode(h,{...o,...c})}return e.h("div",{...o,class:["dropdown-menu-trigger inline-block",o.class],...c},p)}}}),Pt=["for"],ke=I(e.defineComponent({__name:"FormGroup",props:{label:{},htmlFor:{default:""},customClass:{default:()=>({})},labelClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-2",t.customClass])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.htmlFor,class:e.normalizeClass(["text-sm font-medium text-primary dark:text-primary-dark",t.labelClass])},e.toDisplayString(t.label),11,Pt)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-c0d9d9cb"]]),ge=I(e.defineComponent({__name:"ListCard",props:{clickable:{type:Boolean,default:!1},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l=()=>{o.clickable&&n("click")};return(r,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",{"hover:bg-vsk-primary/5 cursor-pointer":o.clickable},t.customClass]),onClick:l},[e.renderSlot(r.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-f86d47da"]]),jt={class:"background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80"},Ft=["src","alt","title"],Rt={key:1,class:"w-8 h-8 flex items-center justify-center"},Kt=["src","alt"],Ut=["min","max","value"],ye=e.defineComponent({__name:"SliderControl",props:{icon:{},alt:{default:""},tooltip:{default:""},modelValue:{},min:{default:0},max:{default:100},showButton:{type:Boolean,default:!1},iconClass:{default:()=>({})},getPercentageClass:{type:Function,default:()=>""}},emits:["update:modelValue","buttonClick"],setup(t,{emit:a}){const o=t,n=a,l=e.computed(()=>{if(o.max<=o.min)return 0;const c=o.max-o.min,p=o.modelValue-o.min;return Math.round(p/c*100)}),r=e.computed(()=>o.getPercentageClass?o.getPercentageClass(l.value):""),s=c=>{const p=c.target;n("update:modelValue",Number(p.value))},i=()=>{n("buttonClick")};return(c,p)=>(e.openBlock(),e.createElementBlock("div",jt,[t.showButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:i,class:"w-8 h-8 flex items-center justify-center rounded-corner transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"},[e.createElementVNode("img",{src:t.icon,alt:t.alt,title:t.tooltip,class:e.normalizeClass(["w-6 h-6 transition-all duration-200",t.iconClass])},null,10,Ft)])):(e.openBlock(),e.createElementBlock("div",Rt,[e.createElementVNode("img",{src:t.icon,alt:t.alt,class:"w-6 h-6 transition-all duration-200"},null,8,Kt)])),e.createElementVNode("input",{type:"range",min:t.min,max:t.max,value:t.modelValue,onInput:s,class:"flex-1 transition-all duration-200 hover:scale-105"},null,40,Ut),e.createElementVNode("span",{class:e.normalizeClass(["w-12 text-right transition-all duration-200 font-medium",r.value])},e.toDisplayString(l.value)+"% ",3)]))}}),qt=["disabled"],he=e.defineComponent({__name:"SwitchToggle",props:{isOn:{type:Boolean},disabled:{type:Boolean,default:!1},size:{default:"small"},activeClass:{default:"bg-primary dark:bg-primary-dark"},inactiveClass:{default:"background"},customClass:{default:""}},emits:["toggle"],setup(t,{emit:a}){const o=t,n=a,l=()=>{n("toggle",!o.isOn)};return(r,s)=>(e.openBlock(),e.createElementBlock("button",{type:"button",onClick:l,disabled:t.disabled,class:e.normalizeClass(["relative inline-flex items-center rounded-full transition-colors",t.size==="small"?"h-6 w-11":"h-7 w-12",t.isOn?t.activeClass:t.inactiveClass,t.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer",t.customClass])},[e.createElementVNode("span",{class:e.normalizeClass(["inline-block transform rounded-full bg-white shadow transition-transform",t.size==="small"?"h-4 w-4":"h-6 w-6",t.isOn?t.size==="small"?"translate-x-6":"translate-x-5":"translate-x-1"])},null,2)],10,qt))}}),Ht=["disabled"],Wt=["src","alt","title"],Ce=e.defineComponent({__name:"ToggleControl",props:{icon:{},alt:{default:""},tooltip:{default:""},isActive:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},iconClass:{default:()=>({})},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=a,n=()=>{o("click")};return(l,r)=>(e.openBlock(),e.createElementBlock("button",{onClick:n,class:e.normalizeClass(["p-2 rounded-corner background hover:opacity-50 transition-all duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95",{"animate-pulse":t.isLoading,"ring-2 ring-primary dark:ring-primary-dark":t.isActive,"opacity-60":!t.isActive,...t.customClass}]),disabled:t.isLoading},[e.createElementVNode("img",{src:t.icon,alt:t.alt,title:t.tooltip,class:e.normalizeClass(["m-auto w-12.5 h-12.5 transition-all duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,10,Wt)],10,Ht))}}),Gt=["title"],Xt=["src","alt"],Yt={key:0,class:"absolute bottom-1 right-1 bg-primary dark:bg-primary-dark text-white text-xs rounded-full w-4 h-4 flex items-center justify-center font-bold animate-bounce"},we=e.defineComponent({__name:"TrayIconButton",props:{icon:{},alt:{default:""},tooltip:{default:""},badge:{default:null},iconClass:{default:()=>({})},customClass:{default:""},tooltipClass:{default:""},showCustomTooltip:{type:Boolean,default:!1},customTooltipText:{default:""}},emits:["click"],setup(t,{emit:a}){const o=a,n=e.ref(!1),l=()=>{o("click")};return(r,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-all duration-300",t.customClass]),title:t.tooltip,onClick:l,onMouseenter:s[0]||(s[0]=i=>n.value=!0),onMouseleave:s[1]||(s[1]=i=>n.value=!1)},[e.createElementVNode("img",{src:t.icon,alt:t.alt,class:e.normalizeClass(["m-auto h-5.5 w-auto transition-all duration-300",t.iconClass])},null,10,Xt),t.badge!==null&&t.badge>0?(e.openBlock(),e.createElementBlock("div",Yt,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0),t.showCustomTooltip&&t.customTooltipText?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-all duration-300 pointer-events-none background",[t.tooltipClass,{"opacity-0 -translate-y-2":!n.value,"opacity-100 translate-y-0":n.value}]])},e.toDisplayString(t.customTooltipText),3)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")],42,Gt))}}),Jt=[G,P,O,X,S,_,R,F,oe,K,ne,ae,le,re,ce,de,me,fe,ue,be,ke,ge,ye,he,Ce,we],Qt={install(t){Jt.forEach(a=>{t.component(a.name,a)})}};f.ActionButton=ae,f.AppBar=R,f.BarSearch=ne,f.CLAVE_DEL_MENU=U,f.CLAVE_DE_LA_BARRA=M,f.ConfigSection=le,f.DeviceCard=re,f.DropdownMenu=ce,f.DropdownMenuContent=de,f.DropdownMenuItem=me,f.DropdownMenuLabel=fe,f.DropdownMenuSeparator=ue,f.DropdownMenuTrigger=be,f.FormGroup=ke,f.LOS_TRES_CONTROLES=T,f.ListCard=ge,f.POSICIONES=Y,f.SelectField=X,f.SideBar=G,f.SideButton=P,f.SideGroup=O,f.SliderControl=ye,f.SwitchToggle=he,f.TabBar=oe,f.TabItem=K,f.ThemeIcon=S,f.ToggleControl=Ce,f.TrayIconButton=we,f.WindowControls=F,f.WindowFrame=_,f.default=Qt,f.esPosicion=J,f.orientacionDe=A,f.posicionDe=Q,f.usarElMenu=D,f.usarLaBarra=L,f.usarLaPosicionDeLaBarra=Z,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(p,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tauri-apps/api/event"),require("@vasakgroup/plugin-vicons"),require("@tauri-apps/api/window")):typeof define=="function"&&define.amd?define(["exports","vue","@tauri-apps/api/event","@vasakgroup/plugin-vicons","@tauri-apps/api/window"],e):(p=typeof globalThis<"u"?globalThis:p||self,e(p.VueLibVasak={},p.Vue,p.TauriEvent,p.VasakVicons,p.TauriWindow))})(this,(function(p,e,Se,J,Ne){"use strict";function De(t,a){const n=e.ref("");let o=null,l=!1,r=0;async function c(){const s=++r,d=t.value;if(!d){n.value="";return}const b=a.value==="symbol"?await J.getSymbolSource(d):await J.getIconSource(d);s===r&&(n.value=b)}return e.onMounted(async()=>{const s=await Se.listen("vicons:theme-changed",c);if(l){s();return}o=s,await c()}),e.onUnmounted(()=>{l=!0,o?.()}),e.watch(t,c),n}const Me=["src","alt"],z=e.defineComponent({__name:"ThemeIcon",props:{name:{},type:{default:"icon"},size:{default:18},alt:{default:""}},setup(t){const a=t,n=De(e.toRef(a,"name"),e.toRef(a,"type")),o=e.computed(()=>`${a.size}px`);return(l,r)=>e.unref(n)?(e.openBlock(),e.createElementBlock("img",{key:0,src:e.unref(n),alt:t.alt,style:e.normalizeStyle({width:o.value,height:o.value}),class:"shrink-0 object-contain"},null,12,Me)):(e.openBlock(),e.createElementBlock("span",{key:1,style:e.normalizeStyle({width:o.value,height:o.value}),class:"shrink-0"},null,4))}}),Ae={class:"flex flex-col gap-2"},Te=["aria-expanded"],Ie={key:1,class:"flex flex-col gap-1"},q=e.defineComponent({__name:"SideGroup",props:{title:{},collapsed:{type:Boolean,default:!1},defaultOpen:{type:Boolean,default:!0}},setup(t){const a=t,n=e.ref(a.defaultOpen);return e.watch(()=>a.collapsed,o=>{o&&(n.value=!0)}),(o,l)=>(e.openBlock(),e.createElementBlock("section",Ae,[t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"group flex w-full items-center justify-between rounded-corner px-2 py-1 text-tx-muted text-xs uppercase tracking-[0.08em] hover:bg-ui-surface/60","aria-expanded":n.value,onClick:l[0]||(l[0]=r=>n.value=!n.value)},[e.createElementVNode("span",null,e.toDisplayString(t.title),1),e.createVNode(z,{name:"pan-down-symbolic",type:"symbol",size:12,class:e.normalizeClass(["transition-transform duration-200",n.value?"":"-rotate-90"])},null,8,["class"])],8,Te)),n.value||t.collapsed?(e.openBlock(),e.createElementBlock("div",Ie,[e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0)]))}}),Oe=["title","aria-label","disabled","aria-current"],Pe={key:1},je={key:0,class:"min-w-0 flex-1 truncate font-medium"},Fe={key:1,class:"rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"},U=e.defineComponent({__name:"SideButton",props:{label:{},icon:{default:""},active:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},badge:{default:""}},emits:["click"],setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("button",{type:"button",title:t.collapsed?t.label:void 0,"aria-label":t.collapsed?t.label:void 0,disabled:t.disabled,"aria-current":t.active?"page":void 0,class:e.normalizeClass(["group relative flex w-full items-center gap-3 rounded-corner border px-3 py-2 text-left text-sm transition-all duration-200",[t.active?"border-secondary bg-primary/15 text-tx-main shadow-sm":"border-transparent bg-transparent hover:border-ui-border hover:bg-ui-surface/70",t.disabled?"cursor-not-allowed opacity-60":"cursor-pointer",t.collapsed?"justify-center px-2":""]]),onClick:n[0]||(n[0]=o=>a.$emit("click"))},[e.createElementVNode("span",{class:e.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide",t.active?"border-secondary bg-primary/20":""]),"aria-hidden":"true"},[t.icon?(e.openBlock(),e.createBlock(z,{key:0,name:t.icon,size:20},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Pe,e.toDisplayString(t.label.charAt(0).toUpperCase()),1))],2),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",je,e.toDisplayString(t.label),1)),!t.collapsed&&t.badge!==""?(e.openBlock(),e.createElementBlock("span",Fe,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,Oe))}}),Re={key:0,class:"flex flex-col gap-2 border-ui-border border-b p-2"},Ke={class:"flex items-center gap-2"},He=["aria-label","aria-expanded"],qe={key:0,class:"min-w-0 flex-1"},Ue={key:0,class:"truncate font-semibold text-sm"},We={key:1,class:"truncate text-tx-muted text-xs"},Ge={key:0},Ye={key:1,class:"flex border-ui-border border-b p-2"},Qe=["aria-label","aria-expanded"],Xe={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2"},Z="hidden h-8 w-8 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-surface/70 transition-colors hover:bg-ui-surface md:inline-flex",v=767,_=e.defineComponent({__name:"SideBar",props:{title:{default:""},subtitle:{default:""},categories:{default:()=>[]},modelValue:{default:""},collapsed:{type:Boolean,default:void 0},collapseLabel:{default:"Collapse"},expandLabel:{default:"Expand"}},emits:["update:modelValue","update:collapsed","change"],setup(t,{expose:a,emit:n}){const o=t,l=n,r=e.ref(o.collapsed??!1),c=e.ref(!1);let s=null,d=null;const b=e.computed(()=>c.value||r.value),y=e.computed(()=>!!(o.title||o.subtitle));e.computed(()=>o.categories.length>0);function $(){return document.documentElement?.clientWidth||window.innerWidth}function w(){c.value=$()<=v}function C(){r.value=!r.value,l("update:collapsed",r.value)}function k(h){l("update:modelValue",h),l("change",h)}return e.watch(()=>o.collapsed,h=>{h!==void 0&&(r.value=h)}),e.onMounted(()=>{s=window.matchMedia(`(max-width: ${v}px)`),w(),s.addEventListener("change",w),window.addEventListener("resize",w),typeof ResizeObserver<"u"&&document.documentElement&&(d=new ResizeObserver(w),d.observe(document.documentElement))}),e.onBeforeUnmount(()=>{s?.removeEventListener("change",w),window.removeEventListener("resize",w),d?.disconnect(),d=null}),a({collapsed:b}),(h,V)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-all duration-300",["w-[84px]",b.value?"md:w-[84px]":"md:w-72"]])},[y.value||h.$slots.header?(e.openBlock(),e.createElementBlock("header",Re,[e.createElementVNode("div",Ke,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Z),"aria-label":b.value?t.expandLabel:t.collapseLabel,"aria-expanded":!b.value,onClick:C},[e.createVNode(z,{name:b.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,He),y.value&&!b.value?(e.openBlock(),e.createElementBlock("div",qe,[t.title?(e.openBlock(),e.createElementBlock("p",Ue,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.subtitle?(e.openBlock(),e.createElementBlock("p",We,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),h.$slots.header&&!b.value?(e.openBlock(),e.createElementBlock("div",Ge,[e.renderSlot(h.$slots,"header",{collapsed:b.value})])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Z),"aria-label":b.value?t.expandLabel:t.collapseLabel,"aria-expanded":!b.value,onClick:C},[e.createVNode(z,{name:b.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Qe)])),e.createElementVNode("div",Xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,L=>(e.openBlock(),e.createBlock(q,{key:L.id,title:L.title,collapsed:b.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.items,g=>(e.openBlock(),e.createBlock(U,{key:g.id,label:g.label,icon:g.icon,badge:g.badge,disabled:g.disabled,collapsed:b.value,active:t.modelValue===g.id,onClick:i=>k(g.id)},null,8,["label","icon","badge","disabled","collapsed","active","onClick"]))),128))]),_:2},1032,["title","collapsed"]))),128)),e.renderSlot(h.$slots,"default",{collapsed:b.value})])],2))}}),Je={class:"flex min-w-0 flex-col gap-1"},Ze=["for"],ve={class:"relative flex min-w-0 items-center"},_e=["id"],ee=e.defineComponent({inheritAttrs:!1,__name:"SelectField",props:e.mergeModels({label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const a=t,n=e.useAttrs(),o=e.useId(),l=e.computed(()=>n.id??o),[r,c]=e.useModel(t,"modelValue",{set(s){return c.number?Number(s):s}});return(s,d)=>(e.openBlock(),e.createElementBlock("div",Je,[a.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:l.value,class:"text-tx-muted text-xs"},e.toDisplayString(a.label),9,Ze)):e.createCommentVNode("",!0),e.createElementVNode("div",ve,[e.withDirectives(e.createElementVNode("select",e.mergeProps({id:l.value,"onUpdate:modelValue":d[0]||(d[0]=b=>e.isRef(r)?r.value=b:null),class:"min-w-0 flex-1 appearance-none truncate rounded-corner border border-ui-border bg-ui-surface/60 py-1.5 pr-8 pl-2 text-sm text-tx-main"},e.unref(n)),[e.renderSlot(s.$slots,"default")],16,_e),[[e.vModelSelect,e.unref(r)]]),e.createVNode(z,{name:"pan-down-symbolic",type:"symbol",size:14,class:"pointer-events-none absolute right-2"})])]))}}),O=Symbol("barra de vasak");function P(t){return t==="left"||t==="right"?"vertical":"horizontal"}const te=["top","bottom","left","right"];function ne(t){return typeof t=="string"&&te.includes(t)}function T(){const t=e.inject(O,null);if(t)return t;const a=e.ref("top");return{posicion:a,orientacion:e.computed(()=>P(a.value)),vertical:e.computed(()=>P(a.value)==="vertical")}}const j=["minimize","maximize","close"],et="window",tt="barPosition";function oe(t){const n=t?.[et]?.[tt];return ne(n)?n:null}function ae(t="top"){const a=e.ref(t);let n=null,o=!1;async function l(){try{const{readConfig:r}=await import("@vasakgroup/plugin-config-manager"),c=await r();a.value=oe(c)??t}catch{}}return e.onMounted(async()=>{await l();try{const{listen:r}=await import("@tauri-apps/api/event"),c=await r("config-changed",()=>{l()});if(o){c();return}n=c}catch{}}),e.onBeforeUnmount(()=>{o=!0,n?.(),n=null}),a}function le(t){const a=e.getCurrentInstance(),n={};for(const o of t){const l=`on${o[0].toUpperCase()}${o.slice(1)}`;a?.vnode.props?.[l]&&(n[o]=()=>a.emit(o))}return n}const nt=["title","aria-label"],ot=["title","aria-label"],at=["title","aria-label"],W="flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors",G=e.defineComponent({__name:"WindowControls",props:{controls:{default:()=>j},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"}},emits:["minimize","maximize","close"],setup(t,{emit:a}){const n=t,o=a,{vertical:l}=T(),r=e.computed(()=>({minimize:n.controls.includes("minimize"),maximize:n.controls.includes("maximize"),close:n.controls.includes("close")}));function c(){return Ne.getCurrentWindow()}const s=e.getCurrentInstance();function d(w){return!!s?.vnode.props?.[`on${w}`]}function b(){if(d("Minimize"))return o("minimize");c().minimize()}function y(){if(d("Maximize"))return o("maximize");c().toggleMaximize()}function $(){if(d("Close"))return o("close");c().close()}return(w,C)=>t.controls.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex shrink-0 gap-1",e.unref(l)?"flex-col":""]),"data-tauri-drag-region":""},[r.value.minimize?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass([W,"hover:bg-status-success"]),title:t.minimizeLabel,"aria-label":t.minimizeLabel,onClick:C[0]||(C[0]=k=>b())},[e.createVNode(z,{name:"window-minimize",size:24})],10,nt)):e.createCommentVNode("",!0),r.value.maximize?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass([W,"hover:bg-status-warning"]),title:t.maximizeLabel,"aria-label":t.maximizeLabel,onClick:C[1]||(C[1]=k=>y())},[e.createVNode(z,{name:"window-maximize",size:24})],10,ot)):e.createCommentVNode("",!0),r.value.close?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:e.normalizeClass([W,"hover:bg-status-error"]),title:t.closeLabel,"aria-label":t.closeLabel,onClick:C[2]||(C[2]=k=>$())},[e.createVNode(z,{name:"window-close",size:24})],10,at)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),lt={key:0,class:"flex shrink-0 items-center","data-tauri-drag-region":""},rt={key:1,class:"min-w-0 shrink truncate text-sm","data-tauri-drag-region":""},Y=e.defineComponent({__name:"AppBar",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},controls:{default:()=>j}},emits:["minimize","maximize","close"],setup(t){const a=t,n=T(),o=e.computed(()=>a.position??n.posicion.value),l=e.computed(()=>o.value==="left"||o.value==="right");return e.provide(O,{posicion:o,orientacion:e.computed(()=>l.value?"vertical":"horizontal"),vertical:l}),(r,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex shrink-0 items-center gap-2 p-1 font-title",l.value?"h-full flex-col":"w-full"]),"data-tauri-drag-region":""},[r.$slots.identidad?(e.openBlock(),e.createElementBlock("div",lt,[e.renderSlot(r.$slots,"identidad")])):e.createCommentVNode("",!0),(r.$slots.titulo||t.title)&&!l.value?(e.openBlock(),e.createElementBlock("p",rt,[e.renderSlot(r.$slots,"titulo",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto",l.value?"flex-col":""]),"data-tauri-drag-region":""},[e.renderSlot(r.$slots,"default")],2),r.$slots.acciones?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["flex shrink-0 items-center gap-1",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"acciones")],2)):e.createCommentVNode("",!0),e.createVNode(G,e.mergeProps({controls:t.controls,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel},e.toHandlers(e.unref(le)(["minimize","maximize","close"]))),null,16,["controls","minimize-label","maximize-label","close-label"]),r.$slots.centro?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["pointer-events-none absolute flex items-center justify-center",l.value?"inset-x-0 top-1/2 -translate-y-1/2 flex-col":"inset-y-0 left-1/2 -translate-x-1/2"])},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-auto flex items-center gap-2",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"centro")],2)],2)):e.createCommentVNode("",!0)],2))}}),it={class:"flex min-h-0 min-w-0 flex-1"},re=e.defineComponent({__name:"WindowFrame",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},controls:{default:()=>j},hideBar:{type:Boolean,default:!1}},emits:["minimize","maximize","close"],setup(t){const a=t,n=ae(),o=e.computed(()=>a.position??n.value),l=e.computed(()=>P(o.value)),r=e.computed(()=>l.value==="vertical");e.provide(O,{posicion:o,orientacion:l,vertical:r});const c={top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"};return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80",c[o.value]])},[t.hideBar?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Y,e.mergeProps({key:0,position:o.value,title:t.title,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel,controls:t.controls},e.toHandlers(e.unref(le)(["minimize","maximize","close"]))),e.createSlots({default:e.withCtx(()=>[e.renderSlot(s.$slots,"barra")]),_:2},[s.$slots.identidad?{name:"identidad",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"identidad")]),key:"0"}:void 0,s.$slots.titulo?{name:"titulo",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"titulo")]),key:"1"}:void 0,s.$slots.centro?{name:"centro",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"centro")]),key:"2"}:void 0,s.$slots.acciones?{name:"acciones",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"acciones")]),key:"3"}:void 0]),1040,["position","title","minimize-label","maximize-label","close-label","controls"])),e.createElementVNode("div",it,[e.renderSlot(s.$slots,"default")])],2))}}),st=["aria-selected","title","aria-label","tabindex"],ct={key:1,"aria-hidden":"true"},dt={key:2,class:"min-w-0 flex-1 truncate"},mt=["title","aria-label"],ft={class:"whitespace-nowrap"},ut={key:0,class:"size-2 shrink-0 rounded-full bg-current","aria-hidden":"true"},pt=["title","aria-label"],bt=500,ie=8,se=6,Q=e.defineComponent({__name:"TabItem",props:{tab:{},active:{type:Boolean,default:!1},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},tabindex:{default:0}},emits:["select","close","menu","mover","navegar"],setup(t,{emit:a}){const n=t,o=a,{vertical:l,posicion:r}=T(),c=e.ref(null),s=e.ref(null),d=e.ref(!1),b=e.ref(!1),y=e.ref(!1),$=e.ref({top:0,left:0,right:0});let w=null,C=null;const k=e.computed(()=>n.tab.closable!==!1),h=e.computed(()=>n.tab.tooltip??n.tab.label),V=e.computed(()=>n.tab.dirty?`${n.tab.label} · ${n.dirtyLabel}`:n.tab.label),L=e.computed(()=>n.tab.label.trim().charAt(0).toUpperCase()),g=e.computed(()=>d.value||y.value),i=e.computed(()=>!!n.tab.dirty&&!(g.value&&k.value)),m=e.computed(()=>k.value&&(g.value||n.active||!n.tab.dirty)),u=e.computed(()=>l.value&&(d.value||b.value||y.value)),x=e.computed(()=>{const B={position:"fixed",top:`${$.value.top}px`,zIndex:50};return r.value==="right"?{...B,right:`${$.value.right+se}px`}:{...B,left:`${$.value.left+se}px`}});function R(){const B=c.value;if(!B)return;const f=B.getBoundingClientRect();$.value={top:f.top,left:f.right,right:window.innerWidth-f.left}}function D(B){const f=B.relatedTarget;f&&s.value?.contains(f)||(y.value=!1)}function K(){d.value=!0,R()}function M(){b.value=!0,R()}function S(){w!==null&&clearTimeout(w),w=null,C=null}function A(B){B.button===0&&(C={x:B.clientX,y:B.clientY},w=setTimeout(()=>{C&&o("menu",C),S()},bt))}function H(B){if(!C)return;(Math.abs(B.clientX-C.x)>ie||Math.abs(B.clientY-C.y)>ie)&&S()}function on(B){B.button===1&&k.value&&(B.preventDefault(),o("close"))}function an(B){B.preventDefault(),o("menu",{x:B.clientX,y:B.clientY})}return e.onBeforeUnmount(S),(B,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"raiz",ref:c,class:e.normalizeClass(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors",[t.active?"bg-primary font-bold text-tx-on-primary":"bg-ui-bg/80 hover:bg-ui-surface/70",e.unref(l)?"size-8 justify-center p-0 text-sm":"w-34 max-w-34 px-3 py-1 text-sm"]]),role:"tab","aria-selected":t.active,title:h.value,"aria-label":V.value,tabindex:t.tabindex,onClick:f[5]||(f[5]=e.withModifiers(E=>o("select"),["stop"])),onKeydown:[f[6]||(f[6]=e.withKeys(e.withModifiers(E=>o("select"),["stop"]),["enter"])),f[7]||(f[7]=e.withKeys(e.withModifiers(E=>o("select"),["prevent","stop"]),["space"])),f[8]||(f[8]=e.withKeys(e.withModifiers(E=>o("navegar","anterior"),["prevent","stop"]),["left"])),f[9]||(f[9]=e.withKeys(e.withModifiers(E=>o("navegar","anterior"),["prevent","stop"]),["up"])),f[10]||(f[10]=e.withKeys(e.withModifiers(E=>o("navegar","siguiente"),["prevent","stop"]),["right"])),f[11]||(f[11]=e.withKeys(e.withModifiers(E=>o("navegar","siguiente"),["prevent","stop"]),["down"])),f[12]||(f[12]=e.withKeys(e.withModifiers(E=>o("navegar","primera"),["prevent","stop"]),["home"])),f[13]||(f[13]=e.withKeys(e.withModifiers(E=>o("navegar","ultima"),["prevent","stop"]),["end"])),f[14]||(f[14]=e.withKeys(e.withModifiers(E=>o("mover",-1),["alt","prevent","stop"]),["left"])),f[15]||(f[15]=e.withKeys(e.withModifiers(E=>o("mover",-1),["alt","prevent","stop"]),["up"])),f[16]||(f[16]=e.withKeys(e.withModifiers(E=>o("mover",1),["alt","prevent","stop"]),["right"])),f[17]||(f[17]=e.withKeys(e.withModifiers(E=>o("mover",1),["alt","prevent","stop"]),["down"])),f[18]||(f[18]=e.withKeys(e.withModifiers(E=>k.value&&o("close"),["prevent","stop"]),["delete"]))],onAuxclick:e.withModifiers(on,["stop"]),onContextmenu:an,onPointerdown:A,onPointermove:H,onPointerup:S,onPointerleave:S,onMouseenter:K,onMouseleave:f[19]||(f[19]=E=>d.value=!1),onFocus:M,onBlur:f[20]||(f[20]=E=>b.value=!1)},[t.tab.icon?(e.openBlock(),e.createBlock(z,{key:0,name:t.tab.icon,size:16,class:"shrink-0"},null,8,["name"])):e.unref(l)?(e.openBlock(),e.createElementBlock("span",ct,e.toDisplayString(L.value),1)):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",dt,e.toDisplayString(t.tab.label),1)),i.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(["size-2 shrink-0 rounded-full bg-current",e.unref(l)?"absolute right-0.5 top-0.5":""]),"aria-hidden":"true"},null,2)):m.value&&!e.unref(l)?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${V.value}`,onClick:f[0]||(f[0]=e.withModifiers(E=>o("close"),["stop"]))},[e.createVNode(z,{name:"gtk-close",type:"symbol",size:12})],8,mt)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 scale-95","leave-active-class":"transition duration-100 ease-in","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg",t.active?"font-bold":""]),ref_key:"desplegadoRef",ref:s,style:e.normalizeStyle(x.value),onMouseenter:f[2]||(f[2]=E=>y.value=!0),onMouseleave:f[3]||(f[3]=E=>y.value=!1),onFocusin:f[4]||(f[4]=E=>y.value=!0),onFocusout:D},[e.createElementVNode("span",ft,e.toDisplayString(t.tab.label),1),t.tab.dirty?(e.openBlock(),e.createElementBlock("span",ut)):e.createCommentVNode("",!0),k.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${V.value}`,onClick:f[1]||(f[1]=e.withModifiers(E=>o("close"),["stop"]))},[e.createVNode(z,{name:"gtk-close",type:"symbol",size:12})],8,pt)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:1})]))],42,st))}}),kt=["aria-orientation"],gt=["draggable","onDragstart","onDragover","onDrop"],ht=["title","aria-label"],ce=e.defineComponent({__name:"TabBar",props:{tabs:{},modelValue:{default:""},newLabel:{default:""},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},fixedOrder:{type:Boolean,default:!1}},emits:["update:modelValue","select","close","new","reorder","menu"],setup(t,{emit:a}){const n=t,o=a,{vertical:l}=T(),r=e.ref(null),c=e.ref(0),s=e.ref(null),d=e.ref(null);function b(g){o("update:modelValue",g),o("select",g)}async function y(g,i){const m=n.tabs.length-1;if(m<0)return;const u=i==="primera"?0:i==="ultima"?m:i==="anterior"?(g-1+n.tabs.length)%n.tabs.length:(g+1)%n.tabs.length;c.value=u,await e.nextTick(),r.value?.querySelectorAll('[role="tab"]')?.[u]?.focus()}function $(g,i){if(n.fixedOrder)return;const m=g+i;if(m<0||m>=n.tabs.length)return;const u=[...n.tabs],[x]=u.splice(g,1);x&&(u.splice(m,0,x),c.value=m,o("reorder",u))}function w(g){const i=r.value;if(!i)return;const m=g.deltaY||g.deltaX||0,u=l.value?i.scrollTop:i.scrollLeft;l.value?i.scrollTop+=m:i.scrollLeft+=m,(l.value?i.scrollTop:i.scrollLeft)!==u&&g.preventDefault()}function C(g,i){n.fixedOrder||(s.value=g,i.dataTransfer?.setData("text/plain",String(g)),i.dataTransfer&&(i.dataTransfer.effectAllowed="move"))}function k(g,i){n.fixedOrder||s.value===null||(i.preventDefault(),d.value=g,i.dataTransfer&&(i.dataTransfer.dropEffect="move"))}function h(g){const i=s.value;if(V(),n.fixedOrder||i===null||i===g)return;const m=[...n.tabs],[u]=m.splice(i,1);u&&(m.splice(g,0,u),o("reorder",m))}function V(){s.value=null,d.value=null}const L=e.computed(()=>l.value?"flex h-full flex-col items-center gap-1 overflow-y-auto overflow-x-hidden":"flex items-center gap-1 overflow-x-auto overflow-y-hidden");return(g,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 items-center gap-1",e.unref(l)?"w-full flex-col":"h-full"]),role:"tablist","aria-orientation":e.unref(l)?"vertical":"horizontal"},[e.createElementVNode("div",{ref_key:"carril",ref:r,class:e.normalizeClass(L.value),onWheel:w},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(m,u)=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:e.normalizeClass(["transition-opacity",[s.value===u?"opacity-40":"",d.value===u&&s.value!==u?"ring-2 ring-secondary rounded-corner":""]]),draggable:!t.fixedOrder,onDragstart:x=>C(u,x),onDragover:x=>k(u,x),onDrop:e.withModifiers(x=>h(u),["prevent"]),onDragend:V},[e.createVNode(Q,{tab:m,active:m.id===t.modelValue,"close-label":t.closeLabel,"dirty-label":t.dirtyLabel,tabindex:u===c.value?0:-1,onSelect:x=>b(m.id),onClose:x=>o("close",m.id),onMenu:x=>o("menu",{id:m.id,...x}),onNavegar:x=>y(u,x),onMover:x=>$(u,x)},null,8,["tab","active","close-label","dirty-label","tabindex","onSelect","onClose","onMenu","onNavegar","onMover"])],42,gt))),128))],34),t.newLabel?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.newLabel,"aria-label":t.newLabel,onClick:i[0]||(i[0]=m=>o("new"))},[e.createVNode(z,{name:"gtk-add",type:"symbol",size:14})],8,ht)):e.createCommentVNode("",!0)],10,kt))}}),yt={class:"relative flex shrink-0 items-center"},wt=["title","aria-label","aria-expanded"],Ct=["value","placeholder","aria-label"],de=e.defineComponent({__name:"BarSearch",props:{modelValue:{default:""},placeholder:{default:""},label:{default:"Search"},collapsed:{type:Boolean,default:!1}},emits:["update:modelValue","search","open","close"],setup(t,{emit:a}){const n=t,o=a,{vertical:l,posicion:r}=T(),c=e.ref(!1),s=e.ref(null),d=e.computed(()=>l.value||n.collapsed),b=e.computed(()=>!d.value||c.value),y=e.computed(()=>{if(!d.value)return"";const h="absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";return r.value==="left"?`${h} left-full top-0 ml-1`:r.value==="right"?`${h} right-full top-0 mr-1`:r.value==="bottom"?`${h} bottom-full right-0 mb-1`:`${h} top-full right-0 mt-1`});async function $(){c.value=!0,o("open"),await e.nextTick(),s.value?.focus()}function w(){c.value&&(c.value=!1,o("close"))}function C(h){o("update:modelValue",h.target.value)}function k(){o("search",n.modelValue)}return(h,V)=>(e.openBlock(),e.createElementBlock("div",yt,[d.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.label,"aria-label":t.label,"aria-expanded":c.value,onMousedown:V[0]||(V[0]=e.withModifiers(()=>{},["prevent"])),onClick:V[1]||(V[1]=L=>c.value?w():$())},[e.createVNode(z,{name:"system-search",type:"symbol",size:14})],40,wt)):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(y.value)},[e.createElementVNode("input",{ref_key:"campo",ref:s,type:"search",class:e.normalizeClass(["w-full rounded-corner border border-ui-border bg-ui-bg/80 px-2 py-1 text-sm outline-none focus:border-ui-border-strong",d.value?"":"w-48"]),value:t.modelValue,placeholder:t.placeholder||t.label,"aria-label":t.label,onInput:C,onKeydown:[e.withKeys(k,["enter"]),e.withKeys(w,["esc"])],onBlur:w},null,42,Ct)],2)):e.createCommentVNode("",!0)]))}}),xt=["type","disabled"],Bt={key:0,class:"w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"},Et=["src","alt"],$t={key:2},zt=["src","alt"],Vt=e.defineComponent({__name:"ActionButton",props:{label:{},disabled:{type:Boolean,default:!1},variant:{default:"primary"},loading:{type:Boolean,default:!1},customClass:{default:()=>({})},size:{default:"md"},fullWidth:{type:Boolean,default:!1},iconSrc:{default:""},iconAlt:{default:""},iconRight:{type:Boolean,default:!1},type:{default:"button"},stopPropagation:{type:Boolean,default:!1},preventDefault:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){const n=t,o=a,l={primary:"bg-primary dark:bg-primary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-primary/90 dark:hover:bg-primary-dark/90",secondary:"bg-secondary dark:bg-secondary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-secondary/80 dark:hover:bg-secondary-dark/80",danger:"bg-status-error dark:bg-status-error-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-status-error/90 dark:hover:bg-status-error-dark/90"},r={sm:"px-2 py-1 text-xs",md:"px-3 py-1 text-sm",lg:"px-4 py-2 text-base"},c=s=>{n.stopPropagation&&s.stopPropagation(),n.preventDefault&&s.preventDefault(),!n.disabled&&!n.loading&&o("click")};return(s,d)=>(e.openBlock(),e.createElementBlock("button",{type:n.type,onClick:c,class:e.normalizeClass(["rounded-corner transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",[l[n.variant],r[n.size],n.fullWidth?"w-full":"",n.iconSrc&&!n.label?"px-2 py-2":"",t.customClass]]),disabled:n.disabled||n.loading},[t.loading?(e.openBlock(),e.createElementBlock("span",Bt)):e.createCommentVNode("",!0),n.iconSrc&&!n.iconRight?(e.openBlock(),e.createElementBlock("img",{key:1,src:n.iconSrc,alt:n.iconAlt||n.label,class:"w-4 h-4"},null,8,Et)):e.createCommentVNode("",!0),n.label?(e.openBlock(),e.createElementBlock("span",$t,e.toDisplayString(n.label),1)):e.createCommentVNode("",!0),n.iconSrc&&n.iconRight?(e.openBlock(),e.createElementBlock("img",{key:3,src:n.iconSrc,alt:n.iconAlt||n.label,class:"w-4 h-4"},null,8,zt)):e.createCommentVNode("",!0)],10,xt))}}),F=(t,a)=>{const n=t.__vccOpts||t;for(const[o,l]of a)n[o]=l;return n},me=F(Vt,[["__scopeId","data-v-2eaf6e27"]]),Lt={class:"text-base font-semibold m-0 text-primary dark:text-primary-dark"},fe=F(e.defineComponent({__name:"ConfigSection",props:{title:{},icon:{default:""},customClass:{default:()=>({})}},setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-4 p-4 background rounded-corner",t.customClass])},[e.createElementVNode("h3",Lt,e.toDisplayString(t.icon?`${t.icon} ${t.title}`:t.title),1),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-45bd4eab"]]),St={class:"flex items-center gap-3 flex-1 min-w-0"},Nt=["src","alt"],Dt={class:"min-w-0"},Mt={class:"font-semibold truncate"},At={key:0,class:"text-xs text-gray-400 truncate"},Tt={key:1,class:"text-xs text-gray-400 truncate"},It={key:2,class:"text-xs text-gray-400 flex gap-2 mt-1"},Ot={key:1,class:"w-2 h-2 rounded-full bg-green-500"},ue=e.defineComponent({__name:"DeviceCard",props:{icon:{},title:{},subtitle:{default:""},metadata:{default:""},extraInfo:{default:()=>[]},isConnected:{type:Boolean,default:!1},showActionButton:{type:Boolean,default:!0},actionLabel:{default:"Conectar"},showStatusIndicator:{type:Boolean,default:!1},customClass:{default:""},clickable:{type:Boolean,default:!1}},emits:["action","click"],setup(t,{emit:a}){const n=a,o=()=>{n("action")},l=()=>{n("click")};return(r,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4",[{"border-l-4 border-green-500":t.isConnected},t.customClass]]),onClick:l},[e.createElementVNode("div",St,[e.createElementVNode("img",{src:t.icon,alt:t.title,class:"h-7 w-7 shrink-0"},null,8,Nt),e.createElementVNode("div",Dt,[e.createElementVNode("div",Mt,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",At,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0),t.metadata?(e.openBlock(),e.createElementBlock("div",Tt,e.toDisplayString(t.metadata),1)):e.createCommentVNode("",!0),t.extraInfo&&t.extraInfo.length>0?(e.openBlock(),e.createElementBlock("div",It,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.extraInfo,(s,d)=>(e.openBlock(),e.createElementBlock("span",{key:d},e.toDisplayString(s),1))),128))])):e.createCommentVNode("",!0)])]),t.showActionButton?(e.openBlock(),e.createElementBlock("button",{key:0,class:"bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",onClick:e.withModifiers(o,["stop"])},e.toDisplayString(t.actionLabel),1)):e.createCommentVNode("",!0),t.showStatusIndicator&&t.isConnected?(e.openBlock(),e.createElementBlock("div",Ot)):e.createCommentVNode("",!0)],2))}}),X=Symbol("menú de vasak");function I(){const t=e.inject(X,null);if(t)return t;const a=e.ref(!1);return{abierto:a,idDelMenu:"vsk-menu-suelto",idDeLaEtiqueta:e.ref(null),ponerLaEtiqueta:()=>{},disparador:e.ref(null),ponerElDisparador:()=>{},focoAlAbrir:e.ref("ninguno"),abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1},alternar:()=>{a.value=!a.value}}}let pe=0;function be(){return pe+=1,`vsk-menu-${pe}`}const Pt={class:"relative inline-block"},ke=e.defineComponent({__name:"DropdownMenu",props:{open:{type:Boolean,default:void 0}},emits:["update:open"],setup(t,{emit:a}){const n=t,o=a,l=e.ref(!1),r=e.ref(null),c=e.ref(null),s=e.ref("ninguno"),d=be();let b=null;const y=e.computed({get:()=>n.open??l.value,set:k=>{n.open===void 0&&(l.value=k),o("update:open",k)}});e.watch(y,k=>{if(k){const h=document.activeElement;b=h instanceof HTMLElement?h:null}else s.value="ninguno"});function $(k="ninguno"){s.value=k,y.value=!0}function w(k={}){if(y.value=!1,!k.devolverElFoco)return;const h=b??r.value;h?.isConnected&&h.focus()}function C(k="ninguno"){if(y.value){w({devolverElFoco:!0});return}$(k)}return e.provide(X,{abierto:y,idDelMenu:d,idDeLaEtiqueta:c,ponerLaEtiqueta:k=>{c.value=k},disparador:r,ponerElDisparador:k=>{r.value=k},focoAlAbrir:s,abrir:$,cerrar:w,alternar:C}),(k,h)=>(e.openBlock(),e.createElementBlock("div",Pt,[e.renderSlot(k.$slots,"default")]))}}),jt=["id","aria-labelledby","inert"],Ft={role:"none",class:"py-1"},N=8,ge=e.defineComponent({inheritAttrs:!1,__name:"DropdownMenuContent",props:{side:{default:"bottom"},align:{default:"start"},sideOffset:{default:4}},setup(t){const a=t,n=I(),{idDelMenu:o,idDeLaEtiqueta:l}=n,r=e.computed(()=>n.disparador.value),c=e.computed(()=>n.abierto.value),s=e.ref(null),d=e.ref({top:0,left:0,techo:null}),b={top:"bottom",bottom:"top",left:"right",right:"left"};function y(i,m){const u=a.sideOffset+N;switch(i){case"bottom":return window.innerHeight-m.bottom-u;case"top":return m.top-u;case"right":return window.innerWidth-m.right-u;case"left":return m.left-u}}function $(i,m,u){return u<m?m:Math.min(Math.max(i,m),u)}function w(){if(!r.value||!s.value)return;const i=r.value.getBoundingClientRect(),m=s.value.scrollHeight,u=s.value.offsetWidth,x=a.side==="top"||a.side==="bottom",R=x?m:u;let D=a.side;const K=y(D,i);K<R&&y(b[D],i)>K&&(D=b[D]);let M=0,S=0,A=null;switch(D){case"bottom":{M=i.bottom+a.sideOffset,A=Math.max(window.innerHeight-M-N,0);break}case"top":{A=Math.max(y("top",i),0),M=i.top-a.sideOffset-Math.min(m,A);break}case"left":case"right":{S=D==="right"?i.right+a.sideOffset:i.left-u-a.sideOffset;const H=window.innerHeight-2*N;M=$(i.top,N,window.innerHeight-Math.min(m,H)-N),A=Math.max(window.innerHeight-M-N,0);break}}if(x)switch(a.align){case"start":S=i.left;break;case"center":S=i.left+i.width/2-u/2;break;case"end":S=i.right-u;break}S=$(S,N,window.innerWidth-u-N),d.value={top:M,left:S,techo:A}}function C(){return s.value?Array.from(s.value.querySelectorAll('[role="menuitem"]')):[]}function k(i){const m=C();if(!m.length)return;const u=m.length;m[(i%u+u)%u]?.focus()}function h(){const i=document.activeElement;return i instanceof HTMLElement?C().indexOf(i):-1}function V(i){const m=h();switch(i.key){case"ArrowDown":i.preventDefault(),k(m+1);break;case"ArrowUp":i.preventDefault(),k(m<=0?-1:m-1);break;case"Home":i.preventDefault(),k(0);break;case"End":i.preventDefault(),k(-1);break;case"Escape":i.preventDefault(),i.stopPropagation(),n.cerrar({devolverElFoco:!0});break;case"Tab":i.preventDefault(),n.cerrar({devolverElFoco:!0});break}}e.watch(c,async i=>{if(i)switch(await e.nextTick(),requestAnimationFrame(()=>{w()}),n.focoAlAbrir.value){case"primero":k(0);break;case"ultimo":k(-1);break;default:s.value?.focus()}});function L(i){c.value&&(i&&s.value?.contains(i.target)||w())}function g(i){const m=i.target,u=!!m.closest("[dropdown-content]"),x=!!r.value?.contains(m);!u&&!x&&n.cerrar()}return e.onMounted(()=>{document.addEventListener("click",g),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",g),window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0)}),(i,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-in-out","leave-active-class":"transition-all duration-150 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95",onEnter:m[1]||(m[1]=u=>u.offsetHeight),onLeave:m[2]||(m[2]=u=>u.offsetHeight)},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({ref_key:"contenido",ref:s},i.$attrs,{id:e.unref(o),role:"menu",tabindex:"-1","aria-orientation":"vertical","aria-labelledby":e.unref(l)??void 0,inert:!c.value,style:{position:"fixed",top:`${d.value.top}px`,left:`${d.value.left}px`,maxHeight:d.value.techo===null?void 0:`${d.value.techo}px`,overflowY:"auto",overscrollBehavior:"contain",zIndex:50},"dropdown-content":"",class:"min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",onClick:m[0]||(m[0]=u=>u.stopPropagation()),onKeydown:V}),[e.createElementVNode("div",Ft,[e.renderSlot(i.$slots,"default")])],16,jt),[[e.vShow,c.value]])]),_:3})]))}}),Rt=["aria-disabled","onKeydown"],he=e.defineComponent({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,default:!1}},emits:["select","click"],setup(t,{emit:a}){const n=t,o=a,l=I();function r(c){n.disabled||(o("select"),o("click",c),l.cerrar({devolverElFoco:!0}))}return(c,s)=>(e.openBlock(),e.createElementBlock("div",{role:"menuitem",tabindex:"0","aria-disabled":t.disabled||void 0,class:e.normalizeClass(["px-3 py-2 text-sm transition-colors outline-none",{"opacity-50 cursor-not-allowed":t.disabled,"cursor-pointer hover:bg-primary hover:text-tx-on-primary focus-visible:bg-primary focus-visible:text-tx-on-primary":!t.disabled}]),onClick:r,onKeydown:[e.withKeys(e.withModifiers(r,["prevent"]),["enter"]),e.withKeys(e.withModifiers(r,["prevent"]),["space"])]},[e.renderSlot(c.$slots,"default")],42,Rt))}}),ye=e.defineComponent({__name:"DropdownMenuLabel",setup(t){const a=I(),n=`${be()}-titulo`;return e.onMounted(()=>{a.ponerLaEtiqueta(n)}),e.onBeforeUnmount(()=>{a.ponerLaEtiqueta(null)}),(o,l)=>(e.openBlock(),e.createElementBlock("div",{id:n,role:"presentation",class:"px-3 py-2 text-sm font-semibold text-tx-main"},[e.renderSlot(o.$slots,"default")]))}}),Kt={role:"separator","aria-orientation":"horizontal",class:"bg-ui-bg/80 my-4 h-0.5"},we=e.defineComponent({__name:"DropdownMenuSeparator",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("div",Kt))}});function Ce(t){const a=t.filter(o=>o.type!==e.Comment&&!(o.type===e.Text&&typeof o.children=="string"&&!o.children.trim()));if(a.length!==1)return null;const n=a[0];return n.type===e.Fragment&&Array.isArray(n.children)?Ce(n.children):n}function Ht(t){if(t instanceof HTMLElement)return t;const a=t?.$el;return a instanceof HTMLElement?a:null}const xe=e.defineComponent({name:"DropdownMenuTrigger",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(t,{slots:a,attrs:n}){const o=I(),l=e.ref(null);function r(){o.ponerElDisparador(Ht(l.value))}function c(){t.disabled||(r(),o.alternar())}function s(d){if(!t.disabled)switch(d.key){case"Enter":case" ":d.preventDefault(),r(),o.alternar("primero");break;case"ArrowDown":d.preventDefault(),r(),o.abrir("primero");break;case"ArrowUp":d.preventDefault(),r(),o.abrir("ultimo");break;case"Escape":o.abierto.value&&(d.preventDefault(),o.cerrar({devolverElFoco:!0}));break}}return()=>{const d={ref:y=>{l.value=y,r()},"aria-haspopup":"menu","aria-expanded":o.abierto.value?"true":"false","aria-controls":o.abierto.value?o.idDelMenu:void 0,onClick:c,onKeydown:s},b=a.default?.()??[];if(t.asChild){const y=Ce(b);if(y)return e.cloneVNode(y,{...n,...d})}return e.h("div",{...n,class:["dropdown-menu-trigger inline-block",n.class],...d},b)}}}),qt=["for"],Be=F(e.defineComponent({__name:"FormGroup",props:{label:{},htmlFor:{default:""},customClass:{default:()=>({})},labelClass:{default:()=>({})}},setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-2",t.customClass])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.htmlFor,class:e.normalizeClass(["text-sm font-medium text-primary dark:text-primary-dark",t.labelClass])},e.toDisplayString(t.label),11,qt)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-c0d9d9cb"]]),Ee=F(e.defineComponent({__name:"ListCard",props:{clickable:{type:Boolean,default:!1},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const n=t,o=a,l=()=>{n.clickable&&o("click")};return(r,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",{"hover:bg-vsk-primary/5 cursor-pointer":n.clickable},t.customClass]),onClick:l},[e.renderSlot(r.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-f86d47da"]]),Ut={class:"background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80"},Wt=["src","alt","title"],Gt={key:1,class:"w-8 h-8 flex items-center justify-center"},Yt=["src","alt"],Qt=["min","max","value"],$e=e.defineComponent({__name:"SliderControl",props:{icon:{},alt:{default:""},tooltip:{default:""},modelValue:{},min:{default:0},max:{default:100},showButton:{type:Boolean,default:!1},iconClass:{default:()=>({})},getPercentageClass:{type:Function,default:()=>""}},emits:["update:modelValue","buttonClick"],setup(t,{emit:a}){const n=t,o=a,l=e.computed(()=>{if(n.max<=n.min)return 0;const d=n.max-n.min,b=n.modelValue-n.min;return Math.round(b/d*100)}),r=e.computed(()=>n.getPercentageClass?n.getPercentageClass(l.value):""),c=d=>{const b=d.target;o("update:modelValue",Number(b.value))},s=()=>{o("buttonClick")};return(d,b)=>(e.openBlock(),e.createElementBlock("div",Ut,[t.showButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:s,class:"w-8 h-8 flex items-center justify-center rounded-corner transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"},[e.createElementVNode("img",{src:t.icon,alt:t.alt,title:t.tooltip,class:e.normalizeClass(["w-6 h-6 transition-all duration-200",t.iconClass])},null,10,Wt)])):(e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("img",{src:t.icon,alt:t.alt,class:"w-6 h-6 transition-all duration-200"},null,8,Yt)])),e.createElementVNode("input",{type:"range",min:t.min,max:t.max,value:t.modelValue,onInput:c,class:"flex-1 transition-all duration-200 hover:scale-105"},null,40,Qt),e.createElementVNode("span",{class:e.normalizeClass(["w-12 text-right transition-all duration-200 font-medium",r.value])},e.toDisplayString(l.value)+"% ",3)]))}}),Xt=["disabled"],ze=e.defineComponent({__name:"SwitchToggle",props:{isOn:{type:Boolean},disabled:{type:Boolean,default:!1},size:{default:"small"},activeClass:{default:"bg-primary dark:bg-primary-dark"},inactiveClass:{default:"background"},customClass:{default:""}},emits:["toggle"],setup(t,{emit:a}){const n=t,o=a,l=()=>{o("toggle",!n.isOn)};return(r,c)=>(e.openBlock(),e.createElementBlock("button",{type:"button",onClick:l,disabled:t.disabled,class:e.normalizeClass(["relative inline-flex items-center rounded-full transition-colors",t.size==="small"?"h-6 w-11":"h-7 w-12",t.isOn?t.activeClass:t.inactiveClass,t.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer",t.customClass])},[e.createElementVNode("span",{class:e.normalizeClass(["inline-block transform rounded-full bg-white shadow transition-transform",t.size==="small"?"h-4 w-4":"h-6 w-6",t.isOn?t.size==="small"?"translate-x-6":"translate-x-5":"translate-x-1"])},null,2)],10,Xt))}}),Jt=["disabled"],Zt=["src","alt","title"],Ve=e.defineComponent({__name:"ToggleControl",props:{icon:{},alt:{default:""},tooltip:{default:""},isActive:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},iconClass:{default:()=>({})},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const n=a,o=()=>{n("click")};return(l,r)=>(e.openBlock(),e.createElementBlock("button",{onClick:o,class:e.normalizeClass(["p-2 rounded-corner background hover:opacity-50 transition-all duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95",{"animate-pulse":t.isLoading,"ring-2 ring-primary dark:ring-primary-dark":t.isActive,"opacity-60":!t.isActive,...t.customClass}]),disabled:t.isLoading},[e.createElementVNode("img",{src:t.icon,alt:t.alt,title:t.tooltip,class:e.normalizeClass(["m-auto w-12.5 h-12.5 transition-all duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,10,Zt)],10,Jt))}}),vt=["title"],_t=["src","alt"],en={key:0,class:"absolute bottom-1 right-1 bg-primary dark:bg-primary-dark text-white text-xs rounded-full w-4 h-4 flex items-center justify-center font-bold animate-bounce"},Le=e.defineComponent({__name:"TrayIconButton",props:{icon:{},alt:{default:""},tooltip:{default:""},badge:{default:null},iconClass:{default:()=>({})},customClass:{default:""},tooltipClass:{default:""},showCustomTooltip:{type:Boolean,default:!1},customTooltipText:{default:""}},emits:["click"],setup(t,{emit:a}){const n=a,o=e.ref(!1),l=()=>{n("click")};return(r,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-all duration-300",t.customClass]),title:t.tooltip,onClick:l,onMouseenter:c[0]||(c[0]=s=>o.value=!0),onMouseleave:c[1]||(c[1]=s=>o.value=!1)},[e.createElementVNode("img",{src:t.icon,alt:t.alt,class:e.normalizeClass(["m-auto h-5.5 w-auto transition-all duration-300",t.iconClass])},null,10,_t),t.badge!==null&&t.badge>0?(e.openBlock(),e.createElementBlock("div",en,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0),t.showCustomTooltip&&t.customTooltipText?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-all duration-300 pointer-events-none background",[t.tooltipClass,{"opacity-0 -translate-y-2":!o.value,"opacity-100 translate-y-0":o.value}]])},e.toDisplayString(t.customTooltipText),3)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")],42,vt))}}),tn=[_,U,q,ee,z,re,Y,G,ce,Q,de,me,fe,ue,ke,ge,he,ye,we,xe,Be,Ee,$e,ze,Ve,Le],nn={install(t){tn.forEach(a=>{t.component(a.name,a)})}};p.ActionButton=me,p.AppBar=Y,p.BarSearch=de,p.CLAVE_DEL_MENU=X,p.CLAVE_DE_LA_BARRA=O,p.ConfigSection=fe,p.DeviceCard=ue,p.DropdownMenu=ke,p.DropdownMenuContent=ge,p.DropdownMenuItem=he,p.DropdownMenuLabel=ye,p.DropdownMenuSeparator=we,p.DropdownMenuTrigger=xe,p.FormGroup=Be,p.LOS_TRES_CONTROLES=j,p.ListCard=Ee,p.POSICIONES=te,p.SelectField=ee,p.SideBar=_,p.SideButton=U,p.SideGroup=q,p.SliderControl=$e,p.SwitchToggle=ze,p.TabBar=ce,p.TabItem=Q,p.ThemeIcon=z,p.ToggleControl=Ve,p.TrayIconButton=Le,p.WindowControls=G,p.WindowFrame=re,p.default=nn,p.esPosicion=ne,p.orientacionDe=P,p.posicionDe=oe,p.usarElMenu=I,p.usarLaBarra=T,p.usarLaPosicionDeLaBarra=ae,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vasakgroup/vue-libvasak",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Vue componenets for VSK Applications",
5
5
  "main": "./dist/vue-libvasak.umd.js",
6
6
  "module": "./dist/vue-libvasak.es.js",
package/readme.md CHANGED
@@ -87,6 +87,11 @@ decide when to open it.
87
87
  A disabled item stays focusable and keeps its place in the arrow rotation, with
88
88
  `aria-disabled`: an option that vanishes cannot be discovered.
89
89
 
90
+ `side` is a **preference**, not an order: if the menu does not fit on the side
91
+ you asked for and there is more room on the opposite one, it flips. Whatever is
92
+ left over after that is capped to the space actually available and scrolls
93
+ inside — so a menu taller than the window never runs off the edge.
94
+
90
95
  ## Contributors
91
96
 
92
97
  <center>