@vanjana/vue-ui 0.1.59
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/theme-light.css +1 -0
- package/dist/theme-light.js +1 -0
- package/dist/types/components/button-bar.vue.d.ts +15 -0
- package/dist/types/components/button.vue.d.ts +11 -0
- package/dist/types/components/card.vue.d.ts +21 -0
- package/dist/types/components/carousel.vue.d.ts +21 -0
- package/dist/types/components/checkbox.vue.d.ts +15 -0
- package/dist/types/components/data/data.vue.d.ts +7 -0
- package/dist/types/components/dialog.vue.d.ts +47 -0
- package/dist/types/components/dot-menu.vue.d.ts +16 -0
- package/dist/types/components/form/form-field.vue.d.ts +33 -0
- package/dist/types/components/form/form-layout.vue.d.ts +34 -0
- package/dist/types/components/form/form-section.vue.d.ts +16 -0
- package/dist/types/components/form/index.d.ts +10 -0
- package/dist/types/components/form/input-select.vue.d.ts +34 -0
- package/dist/types/components/form/input-slider.vue.d.ts +19 -0
- package/dist/types/components/form/input-text-area.vue.d.ts +17 -0
- package/dist/types/components/form/input-text.vue.d.ts +14 -0
- package/dist/types/components/form/input.vue.d.ts +23 -0
- package/dist/types/components/form/select.vue.d.ts +43 -0
- package/dist/types/components/form/textarea.vue.d.ts +23 -0
- package/dist/types/components/icon.vue.d.ts +8 -0
- package/dist/types/components/index.d.ts +20 -0
- package/dist/types/components/link-button.vue.d.ts +13 -0
- package/dist/types/components/menu-action.vue.d.ts +8 -0
- package/dist/types/components/menu.vue.d.ts +13 -0
- package/dist/types/components/nav-bar.vue.d.ts +3 -0
- package/dist/types/components/page.vue.d.ts +28 -0
- package/dist/types/components/paginator.vue.d.ts +36 -0
- package/dist/types/components/search-field.vue.d.ts +17 -0
- package/dist/types/components/separator.vue.d.ts +6 -0
- package/dist/types/components/shell/index.d.ts +4 -0
- package/dist/types/components/shell/shell-navigation-item.vue.d.ts +8 -0
- package/dist/types/components/shell/shell-navigation.vue.d.ts +13 -0
- package/dist/types/components/shell/shell.vue.d.ts +20 -0
- package/dist/types/components/slider.vue.d.ts +22 -0
- package/dist/types/components/tab-view.vue.d.ts +20 -0
- package/dist/types/components/tab.vue.d.ts +17 -0
- package/dist/types/directives/focus.directive.d.ts +28 -0
- package/dist/types/directives/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model/FormFieldProps.d.ts +11 -0
- package/dist/types/model/IconSize.d.ts +5 -0
- package/dist/types/model/Icons.d.ts +39 -0
- package/dist/types/model/VjRouteRecord.d.ts +12 -0
- package/dist/types/model/index.d.ts +4 -0
- package/dist/types/provider/index.d.ts +2 -0
- package/dist/types/provider/router-navigation-provider.d.ts +19 -0
- package/dist/types/provider/static-navigation-provider.d.ts +26 -0
- package/dist/types/public-api.d.ts +9 -0
- package/dist/types/services/aside.service.d.ts +247 -0
- package/dist/types/services/aside.store.d.ts +257 -0
- package/dist/types/services/debounce.d.ts +1 -0
- package/dist/types/services/dialog.service.d.ts +31 -0
- package/dist/types/services/index.d.ts +3 -0
- package/dist/types/stories/components/AsideDemo.vue.d.ts +8 -0
- package/dist/types/stories/components/button.stories.d.ts +77 -0
- package/dist/types/stories/components/card.stories.d.ts +49 -0
- package/dist/types/stories/components/carousel.stories.d.ts +122 -0
- package/dist/types/stories/components/checkbox.stories.d.ts +68 -0
- package/dist/types/stories/components/data.stories.d.ts +10 -0
- package/dist/types/stories/components/dialog.stories.d.ts +116 -0
- package/dist/types/stories/components/dot-menu.stories.d.ts +67 -0
- package/dist/types/stories/components/form-field.stories.d.ts +28 -0
- package/dist/types/stories/components/form-layout.stories.d.ts +87 -0
- package/dist/types/stories/components/icon.stories.d.ts +42 -0
- package/dist/types/stories/components/input-slider.stories.d.ts +6 -0
- package/dist/types/stories/components/input-text.stories.d.ts +12 -0
- package/dist/types/stories/components/input.stories.d.ts +62 -0
- package/dist/types/stories/components/menu-action.stories.d.ts +60 -0
- package/dist/types/stories/components/page.stories.d.ts +103 -0
- package/dist/types/stories/components/paginator.stories.d.ts +11 -0
- package/dist/types/stories/components/search-field.stories.d.ts +48 -0
- package/dist/types/stories/components/select.stories.d.ts +13 -0
- package/dist/types/stories/components/shell.stories.d.ts +96 -0
- package/dist/types/stories/components/slider.stories.d.ts +10 -0
- package/dist/types/stories/components/tab-view.stories.d.ts +118 -0
- package/dist/types/stories/components/textarea.stories.d.ts +62 -0
- package/dist/types/stories/router.d.ts +2 -0
- package/dist/types/theme-light.d.ts +2 -0
- package/dist/vanjana-vue-ui.es.js +2862 -0
- package/dist/vanjana-vue-ui.umd.js +1 -0
- package/dist/vue-ui.css +1 -0
- package/package.json +79 -0
- package/themes/common/_components.scss +19 -0
- package/themes/common/_mixins.scss +78 -0
- package/themes/common/components/_button-bar.scss +8 -0
- package/themes/common/components/_button.scss +44 -0
- package/themes/common/components/_card.scss +21 -0
- package/themes/common/components/_checkbox.scss +26 -0
- package/themes/common/components/_dialog.scss +15 -0
- package/themes/common/components/_dot-menu.scss +10 -0
- package/themes/common/components/_icon.scss +11 -0
- package/themes/common/components/_menu-action.scss +10 -0
- package/themes/common/components/_menu.scss +6 -0
- package/themes/common/components/_page.scss +21 -0
- package/themes/common/components/_search-field.scss +34 -0
- package/themes/common/components/_shell.scss +101 -0
- package/themes/common/components/_tab-view.scss +40 -0
- package/themes/common/components/_tab.scss +12 -0
- package/themes/common/components/form/_form-field.scss +32 -0
- package/themes/common/components/form/_input.scss +40 -0
- package/themes/common/components/form/_select.scss +60 -0
- package/themes/common/components/form/_textarea.scss +38 -0
- package/themes/default.scss +12 -0
- package/themes/light/_shell.scss +56 -0
- package/themes/light/theme.scss +51 -0
- package/themes/mixins.scss +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(B,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router"],e):(B=typeof globalThis<"u"?globalThis:B||self,e(B.VanjanaVueUi={},B.Vue,B.VueRouter))})(this,(function(B,e,je){"use strict";const $=(t,o)=>{const n=t.__vccOpts||t;for(const[l,a]of o)n[l]=a;return n},Wt={},Xt={class:"button-bar"},Kt={class:"left"},qt={class:"right"};function Gt(t,o){return e.openBlock(),e.createElementBlock("div",Xt,[e.createElementVNode("div",Kt,[e.renderSlot(t.$slots,"left",{},void 0,!0)]),e.createElementVNode("div",qt,[e.renderSlot(t.$slots,"default",{},void 0,!0)])])}const Ie=$(Wt,[["render",Gt],["__scopeId","data-v-45a6ed1a"]]);var N=(t=>(t.HOME="fa-regular fa-house",t.DASHBOARD="fa-solid fa-gauge",t.MENU="fa-solid fa-bars",t.DOT_MENU="fa-solid fa-ellipsis-vertical",t.BACK="fa-regular fa-hand-point-left",t.CHEVRON_LEFT="fa-solid fa-chevron-left",t.CHEVRON_RIGHT="fa-solid fa-chevron-right",t.CHEVRON_UP="fa-solid fa-chevron-up",t.CHEVRON_DOWN="fa-solid fa-chevron-down",t.PREVIOUS="fa-solid fa-angle-left",t.FIRST="fa-solid fa-angles-left",t.NEXT="fa-solid fa-angle-right",t.LAST="fa-solid fa-angles-right",t.USER="fa-regular fa-user",t.CHARACTER="fa-solid fa-person",t.SETTINGS="fa-solid fa-gear",t.ADD="fa-regular fa-plus",t.EDIT="fa-solid fa-pen",t.REMOVE="fa-regular fa-trash-can",t.DELETE="fa-regular fa-trash-can",t.SHARE="fa-solid fa-share-nodes",t.SORT="fa-regular fa-arrow-up-arrow-down",t.CLOSE="fa-regular fa-circle-xmark",t.INFO="fa-regular fa-circle-info",t.WARNING="fa-regular fa-triangle-exclamation",t.ERROR="fa-regular fa-circle-xmark",t.CHECK="fa-regular fa-circle-check",t.LOVE="fa-regular fa-heart",t.PROJECT="fa-regular fa-folder-open",t.FOLDER="fa-regular fa-folder",t.FILE_TEXT="fa-regular fa-file-lines",t.UPLOAD="fa-solid fa-cloud-arrow-up",t.DOWNLOAD="fa-solid fa-cloud-arrow-down",t.SEARCH="fa-solid fa-magnifying-glass",t.MESSAGE_SQUARE="fa-regular fa-message",t.MAIL="fa-regular fa-envelope",t.SHOPPING_BAG="fa-regular fa-bag-shopping",t))(N||{}),T=(t=>(t.S="icon-size-s",t.M="icon-size-m",t.L="icon-size-l",t))(T||{});const te=e.defineComponent({__name:"icon",props:{icon:{},size:{}},setup(t){const o=t,n=T.M,l=e.computed(()=>`${o.icon} ${o.size??n}`);return(a,r)=>(e.openBlock(),e.createElementBlock("i",{class:e.normalizeClass(l.value)},null,2))}}),Yt=["disabled"],Be=$(e.defineComponent({__name:"button",props:{label:{},icon:{},primary:{type:Boolean},secondary:{type:Boolean},tertiary:{type:Boolean},disabled:{type:Boolean}},setup(t){const o=t,n=T.S,l=e.computed(()=>o.primary?"primary":o.secondary?"secondary":o.tertiary?"tertiary":"primary"),a=e.computed(()=>!o.label&&!!o.icon);return(r,i)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button",l.value,{"icon-only":a.value}]),disabled:t.disabled},[t.icon?(e.openBlock(),e.createBlock(te,{key:0,icon:t.icon,size:e.unref(n)},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.label),1)],10,Yt))}}),[["__scopeId","data-v-f31c33cf"]]),Jt={key:0,class:"header-actions"},Qt={key:0},_e=$(e.defineComponent({__name:"card",props:{header:{},scrollable:{type:Boolean}},setup(t){const o=e.useSlots();return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["card",{scrollable:t.scrollable}])},[e.createElementVNode("header",null,[e.createElementVNode("h3",null,e.toDisplayString(t.header),1),e.unref(o).headerActions?(e.openBlock(),e.createElementBlock("span",Jt,[e.renderSlot(n.$slots,"headerActions",{},void 0,!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("main",null,[e.renderSlot(n.$slots,"default",{},void 0,!0)]),e.unref(o).footer?(e.openBlock(),e.createElementBlock("footer",Qt,[e.renderSlot(n.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-ec6ab562"]]),Zt={class:"checkbox"},en=["checked","disabled"],tn={key:0,class:"checkbox-label"},nn=$(e.defineComponent({__name:"checkbox",props:e.mergeModels({label:{},disabled:{type:Boolean}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue"),n=l=>{const a=l.target;o.value=a.checked};return(l,a)=>(e.openBlock(),e.createElementBlock("label",Zt,[e.createElementVNode("input",{type:"checkbox",checked:o.value,onChange:n,disabled:t.disabled,class:"checkbox-input"},null,40,en),a[0]||(a[0]=e.createElementVNode("span",{class:"checkbox-box"},[e.createElementVNode("svg",{class:"checkbox-icon",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{class:"checkbox-check",d:"M5 12L10 17L20 7",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),t.label?(e.openBlock(),e.createElementBlock("span",tn,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-e2d27ecb"]]),on=["aria-label"],ln={key:0,class:"carousel-indicators"},He=$(e.defineComponent({__name:"carousel",props:{autoplay:{type:Boolean},interval:{},loop:{type:Boolean},pauseOnHover:{type:Boolean},startIndex:{},ariaLabel:{}},setup(t){const o=t,n=o.autoplay??!1,l=o.interval??4e3,a=o.loop??!0,r=o.pauseOnHover??!0,i=o.startIndex??0,u=o.ariaLabel??"Carousel",d=e.ref(Math.max(0,i)),c=e.ref(null),s=e.ref(null),f=e.ref(0),m=e.ref(0);let p=!1;const h=e.ref(0),w=e.ref(!1);let C=null,k=null;const V=e.ref(null),g=e.ref(null),S=()=>{h.value=c.value?c.value.children.length:0,h.value===0?d.value=0:d.value>=h.value&&(d.value=a?0:h.value-1),R()},E=e.computed(()=>f.value>0?{transform:`translateX(${-d.value*f.value+m.value}px)`}:{transform:`translateX(-${d.value*100}%)`}),R=()=>{c.value&&Array.from(c.value.children).forEach((_,Z)=>{try{Z===d.value?_.removeAttribute("aria-hidden"):_.setAttribute("aria-hidden","true")}catch{}})},b=()=>{y(),!(!n||h.value<=1)&&(r&&w.value||(C=setTimeout(()=>{v(),b()},l)))},y=()=>{C&&(clearTimeout(C),C=null)},x=()=>{h.value!==0&&(d.value<=0?d.value=a?h.value-1:0:d.value--)},v=()=>{h.value!==0&&(d.value>=h.value-1?d.value=a?0:h.value-1:d.value++)},L=_=>{_<0||_>=h.value||(d.value=_)},X=()=>{w.value=!0,r&&y()},K=()=>{w.value=!1,b()},q=_=>{_.key==="ArrowLeft"?x():_.key==="ArrowRight"&&v()};let ie=0,P=0;const U=_=>{ie=_.touches[0].clientX,P=0},A=_=>{P=_.touches[0].clientX-ie},z=()=>{P>50?x():P<-50&&v(),P=0};let Ce=0;const zt=_=>{if(_.isPrimary!==!1&&!(_.pointerType==="mouse"&&_.button!==0)){p=!0,Ce=_.clientX,m.value=0,y();try{_.target?.setPointerCapture?.(_.pointerId)}catch{}}},jt=_=>{p&&(m.value=_.clientX-Ce,_.preventDefault())},It=()=>{if(!p)return;p=!1;const _=Math.max(50,f.value*.15);m.value>_?x():m.value<-_&&v(),m.value=0,b()},Ht=_=>{try{_.target?.releasePointerCapture?.(_.pointerId)}catch{}It()},Ut=()=>It();return e.onMounted(()=>{e.nextTick(()=>{if(S(),c.value&&(k=new MutationObserver(S),k.observe(c.value,{childList:!0}),c.value.addEventListener("touchstart",U,{passive:!0}),c.value.addEventListener("touchmove",A,{passive:!0}),c.value.addEventListener("touchend",z)),s.value){const _=()=>{f.value=s.value?s.value.clientWidth:0};_();const Z=window.ResizeObserver;if(Z&&s.value){const ee=new Z(()=>_());ee.observe(s.value),V.value=ee}else window.addEventListener("resize",_),g.value=_;s.value&&(s.value.addEventListener("pointerdown",zt),s.value.addEventListener("pointermove",jt),s.value.addEventListener("pointerup",Ht),s.value.addEventListener("pointercancel",Ut))}R(),b()})}),e.onBeforeUnmount(()=>{y(),k&&c.value&&k.disconnect(),c.value&&(c.value.removeEventListener("touchstart",U),c.value.removeEventListener("touchmove",A),c.value.removeEventListener("touchend",z)),s.value&&(V.value&&V.value.disconnect&&V.value.disconnect(),g.value&&window.removeEventListener("resize",g.value),s.value.removeEventListener("pointerdown",zt),s.value.removeEventListener("pointermove",jt),s.value.removeEventListener("pointerup",Ht),s.value.removeEventListener("pointercancel",Ut))}),e.watch([d,()=>h.value],()=>{R()}),e.watch([()=>w.value,d],()=>{b()}),(_,Z)=>{const ee=e.resolveComponent("VjButton");return e.openBlock(),e.createElementBlock("div",{class:"carousel",role:"region","aria-roledescription":"carousel","aria-label":e.unref(u),tabindex:"0",onKeydown:q,onMouseenter:X,onMouseleave:K},[e.createElementVNode("div",{class:"carousel-window",ref_key:"windowRef",ref:s},[e.createElementVNode("div",{class:"carousel-track",ref_key:"track",ref:c,style:e.normalizeStyle(E.value)},[e.renderSlot(_.$slots,"default",{},void 0,!0)],4)],512),e.createVNode(ee,{class:"carousel-btn prev",icon:e.unref(N).PREVIOUS,onClick:x,type:"button","aria-label":"Previous slide"},null,8,["icon"]),e.createVNode(ee,{class:"carousel-btn next",icon:e.unref(N).NEXT,onClick:v,type:"button","aria-label":"Next slide"},null,8,["icon"]),h.value>1?(e.openBlock(),e.createElementBlock("div",ln,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,me=>(e.openBlock(),e.createBlock(ee,{key:me-1,class:e.normalizeClass(["indicator",{active:me-1===d.value}]),onClick:Rl=>L(me-1),"aria-current":me-1===d.value,"aria-label":`Go to slide ${me}`,type:"button"},null,8,["class","onClick","aria-current","aria-label"]))),128))])):e.createCommentVNode("",!0)],40,on)}}}),[["__scopeId","data-v-232abca2"]]),an={class:"dialog-content"},rn={key:1},sn={class:"dialog-footer"},xe=$(e.defineComponent({__name:"dialog",props:{modelValue:{type:Boolean,default:!1},title:{},message:{},component:{},componentProps:{},showFooter:{type:Boolean,default:!1},showCancel:{type:Boolean,default:!0},confirmText:{default:"OK"},cancelText:{default:"Abbrechen"},closeOnBackdrop:{type:Boolean,default:!1},closeOnEscape:{type:Boolean,default:!0}},emits:["update:modelValue","confirm","cancel","close"],setup(t,{emit:o}){const n=t,l=o,a=e.ref(n.modelValue);e.watch(()=>n.modelValue,s=>a.value=s);const r=()=>{a.value=!1,l("update:modelValue",!1),l("close")},i=()=>{l("confirm"),r()},u=()=>{l("cancel"),r()},d=()=>{n.closeOnBackdrop&&r()},c=s=>{s.key==="Escape"&&n.closeOnEscape&&a.value&&r()};return e.onMounted(()=>{document.addEventListener("keydown",c)}),e.onBeforeUnmount(()=>{document.removeEventListener("keydown",c)}),(s,f)=>{const m=e.resolveComponent("VjIcon"),p=e.resolveComponent("VjButton"),h=e.resolveComponent("VjCard");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"dialog-fade"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dialog-backdrop",onClick:d},[e.createVNode(e.Transition,{name:"dialog-scale"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dialog-wrapper",onClick:f[0]||(f[0]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(h,{class:"dialog-card",header:t.title||""},e.createSlots({headerActions:e.withCtx(()=>[e.createVNode(m,{icon:e.unref(N).CLOSE,size:e.unref(T).S,class:"dialog-close",onClick:r},null,8,["icon","size"])]),default:e.withCtx(()=>[e.createElementVNode("div",an,[t.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.component),e.mergeProps({key:0},t.componentProps,{onClose:r}),null,16)):t.message?(e.openBlock(),e.createElementBlock("div",rn,e.toDisplayString(t.message),1)):e.renderSlot(s.$slots,"default",{key:2},void 0,!0)])]),_:2},[t.showFooter?{name:"footer",fn:e.withCtx(()=>[e.createElementVNode("div",sn,[e.renderSlot(s.$slots,"footer",{},()=>[t.showCancel?(e.openBlock(),e.createBlock(p,{key:0,secondary:"",onClick:u,label:t.cancelText},null,8,["label"])):e.createCommentVNode("",!0),e.createVNode(p,{primary:"",onClick:i,label:t.confirmText},null,8,["label"])],!0)])]),key:"0"}:void 0]),1032,["header"])])):e.createCommentVNode("",!0)]),_:3})])):e.createCommentVNode("",!0)]),_:3})])}}}),[["__scopeId","data-v-6af510b3"]]),ne=Math.min,M=Math.max,pe=Math.round,he=Math.floor,j=t=>({x:t,y:t}),cn={left:"right",right:"left",bottom:"top",top:"bottom"},dn={start:"end",end:"start"};function Ue(t,o,n){return M(t,ne(o,n))}function se(t,o){return typeof t=="function"?t(o):t}function G(t){return t.split("-")[0]}function ce(t){return t.split("-")[1]}function We(t){return t==="x"?"y":"x"}function Xe(t){return t==="y"?"height":"width"}const un=new Set(["top","bottom"]);function W(t){return un.has(G(t))?"y":"x"}function Ke(t){return We(W(t))}function fn(t,o,n){n===void 0&&(n=!1);const l=ce(t),a=Ke(t),r=Xe(a);let i=a==="x"?l===(n?"end":"start")?"right":"left":l==="start"?"bottom":"top";return o.reference[r]>o.floating[r]&&(i=ge(i)),[i,ge(i)]}function mn(t){const o=ge(t);return[Ee(t),o,Ee(o)]}function Ee(t){return t.replace(/start|end/g,o=>dn[o])}const qe=["left","right"],Ge=["right","left"],pn=["top","bottom"],hn=["bottom","top"];function gn(t,o,n){switch(t){case"top":case"bottom":return n?o?Ge:qe:o?qe:Ge;case"left":case"right":return o?pn:hn;default:return[]}}function bn(t,o,n,l){const a=ce(t);let r=gn(G(t),n==="start",l);return a&&(r=r.map(i=>i+"-"+a),o&&(r=r.concat(r.map(Ee)))),r}function ge(t){return t.replace(/left|right|bottom|top/g,o=>cn[o])}function yn(t){return{top:0,right:0,bottom:0,left:0,...t}}function wn(t){return typeof t!="number"?yn(t):{top:t,right:t,bottom:t,left:t}}function be(t){const{x:o,y:n,width:l,height:a}=t;return{width:l,height:a,top:n,left:o,right:o+l,bottom:n+a,x:o,y:n}}function Ye(t,o,n){let{reference:l,floating:a}=t;const r=W(o),i=Ke(o),u=Xe(i),d=G(o),c=r==="y",s=l.x+l.width/2-a.width/2,f=l.y+l.height/2-a.height/2,m=l[u]/2-a[u]/2;let p;switch(d){case"top":p={x:s,y:l.y-a.height};break;case"bottom":p={x:s,y:l.y+l.height};break;case"right":p={x:l.x+l.width,y:f};break;case"left":p={x:l.x-a.width,y:f};break;default:p={x:l.x,y:l.y}}switch(ce(o)){case"start":p[i]-=m*(n&&c?-1:1);break;case"end":p[i]+=m*(n&&c?-1:1);break}return p}const kn=async(t,o,n)=>{const{placement:l="bottom",strategy:a="absolute",middleware:r=[],platform:i}=n,u=r.filter(Boolean),d=await(i.isRTL==null?void 0:i.isRTL(o));let c=await i.getElementRects({reference:t,floating:o,strategy:a}),{x:s,y:f}=Ye(c,l,d),m=l,p={},h=0;for(let w=0;w<u.length;w++){const{name:C,fn:k}=u[w],{x:V,y:g,data:S,reset:E}=await k({x:s,y:f,initialPlacement:l,placement:m,strategy:a,middlewareData:p,rects:c,platform:i,elements:{reference:t,floating:o}});s=V??s,f=g??f,p={...p,[C]:{...p[C],...S}},E&&h<=50&&(h++,typeof E=="object"&&(E.placement&&(m=E.placement),E.rects&&(c=E.rects===!0?await i.getElementRects({reference:t,floating:o,strategy:a}):E.rects),{x:s,y:f}=Ye(c,m,d)),w=-1)}return{x:s,y:f,placement:m,strategy:a,middlewareData:p}};async function Se(t,o){var n;o===void 0&&(o={});const{x:l,y:a,platform:r,rects:i,elements:u,strategy:d}=t,{boundary:c="clippingAncestors",rootBoundary:s="viewport",elementContext:f="floating",altBoundary:m=!1,padding:p=0}=se(o,t),h=wn(p),C=u[m?f==="floating"?"reference":"floating":f],k=be(await r.getClippingRect({element:(n=await(r.isElement==null?void 0:r.isElement(C)))==null||n?C:C.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(u.floating)),boundary:c,rootBoundary:s,strategy:d})),V=f==="floating"?{x:l,y:a,width:i.floating.width,height:i.floating.height}:i.reference,g=await(r.getOffsetParent==null?void 0:r.getOffsetParent(u.floating)),S=await(r.isElement==null?void 0:r.isElement(g))?await(r.getScale==null?void 0:r.getScale(g))||{x:1,y:1}:{x:1,y:1},E=be(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:V,offsetParent:g,strategy:d}):V);return{top:(k.top-E.top+h.top)/S.y,bottom:(E.bottom-k.bottom+h.bottom)/S.y,left:(k.left-E.left+h.left)/S.x,right:(E.right-k.right+h.right)/S.x}}const Vn=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(o){var n,l;const{placement:a,middlewareData:r,rects:i,initialPlacement:u,platform:d,elements:c}=o,{mainAxis:s=!0,crossAxis:f=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:w=!0,...C}=se(t,o);if((n=r.arrow)!=null&&n.alignmentOffset)return{};const k=G(a),V=W(u),g=G(u)===u,S=await(d.isRTL==null?void 0:d.isRTL(c.floating)),E=m||(g||!w?[ge(u)]:mn(u)),R=h!=="none";!m&&R&&E.push(...bn(u,w,h,S));const b=[u,...E],y=await Se(o,C),x=[];let v=((l=r.flip)==null?void 0:l.overflows)||[];if(s&&x.push(y[k]),f){const q=fn(a,i,S);x.push(y[q[0]],y[q[1]])}if(v=[...v,{placement:a,overflows:x}],!x.every(q=>q<=0)){var L,X;const q=(((L=r.flip)==null?void 0:L.index)||0)+1,ie=b[q];if(ie&&(!(f==="alignment"?V!==W(ie):!1)||v.every(A=>W(A.placement)===V?A.overflows[0]>0:!0)))return{data:{index:q,overflows:v},reset:{placement:ie}};let P=(X=v.filter(U=>U.overflows[0]<=0).sort((U,A)=>U.overflows[1]-A.overflows[1])[0])==null?void 0:X.placement;if(!P)switch(p){case"bestFit":{var K;const U=(K=v.filter(A=>{if(R){const z=W(A.placement);return z===V||z==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(z=>z>0).reduce((z,Ce)=>z+Ce,0)]).sort((A,z)=>A[1]-z[1])[0])==null?void 0:K[0];U&&(P=U);break}case"initialPlacement":P=u;break}if(a!==P)return{reset:{placement:P}}}return{}}}},Cn=new Set(["left","top"]);async function Bn(t,o){const{placement:n,platform:l,elements:a}=t,r=await(l.isRTL==null?void 0:l.isRTL(a.floating)),i=G(n),u=ce(n),d=W(n)==="y",c=Cn.has(i)?-1:1,s=r&&d?-1:1,f=se(o,t);let{mainAxis:m,crossAxis:p,alignmentAxis:h}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return u&&typeof h=="number"&&(p=u==="end"?h*-1:h),d?{x:p*s,y:m*c}:{x:m*c,y:p*s}}const _n=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(o){var n,l;const{x:a,y:r,placement:i,middlewareData:u}=o,d=await Bn(o,t);return i===((n=u.offset)==null?void 0:n.placement)&&(l=u.arrow)!=null&&l.alignmentOffset?{}:{x:a+d.x,y:r+d.y,data:{...d,placement:i}}}}},xn=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(o){const{x:n,y:l,placement:a}=o,{mainAxis:r=!0,crossAxis:i=!1,limiter:u={fn:C=>{let{x:k,y:V}=C;return{x:k,y:V}}},...d}=se(t,o),c={x:n,y:l},s=await Se(o,d),f=W(G(a)),m=We(f);let p=c[m],h=c[f];if(r){const C=m==="y"?"top":"left",k=m==="y"?"bottom":"right",V=p+s[C],g=p-s[k];p=Ue(V,p,g)}if(i){const C=f==="y"?"top":"left",k=f==="y"?"bottom":"right",V=h+s[C],g=h-s[k];h=Ue(V,h,g)}const w=u.fn({...o,[m]:p,[f]:h});return{...w,data:{x:w.x-n,y:w.y-l,enabled:{[m]:r,[f]:i}}}}}},En=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(o){var n,l;const{placement:a,rects:r,platform:i,elements:u}=o,{apply:d=()=>{},...c}=se(t,o),s=await Se(o,c),f=G(a),m=ce(a),p=W(a)==="y",{width:h,height:w}=r.floating;let C,k;f==="top"||f==="bottom"?(C=f,k=m===(await(i.isRTL==null?void 0:i.isRTL(u.floating))?"start":"end")?"left":"right"):(k=f,C=m==="end"?"top":"bottom");const V=w-s.top-s.bottom,g=h-s.left-s.right,S=ne(w-s[C],V),E=ne(h-s[k],g),R=!o.middlewareData.shift;let b=S,y=E;if((n=o.middlewareData.shift)!=null&&n.enabled.x&&(y=g),(l=o.middlewareData.shift)!=null&&l.enabled.y&&(b=V),R&&!m){const v=M(s.left,0),L=M(s.right,0),X=M(s.top,0),K=M(s.bottom,0);p?y=h-2*(v!==0||L!==0?v+L:M(s.left,s.right)):b=w-2*(X!==0||K!==0?X+K:M(s.top,s.bottom))}await d({...o,availableWidth:y,availableHeight:b});const x=await i.getDimensions(u.floating);return h!==x.width||w!==x.height?{reset:{rects:!0}}:{}}}};function ye(){return typeof window<"u"}function J(t){return $e(t)?(t.nodeName||"").toLowerCase():"#document"}function O(t){var o;return(t==null||(o=t.ownerDocument)==null?void 0:o.defaultView)||window}function I(t){var o;return(o=($e(t)?t.ownerDocument:t.document)||window.document)==null?void 0:o.documentElement}function $e(t){return ye()?t instanceof Node||t instanceof O(t).Node:!1}function D(t){return ye()?t instanceof Element||t instanceof O(t).Element:!1}function H(t){return ye()?t instanceof HTMLElement||t instanceof O(t).HTMLElement:!1}function Je(t){return!ye()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof O(t).ShadowRoot}const Sn=new Set(["inline","contents"]);function de(t){const{overflow:o,overflowX:n,overflowY:l,display:a}=F(t);return/auto|scroll|overlay|hidden|clip/.test(o+l+n)&&!Sn.has(a)}const $n=new Set(["table","td","th"]);function Rn(t){return $n.has(J(t))}const vn=[":popover-open",":modal"];function we(t){return vn.some(o=>{try{return t.matches(o)}catch{return!1}})}const Ln=["transform","translate","scale","rotate","perspective"],Nn=["transform","translate","scale","rotate","perspective","filter"],Tn=["paint","layout","strict","content"];function Re(t){const o=ve(),n=D(t)?F(t):t;return Ln.some(l=>n[l]?n[l]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!o&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!o&&(n.filter?n.filter!=="none":!1)||Nn.some(l=>(n.willChange||"").includes(l))||Tn.some(l=>(n.contain||"").includes(l))}function An(t){let o=Y(t);for(;H(o)&&!oe(o);){if(Re(o))return o;if(we(o))return null;o=Y(o)}return null}function ve(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Mn=new Set(["html","body","#document"]);function oe(t){return Mn.has(J(t))}function F(t){return O(t).getComputedStyle(t)}function ke(t){return D(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Y(t){if(J(t)==="html")return t;const o=t.assignedSlot||t.parentNode||Je(t)&&t.host||I(t);return Je(o)?o.host:o}function Qe(t){const o=Y(t);return oe(o)?t.ownerDocument?t.ownerDocument.body:t.body:H(o)&&de(o)?o:Qe(o)}function ue(t,o,n){var l;o===void 0&&(o=[]),n===void 0&&(n=!0);const a=Qe(t),r=a===((l=t.ownerDocument)==null?void 0:l.body),i=O(a);if(r){const u=Le(i);return o.concat(i,i.visualViewport||[],de(a)?a:[],u&&n?ue(u):[])}return o.concat(a,ue(a,[],n))}function Le(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Ze(t){const o=F(t);let n=parseFloat(o.width)||0,l=parseFloat(o.height)||0;const a=H(t),r=a?t.offsetWidth:n,i=a?t.offsetHeight:l,u=pe(n)!==r||pe(l)!==i;return u&&(n=r,l=i),{width:n,height:l,$:u}}function Ne(t){return D(t)?t:t.contextElement}function le(t){const o=Ne(t);if(!H(o))return j(1);const n=o.getBoundingClientRect(),{width:l,height:a,$:r}=Ze(o);let i=(r?pe(n.width):n.width)/l,u=(r?pe(n.height):n.height)/a;return(!i||!Number.isFinite(i))&&(i=1),(!u||!Number.isFinite(u))&&(u=1),{x:i,y:u}}const On=j(0);function et(t){const o=O(t);return!ve()||!o.visualViewport?On:{x:o.visualViewport.offsetLeft,y:o.visualViewport.offsetTop}}function Dn(t,o,n){return o===void 0&&(o=!1),!n||o&&n!==O(t)?!1:o}function Q(t,o,n,l){o===void 0&&(o=!1),n===void 0&&(n=!1);const a=t.getBoundingClientRect(),r=Ne(t);let i=j(1);o&&(l?D(l)&&(i=le(l)):i=le(t));const u=Dn(r,n,l)?et(r):j(0);let d=(a.left+u.x)/i.x,c=(a.top+u.y)/i.y,s=a.width/i.x,f=a.height/i.y;if(r){const m=O(r),p=l&&D(l)?O(l):l;let h=m,w=Le(h);for(;w&&l&&p!==h;){const C=le(w),k=w.getBoundingClientRect(),V=F(w),g=k.left+(w.clientLeft+parseFloat(V.paddingLeft))*C.x,S=k.top+(w.clientTop+parseFloat(V.paddingTop))*C.y;d*=C.x,c*=C.y,s*=C.x,f*=C.y,d+=g,c+=S,h=O(w),w=Le(h)}}return be({width:s,height:f,x:d,y:c})}function Ve(t,o){const n=ke(t).scrollLeft;return o?o.left+n:Q(I(t)).left+n}function tt(t,o){const n=t.getBoundingClientRect(),l=n.left+o.scrollLeft-Ve(t,n),a=n.top+o.scrollTop;return{x:l,y:a}}function Fn(t){let{elements:o,rect:n,offsetParent:l,strategy:a}=t;const r=a==="fixed",i=I(l),u=o?we(o.floating):!1;if(l===i||u&&r)return n;let d={scrollLeft:0,scrollTop:0},c=j(1);const s=j(0),f=H(l);if((f||!f&&!r)&&((J(l)!=="body"||de(i))&&(d=ke(l)),H(l))){const p=Q(l);c=le(l),s.x=p.x+l.clientLeft,s.y=p.y+l.clientTop}const m=i&&!f&&!r?tt(i,d):j(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-d.scrollLeft*c.x+s.x+m.x,y:n.y*c.y-d.scrollTop*c.y+s.y+m.y}}function Pn(t){return Array.from(t.getClientRects())}function zn(t){const o=I(t),n=ke(t),l=t.ownerDocument.body,a=M(o.scrollWidth,o.clientWidth,l.scrollWidth,l.clientWidth),r=M(o.scrollHeight,o.clientHeight,l.scrollHeight,l.clientHeight);let i=-n.scrollLeft+Ve(t);const u=-n.scrollTop;return F(l).direction==="rtl"&&(i+=M(o.clientWidth,l.clientWidth)-a),{width:a,height:r,x:i,y:u}}const nt=25;function jn(t,o){const n=O(t),l=I(t),a=n.visualViewport;let r=l.clientWidth,i=l.clientHeight,u=0,d=0;if(a){r=a.width,i=a.height;const s=ve();(!s||s&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const c=Ve(l);if(c<=0){const s=l.ownerDocument,f=s.body,m=getComputedStyle(f),p=s.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,h=Math.abs(l.clientWidth-f.clientWidth-p);h<=nt&&(r-=h)}else c<=nt&&(r+=c);return{width:r,height:i,x:u,y:d}}const In=new Set(["absolute","fixed"]);function Hn(t,o){const n=Q(t,!0,o==="fixed"),l=n.top+t.clientTop,a=n.left+t.clientLeft,r=H(t)?le(t):j(1),i=t.clientWidth*r.x,u=t.clientHeight*r.y,d=a*r.x,c=l*r.y;return{width:i,height:u,x:d,y:c}}function ot(t,o,n){let l;if(o==="viewport")l=jn(t,n);else if(o==="document")l=zn(I(t));else if(D(o))l=Hn(o,n);else{const a=et(t);l={x:o.x-a.x,y:o.y-a.y,width:o.width,height:o.height}}return be(l)}function lt(t,o){const n=Y(t);return n===o||!D(n)||oe(n)?!1:F(n).position==="fixed"||lt(n,o)}function Un(t,o){const n=o.get(t);if(n)return n;let l=ue(t,[],!1).filter(u=>D(u)&&J(u)!=="body"),a=null;const r=F(t).position==="fixed";let i=r?Y(t):t;for(;D(i)&&!oe(i);){const u=F(i),d=Re(i);!d&&u.position==="fixed"&&(a=null),(r?!d&&!a:!d&&u.position==="static"&&!!a&&In.has(a.position)||de(i)&&!d&<(t,i))?l=l.filter(s=>s!==i):a=u,i=Y(i)}return o.set(t,l),l}function Wn(t){let{element:o,boundary:n,rootBoundary:l,strategy:a}=t;const i=[...n==="clippingAncestors"?we(o)?[]:Un(o,this._c):[].concat(n),l],u=i[0],d=i.reduce((c,s)=>{const f=ot(o,s,a);return c.top=M(f.top,c.top),c.right=ne(f.right,c.right),c.bottom=ne(f.bottom,c.bottom),c.left=M(f.left,c.left),c},ot(o,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function Xn(t){const{width:o,height:n}=Ze(t);return{width:o,height:n}}function Kn(t,o,n){const l=H(o),a=I(o),r=n==="fixed",i=Q(t,!0,r,o);let u={scrollLeft:0,scrollTop:0};const d=j(0);function c(){d.x=Ve(a)}if(l||!l&&!r)if((J(o)!=="body"||de(a))&&(u=ke(o)),l){const p=Q(o,!0,r,o);d.x=p.x+o.clientLeft,d.y=p.y+o.clientTop}else a&&c();r&&!l&&a&&c();const s=a&&!l&&!r?tt(a,u):j(0),f=i.left+u.scrollLeft-d.x-s.x,m=i.top+u.scrollTop-d.y-s.y;return{x:f,y:m,width:i.width,height:i.height}}function Te(t){return F(t).position==="static"}function at(t,o){if(!H(t)||F(t).position==="fixed")return null;if(o)return o(t);let n=t.offsetParent;return I(t)===n&&(n=n.ownerDocument.body),n}function rt(t,o){const n=O(t);if(we(t))return n;if(!H(t)){let a=Y(t);for(;a&&!oe(a);){if(D(a)&&!Te(a))return a;a=Y(a)}return n}let l=at(t,o);for(;l&&Rn(l)&&Te(l);)l=at(l,o);return l&&oe(l)&&Te(l)&&!Re(l)?n:l||An(t)||n}const qn=async function(t){const o=this.getOffsetParent||rt,n=this.getDimensions,l=await n(t.floating);return{reference:Kn(t.reference,await o(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function Gn(t){return F(t).direction==="rtl"}const Yn={convertOffsetParentRelativeRectToViewportRelativeRect:Fn,getDocumentElement:I,getClippingRect:Wn,getOffsetParent:rt,getElementRects:qn,getClientRects:Pn,getDimensions:Xn,getScale:le,isElement:D,isRTL:Gn};function it(t,o){return t.x===o.x&&t.y===o.y&&t.width===o.width&&t.height===o.height}function Jn(t,o){let n=null,l;const a=I(t);function r(){var u;clearTimeout(l),(u=n)==null||u.disconnect(),n=null}function i(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),r();const c=t.getBoundingClientRect(),{left:s,top:f,width:m,height:p}=c;if(u||o(),!m||!p)return;const h=he(f),w=he(a.clientWidth-(s+m)),C=he(a.clientHeight-(f+p)),k=he(s),g={rootMargin:-h+"px "+-w+"px "+-C+"px "+-k+"px",threshold:M(0,ne(1,d))||1};let S=!0;function E(R){const b=R[0].intersectionRatio;if(b!==d){if(!S)return i();b?i(!1,b):l=setTimeout(()=>{i(!1,1e-7)},1e3)}b===1&&!it(c,t.getBoundingClientRect())&&i(),S=!1}try{n=new IntersectionObserver(E,{...g,root:a.ownerDocument})}catch{n=new IntersectionObserver(E,g)}n.observe(t)}return i(!0),r}function st(t,o,n,l){l===void 0&&(l={});const{ancestorScroll:a=!0,ancestorResize:r=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=l,c=Ne(t),s=a||r?[...c?ue(c):[],...ue(o)]:[];s.forEach(k=>{a&&k.addEventListener("scroll",n,{passive:!0}),r&&k.addEventListener("resize",n)});const f=c&&u?Jn(c,n):null;let m=-1,p=null;i&&(p=new ResizeObserver(k=>{let[V]=k;V&&V.target===c&&p&&(p.unobserve(o),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var g;(g=p)==null||g.observe(o)})),n()}),c&&!d&&p.observe(c),p.observe(o));let h,w=d?Q(t):null;d&&C();function C(){const k=Q(t);w&&!it(w,k)&&n(),w=k,h=requestAnimationFrame(C)}return n(),()=>{var k;s.forEach(V=>{a&&V.removeEventListener("scroll",n),r&&V.removeEventListener("resize",n)}),f?.(),(k=p)==null||k.disconnect(),p=null,d&&cancelAnimationFrame(h)}}const ct=_n,dt=xn,ut=Vn,Qn=En,Zn=(t,o,n)=>{const l=new Map,a={platform:Yn,...n},r={...a.platform,_c:l};return kn(t,o,{...a,platform:r})};function eo(t){return t!=null&&typeof t=="object"&&"$el"in t}function ft(t){if(eo(t)){const o=t.$el;return $e(o)&&J(o)==="#comment"?null:o}return t}function fe(t){return typeof t=="function"?t():e.unref(t)}function mt(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function pt(t,o){const n=mt(t);return Math.round(o*n)/n}function ht(t,o,n){n===void 0&&(n={});const l=n.whileElementsMounted,a=e.computed(()=>{var b;return(b=fe(n.open))!=null?b:!0}),r=e.computed(()=>fe(n.middleware)),i=e.computed(()=>{var b;return(b=fe(n.placement))!=null?b:"bottom"}),u=e.computed(()=>{var b;return(b=fe(n.strategy))!=null?b:"absolute"}),d=e.computed(()=>{var b;return(b=fe(n.transform))!=null?b:!0}),c=e.computed(()=>ft(t.value)),s=e.computed(()=>ft(o.value)),f=e.ref(0),m=e.ref(0),p=e.ref(u.value),h=e.ref(i.value),w=e.shallowRef({}),C=e.ref(!1),k=e.computed(()=>{const b={position:p.value,left:"0",top:"0"};if(!s.value)return b;const y=pt(s.value,f.value),x=pt(s.value,m.value);return d.value?{...b,transform:"translate("+y+"px, "+x+"px)",...mt(s.value)>=1.5&&{willChange:"transform"}}:{position:p.value,left:y+"px",top:x+"px"}});let V;function g(){if(c.value==null||s.value==null)return;const b=a.value;Zn(c.value,s.value,{middleware:r.value,placement:i.value,strategy:u.value}).then(y=>{f.value=y.x,m.value=y.y,p.value=y.strategy,h.value=y.placement,w.value=y.middlewareData,C.value=b!==!1})}function S(){typeof V=="function"&&(V(),V=void 0)}function E(){if(S(),l===void 0){g();return}if(c.value!=null&&s.value!=null){V=l(c.value,s.value,g);return}}function R(){a.value||(C.value=!1)}return e.watch([r,i,u,a],g,{flush:"sync"}),e.watch([c,s],E,{flush:"sync"}),e.watch(a,R,{flush:"sync"}),e.getCurrentScope()&&e.onScopeDispose(S),{x:e.shallowReadonly(f),y:e.shallowReadonly(m),strategy:e.shallowReadonly(p),placement:e.shallowReadonly(h),middlewareData:e.shallowReadonly(w),isPositioned:e.shallowReadonly(C),floatingStyles:k,update:g}}const gt=$(e.defineComponent({inheritAttrs:!1,__name:"dot-menu",props:{icon:{}},setup(t){const o=t,n=e.ref(!1),l=e.ref(null),a=e.ref(null),r=e.computed(()=>o.icon??N.DOT_MENU),{floatingStyles:i}=ht(l,a,{placement:"bottom-end",middleware:[ct(8),ut(),dt({padding:8})],whileElementsMounted:st}),u=()=>{n.value=!n.value},d=()=>{n.value=!1};return(c,s)=>{const f=e.resolveComponent("VjButton"),m=e.resolveComponent("VjMenu");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["dot-menu-container",c.$attrs.class])},[e.createVNode(f,{ref_key:"buttonRef",ref:l,class:"dot-menu",tertiary:"",icon:r.value,onClick:u},null,8,["icon"]),e.createVNode(e.Transition,{name:"menu"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createBlock(m,{key:0,ref_key:"floatingRef",ref:a,style:e.normalizeStyle(e.unref(i)),class:"menu-dropdown",onClose:d},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},8,["style"])):e.createCommentVNode("",!0)]),_:3})],2),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"menu-backdrop",onClick:d})):e.createCommentVNode("",!0)]))],64)}}}),[["__scopeId","data-v-f853b4ab"]]),bt=$(e.defineComponent({__name:"link-button",props:{label:{},icon:{},to:{},primary:{type:Boolean},secondary:{type:Boolean},tertiary:{type:Boolean},disabled:{type:Boolean}},setup(t){const o=t,n=T.S,l=e.computed(()=>o.primary?"primary":o.secondary?"secondary":o.tertiary?"tertiary":"primary");return(a,r)=>{const i=e.resolveComponent("router-link");return e.openBlock(),e.createBlock(i,{to:t.to,class:e.normalizeClass(["button",l.value]),disabled:t.disabled},{default:e.withCtx(()=>[t.icon?(e.openBlock(),e.createBlock(te,{key:0,icon:t.icon,size:e.unref(n)},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.label),1)]),_:1},8,["to","class","disabled"])}}}),[["__scopeId","data-v-bd3cf2f5"]]),to=["disabled"],no={class:"menu-action--icon"},yt=$(e.defineComponent({__name:"menu-action",props:{label:{},icon:{},disabled:{type:Boolean}},setup(t){const o=T.S;return(n,l)=>(e.openBlock(),e.createElementBlock("button",{class:"menu-action button tertiary",disabled:t.disabled},[e.createElementVNode("span",no,[t.icon?(e.openBlock(),e.createBlock(te,{key:0,icon:t.icon,size:e.unref(o)},null,8,["icon","size"])):e.createCommentVNode("",!0)]),e.createElementVNode("span",null,e.toDisplayString(t.label),1)],8,to))}}),[["__scopeId","data-v-07850995"]]),oo={},lo={class:"menu"};function ao(t,o){return e.openBlock(),e.createElementBlock("div",lo,[e.renderSlot(t.$slots,"default",{},void 0,!0)])}const wt=$(oo,[["render",ao],["__scopeId","data-v-259fec08"]]),ro={class:"page"},io={key:0,class:"page-error"},so={key:1,class:"contents"},co={key:2,class:"actions"},uo={key:3},fo={key:0},kt=$(e.defineComponent({__name:"page",props:{title:{},scrollable:{type:Boolean},errorMessage:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("header",null,[e.createElementVNode("h2",null,e.toDisplayString(t.title),1),e.createElementVNode("span",null,[e.renderSlot(o.$slots,"headerActions",{},void 0,!0)])]),e.createElementVNode("main",{class:e.normalizeClass({scrollable:t.scrollable})},[t.errorMessage?(e.openBlock(),e.createElementBlock("div",io,[e.renderSlot(o.$slots,"error",{},void 0,!0)])):e.createCommentVNode("",!0),t.errorMessage?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",so,[e.renderSlot(o.$slots,"default",{},void 0,!0)])),t.errorMessage?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",co,[e.renderSlot(o.$slots,"actions",{},void 0,!0)])),o.$slots.flexFooter?(e.openBlock(),e.createElementBlock("footer",uo,[e.renderSlot(o.$slots,"flexFooter",{},void 0,!0)])):e.createCommentVNode("",!0)],2),o.$slots.footer?(e.openBlock(),e.createElementBlock("footer",fo,[e.renderSlot(o.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-1618f861"]]),mo={class:"paginator-info","aria-live":"polite"},Vt=$(e.defineComponent({__name:"paginator",props:e.mergeModels({totalItems:{},pageSize:{},labels:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(t,{emit:o}){const n=t,l=e.useModel(t,"modelValue"),a=o,r=e.computed(()=>Math.max(1,Math.ceil((n.totalItems??0)/n.pageSize))),i=e.computed(()=>Math.min(Math.max(1,l.value??1),r.value)),u=e.computed(()=>i.value),d=e.computed(()=>i.value<=1),c=e.computed(()=>i.value>=r.value),s=e.computed(()=>n.labels?.item??"Eintrag"),f=e.computed(()=>n.labels?.of??"von"),m=k=>{const V=Math.min(Math.max(1,Math.floor(k)),r.value);V!==l.value&&(l.value=V,a("change",V))},p=()=>m(1),h=()=>m(i.value-1),w=()=>m(i.value+1),C=()=>m(r.value);return e.watch([()=>n.totalItems,()=>n.pageSize],()=>{l.value>r.value&&m(r.value)}),(k,V)=>{const g=e.resolveComponent("VjButton");return e.openBlock(),e.createElementBlock("nav",{class:"paginator","aria-label":"Pagination",onKeydown:V[0]||(V[0]=e.withKeys(e.withModifiers(()=>{},["prevent"]),["enter"]))},[e.createVNode(g,{tertiary:"",class:"paginator-btn",icon:e.unref(N).FIRST,disabled:d.value,onClick:p,"aria-label":"First page"},null,8,["icon","disabled"]),e.createVNode(g,{tertiary:"",class:"paginator-btn",icon:e.unref(N).PREVIOUS,disabled:d.value,onClick:h,"aria-label":"Previous page"},null,8,["icon","disabled"]),e.renderSlot(k.$slots,"info",{current:i.value,totalPages:r.value,goTo:m},()=>[e.createElementVNode("div",mo,e.toDisplayString(s.value)+" "+e.toDisplayString(u.value)+" "+e.toDisplayString(f.value)+" "+e.toDisplayString(r.value),1)],!0),e.createVNode(g,{tertiary:"",class:"paginator-btn",icon:e.unref(N).NEXT,disabled:c.value,onClick:w,"aria-label":"Next page"},null,8,["icon","disabled"]),e.createVNode(g,{tertiary:"",class:"paginator-btn",icon:e.unref(N).LAST,disabled:c.value,onClick:C,"aria-label":"Last page"},null,8,["icon","disabled"])],32)}}}),[["__scopeId","data-v-b6fa8efe"]]),po={class:"search-field"},ho=["value","placeholder"],Ct=$(e.defineComponent({__name:"search-field",props:e.mergeModels({placeholder:{default:"Search..."}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue"),n=r=>{o.value=r.target.value},l=()=>{o.value=""},a=e.computed(()=>!o.value);return(r,i)=>{const u=e.resolveComponent("VjIcon");return e.openBlock(),e.createElementBlock("div",po,[e.createVNode(u,{icon:e.unref(N).SEARCH,size:e.unref(T).S},null,8,["icon","size"]),e.createElementVNode("input",{value:o.value,onInput:n,type:"text",placeholder:t.placeholder},null,40,ho),e.createVNode(u,{class:e.normalizeClass(["reset",{invisible:a.value}]),icon:e.unref(N).CLOSE,size:e.unref(T).S,onClick:l},null,8,["class","icon","size"])])}}}),[["__scopeId","data-v-2771c8ed"]]),Bt=$(e.defineComponent({__name:"separator",props:{vertical:{type:Boolean}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["separator",{vertical:t.vertical}])},null,2))}}),[["__scopeId","data-v-e354bb4e"]]),go={class:"tab-view"},bo={ref:"headerRef",class:"tab-view-header"},yo=["onClick"],wo={class:"tab-view-content"},_t=$(e.defineComponent({__name:"tab-view",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(t){const o=e.useModel(t,"modelValue"),n=e.ref([]),l=e.ref([]),a=e.ref({width:"0px",transform:"translateX(0px)"}),r=(c,s)=>{c&&(l.value[s]=c)},i=()=>{const c=n.value.findIndex(s=>s.name===o.value);if(c>=0&&l.value[c]){const s=l.value[c],f=s.offsetWidth,m=s.offsetLeft;a.value={width:`${f}px`,transform:`translateX(${m}px)`}}},u=(c,s)=>{n.value.find(f=>f.name===c)||(n.value.push({name:c,label:s}),e.nextTick(()=>{!o.value&&n.value.length===1&&(o.value=c),i()}))},d=c=>{o.value=c};return e.watch(o,()=>{e.nextTick(()=>{i()})}),e.provide("tabView",{activeTab:()=>o.value,registerTab:u}),(c,s)=>(e.openBlock(),e.createElementBlock("div",go,[e.createElementVNode("div",bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(f,m)=>(e.openBlock(),e.createElementBlock("div",{key:f.name,ref_for:!0,ref:p=>r(p,m),class:e.normalizeClass(["tab-button",{active:o.value===f.name}]),onClick:p=>d(f.name)},e.toDisplayString(f.label),11,yo))),128)),s[0]||(s[0]=e.createElementVNode("div",{class:"tab-line"},null,-1)),e.createElementVNode("div",{class:"tab-indicator",style:e.normalizeStyle(a.value)},null,4)],512),e.createElementVNode("div",wo,[e.renderSlot(c.$slots,"default",{},void 0,!0)])]))}}),[["__scopeId","data-v-3d4ee454"]]),ko={key:0,class:"tab"},xt=e.defineComponent({__name:"tab",props:{name:{},label:{}},setup(t){const o=t,n=e.inject("tabView"),l=e.computed(()=>n?.activeTab()===o.name);return e.onMounted(()=>{n?.registerTab(o.name,o.label)}),(a,r)=>l.value?(e.openBlock(),e.createElementBlock("div",ko,[e.renderSlot(a.$slots,"default")])):e.createCommentVNode("",!0)}}),Vo=["data-colspan","data-newline"],Co={class:"form-field__wrapper"},Bo=["for"],_o={key:0,class:"form-field__error"},ae=$(e.defineComponent({__name:"form-field",props:{modelValue:{},label:{},id:{},placeholder:{},disabled:{type:Boolean},colspan:{},newLine:{type:Boolean},spanRow:{type:Boolean},error:{}},emits:["update:modelValue","focus","blur"],setup(t,{emit:o}){const n=t,l=o,a=e.ref(n.modelValue),r=e.ref(!1),i=e.computed(()=>`form-field-${n.id??Math.random().toString(36).slice(2)}`);e.watch(()=>n.modelValue,m=>a.value=m);const u=e.computed(()=>r.value||!!a.value||!!n.placeholder),d=e.computed(()=>u.value?n.placeholder:"");function c(m){const h=m.target.value;a.value=h,l("update:modelValue",h)}function s(m){r.value=!0,l("focus",m)}function f(m){r.value=!1,l("blur",m)}return(m,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["form-field",{disabled:t.disabled},{labelless:!t.label},{error:!!t.error}]),"data-colspan":n.spanRow?void 0:n.colspan,"data-newline":n.spanRow||n.newLine?"true":void 0,style:e.normalizeStyle(n.spanRow?{gridColumn:"1 / -1"}:void 0)},[e.createElementVNode("div",Co,[e.renderSlot(m.$slots,"control",{id:i.value,value:a.value,onInput:c,onFocus:s,onBlur:f,disabled:t.disabled,placeholder:d.value},void 0,!0),t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:e.normalizeClass(["form-field__label",{"form-field__label--float":u.value}])},e.toDisplayString(t.label),11,Bo)):e.createCommentVNode("",!0)]),t.error?(e.openBlock(),e.createElementBlock("div",_o,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)],14,Vo))}}),[["__scopeId","data-v-b37aee00"]]),Et=$(e.defineComponent({__name:"form-layout",props:{columns:{type:Number,default:4},gap:{type:String,default:"0.75rem"}},setup(t){const o=t,n=e.ref(null);let l=null;function a(){if(!n.value)return;Array.from(n.value.children).forEach(i=>{const u=i.getAttribute("data-colspan"),d=u?Math.max(1,Number(u)||1):1,c=i.getAttribute("data-newline");c!==null&&c!=="false"?i.style.gridColumn="1 / -1":i.style.gridColumn=`span ${d}`})}return e.onMounted(()=>{e.nextTick(()=>{a(),n.value&&(l=new MutationObserver(()=>a()),l.observe(n.value,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["data-colspan","data-newline"]}))})}),e.onBeforeUnmount(()=>{l?.disconnect()}),e.watch(()=>o.columns,()=>e.nextTick(a)),e.watch(()=>o.gap,()=>e.nextTick(a)),(r,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"form-layout",style:e.normalizeStyle({gridTemplateColumns:`repeat(${t.columns}, minmax(0, 1fr))`,gap:t.gap})},[e.renderSlot(r.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-96f62ab7"]]),xo={key:0,class:"form-section__title","data-newline":""},St=$(e.defineComponent({__name:"form-section",props:{title:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.title?(e.openBlock(),e.createElementBlock("h3",xo,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default",{},void 0,!0)],64))}}),[["__scopeId","data-v-69cff1d0"]]),Eo=["id","disabled"],So={class:"select-value"},$o={key:1,class:"select-placeholder"},Ro={class:"select-options"},vo=["onClick","onMouseenter"],Ae=$(e.defineComponent({inheritAttrs:!1,__name:"select",props:e.mergeModels({options:{},placeholder:{},disabled:{type:Boolean},optionLabel:{type:Function},id:{},optionValue:{type:Function},icon:{},clearable:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:o}){const n=t,l=e.useModel(t,"modelValue"),a=e.ref(!1),r=e.ref(-1),i=e.ref(null),u=e.ref(null),d=e.ref(null),{floatingStyles:c}=ht(u,d,{placement:"bottom-start",middleware:[ct(4),ut(),dt({padding:8}),Qn({apply({rects:g,elements:S}){Object.assign(S.floating.style,{minWidth:`${g.reference.width}px`})}})],whileElementsMounted:st}),s=g=>n.optionLabel?typeof n.optionLabel=="function"?n.optionLabel(g):String(g[n.optionLabel]):String(g),f=g=>n.optionValue?typeof n.optionValue=="function"?n.optionValue(g):g[n.optionValue]:g,m=e.computed(()=>n.options.find(g=>f(g)===l.value)),p=g=>f(g)===l.value,h=()=>{n.disabled||(a.value=!a.value)},w=()=>{a.value=!1,r.value=-1},C=g=>{l.value=f(g),w()},k=()=>{l.value=void 0},V=g=>{a.value&&i.value&&!i.value.contains(g.target)&&w()};return e.onMounted(()=>{document.addEventListener("click",V)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",V)}),e.watch(a,g=>{g&&m.value&&(r.value=n.options.findIndex(S=>p(S)))}),o({focus:()=>u.value?.focus(),blur:()=>u.value?.blur()}),(g,S)=>{const E=e.resolveComponent("VjIcon");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"selectRef",ref:i,class:e.normalizeClass(["select",g.$attrs.class])},[e.createElementVNode("button",{ref_key:"buttonRef",ref:u,type:"button",class:"select-trigger",id:n.id,onClick:h,disabled:t.disabled},[n.icon?(e.openBlock(),e.createBlock(E,{key:0,icon:n.icon,size:e.unref(T).S,class:"select-icon-left"},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createElementVNode("span",So,[m.value?e.renderSlot(g.$slots,"selected",{key:0,option:m.value},()=>[e.createTextVNode(e.toDisplayString(s(m.value)),1)],!0):(e.openBlock(),e.createElementBlock("span",$o,e.toDisplayString(t.placeholder),1))]),n.clearable&&m.value&&!t.disabled?(e.openBlock(),e.createBlock(E,{key:1,icon:e.unref(N).CLOSE,size:e.unref(T).S,class:"select-clear-icon",onClick:e.withModifiers(k,["stop"])},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createVNode(E,{icon:e.unref(N).CHEVRON_DOWN,size:e.unref(T).S,class:e.normalizeClass(["select-icon-right",{open:a.value}])},null,8,["icon","size","class"])],8,Eo),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"floatingRef",ref:d,style:e.normalizeStyle(e.unref(c)),class:"select-dropdown"},[e.createElementVNode("div",Ro,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,(R,b)=>(e.openBlock(),e.createElementBlock("div",{key:String(f(R)),class:e.normalizeClass(["select-option",{selected:p(R),highlighted:r.value===b}]),onClick:y=>C(R),onMouseenter:y=>r.value=b},[e.renderSlot(g.$slots,"option",{option:R,selected:p(R)},()=>[e.createTextVNode(e.toDisplayString(s(R)),1)],!0)],42,vo))),128))])],4)):e.createCommentVNode("",!0)]),_:3})],2),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"select-backdrop",onClick:w})):e.createCommentVNode("",!0)]))],64)}}}),[["__scopeId","data-v-fc22f0e9"]]),$t=e.defineComponent({__name:"input-select",props:{modelValue:{},label:{},id:{},placeholder:{},disabled:{type:Boolean},colspan:{},newLine:{type:Boolean},spanRow:{type:Boolean},error:{},options:{}},emits:["update:modelValue","input","focus","blur"],setup(t,{emit:o}){const n=t,l=o,a=e.ref(n.modelValue),r=i=>{a.value=i,l("update:modelValue",i)};return(i,u)=>(e.openBlock(),e.createBlock(ae,{modelValue:a.value,"onUpdate:modelValue":r,label:n.label,id:n.id,placeholder:n.placeholder,disabled:n.disabled,colspan:n.colspan,newLine:n.newLine,spanRow:n.spanRow,error:n.error},{control:e.withCtx(({id:d,disabled:c,placeholder:s})=>[e.createVNode(Ae,{id:d,modelValue:a.value,"onUpdate:modelValue":[u[0]||(u[0]=f=>a.value=f),r],options:n.options,placeholder:s,disabled:c,"option-label":f=>f.label,"option-value":f=>f.value,clearable:""},null,8,["id","modelValue","options","placeholder","disabled","option-label","option-value"])]),_:1},8,["modelValue","label","id","placeholder","disabled","colspan","newLine","spanRow","error"]))}}),Lo={class:"textarea"},No=["value","placeholder","disabled","rows"],Me=$(e.defineComponent({__name:"textarea",props:e.mergeModels({icon:{},placeholder:{},disabled:{type:Boolean},clearable:{type:Boolean},rows:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=o,l=e.useModel(t,"modelValue"),a=c=>{l.value=c.target.value},r=()=>{l.value=""},i=c=>{n("focus",c)},u=c=>{n("blur",c)},d=e.computed(()=>!l.value);return(c,s)=>{const f=e.resolveComponent("VjIcon");return e.openBlock(),e.createElementBlock("div",Lo,[t.icon?(e.openBlock(),e.createBlock(f,{key:0,icon:t.icon,size:e.unref(T).S,class:"textarea-icon"},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createElementVNode("textarea",{value:l.value,onInput:a,onFocus:i,onBlur:u,placeholder:t.placeholder,disabled:t.disabled,rows:t.rows},null,40,No),t.clearable&&!t.disabled?(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(["clear-icon",{invisible:d.value}]),icon:e.unref(N).CLOSE,size:e.unref(T).S,onClick:r},null,8,["class","icon","size"])):e.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-2ea43716"]]),Rt=e.defineComponent({__name:"input-text-area",props:{modelValue:{},label:{},id:{},placeholder:{},disabled:{type:Boolean},colspan:{},newLine:{type:Boolean},spanRow:{type:Boolean},error:{},rows:{}},emits:["update:modelValue","input","focus","blur"],setup(t,{emit:o}){const n=t,l=o,a=s=>l("update:modelValue",s),r=s=>l("input",s),i=s=>l("focus",s),u=s=>l("blur",s),d=s=>{a(s??"")},c=e.computed(()=>{const s=n.modelValue;return s==null?"":String(s)});return(s,f)=>(e.openBlock(),e.createBlock(ae,{modelValue:n.modelValue,"onUpdate:modelValue":a,onInput:r,onFocus:i,onBlur:u,label:n.label,id:n.id,placeholder:n.placeholder,disabled:n.disabled,colspan:n.colspan,newLine:n.newLine,spanRow:n.spanRow,error:n.error},{control:e.withCtx(({id:m,disabled:p,placeholder:h,onFocus:w,onBlur:C})=>[e.createVNode(Me,{id:m,modelValue:c.value,"onUpdate:modelValue":d,onFocus:k=>{w(k),i(k)},onBlur:k=>{C(k),u(k)},placeholder:h,disabled:p,rows:n.rows,clearable:""},null,8,["id","modelValue","onFocus","onBlur","placeholder","disabled","rows"])]),_:1},8,["modelValue","label","id","placeholder","disabled","colspan","newLine","spanRow","error"]))}}),To={class:"input"},Ao=["value","type","placeholder","disabled"],Oe=$(e.defineComponent({__name:"input",props:e.mergeModels({icon:{},type:{},placeholder:{},disabled:{type:Boolean},clearable:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["focus","blur"],["update:modelValue"]),setup(t,{emit:o}){const n=o,l=e.useModel(t,"modelValue"),a=c=>{l.value=c.target.value},r=()=>{l.value=""},i=c=>{n("focus",c)},u=c=>{n("blur",c)},d=e.computed(()=>!l.value);return(c,s)=>{const f=e.resolveComponent("VjIcon");return e.openBlock(),e.createElementBlock("div",To,[t.icon?(e.openBlock(),e.createBlock(f,{key:0,icon:t.icon,size:e.unref(T).S},null,8,["icon","size"])):e.createCommentVNode("",!0),e.createElementVNode("input",{value:l.value,onInput:a,onFocus:i,onBlur:u,type:t.type,placeholder:t.placeholder,disabled:t.disabled},null,40,Ao),t.clearable&&!t.disabled?(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(["clear-icon",{invisible:d.value}]),icon:e.unref(N).CLOSE,size:e.unref(T).S,onClick:r},null,8,["class","icon","size"])):e.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-be574bc7"]]),vt=e.defineComponent({__name:"input-text",props:{modelValue:{},label:{},id:{},placeholder:{},disabled:{type:Boolean},colspan:{},newLine:{type:Boolean},spanRow:{type:Boolean},error:{}},emits:["update:modelValue","input","focus","blur"],setup(t,{emit:o}){const n=o,l=d=>n("update:modelValue",d),a=d=>n("input",d),r=d=>n("focus",d),i=d=>n("blur",d),u=d=>{l(d??"")};return(d,c)=>(e.openBlock(),e.createBlock(ae,{modelValue:t.modelValue,"onUpdate:modelValue":l,onInput:a,onFocus:r,onBlur:i,label:t.label,id:t.id,placeholder:t.placeholder,disabled:t.disabled,colspan:t.colspan,newLine:t.newLine,spanRow:t.spanRow,error:t.error},{control:e.withCtx(({id:s,disabled:f,placeholder:m,onFocus:p,onBlur:h})=>[e.createVNode(Oe,{id:s,modelValue:t.modelValue,"onUpdate:modelValue":u,onFocus:w=>{p(w),r(w)},onBlur:w=>{h(w),i(w)},placeholder:m,disabled:f,clearable:""},null,8,["id","modelValue","onFocus","onBlur","placeholder","disabled"])]),_:1},8,["modelValue","label","id","placeholder","disabled","colspan","newLine","spanRow","error"]))}}),Mo={class:"shell-navigation-item"},Oo={class:"shell-navigation-item-label"},Lt=$(e.defineComponent({__name:"shell-navigation-item",props:{label:{},icon:{},to:{}},setup(t){return(o,n)=>{const l=e.resolveComponent("VjIcon"),a=e.resolveComponent("RouterLink");return e.openBlock(),e.createElementBlock("li",Mo,[e.createVNode(a,{to:t.to,class:"shell-navigation-item-link"},{default:e.withCtx(()=>[e.createVNode(l,{icon:t.icon,class:"shell-navigation-item-icon"},null,8,["icon"]),e.createElementVNode("label",Oo,e.toDisplayString(t.label),1)]),_:1},8,["to"])])}}}),[["__scopeId","data-v-d5c087be"]]),Do={class:"navigation-top"},Fo={class:"navigation-bottom"},De=$(e.defineComponent({__name:"shell-navigation",setup(t){const o=e.inject(Mt,Ot());console.log("navigationProvider",o);const n=e.computed(()=>o.showLabels);return(l,a)=>{const r=e.resolveComponent("VjShellNavigationItem");return e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(["shell-navigation",{"with-labels":n.value}])},[e.createElementVNode("ul",Do,[e.unref(o).hasParent&&e.unref(o).backRoute.value?(e.openBlock(),e.createBlock(r,{key:0,to:e.unref(o).backRoute.value,label:"BACK",icon:e.unref(N).HOME},null,8,["to","icon"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).childRoutes.value,i=>(e.openBlock(),e.createBlock(r,{key:i.name,to:{name:i.name},label:i.meta.label,icon:i.meta.icon??e.unref(N).HOME},null,8,["to","label","icon"]))),128))]),e.createElementVNode("ul",Fo,[e.renderSlot(l.$slots,"fixed",{},void 0,!0)])],2)}}}),[["__scopeId","data-v-0f990f5b"]]),Po={class:"shell"},zo={class:"shell-title"},jo=["src"],Io={class:"header-actions"},Nt=$(e.defineComponent({__name:"shell",props:{title:{},icon:{},showNavigation:{type:Boolean}},setup(t){const o=Ft(),n=e.toRef(o,"asideComponent"),l=e.toRef(o,"hasAside"),a=e.toRef(o,"asideData"),r=e.computed(()=>{const i=a.value;return i&&typeof i=="object"?i:{}});return(i,u)=>{const d=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock("div",Po,[e.createElementVNode("header",null,[e.createElementVNode("span",zo,[t.icon?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.icon,alt:"Shell Icon"},null,8,jo)):e.createCommentVNode("",!0),e.createElementVNode("h1",null,e.toDisplayString(t.title),1)]),e.createElementVNode("div",Io,[e.renderSlot(i.$slots,"header-actions",{},void 0,!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["shell-content",{"with-navigation":t.showNavigation}])},[t.showNavigation?(e.openBlock(),e.createBlock(e.unref(De),{key:0})):e.createCommentVNode("",!0),e.createElementVNode("main",null,[e.renderSlot(i.$slots,"default",{},()=>[e.createVNode(d)],!0)]),e.createElementVNode("aside",{class:e.normalizeClass({"aside-visible":l.value})},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),e.normalizeProps(e.guardReactiveProps(r.value)),null,16))],2)],2),u[0]||(u[0]=e.createElementVNode("footer",null,null,-1))])}}}),[["__scopeId","data-v-336560c3"]]),Ho=["aria-valuemin","aria-valuemax","aria-valuenow","aria-label"],Uo=["aria-valuemin","aria-valuemax","aria-valuenow"],Wo=$(e.defineComponent({__name:"slider",props:{modelValue:{default:void 0},min:{default:0},max:{default:100},step:{default:1},range:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:o}){const n=t,l=o,a=e.ref(null),r=e.ref(!1),i=e.ref(!1),u=(b,y,x)=>Math.min(Math.max(b,y),x),d=e.ref(n.range?Array.isArray(n.modelValue)?n.modelValue[0]:n.min:typeof n.modelValue=="number"?n.modelValue:n.min),c=e.ref(n.range&&Array.isArray(n.modelValue)?n.modelValue[1]:n.max);e.watch(()=>n.modelValue,b=>{n.range?Array.isArray(b)&&(d.value=u(b[0],n.min,n.max),c.value=u(b[1],n.min,n.max)):typeof b=="number"&&(d.value=u(b,n.min,n.max))},{immediate:!0});const s=b=>(b-n.min)/(n.max-n.min)*100,f=e.computed(()=>({left:`${s(d.value)}%`})),m=e.computed(()=>({left:`${s(c.value)}%`})),p=e.computed(()=>{if(!n.range)return{width:`${s(d.value)}%`,left:"0%"};const b=s(d.value),y=s(c.value);return{left:`${b}%`,width:`${Math.max(0,y-b)}%`}});let h=null,w=null;const C=async(b,y)=>{h=b,w=y.pointerId,b==="low"?r.value=!0:i.value=!0;try{y.target.setPointerCapture(y.pointerId)}catch{}window.addEventListener("pointermove",V),window.addEventListener("pointerup",k)},k=b=>{if(w!=null&&b)try{b.target.releasePointerCapture(b.pointerId)}catch{}h=null,w=null,r.value=!1,i.value=!1,window.removeEventListener("pointermove",V),window.removeEventListener("pointerup",k),E()},V=b=>{if(!h||!a.value)return;const y=a.value.getBoundingClientRect(),x=u(b.clientX-y.left,0,y.width),v=n.min+x/y.width*(n.max-n.min),L=Math.round(v/n.step)*n.step;h==="low"?n.range?d.value=Math.min(L,c.value):d.value=u(L,n.min,n.max):h==="high"&&(c.value=Math.max(L,d.value))},g=b=>{if(!a.value)return;const y=a.value.getBoundingClientRect(),x=u(b.clientX-y.left,0,y.width),v=n.min+x/y.width*(n.max-n.min),L=Math.round(v/n.step)*n.step;if(n.range){const X=Math.abs(L-d.value),K=Math.abs(L-c.value);X<=K?d.value=Math.min(L,c.value):c.value=Math.max(L,d.value)}else d.value=u(L,n.min,n.max);E()},S=(b,y)=>{const x=n.step,v=y.key==="ArrowLeft"||y.key==="ArrowDown"?-1:y.key==="ArrowRight"||y.key==="ArrowUp"?1:0;if(v){if(b==="low"){const L=u(d.value+v*x,n.min,n.range?c.value:n.max);d.value=L,r.value=!0,setTimeout(()=>r.value=!1,800)}else{const L=u(c.value+v*x,n.range?d.value:n.max,n.max);c.value=L,i.value=!0,setTimeout(()=>i.value=!1,800)}E()}},E=()=>{n.range?(l("update:modelValue",[d.value,c.value]),l("change",[d.value,c.value])):(l("update:modelValue",d.value),l("change",d.value))};e.onBeforeUnmount(()=>{window.removeEventListener("pointermove",V),window.removeEventListener("pointerup",k)}),e.watch([()=>n.min,()=>n.max],()=>{d.value=u(d.value,n.min,n.max),c.value=u(c.value,n.min,n.max)});const R=e.computed(()=>n.range);return e.nextTick(()=>{n.modelValue===void 0&&(n.range?l("update:modelValue",[d.value,c.value]):l("update:modelValue",d.value))}),(b,y)=>(e.openBlock(),e.createElementBlock("div",{class:"vj-slider",onPointerdown:y[8]||(y[8]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:"track",ref_key:"track",ref:a,onClick:g},[e.createElementVNode("div",{class:"range",style:e.normalizeStyle(p.value)},null,4),r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"tooltip",style:e.normalizeStyle({left:f.value.left})},e.toDisplayString(d.value),5)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"handle low",style:e.normalizeStyle(f.value),"aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":d.value,"aria-label":R.value?"Lower value":"Value",onPointerdown:y[0]||(y[0]=e.withModifiers(x=>C("low",x),["prevent"])),onFocus:y[1]||(y[1]=x=>r.value=!0),onBlur:y[2]||(y[2]=x=>r.value=!1),onKeydown:y[3]||(y[3]=e.withModifiers(x=>S("low",x),["stop","prevent"])),role:"slider",tabindex:"0"},null,44,Ho),R.value&&i.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"tooltip",style:e.normalizeStyle({left:m.value.left})},e.toDisplayString(c.value),5)):e.createCommentVNode("",!0),R.value?(e.openBlock(),e.createElementBlock("button",{key:2,class:"handle high",style:e.normalizeStyle(m.value),"aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":c.value,"aria-label":"Upper value",onPointerdown:y[4]||(y[4]=e.withModifiers(x=>C("high",x),["prevent"])),onFocus:y[5]||(y[5]=x=>i.value=!0),onBlur:y[6]||(y[6]=x=>i.value=!1),onKeydown:y[7]||(y[7]=e.withModifiers(x=>S("high",x),["stop","prevent"])),role:"slider",tabindex:"0"},null,44,Uo)):e.createCommentVNode("",!0)],512)],32))}}),[["__scopeId","data-v-d47c7475"]]),Xo=["onFocusin","onFocusout"],Ko=$(e.defineComponent({__name:"input-slider",props:{modelValue:{},label:{},id:{},placeholder:{},disabled:{type:Boolean},colspan:{},newLine:{type:Boolean},spanRow:{type:Boolean},error:{},min:{},max:{},step:{}},emits:["update:modelValue","input","focus","blur"],setup(t,{emit:o}){const n=t,l=o,a=n.modelValue===void 0?0:Number(n.modelValue),r=e.ref(Number.isNaN(a)?0:a),i=u=>{const d=typeof u=="number"?u:Number(u??0);r.value=Number.isNaN(d)?0:d,l("update:modelValue",r.value),l("input",r.value)};return(u,d)=>(e.openBlock(),e.createBlock(ae,{modelValue:r.value,"onUpdate:modelValue":i,label:n.label,id:n.id,placeholder:" ",disabled:n.disabled,colspan:n.colspan,newLine:n.newLine,spanRow:n.spanRow,error:n.error},{control:e.withCtx(({id:c,disabled:s,placeholder:f,onFocus:m,onBlur:p})=>[e.createElementVNode("div",{class:"input-slider__control",onFocusin:m,onFocusout:p},[e.createVNode(Wo,{id:c,modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),min:n.min,max:n.max,step:n.step,range:!1,disabled:s},null,8,["id","modelValue","min","max","step","disabled"])],40,Xo)]),_:1},8,["modelValue","label","id","disabled","colspan","newLine","spanRow","error"]))}}),[["__scopeId","data-v-051e6d17"]]),Tt=['input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]",'[tabindex]:not([tabindex="-1"])','[contenteditable="true"]'].join(", ");function qo(t){const o=t.querySelectorAll(Tt);for(const n of Array.from(o))if(n.offsetParent!==null||n.getClientRects().length>0)return n;return null}const At={mounted(t,o){const n=typeof o.value=="number"?o.value:0,l=()=>{if(t.matches(Tt)){t.focus();return}const a=qo(t);a&&a.focus()};n>0?setTimeout(l,n):requestAnimationFrame(l)}},Mt="navigationProvider";function Go(t){return!!t.meta&&"icon"in t.meta&&"label"in t.meta}const Ot=()=>{const t=je.useRouter(),o=je.useRoute(),n=!0,l=e.computed(()=>{const s=t.getRoutes();return s.filter(f=>f.path!=="/"&&!s.some(m=>m.children?.some(p=>p.name===f.name)))}),a=e.computed(()=>{const s=o.matched;return s.length?s[s.length-1]:null}),r=e.computed(()=>{const s=o.matched;return s.length>1?s[s.length-2]:null}),i=e.computed(()=>!!(a.value?.children?.length||r.value)),u=e.computed(()=>a.value?.children?.length?a.value:r.value?.children?.length?r.value:null),d=e.computed(()=>{if(!u.value)return null;const f=t.getRoutes().find(m=>m.children?.some(p=>p.name===u.value.name));return f?{name:f.name}:{path:"/"}}),c=e.computed(()=>{let s=[];return o.path==="/"?s=l.value:a.value?.children?.length?s=a.value.children:r.value?.children?.length?s=r.value.children:s=l.value,s.filter(Go)});return{hasParent:i,backRoute:d,childRoutes:c,showLabels:n}},Yo=(t,o=!0,n=void 0)=>{const l=e.isRef(t)?t:e.ref(t),a=!!n,r=e.ref(n||null);return{hasParent:a,backRoute:r,childRoutes:l,showLabels:o}},Fe=e.ref(!1),Pe=e.ref(null),ze=e.ref(null);let re=[];const Dt=t=>(re.push(t),()=>{re=re.filter(o=>o!==t)}),Jo=(t,o)=>(re=[],Pe.value=t,ze.value=o??null,Fe.value=!0,{onClose:n=>Dt(n)}),Qo=t=>{try{re.forEach(o=>{try{o(t)}catch(n){console.error("aside onClose callback error",n)}})}finally{Fe.value=!1,setTimeout(Zo,1e3)}},Zo=()=>{re=[],Pe.value=null,ze.value=null},el={asideComponent:Pe,asideData:ze,showAside:Jo,closeAside:Qo,onAsideClose:Dt,hasAside:Fe},Ft=()=>el,tl=(t,o)=>{let n=null;return(...a)=>{n&&clearTimeout(n),n=setTimeout(()=>{t(...a)},o)}};class nl{containerElement=null;apps=[];ensureContainer(){return this.containerElement||(this.containerElement=document.createElement("div"),this.containerElement.id="vj-dialog-container",document.body.appendChild(this.containerElement)),this.containerElement}open(o){return new Promise(n=>{const l=this.ensureContainer(),a=document.createElement("div");l.appendChild(a);let r=!1;const i=()=>{r||(r=!0,setTimeout(()=>{const d=this.apps.find(c=>c.element===a);d&&(d.app.unmount(),this.apps=this.apps.filter(c=>c!==d)),a.remove()},300))},u=e.createApp({setup(){return()=>e.h(xe,{modelValue:!0,title:o.title,message:o.message,component:o.component,componentProps:o.componentProps,showFooter:o.showFooter??!0,showCancel:o.showCancel??!0,confirmText:o.confirmText,cancelText:o.cancelText,closeOnBackdrop:o.closeOnBackdrop??!1,closeOnEscape:o.closeOnEscape??!0,onConfirm:()=>{n(!0),i()},onCancel:()=>{n(!1),i()},onClose:()=>{r||n(!1),i()}})}});u.component("VjCard",_e),u.component("VjIcon",te),u.component("VjButton",Be),u.mount(a),this.apps.push({app:u,element:a})})}confirm(o){return this.open({title:o.title,message:o.message,showFooter:!0,showCancel:!0,confirmText:o.confirmText??"OK",cancelText:o.cancelText??"Abbrechen"})}alert(o,n){return this.open({title:o,message:n,showFooter:!0,showCancel:!1,confirmText:"OK"})}closeAll(){this.apps.forEach(({app:o,element:n})=>{o.unmount(),n.remove()}),this.apps=[]}}const Pt=new nl;function ol(){return Pt}const ll={install(t){t.component("VjButton",Be),t.component("VjButtonBar",Ie),t.component("VjCard",_e),t.component("VjCarousel",He),t.component("VjDotMenu",gt),t.component("VjIcon",te),t.component("VjLinkButton",bt),t.component("VjMenu",wt),t.component("VjMenuAction",yt),t.component("VjPage",kt),t.component("VjPaginator",Vt),t.component("VjTab",xt),t.component("VjTabView",_t),t.component("VjDialog",xe),t.component("VjInput",Oe),t.component("VjSelect",Ae),t.component("VjTextArea",Me),t.component("VjFormField",ae),t.component("VjFormLayout",Et),t.component("VjFormSection",St),t.component("VjInputText",vt),t.component("VjInputTextArea",Rt),t.component("VjInputSelect",$t),t.component("VjInputSlider",Ko),t.component("VjShellNavigation",De),t.component("VjShellNavigationItem",Lt),t.component("VjShell",Nt),t.component("VjSearchField",Ct),t.component("VjSeparator",Bt),t.directive("focus",At)}};B.Button=Be,B.ButtonBar=Ie,B.Card=_e,B.Carousel=He,B.Checkbox=nn,B.Dialog=xe,B.DotMenu=gt,B.FormField=ae,B.FormLayout=Et,B.FormSection=St,B.Icon=te,B.IconNames=N,B.IconSize=T,B.Input=Oe,B.InputSelect=$t,B.InputText=vt,B.InputTextArea=Rt,B.LinkButton=bt,B.Menu=wt,B.MenuAction=yt,B.Page=kt,B.Paginator=Vt,B.SearchField=Ct,B.Select=Ae,B.Separator=Bt,B.Shell=Nt,B.ShellNavigation=De,B.ShellNavigationItem=Lt,B.Tab=xt,B.TabView=_t,B.TextArea=Me,B.VjComponents=ll,B.VjNavigationProviderKey=Mt,B.dialogService=Pt,B.useAsideService=Ft,B.useDebounce=tl,B.useDialog=ol,B.useRouterNavigationProvider=Ot,B.useStaticNavigationProvider=Yo,B.vFocusFirst=At,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/vue-ui.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.button-bar[data-v-45a6ed1a]{display:flex;justify-content:space-between;align-items:center}.button-bar .left[data-v-45a6ed1a],.button-bar .right[data-v-45a6ed1a],.button[data-v-f31c33cf]{display:inline-flex;align-items:center}.card[data-v-ec6ab562]{display:flex;flex-direction:column;gap:var(--space-m);box-shadow:var(--box-shadow-container);border-radius:var(--border-radius-container);padding:var(--space-m)}.card header[data-v-ec6ab562]{display:flex;justify-content:space-between;align-items:center}.card header>span[data-v-ec6ab562]{display:flex;gap:var(--space-s)}.card footer[data-v-ec6ab562]{border-top:var(--border-footer);padding:var(--space-s) 0 0 0}.card.scrollable[data-v-ec6ab562]{overflow:hidden}.card.scrollable main[data-v-ec6ab562]{flex:1 1 auto;overflow-y:auto}.checkbox[data-v-e2d27ecb]{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-input[data-v-e2d27ecb]{position:absolute;opacity:0;width:0;height:0}.checkbox-input:disabled+.checkbox-box[data-v-e2d27ecb]{opacity:.5;cursor:not-allowed}.checkbox-input:focus-visible+.checkbox-box[data-v-e2d27ecb]{outline:2px solid var(--color-primary, #007bff);outline-offset:2px}.checkbox-box[data-v-e2d27ecb]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:2px solid var(--color-border, #ccc);border-radius:4px;transition:all .2s ease;background-color:var(--color-background, #fff)}.checkbox-icon[data-v-e2d27ecb]{width:16px;height:16px;color:var(--color-primary-contrast, #fff)}.checkbox-check[data-v-e2d27ecb]{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .3s ease}.checkbox-input:checked+.checkbox-box[data-v-e2d27ecb]{background-color:var(--color-primary, #007bff);border-color:var(--color-primary, #007bff)}.checkbox-input:checked+.checkbox-box .checkbox-check[data-v-e2d27ecb]{stroke-dashoffset:0}.checkbox-input:not(:checked)+.checkbox-box[data-v-e2d27ecb]:hover{border-color:var(--color-primary, #007bff)}.checkbox-label[data-v-e2d27ecb]{color:var(--color-text-primary, #333);font-size:1rem}.checkbox-input:disabled~.checkbox-label[data-v-e2d27ecb]{opacity:.5;cursor:not-allowed}.carousel[data-v-232abca2]{position:relative;overflow:visible;outline:none}.carousel-window[data-v-232abca2]{overflow:hidden}.carousel-track[data-v-232abca2]{display:flex;width:100%;transition:transform .4s ease}[data-v-232abca2] .carousel-slide{flex:0 0 100%;max-width:100%}.carousel-btn[data-v-232abca2]{position:absolute;top:50%;transform:translateY(-50%);cursor:pointer}.carousel-btn.prev[data-v-232abca2]{left:.5rem}.carousel-btn.next[data-v-232abca2]{right:.5rem}.carousel-indicators[data-v-232abca2]{position:absolute;left:50%;transform:translate(-50%);bottom:.5rem;display:flex;gap:.5rem}.indicator[data-v-232abca2]{width:10px;height:10px;border-radius:50%;background:#0000004d;border:none;padding:0;cursor:pointer}.indicator.active[data-v-232abca2]{background:#000c;scale:1.2}.indicator[data-v-232abca2]:hover{scale:1.5}.dialog-backdrop[data-v-6af510b3]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-wrapper[data-v-6af510b3]{max-width:90vw;max-height:90vh;overflow:auto}.dialog-card[data-v-6af510b3]{min-width:400px}.dialog-header[data-v-6af510b3]{display:flex;justify-content:space-between;align-items:center;width:100%}.dialog-title[data-v-6af510b3]{margin:0;font-size:1.25rem;font-weight:600}.dialog-close[data-v-6af510b3]{cursor:pointer;padding:.25rem}.dialog-close[data-v-6af510b3]:hover{opacity:.7}.dialog-content[data-v-6af510b3]{padding:0}.dialog-footer[data-v-6af510b3]{display:flex;justify-content:flex-end;gap:.5rem}.dialog-fade-enter-active[data-v-6af510b3],.dialog-fade-leave-active[data-v-6af510b3]{transition:opacity .2s ease}.dialog-fade-enter-from[data-v-6af510b3],.dialog-fade-leave-to[data-v-6af510b3]{opacity:0}.dialog-scale-enter-active[data-v-6af510b3],.dialog-scale-leave-active[data-v-6af510b3]{transition:transform .2s ease,opacity .2s ease}.dialog-scale-enter-from[data-v-6af510b3],.dialog-scale-leave-to[data-v-6af510b3]{transform:scale(.95);opacity:0}.dot-menu-container[data-v-f853b4ab]{position:relative}.dot-menu[data-v-f853b4ab]{border-radius:50%;aspect-ratio:1/1;cursor:pointer}.menu-dropdown[data-v-f853b4ab]{z-index:1000}.menu-backdrop[data-v-f853b4ab]{position:fixed;inset:0;z-index:999;background:transparent}.menu-enter-active[data-v-f853b4ab],.menu-leave-active[data-v-f853b4ab]{transition:opacity .2s ease,transform .2s ease}.menu-enter-from[data-v-f853b4ab],.menu-leave-to[data-v-f853b4ab]{opacity:0;transform:translateY(-8px)}.button[data-v-bd3cf2f5]{display:inline-flex;align-items:center}.menu-action[data-v-07850995]{display:flex;align-items:center;width:100%}.menu-action .menu-action--icon[data-v-07850995]{display:flex;align-items:center;justify-content:center}.menu[data-v-259fec08]{display:inline-flex;flex-direction:column}.page[data-v-1618f861]{display:flex;flex-direction:column;width:100%;height:100%}.page header[data-v-1618f861]{display:flex;align-items:center;justify-content:space-between}.page header>span[data-v-1618f861]{display:flex;align-items:center}.page main[data-v-1618f861]{flex:1 1 auto;overflow:auto;overflow:hidden}.page main.scrollable[data-v-1618f861]{overflow:auto}.page main footer[data-v-1618f861]{position:sticky;bottom:0}.paginator[data-v-b6fa8efe]{display:inline-flex;align-items:center;gap:.5rem}.paginator-info[data-v-b6fa8efe]{font-size:.9rem;color:#000c;padding:0 .5rem}.search-field[data-v-2771c8ed]{display:inline-flex}.search-field input[data-v-2771c8ed]{flex-grow:1}.search-field .reset[data-v-2771c8ed]{cursor:pointer}.search-field .invisible[data-v-2771c8ed]{opacity:0;pointer-events:none}.separator[data-v-e354bb4e]{width:100%;height:1px;background-color:#ddd}.separator.vertical[data-v-e354bb4e]{width:1px;height:100%}.tab-view[data-v-3d4ee454]{display:flex;flex-direction:column}.tab-view-header[data-v-3d4ee454]{display:flex;position:relative}.tab-button[data-v-3d4ee454]{cursor:pointer}.tab-indicator[data-v-3d4ee454]{position:absolute;bottom:0;left:0}.tab-line[data-v-3d4ee454]{position:absolute;bottom:0;left:0;right:0}.tab-view-content[data-v-3d4ee454]{flex:1}.form-field[data-v-b37aee00]{margin-top:var(--space-s);position:relative;width:100%;font-family:inherit}.form-field .form-field__wrapper[data-v-b37aee00]{position:relative;width:100%}.form-field .form-field__label[data-v-b37aee00]{position:absolute;top:50%;transform:translateY(-50%);transition:transform .12s ease,font-size .12s ease,top .12s ease,left .12s ease;pointer-events:none}.form-field .form-field__label--float[data-v-b37aee00]{top:-12px;transform:translateY(0)}.form-field.error[data-v-b37aee00] .input,.form-field.error[data-v-b37aee00] .select-trigger,.form-field.error[data-v-b37aee00] .textarea{outline-color:var(--color-error, #dc2626)!important}.form-field .form-field__error[data-v-b37aee00]{margin-top:4px;font-size:.875rem;color:var(--color-error, #dc2626);line-height:1.4}.form-field.disabled[data-v-b37aee00]{opacity:var(--opacity-disabled, .5)}.form-field.labelless[data-v-b37aee00]{margin-top:0}.form-layout[data-v-96f62ab7]{display:grid;width:100%;align-items:start}.form-layout[data-v-96f62ab7]>*{box-sizing:border-box}.form-section__title[data-v-69cff1d0]{margin:var(--space-m) 0 var(--space-s) 0;font-size:1.125rem;font-weight:600;color:var(--color-text-primary, #333);border-bottom:1px solid var(--color-border, #e0e0e0);padding-bottom:var(--space-xs)}.select[data-v-fc22f0e9]{position:relative;width:100%}.select .select-trigger[data-v-fc22f0e9]{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;cursor:pointer}.select .select-trigger[data-v-fc22f0e9]:hover:not(:disabled){border-color:var(--color-primary, #007bff)}.select .select-trigger[data-v-fc22f0e9]:disabled{opacity:.5;cursor:not-allowed}.select.form-field--control .select-trigger[data-v-fc22f0e9]{padding:0;background:transparent;border:none;border-radius:0}.select.form-field--control .select-trigger[data-v-fc22f0e9]:hover:not(:disabled){border-color:transparent}.select.form-field--control .select-trigger[data-v-fc22f0e9]:focus-visible{outline:none}.select .select-icon-left[data-v-fc22f0e9]{margin-right:.5rem;flex-shrink:0}.select .select-value[data-v-fc22f0e9]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select .select-placeholder[data-v-fc22f0e9]{color:var(--color-text-secondary, #999)}.select .select-clear-icon[data-v-fc22f0e9]{margin-left:.5rem;cursor:pointer;flex-shrink:0;transition:opacity .2s}.select .select-clear-icon[data-v-fc22f0e9]:hover{opacity:.7}.select .select-icon-right[data-v-fc22f0e9]{margin-left:.5rem;transition:transform .2s;flex-shrink:0}.select .select-icon-right.open[data-v-fc22f0e9]{transform:rotate(180deg)}.select .select-dropdown[data-v-fc22f0e9]{z-index:1000;background-color:var(--color-background, #fff);border:1px solid var(--color-border, #ccc);border-radius:4px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow:hidden}.select .select-options[data-v-fc22f0e9]{overflow-y:auto;max-height:300px}.select .select-option[data-v-fc22f0e9]{padding:.5rem .75rem;cursor:pointer;transition:background-color .15s}.select .select-option[data-v-fc22f0e9]:hover,.select .select-option.highlighted[data-v-fc22f0e9]{background-color:var(--color-hover, #f5f5f5)}.select .select-option.selected[data-v-fc22f0e9]{background-color:var(--color-primary-light, #e7f3ff);color:var(--color-primary, #007bff);font-weight:500}.select .select-backdrop[data-v-fc22f0e9]{position:fixed;inset:0;z-index:999;background:transparent}.select .dropdown-enter-active[data-v-fc22f0e9],.select .dropdown-leave-active[data-v-fc22f0e9]{transition:opacity .2s ease,transform .2s ease}.select .dropdown-enter-from[data-v-fc22f0e9],.select .dropdown-leave-to[data-v-fc22f0e9]{opacity:0;transform:translateY(-8px)}.textarea[data-v-2ea43716]{display:flex}.textarea .textarea-icon[data-v-2ea43716]{align-self:flex-start;margin-top:.25rem}.textarea textarea[data-v-2ea43716]{flex-grow:1;resize:vertical;min-height:80px}.textarea .clear-icon[data-v-2ea43716]{cursor:pointer;align-self:flex-start;margin-top:.25rem}.textarea .invisible[data-v-2ea43716]{opacity:0;pointer-events:none}.input[data-v-be574bc7]{display:flex}.input input[data-v-be574bc7]{flex-grow:1}.input .clear-icon[data-v-be574bc7]{cursor:pointer}.input .invisible[data-v-be574bc7]{opacity:0;pointer-events:none}.shell-navigation-item[data-v-d5c087be]{list-style:none}.shell-navigation-item .shell-navigation-item-link[data-v-d5c087be]{display:flex;flex-direction:column;justify-content:center;align-items:center}.shell-navigation-item .shell-navigation-item-icon[data-v-d5c087be]{font-size:1.5rem}.shell-navigation nav[data-v-0f990f5b]{height:100%;display:flex;flex-direction:column}.shell-navigation ul[data-v-0f990f5b]{display:flex;flex-direction:column;justify-content:flex-start}.shell-navigation ul li[data-v-0f990f5b]{list-style:none}.shell-navigation ul li .shell-navigation-link[data-v-0f990f5b]{display:flex;flex-direction:column;justify-content:center;align-items:center}.shell-navigation .navigation-top[data-v-0f990f5b]{flex:1;overflow-y:auto;overflow-x:hidden;direction:rtl}.shell-navigation .navigation-bottom[data-v-0f990f5b]{flex-shrink:0}.shell[data-v-336560c3]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.shell header[data-v-336560c3]{display:flex;justify-content:space-between}.shell header .shell-title[data-v-336560c3]{display:flex;align-items:center}.shell .shell-content[data-v-336560c3]{flex:1 1 auto;display:flex;overflow:hidden}.shell .shell-content main[data-v-336560c3]{flex:1 1 auto;overflow:auto}.shell .shell-content aside[data-v-336560c3]{width:100%;max-width:0px;border-left:1px solid var(--color-border);transition:transform .3s ease-in-out;transition:max-width .75s ease-in}.shell .shell-content aside[data-v-336560c3]>*{width:100%;height:100%}.shell .shell-content aside.aside-visible[data-v-336560c3]{max-width:500px}.vj-slider[data-v-d47c7475]{width:100%}.track[data-v-d47c7475]{position:relative;height:8px;background:#00000014;border-radius:4px}.range[data-v-d47c7475]{position:absolute;height:100%;background:#0078d4cc;border-radius:4px}.handle[data-v-d47c7475]{position:absolute;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:50%;box-shadow:0 1px 2px #0000001f}.handle[data-v-d47c7475]:hover{border-color:#0006;width:20px;height:20px}.handle[data-v-d47c7475]:focus{outline:none;box-shadow:0 0 0 4px #0078d426}.tooltip[data-v-d47c7475]{position:absolute;transform:translate(-50%);bottom:calc(100% + 10px);background:#000000d9;color:#fff;padding:6px 8px;border-radius:4px;font-size:12px;line-height:1;white-space:nowrap;pointer-events:none;z-index:5}.tooltip[data-v-d47c7475]:after{content:"";position:absolute;left:50%;transform:translate(-50%);top:100%;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(0,0,0,.85)}.handle[data-v-d47c7475]{z-index:3}.input-slider__control[data-v-051e6d17]{display:flex;align-items:center;padding:var(--space-l) var(--space-m)}.input-slider__control[data-v-051e6d17] .vj-slider{width:100%}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vanjana/vue-ui",
|
|
3
|
+
"version": "0.1.59",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"main": "./dist/vanjana-vue-ui.umd.js",
|
|
7
|
+
"module": "./dist/vanjana-vue-ui.es.js",
|
|
8
|
+
"types": "./dist/types/index.d.ts",
|
|
9
|
+
"style": "./dist/vue-ui.css",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/types/index.d.ts",
|
|
13
|
+
"import": "./dist/vanjana-vue-ui.es.js",
|
|
14
|
+
"require": "./dist/vanjana-vue-ui.umd.js"
|
|
15
|
+
},
|
|
16
|
+
"./vue-ui": "./dist/vue-ui.css",
|
|
17
|
+
"./theme-light": "./dist/theme-light.css",
|
|
18
|
+
"./mixins": "./themes/mixins.scss"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"themes"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"clean": "rimraf dist",
|
|
26
|
+
"build:lib": "vite build",
|
|
27
|
+
"build:types": "vue-tsc --declaration --emitDeclarationOnly --outDir dist/types",
|
|
28
|
+
"build:themes": "vite build --config vite.theme.config.ts",
|
|
29
|
+
"build": "yarn clean && yarn build:lib && yarn build:types && yarn run build:themes",
|
|
30
|
+
"storybook": "storybook dev -p 6006",
|
|
31
|
+
"build-storybook": "storybook build",
|
|
32
|
+
"lint": "eslint . --ext .js,.ts,.vue",
|
|
33
|
+
"lint:fix": "eslint . --ext .js,.ts,.vue --fix",
|
|
34
|
+
"prepack": "npm run build",
|
|
35
|
+
"release": "npm publish && npm version patch --no-git-tag-version && git add package.json && git commit -m \"chore(release): bump to next development version\" && git push"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@chromatic-com/storybook": "^4.1.2",
|
|
39
|
+
"@storybook/addon-a11y": "^10.0.7",
|
|
40
|
+
"@storybook/addon-docs": "^10.0.7",
|
|
41
|
+
"@storybook/addon-links": "^10.0.7",
|
|
42
|
+
"@storybook/addon-vitest": "^10.0.7",
|
|
43
|
+
"@storybook/vue3": "^10.0.7",
|
|
44
|
+
"@storybook/vue3-vite": "^10.0.7",
|
|
45
|
+
"@types/node": "^24.10.1",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^8.48.0",
|
|
47
|
+
"@typescript-eslint/parser": "^8.48.0",
|
|
48
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
49
|
+
"@vitest/browser-playwright": "^4.0.9",
|
|
50
|
+
"@vitest/coverage-v8": "^4.0.9",
|
|
51
|
+
"@vue/eslint-config-typescript": "^14.6.0",
|
|
52
|
+
"eslint": "^9.39.1",
|
|
53
|
+
"eslint-config-prettier": "^10.1.8",
|
|
54
|
+
"eslint-plugin-import": "^2.32.0",
|
|
55
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
56
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
57
|
+
"eslint-plugin-unused-imports": "^4.3.0",
|
|
58
|
+
"eslint-plugin-vue": "^10.6.2",
|
|
59
|
+
"playwright": "^1.56.1",
|
|
60
|
+
"prettier": "^3.7.1",
|
|
61
|
+
"prettier-plugin-organize-imports": "^4.3.0",
|
|
62
|
+
"rimraf": "^6.1.0",
|
|
63
|
+
"sass-embedded": "^1.93.3",
|
|
64
|
+
"storybook": "^10.0.7",
|
|
65
|
+
"storybook-vue3-router": "^7.0.0",
|
|
66
|
+
"typescript": "^5.9.3",
|
|
67
|
+
"vite": "^7.2.2",
|
|
68
|
+
"vite-svg-loader": "^5.1.0",
|
|
69
|
+
"vitest": "^4.0.9",
|
|
70
|
+
"vue-eslint-parser": "^10.2.0",
|
|
71
|
+
"vue-tsc": "^3.1.3"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"@floating-ui/vue": "^1.1.9",
|
|
75
|
+
"@fortawesome/fontawesome-free": "^7.1.0",
|
|
76
|
+
"vue": "^3.5.24",
|
|
77
|
+
"vue-router": "^4.6.3"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@forward "components/button";
|
|
2
|
+
@forward "components/button-bar";
|
|
3
|
+
@forward "components/card";
|
|
4
|
+
@forward "components/checkbox";
|
|
5
|
+
@forward "components/dialog";
|
|
6
|
+
@forward "components/dot-menu";
|
|
7
|
+
@forward "components/icon";
|
|
8
|
+
@forward "components/menu";
|
|
9
|
+
@forward "components/menu-action";
|
|
10
|
+
@forward "components/page";
|
|
11
|
+
@forward "components/search-field";
|
|
12
|
+
@forward "components/shell";
|
|
13
|
+
@forward "components/tab-view";
|
|
14
|
+
@forward "components/tab";
|
|
15
|
+
|
|
16
|
+
@forward "components/form/form-field";
|
|
17
|
+
@forward "components/form/input";
|
|
18
|
+
@forward "components/form/select";
|
|
19
|
+
@forward "components/form/textarea";
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
@mixin component() {
|
|
2
|
+
box-shadow: var(--box-shadow-component);
|
|
3
|
+
border-radius: var(--border-radius-component);
|
|
4
|
+
padding: var(--space-s) var(--space-m);
|
|
5
|
+
gap: var(--space-m);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@mixin selectable() {
|
|
9
|
+
box-shadow: var(--box-shadow-component);
|
|
10
|
+
border-radius: 0;
|
|
11
|
+
padding: var(--space-s) var(--space-m);
|
|
12
|
+
gap: var(--space-m);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@mixin container() {
|
|
16
|
+
box-shadow: var(--box-shadow-container);
|
|
17
|
+
border-radius: var(--border-radius-container);
|
|
18
|
+
padding: var(--space-m);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@mixin inputFocus() {
|
|
22
|
+
outline-color: #7c3aed;
|
|
23
|
+
box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.08);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@mixin header() {
|
|
27
|
+
display: flex;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
align-items: center;
|
|
30
|
+
> span {
|
|
31
|
+
display: flex;
|
|
32
|
+
gap: var(--space-s);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@mixin footer() {
|
|
37
|
+
border-top: var(--border-footer);
|
|
38
|
+
padding: var(--space-s) 0 0 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@mixin defineColor($name, $bgColor, $textColor) {
|
|
42
|
+
--surface-#{$name}: #{$bgColor};
|
|
43
|
+
--on-surface-#{$name}: #{$textColor};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@mixin useColor($name) {
|
|
47
|
+
background-color: var(--surface-#{$name});
|
|
48
|
+
color: var(--on-surface-#{$name}, inherit);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Definiert eine komplette Typografie-Stilgruppe + Tag-Styling + Variablen
|
|
52
|
+
@mixin defineFont($name, $tagName, $fontSize, $fontWeight: normal, $lineHeight: 1.2, $letterSpacing: normal, $fontFamily: var(--font-family, inherit)) {
|
|
53
|
+
// CSS Custom Properties
|
|
54
|
+
--font-size-#{$name}: #{$fontSize};
|
|
55
|
+
--font-weight-#{$name}: #{$fontWeight};
|
|
56
|
+
--line-height-#{$name}: #{$lineHeight};
|
|
57
|
+
--letter-spacing-#{$name}: #{$letterSpacing};
|
|
58
|
+
--font-family-#{$name}: #{$fontFamily};
|
|
59
|
+
|
|
60
|
+
// Style für das Tag (z.B. h1, h2, p etc.)
|
|
61
|
+
#{$tagName} {
|
|
62
|
+
font-size: var(--font-size-#{$name});
|
|
63
|
+
font-weight: var(--font-weight-#{$name});
|
|
64
|
+
line-height: var(--line-height-#{$name});
|
|
65
|
+
letter-spacing: var(--letter-spacing-#{$name});
|
|
66
|
+
font-family: var(--font-family-#{$name});
|
|
67
|
+
margin: 0;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Nutzt die definierten Variablen überall
|
|
72
|
+
@mixin useFont($name) {
|
|
73
|
+
font-size: var(--font-size-#{$name});
|
|
74
|
+
font-weight: var(--font-weight-#{$name});
|
|
75
|
+
line-height: var(--line-height-#{$name});
|
|
76
|
+
letter-spacing: var(--letter-spacing-#{$name});
|
|
77
|
+
font-family: var(--font-family-#{$name});
|
|
78
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.button {
|
|
4
|
+
transition: opacity 0.1s ease-in-out;
|
|
5
|
+
|
|
6
|
+
@include component();
|
|
7
|
+
@include useFont("button");
|
|
8
|
+
|
|
9
|
+
&.primary {
|
|
10
|
+
@include useColor("button-primary");
|
|
11
|
+
border: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&.secondary {
|
|
15
|
+
@include useColor("button-secondary");
|
|
16
|
+
border: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&.tertiary {
|
|
20
|
+
@include useColor("button-tertiary");
|
|
21
|
+
border: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:not(:disabled):hover {
|
|
25
|
+
@include useColor("button-hover");
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:disabled {
|
|
30
|
+
opacity: var(--opacity-disabled);
|
|
31
|
+
cursor: not-allowed;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&:active {
|
|
35
|
+
transform: scale(0.98);
|
|
36
|
+
opacity: 0.8;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.icon-only {
|
|
40
|
+
width: 40px;
|
|
41
|
+
height: 40px;
|
|
42
|
+
border-radius: 50%;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.card {
|
|
4
|
+
@include useColor("base");
|
|
5
|
+
|
|
6
|
+
.header-actions {
|
|
7
|
+
.button:not(.menu-action) {
|
|
8
|
+
padding: 0 var(--space-m);
|
|
9
|
+
}
|
|
10
|
+
.button.icon-only:not(.menu-action) {
|
|
11
|
+
width: 32px;
|
|
12
|
+
height: 32px;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.scrollable {
|
|
18
|
+
height: calc(100% - var(--space-m) - var(--space-m) - var(--space-s) - var(--space-s));
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.checkbox {
|
|
2
|
+
gap: var(--space-s);
|
|
3
|
+
|
|
4
|
+
&:hover .checkbox-box {
|
|
5
|
+
border-color: var(--color-primary);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.checkbox-box {
|
|
10
|
+
border-color: var(--color-border);
|
|
11
|
+
border-radius: var(--border-radius-s);
|
|
12
|
+
background-color: var(--color-background);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.checkbox-icon {
|
|
16
|
+
color: var(--color-primary-contrast);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.checkbox-input:checked + .checkbox-box {
|
|
20
|
+
background-color: var(--color-primary);
|
|
21
|
+
border-color: var(--color-primary);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.checkbox-label {
|
|
25
|
+
color: var(--color-text-primary);
|
|
26
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.dialog-card {
|
|
4
|
+
@include useColor("base");
|
|
5
|
+
.header-actions {
|
|
6
|
+
.button:not(.menu-action) {
|
|
7
|
+
padding: 0 var(--space-m);
|
|
8
|
+
}
|
|
9
|
+
.button.icon-only:not(.menu-action) {
|
|
10
|
+
width: 32px;
|
|
11
|
+
height: 32px;
|
|
12
|
+
border-radius: 50%;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.page {
|
|
4
|
+
gap: var(--space-m);
|
|
5
|
+
|
|
6
|
+
header {
|
|
7
|
+
gap: var(--space-m);
|
|
8
|
+
padding-bottom: var(--space-m);
|
|
9
|
+
|
|
10
|
+
> span {
|
|
11
|
+
gap: var(--space-s);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
main {
|
|
16
|
+
footer {
|
|
17
|
+
padding-top: var(--space-s);
|
|
18
|
+
@include useColor("base");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.search-field {
|
|
4
|
+
padding: var(--space-s) var(--space-l);
|
|
5
|
+
border-radius: var(--border-radius-input);
|
|
6
|
+
outline: var(--border-input);
|
|
7
|
+
outline-offset: -1px;
|
|
8
|
+
|
|
9
|
+
@include useFont("primary");
|
|
10
|
+
@include useColor("input");
|
|
11
|
+
|
|
12
|
+
> * {
|
|
13
|
+
align-self: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&:focus-within {
|
|
17
|
+
outline-color: #7c3aed;
|
|
18
|
+
box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.08);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
input {
|
|
22
|
+
border: none;
|
|
23
|
+
outline: none;
|
|
24
|
+
padding: 0;
|
|
25
|
+
margin: 0 var(--space-s);
|
|
26
|
+
background: transparent;
|
|
27
|
+
font: inherit;
|
|
28
|
+
color: inherit;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.reset {
|
|
32
|
+
transition: opacity 0.2s ease-in;
|
|
33
|
+
}
|
|
34
|
+
}
|