@vasakgroup/vue-libvasak 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/dropdown/DropdownMenu.vue.d.ts +23 -0
- package/dist/types/dropdown/DropdownMenuContent.vue.d.ts +22 -0
- package/dist/types/dropdown/DropdownMenuItem.vue.d.ts +24 -0
- package/dist/types/dropdown/DropdownMenuLabel.vue.d.ts +13 -0
- package/dist/types/dropdown/DropdownMenuSeparator.vue.d.ts +3 -0
- package/dist/types/dropdown/DropdownMenuTrigger.vue.d.ts +52 -0
- package/dist/types/dropdown/tipos.d.ts +50 -0
- package/dist/types/index.d.ts +11 -3
- package/dist/types/window/AppBar.vue.d.ts +21 -6
- package/dist/types/window/WindowControls.vue.d.ts +13 -1
- package/dist/types/window/WindowFrame.vue.d.ts +22 -8
- package/dist/types/window/reenvio.d.ts +21 -0
- package/dist/types/window/tipos.d.ts +4 -0
- package/dist/vue-libvasak.es.js +1029 -599
- package/dist/vue-libvasak.umd.js +1 -1
- package/package.json +1 -1
- package/readme.md +38 -0
package/dist/vue-libvasak.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(d,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):(d=typeof globalThis<"u"?globalThis:d||self,e(d.VueLibVasak={},d.Vue,d.TauriEvent,d.VasakVicons,d.TauriWindow))})(this,(function(d,e,de,F,me){"use strict";function fe(t,n){const l=e.ref("");let a=null,o=!1,i=0;async function c(){const s=++i,m=t.value;if(!m){l.value="";return}const u=n.value==="symbol"?await F.getSymbolSource(m):await F.getIconSource(m);s===i&&(l.value=u)}return e.onMounted(async()=>{const s=await de.listen("vicons:theme-changed",c);if(o){s();return}a=s,await c()}),e.onUnmounted(()=>{o=!0,a?.()}),e.watch(t,c),l}const ue=["src","alt"],B=e.defineComponent({__name:"ThemeIcon",props:{name:{},type:{default:"icon"},size:{default:18},alt:{default:""}},setup(t){const n=t,l=fe(e.toRef(n,"name"),e.toRef(n,"type")),a=e.computed(()=>`${n.size}px`);return(o,i)=>e.unref(l)?(e.openBlock(),e.createElementBlock("img",{key:0,src:e.unref(l),alt:t.alt,style:e.normalizeStyle({width:a.value,height:a.value}),class:"shrink-0 object-contain"},null,12,ue)):(e.openBlock(),e.createElementBlock("span",{key:1,style:e.normalizeStyle({width:a.value,height:a.value}),class:"shrink-0"},null,4))}}),be={class:"flex flex-col gap-2"},pe=["aria-expanded"],ke={key:1,class:"flex flex-col gap-1"},T=e.defineComponent({__name:"SideGroup",props:{title:{},collapsed:{type:Boolean,default:!1},defaultOpen:{type:Boolean,default:!0}},setup(t){const n=t,l=e.ref(n.defaultOpen);return e.watch(()=>n.collapsed,a=>{a&&(l.value=!0)}),(a,o)=>(e.openBlock(),e.createElementBlock("section",be,[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":l.value,onClick:o[0]||(o[0]=i=>l.value=!l.value)},[e.createElementVNode("span",null,e.toDisplayString(t.title),1),e.createVNode(B,{name:"pan-down-symbolic",type:"symbol",size:12,class:e.normalizeClass(["transition-transform duration-200",l.value?"":"-rotate-90"])},null,8,["class"])],8,pe)),l.value||t.collapsed?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(a.$slots,"default")])):e.createCommentVNode("",!0)]))}}),ge=["title","aria-label","disabled","aria-current"],ye={key:1},he={key:0,class:"min-w-0 flex-1 truncate font-medium"},Ce={key:1,class:"rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"},I=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(n,l)=>(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:l[0]||(l[0]=a=>n.$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(B,{key:0,name:t.icon,size:20},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",ye,e.toDisplayString(t.label.charAt(0).toUpperCase()),1))],2),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",he,e.toDisplayString(t.label),1)),!t.collapsed&&t.badge!==""?(e.openBlock(),e.createElementBlock("span",Ce,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,ge))}}),xe={key:0,class:"flex flex-col gap-2 border-ui-border border-b p-2"},Be={class:"flex items-center gap-2"},we=["aria-label","aria-expanded"],$e={key:0,class:"min-w-0 flex-1"},Ee={key:0,class:"truncate font-semibold text-sm"},ze={key:1,class:"truncate text-tx-muted text-xs"},Ve={key:0},Se={key:1,class:"flex border-ui-border border-b p-2"},Ne=["aria-label","aria-expanded"],Le={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2"},K="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,U=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:n,emit:l}){const a=t,o=l,i=e.ref(a.collapsed??!1),c=e.ref(!1);let s=null,m=null;const u=e.computed(()=>c.value||i.value),$=e.computed(()=>!!(a.title||a.subtitle));e.computed(()=>a.categories.length>0);function V(){return document.documentElement?.clientWidth||window.innerWidth}function x(){c.value=V()<=W}function w(){i.value=!i.value,o("update:collapsed",i.value)}function z(g){o("update:modelValue",g),o("change",g)}return e.watch(()=>a.collapsed,g=>{g!==void 0&&(i.value=g)}),e.onMounted(()=>{s=window.matchMedia(`(max-width: ${W}px)`),x(),s.addEventListener("change",x),window.addEventListener("resize",x),typeof ResizeObserver<"u"&&document.documentElement&&(m=new ResizeObserver(x),m.observe(document.documentElement))}),e.onBeforeUnmount(()=>{s?.removeEventListener("change",x),window.removeEventListener("resize",x),m?.disconnect(),m=null}),n({collapsed:u}),(g,E)=>(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]",u.value?"md:w-[84px]":"md:w-72"]])},[$.value||g.$slots.header?(e.openBlock(),e.createElementBlock("header",xe,[e.createElementVNode("div",Be,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(K),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:w},[e.createVNode(B,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,we),$.value&&!u.value?(e.openBlock(),e.createElementBlock("div",$e,[t.title?(e.openBlock(),e.createElementBlock("p",Ee,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.subtitle?(e.openBlock(),e.createElementBlock("p",ze,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),g.$slots.header&&!u.value?(e.openBlock(),e.createElementBlock("div",Ve,[e.renderSlot(g.$slots,"header",{collapsed:u.value})])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(K),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:w},[e.createVNode(B,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Ne)])),e.createElementVNode("div",Le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,S=>(e.openBlock(),e.createBlock(T,{key:S.id,title:S.title,collapsed:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.items,f=>(e.openBlock(),e.createBlock(I,{key:f.id,label:f.label,icon:f.icon,badge:f.badge,disabled:f.disabled,collapsed:u.value,active:t.modelValue===f.id,onClick:b=>z(f.id)},null,8,["label","icon","badge","disabled","collapsed","active","onClick"]))),128))]),_:2},1032,["title","collapsed"]))),128)),e.renderSlot(g.$slots,"default",{collapsed:u.value})])],2))}}),De={class:"flex min-w-0 flex-col gap-1"},Me=["for"],Ae={class:"relative flex min-w-0 items-center"},Te=["id"],q=e.defineComponent({inheritAttrs:!1,__name:"SelectField",props:e.mergeModels({label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const n=t,l=e.useAttrs(),a=e.useId(),o=e.computed(()=>l.id??a),[i,c]=e.useModel(t,"modelValue",{set(s){return c.number?Number(s):s}});return(s,m)=>(e.openBlock(),e.createElementBlock("div",De,[n.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:o.value,class:"text-tx-muted text-xs"},e.toDisplayString(n.label),9,Me)):e.createCommentVNode("",!0),e.createElementVNode("div",Ae,[e.withDirectives(e.createElementVNode("select",e.mergeProps({id:o.value,"onUpdate:modelValue":m[0]||(m[0]=u=>e.isRef(i)?i.value=u: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(l)),[e.renderSlot(s.$slots,"default")],16,Te),[[e.vModelSelect,e.unref(i)]]),e.createVNode(B,{name:"pan-down-symbolic",type:"symbol",size:14,class:"pointer-events-none absolute right-2"})])]))}}),D=Symbol("barra de vasak");function M(t){return t==="left"||t==="right"?"vertical":"horizontal"}const G=["top","bottom","left","right"];function X(t){return typeof t=="string"&&G.includes(t)}function N(){const t=e.inject(D,null);if(t)return t;const n=e.ref("top");return{posicion:n,orientacion:e.computed(()=>M(n.value)),vertical:e.computed(()=>M(n.value)==="vertical")}}const Ie="window",Pe="barPosition";function Y(t){const l=t?.[Ie]?.[Pe];return X(l)?l:null}function H(t="top"){const n=e.ref(t);let l=null,a=!1;async function o(){try{const{readConfig:i}=await import("@vasakgroup/plugin-config-manager"),c=await i();n.value=Y(c)??t}catch{}}return e.onMounted(async()=>{await o();try{const{listen:i}=await import("@tauri-apps/api/event"),c=await i("config-changed",()=>{o()});if(a){c();return}l=c}catch{}}),e.onBeforeUnmount(()=>{a=!0,l?.(),l=null}),n}const Oe=["title","aria-label"],je=["title","aria-label"],Re=["title","aria-label"],P="flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors",O=e.defineComponent({__name:"WindowControls",props:{minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"}},setup(t){const{vertical:n}=N();function l(){return me.getCurrentWindow()}return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex shrink-0 gap-1",e.unref(n)?"flex-col":""]),"data-tauri-drag-region":""},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([P,"hover:bg-status-success"]),title:t.minimizeLabel,"aria-label":t.minimizeLabel,onClick:o[0]||(o[0]=i=>l().minimize())},[e.createVNode(B,{name:"window-minimize",size:24})],10,Oe),e.createElementVNode("button",{type:"button",class:e.normalizeClass([P,"hover:bg-status-warning"]),title:t.maximizeLabel,"aria-label":t.maximizeLabel,onClick:o[1]||(o[1]=i=>l().toggleMaximize())},[e.createVNode(B,{name:"window-maximize",size:24})],10,je),e.createElementVNode("button",{type:"button",class:e.normalizeClass([P,"hover:bg-status-error"]),title:t.closeLabel,"aria-label":t.closeLabel,onClick:o[2]||(o[2]=i=>l().close())},[e.createVNode(B,{name:"window-close",size:24})],10,Re)],2))}}),Fe={key:0,class:"flex shrink-0 items-center","data-tauri-drag-region":""},Ke={key:1,class:"min-w-0 shrink truncate text-sm","data-tauri-drag-region":""},j=e.defineComponent({__name:"AppBar",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},hideControls:{type:Boolean,default:!1}},setup(t){const n=t,l=N(),a=e.computed(()=>n.position??l.posicion.value),o=e.computed(()=>a.value==="left"||a.value==="right");return e.provide(D,{posicion:a,orientacion:e.computed(()=>o.value?"vertical":"horizontal"),vertical:o}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex shrink-0 items-center gap-2 p-1 font-title",o.value?"h-full flex-col":"w-full"]),"data-tauri-drag-region":""},[i.$slots.identidad?(e.openBlock(),e.createElementBlock("div",Fe,[e.renderSlot(i.$slots,"identidad")])):e.createCommentVNode("",!0),(i.$slots.titulo||t.title)&&!o.value?(e.openBlock(),e.createElementBlock("p",Ke,[e.renderSlot(i.$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",o.value?"flex-col":""]),"data-tauri-drag-region":""},[e.renderSlot(i.$slots,"default")],2),i.$slots.acciones?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["flex shrink-0 items-center gap-1",o.value?"flex-col":""])},[e.renderSlot(i.$slots,"acciones")],2)):e.createCommentVNode("",!0),t.hideControls?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(O,{key:3,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel},null,8,["minimize-label","maximize-label","close-label"]))],2))}}),We={class:"flex min-h-0 min-w-0 flex-1"},J=e.defineComponent({__name:"WindowFrame",props:{position:{default:null},title:{default:""},minimizeLabel:{default:"Minimize"},maximizeLabel:{default:"Maximize"},closeLabel:{default:"Close"},hideControls:{type:Boolean,default:!1},hideBar:{type:Boolean,default:!1}},setup(t){const n=t,l=H(),a=e.computed(()=>n.position??l.value),o=e.computed(()=>M(a.value)),i=e.computed(()=>o.value==="vertical");e.provide(D,{posicion:a,orientacion:o,vertical:i});const c={top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"};return(s,m)=>(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[a.value]])},[t.hideBar?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(j,{key:0,position:a.value,title:t.title,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel,"hide-controls":t.hideControls},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.acciones?{name:"acciones",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"acciones")]),key:"2"}:void 0]),1032,["position","title","minimize-label","maximize-label","close-label","hide-controls"])),e.createElementVNode("div",We,[e.renderSlot(s.$slots,"default")])],2))}}),Ue=["aria-selected","title","aria-label","tabindex"],qe={key:1,"aria-hidden":"true"},Ge={key:2,class:"min-w-0 flex-1 truncate"},Xe=["title","aria-label"],Ye={class:"whitespace-nowrap"},He={key:0,class:"size-2 shrink-0 rounded-full bg-current","aria-hidden":"true"},Je=["title","aria-label"],Qe=500,Q=8,Z=6,R=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:n}){const l=t,a=n,{vertical:o,posicion:i}=N(),c=e.ref(null),s=e.ref(null),m=e.ref(!1),u=e.ref(!1),$=e.ref(!1),V=e.ref({top:0,left:0,right:0});let x=null,w=null;const z=e.computed(()=>l.tab.closable!==!1),g=e.computed(()=>l.tab.tooltip??l.tab.label),E=e.computed(()=>l.tab.dirty?`${l.tab.label} · ${l.dirtyLabel}`:l.tab.label),S=e.computed(()=>l.tab.label.trim().charAt(0).toUpperCase()),f=e.computed(()=>m.value||$.value),b=e.computed(()=>!!l.tab.dirty&&!(f.value&&z.value)),p=e.computed(()=>z.value&&(f.value||l.active||!l.tab.dirty)),k=e.computed(()=>o.value&&(m.value||u.value||$.value)),C=e.computed(()=>{const y={position:"fixed",top:`${V.value.top}px`,zIndex:50};return i.value==="right"?{...y,right:`${V.value.right+Z}px`}:{...y,left:`${V.value.left+Z}px`}});function ce(){const y=c.value;if(!y)return;const r=y.getBoundingClientRect();V.value={top:r.top,left:r.right,right:window.innerWidth-r.left}}function Mt(y){const r=y.relatedTarget;r&&s.value?.contains(r)||($.value=!1)}function At(){m.value=!0,ce()}function Tt(){u.value=!0,ce()}function L(){x!==null&&clearTimeout(x),x=null,w=null}function It(y){y.button===0&&(w={x:y.clientX,y:y.clientY},x=setTimeout(()=>{w&&a("menu",w),L()},Qe))}function Pt(y){if(!w)return;(Math.abs(y.clientX-w.x)>Q||Math.abs(y.clientY-w.y)>Q)&&L()}function Ot(y){y.button===1&&z.value&&(y.preventDefault(),a("close"))}function jt(y){y.preventDefault(),a("menu",{x:y.clientX,y:y.clientY})}return e.onBeforeUnmount(L),(y,r)=>(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(o)?"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":E.value,tabindex:t.tabindex,onClick:r[5]||(r[5]=e.withModifiers(h=>a("select"),["stop"])),onKeydown:[r[6]||(r[6]=e.withKeys(e.withModifiers(h=>a("select"),["stop"]),["enter"])),r[7]||(r[7]=e.withKeys(e.withModifiers(h=>a("select"),["prevent","stop"]),["space"])),r[8]||(r[8]=e.withKeys(e.withModifiers(h=>a("navegar","anterior"),["prevent","stop"]),["left"])),r[9]||(r[9]=e.withKeys(e.withModifiers(h=>a("navegar","anterior"),["prevent","stop"]),["up"])),r[10]||(r[10]=e.withKeys(e.withModifiers(h=>a("navegar","siguiente"),["prevent","stop"]),["right"])),r[11]||(r[11]=e.withKeys(e.withModifiers(h=>a("navegar","siguiente"),["prevent","stop"]),["down"])),r[12]||(r[12]=e.withKeys(e.withModifiers(h=>a("navegar","primera"),["prevent","stop"]),["home"])),r[13]||(r[13]=e.withKeys(e.withModifiers(h=>a("navegar","ultima"),["prevent","stop"]),["end"])),r[14]||(r[14]=e.withKeys(e.withModifiers(h=>a("mover",-1),["alt","prevent","stop"]),["left"])),r[15]||(r[15]=e.withKeys(e.withModifiers(h=>a("mover",-1),["alt","prevent","stop"]),["up"])),r[16]||(r[16]=e.withKeys(e.withModifiers(h=>a("mover",1),["alt","prevent","stop"]),["right"])),r[17]||(r[17]=e.withKeys(e.withModifiers(h=>a("mover",1),["alt","prevent","stop"]),["down"])),r[18]||(r[18]=e.withKeys(e.withModifiers(h=>z.value&&a("close"),["prevent","stop"]),["delete"]))],onAuxclick:e.withModifiers(Ot,["stop"]),onContextmenu:jt,onPointerdown:It,onPointermove:Pt,onPointerup:L,onPointerleave:L,onMouseenter:At,onMouseleave:r[19]||(r[19]=h=>m.value=!1),onFocus:Tt,onBlur:r[20]||(r[20]=h=>u.value=!1)},[t.tab.icon?(e.openBlock(),e.createBlock(B,{key:0,name:t.tab.icon,size:16,class:"shrink-0"},null,8,["name"])):e.unref(o)?(e.openBlock(),e.createElementBlock("span",qe,e.toDisplayString(S.value),1)):e.createCommentVNode("",!0),e.unref(o)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ge,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(o)?"absolute right-0.5 top-0.5":""]),"aria-hidden":"true"},null,2)):p.value&&!e.unref(o)?(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}: ${E.value}`,onClick:r[0]||(r[0]=e.withModifiers(h=>a("close"),["stop"]))},[e.createVNode(B,{name:"gtk-close",type:"symbol",size:12})],8,Xe)):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(()=>[k.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(C.value),onMouseenter:r[2]||(r[2]=h=>$.value=!0),onMouseleave:r[3]||(r[3]=h=>$.value=!1),onFocusin:r[4]||(r[4]=h=>$.value=!0),onFocusout:Mt},[e.createElementVNode("span",Ye,e.toDisplayString(t.tab.label),1),t.tab.dirty?(e.openBlock(),e.createElementBlock("span",He)):e.createCommentVNode("",!0),z.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}: ${E.value}`,onClick:r[1]||(r[1]=e.withModifiers(h=>a("close"),["stop"]))},[e.createVNode(B,{name:"gtk-close",type:"symbol",size:12})],8,Je)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:1})]))],42,Ue))}}),Ze=["aria-orientation"],ve=["draggable","onDragstart","onDragover","onDrop"],_e=["title","aria-label"],v=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:n}){const l=t,a=n,{vertical:o}=N(),i=e.ref(null),c=e.ref(0),s=e.ref(null),m=e.ref(null);function u(f){a("update:modelValue",f),a("select",f)}async function $(f,b){const p=l.tabs.length-1;if(p<0)return;const k=b==="primera"?0:b==="ultima"?p:b==="anterior"?(f-1+l.tabs.length)%l.tabs.length:(f+1)%l.tabs.length;c.value=k,await e.nextTick(),i.value?.querySelectorAll('[role="tab"]')?.[k]?.focus()}function V(f,b){if(l.fixedOrder)return;const p=f+b;if(p<0||p>=l.tabs.length)return;const k=[...l.tabs],[C]=k.splice(f,1);C&&(k.splice(p,0,C),c.value=p,a("reorder",k))}function x(f){const b=i.value;if(!b)return;const p=f.deltaY||f.deltaX||0,k=o.value?b.scrollTop:b.scrollLeft;o.value?b.scrollTop+=p:b.scrollLeft+=p,(o.value?b.scrollTop:b.scrollLeft)!==k&&f.preventDefault()}function w(f,b){l.fixedOrder||(s.value=f,b.dataTransfer?.setData("text/plain",String(f)),b.dataTransfer&&(b.dataTransfer.effectAllowed="move"))}function z(f,b){l.fixedOrder||s.value===null||(b.preventDefault(),m.value=f,b.dataTransfer&&(b.dataTransfer.dropEffect="move"))}function g(f){const b=s.value;if(E(),l.fixedOrder||b===null||b===f)return;const p=[...l.tabs],[k]=p.splice(b,1);k&&(p.splice(f,0,k),a("reorder",p))}function E(){s.value=null,m.value=null}const S=e.computed(()=>o.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(f,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 items-center gap-1",e.unref(o)?"w-full flex-col":"h-full"]),role:"tablist","aria-orientation":e.unref(o)?"vertical":"horizontal"},[e.createElementVNode("div",{ref_key:"carril",ref:i,class:e.normalizeClass(S.value),onWheel:x},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(p,k)=>(e.openBlock(),e.createElementBlock("div",{key:p.id,class:e.normalizeClass(["transition-opacity",[s.value===k?"opacity-40":"",m.value===k&&s.value!==k?"ring-2 ring-secondary rounded-corner":""]]),draggable:!t.fixedOrder,onDragstart:C=>w(k,C),onDragover:C=>z(k,C),onDrop:e.withModifiers(C=>g(k),["prevent"]),onDragend:E},[e.createVNode(R,{tab:p,active:p.id===t.modelValue,"close-label":t.closeLabel,"dirty-label":t.dirtyLabel,tabindex:k===c.value?0:-1,onSelect:C=>u(p.id),onClose:C=>a("close",p.id),onMenu:C=>a("menu",{id:p.id,...C}),onNavegar:C=>$(k,C),onMover:C=>V(k,C)},null,8,["tab","active","close-label","dirty-label","tabindex","onSelect","onClose","onMenu","onNavegar","onMover"])],42,ve))),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]=p=>a("new"))},[e.createVNode(B,{name:"gtk-add",type:"symbol",size:14})],8,_e)):e.createCommentVNode("",!0)],10,Ze))}}),et={class:"relative flex shrink-0 items-center"},tt=["title","aria-label","aria-expanded"],lt=["value","placeholder","aria-label"],_=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:n}){const l=t,a=n,{vertical:o,posicion:i}=N(),c=e.ref(!1),s=e.ref(null),m=e.computed(()=>o.value||l.collapsed),u=e.computed(()=>!m.value||c.value),$=e.computed(()=>{if(!m.value)return"";const g="absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";return i.value==="left"?`${g} left-full top-0 ml-1`:i.value==="right"?`${g} right-full top-0 mr-1`:i.value==="bottom"?`${g} bottom-full right-0 mb-1`:`${g} top-full right-0 mt-1`});async function V(){c.value=!0,a("open"),await e.nextTick(),s.value?.focus()}function x(){c.value&&(c.value=!1,a("close"))}function w(g){a("update:modelValue",g.target.value)}function z(){a("search",l.modelValue)}return(g,E)=>(e.openBlock(),e.createElementBlock("div",et,[m.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:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onClick:E[1]||(E[1]=S=>c.value?x():V())},[e.createVNode(B,{name:"system-search",type:"symbol",size:14})],40,tt)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass($.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",m.value?"":"w-48"]),value:t.modelValue,placeholder:t.placeholder||t.label,"aria-label":t.label,onInput:w,onKeydown:[e.withKeys(z,["enter"]),e.withKeys(x,["esc"])],onBlur:x},null,42,lt)],2)):e.createCommentVNode("",!0)]))}}),at=["type","disabled"],ot={key:0,class:"w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"},nt=["src","alt"],it={key:2},rt=["src","alt"],st=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:n}){const l=t,a=n,o={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"},i={sm:"px-2 py-1 text-xs",md:"px-3 py-1 text-sm",lg:"px-4 py-2 text-base"},c=s=>{l.stopPropagation&&s.stopPropagation(),l.preventDefault&&s.preventDefault(),!l.disabled&&!l.loading&&a("click")};return(s,m)=>(e.openBlock(),e.createElementBlock("button",{type:l.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",[o[l.variant],i[l.size],l.fullWidth?"w-full":"",l.iconSrc&&!l.label?"px-2 py-2":"",t.customClass]]),disabled:l.disabled||l.loading},[t.loading?(e.openBlock(),e.createElementBlock("span",ot)):e.createCommentVNode("",!0),l.iconSrc&&!l.iconRight?(e.openBlock(),e.createElementBlock("img",{key:1,src:l.iconSrc,alt:l.iconAlt||l.label,class:"w-4 h-4"},null,8,nt)):e.createCommentVNode("",!0),l.label?(e.openBlock(),e.createElementBlock("span",it,e.toDisplayString(l.label),1)):e.createCommentVNode("",!0),l.iconSrc&&l.iconRight?(e.openBlock(),e.createElementBlock("img",{key:3,src:l.iconSrc,alt:l.iconAlt||l.label,class:"w-4 h-4"},null,8,rt)):e.createCommentVNode("",!0)],10,at))}}),A=(t,n)=>{const l=t.__vccOpts||t;for(const[a,o]of n)l[a]=o;return l},ee=A(st,[["__scopeId","data-v-2eaf6e27"]]),ct={class:"text-base font-semibold m-0 text-primary dark:text-primary-dark"},te=A(e.defineComponent({__name:"ConfigSection",props:{title:{},icon:{default:""},customClass:{default:()=>({})}},setup(t){return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-4 p-4 background rounded-corner",t.customClass])},[e.createElementVNode("h3",ct,e.toDisplayString(t.icon?`${t.icon} ${t.title}`:t.title),1),e.renderSlot(n.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-45bd4eab"]]),dt={class:"flex items-center gap-3 flex-1 min-w-0"},mt=["src","alt"],ft={class:"min-w-0"},ut={class:"font-semibold truncate"},bt={key:0,class:"text-xs text-gray-400 truncate"},pt={key:1,class:"text-xs text-gray-400 truncate"},kt={key:2,class:"text-xs text-gray-400 flex gap-2 mt-1"},gt={key:1,class:"w-2 h-2 rounded-full bg-green-500"},le=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:n}){const l=n,a=()=>{l("action")},o=()=>{l("click")};return(i,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:o},[e.createElementVNode("div",dt,[e.createElementVNode("img",{src:t.icon,alt:t.title,class:"h-7 w-7 shrink-0"},null,8,mt),e.createElementVNode("div",ft,[e.createElementVNode("div",ut,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",bt,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0),t.metadata?(e.openBlock(),e.createElementBlock("div",pt,e.toDisplayString(t.metadata),1)):e.createCommentVNode("",!0),t.extraInfo&&t.extraInfo.length>0?(e.openBlock(),e.createElementBlock("div",kt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.extraInfo,(s,m)=>(e.openBlock(),e.createElementBlock("span",{key:m},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(a,["stop"])},e.toDisplayString(t.actionLabel),1)):e.createCommentVNode("",!0),t.showStatusIndicator&&t.isConnected?(e.openBlock(),e.createElementBlock("div",gt)):e.createCommentVNode("",!0)],2))}}),yt=["for"],ae=A(e.defineComponent({__name:"FormGroup",props:{label:{},htmlFor:{default:""},customClass:{default:()=>({})},labelClass:{default:()=>({})}},setup(t){return(n,l)=>(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,yt)):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-c0d9d9cb"]]),oe=A(e.defineComponent({__name:"ListCard",props:{clickable:{type:Boolean,default:!1},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:n}){const l=t,a=n,o=()=>{l.clickable&&a("click")};return(i,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":l.clickable},t.customClass]),onClick:o},[e.renderSlot(i.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-f86d47da"]]),ht={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"},Ct=["src","alt","title"],xt={key:1,class:"w-8 h-8 flex items-center justify-center"},Bt=["src","alt"],wt=["min","max","value"],ne=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:n}){const l=t,a=n,o=e.computed(()=>{if(l.max<=l.min)return 0;const m=l.max-l.min,u=l.modelValue-l.min;return Math.round(u/m*100)}),i=e.computed(()=>l.getPercentageClass?l.getPercentageClass(o.value):""),c=m=>{const u=m.target;a("update:modelValue",Number(u.value))},s=()=>{a("buttonClick")};return(m,u)=>(e.openBlock(),e.createElementBlock("div",ht,[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,Ct)])):(e.openBlock(),e.createElementBlock("div",xt,[e.createElementVNode("img",{src:t.icon,alt:t.alt,class:"w-6 h-6 transition-all duration-200"},null,8,Bt)])),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,wt),e.createElementVNode("span",{class:e.normalizeClass(["w-12 text-right transition-all duration-200 font-medium",i.value])},e.toDisplayString(o.value)+"% ",3)]))}}),$t=["disabled"],ie=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:n}){const l=t,a=n,o=()=>{a("toggle",!l.isOn)};return(i,c)=>(e.openBlock(),e.createElementBlock("button",{type:"button",onClick:o,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,$t))}}),Et=["disabled"],zt=["src","alt","title"],re=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:n}){const l=n,a=()=>{l("click")};return(o,i)=>(e.openBlock(),e.createElementBlock("button",{onClick:a,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,Et))}}),Vt=["title"],St=["src","alt"],Nt={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"},se=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:n}){const l=n,a=e.ref(!1),o=()=>{l("click")};return(i,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:o,onMouseenter:c[0]||(c[0]=s=>a.value=!0),onMouseleave:c[1]||(c[1]=s=>a.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,St),t.badge!==null&&t.badge>0?(e.openBlock(),e.createElementBlock("div",Nt,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":!a.value,"opacity-100 translate-y-0":a.value}]])},e.toDisplayString(t.customTooltipText),3)):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default")],42,Vt))}}),Lt=[U,I,T,q,B,J,j,O,v,R,_,ee,te,le,ae,oe,ne,ie,re,se],Dt={install(t){Lt.forEach(n=>{t.component(n.name,n)})}};d.ActionButton=ee,d.AppBar=j,d.BarSearch=_,d.CLAVE_DE_LA_BARRA=D,d.ConfigSection=te,d.DeviceCard=le,d.FormGroup=ae,d.ListCard=oe,d.POSICIONES=G,d.SelectField=q,d.SideBar=U,d.SideButton=I,d.SideGroup=T,d.SliderControl=ne,d.SwitchToggle=ie,d.TabBar=v,d.TabItem=R,d.ThemeIcon=B,d.ToggleControl=re,d.TrayIconButton=se,d.WindowControls=O,d.WindowFrame=J,d.default=Dt,d.esPosicion=X,d.orientacionDe=M,d.posicionDe=Y,d.usarLaBarra=N,d.usarLaPosicionDeLaBarra=H,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
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"}})}));
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -49,6 +49,44 @@ import {
|
|
|
49
49
|
</template>
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
### DropdownMenu
|
|
53
|
+
|
|
54
|
+
A menu with real menu semantics: `role="menu"`, `role="menuitem"`, arrow-key
|
|
55
|
+
navigation, `Enter` and `Space` to activate, `Escape` and `Tab` to close — and
|
|
56
|
+
focus goes back to whoever opened it.
|
|
57
|
+
|
|
58
|
+
```vue
|
|
59
|
+
<script setup lang="ts">
|
|
60
|
+
import {
|
|
61
|
+
DropdownMenu,
|
|
62
|
+
DropdownMenuContent,
|
|
63
|
+
DropdownMenuItem,
|
|
64
|
+
DropdownMenuTrigger,
|
|
65
|
+
} from "@vasakgroup/vue-libvasak";
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<DropdownMenu>
|
|
70
|
+
<DropdownMenuTrigger as-child>
|
|
71
|
+
<button type="button">Actions</button>
|
|
72
|
+
</DropdownMenuTrigger>
|
|
73
|
+
<DropdownMenuContent side="bottom" align="start">
|
|
74
|
+
<DropdownMenuItem @select="copy">Copy</DropdownMenuItem>
|
|
75
|
+
<DropdownMenuItem :disabled="!canPaste" @select="paste">Paste</DropdownMenuItem>
|
|
76
|
+
</DropdownMenuContent>
|
|
77
|
+
</DropdownMenu>
|
|
78
|
+
</template>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`as-child` puts `aria-haspopup`, `aria-expanded` and the handlers **on your own
|
|
82
|
+
button** instead of on a wrapper — that is what a screen reader announces. Drop
|
|
83
|
+
it and the trigger wraps the slot in a `div`, which is what a context menu
|
|
84
|
+
anchored to a point needs; there, bind `v-model:open` and let the application
|
|
85
|
+
decide when to open it.
|
|
86
|
+
|
|
87
|
+
A disabled item stays focusable and keeps its place in the arrow rotation, with
|
|
88
|
+
`aria-disabled`: an option that vanishes cannot be discovered.
|
|
89
|
+
|
|
52
90
|
## Contributors
|
|
53
91
|
|
|
54
92
|
<center>
|