mgv-backoffice 1.13.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -1
- package/dist/src/components/BaseCopyButton.vue.d.ts +26 -0
- package/dist/src/components/BaseModalShell.vue.d.ts +18 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +261 -187
- package/dist/ui-lib.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/components/BaseCopyButton.vue +135 -0
- package/src/components/BaseEntityPickerModal.vue +1 -1
- package/src/components/BaseModalShell.vue +52 -0
- package/src/index.ts +1 -0
package/dist/ui-lib.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`@heroicons/vue/24/outline`),require(`@heroicons/vue/24/solid`),require(`vue-router`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@heroicons/vue/24/outline`,`@heroicons/vue/24/solid`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UiLib={},e.Vue,e.HeroiconsOutline,e.HeroiconsSolid,e.VueRouter))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=function(e){return e.WARNING=`WARNING`,e.ERROR=`ERROR`,e.SUCCESS=`SUCCESS`,e.INFO=`INFO`,e}({}),o=function(e){return e.NONE=`NONE`,e.RED=`RED`,e.YELLOW=`YELLOW`,e.BLACK=`BLACK`,e.GRAY=`GRAY`,e.GREEN=`GREEN`,e.BLUE=`BLUE`,e}({});function s(e){let t=`red`;switch(e){case a.ERROR:t=`red`;break;case a.SUCCESS:t=`green`;break;case a.INFO:t=`gray`;break;case a.WARNING:t=`yellow`;break}return t}function c(e){let t=`red`;switch(e){case o.GREEN:t=`green`;break;case o.RED:t=`red`;break;case o.BLUE:t=`blue`;break;case o.YELLOW:t=`yellow`;break;case o.BLACK:t=`black`;break;case o.GRAY:t=`gray`;break;case o.NONE:t=``;break}return t}var l={class:`font-medium pl-1`},u=(0,t.defineComponent)({__name:`BaseAlert`,props:{title:{type:String,required:!1,default:``},color:{type:String,required:!1,default:a.ERROR}},setup(e){let r=e;function i(){let e=s(r.color);return`flex items-center p-4 mb-4 text-sm text-`+e+`-800 border border-`+e+`-300 rounded-lg bg-`+e+`-50 dark:bg-gray-800 dark:text-`+e+`-400 dark:border-`+e+`-800`}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i()),role:`alert`},[(0,t.createVNode)((0,t.unref)(n.InformationCircleIcon),{class:`w-6 h-6 text-gray-400`}),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`span`,l,(0,t.toDisplayString)(e.title),1)])],2))}}),d=`bg-red-100 text-red-700 border-red-200`,f=(0,t.defineComponent)({__name:`BaseBadge`,props:{color:{type:String,required:!1}},setup(e){let n=(0,t.useSlots)(),r=(0,t.computed)(()=>!!n.default),i=e,a={[o.RED]:`bg-red-100 text-red-700 border-red-200`,[o.GREEN]:`bg-green-100 text-green-700 border-green-200`,[o.BLUE]:`bg-blue-100 text-blue-700 border-blue-200`,[o.YELLOW]:`bg-yellow-100 text-yellow-700 border-yellow-200`,[o.GRAY]:`bg-gray-100 text-gray-700 border-gray-200`,[o.NONE]:`bg-gray-50 text-gray-600 border-gray-200`},s=(0,t.computed)(()=>`inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color&&a[i.color]||d}`);return(e,n)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)(s.value)},[(0,t.renderSlot)(e.$slots,`default`)],2)):(0,t.createCommentVNode)(``,!0)}}),p={class:`flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700`,"aria-label":`Breadcrumb`},m={class:`inline-flex items-center space-x-1 md:space-x-3`},h={class:`inline-flex items-center`,style:{"margin-left":`0`}},g=(0,t.defineComponent)({__name:`BaseBreadcrumb`,props:{items:{type:Array,required:!1,default:void 0},path:{type:String,required:!1,default:void 0}},setup(e){let i=e,a=(0,t.computed)(()=>{if(i.items&&i.items.length>0)return i.items;let e=(i.path??(typeof window<`u`?window.location.pathname:`/`)).split(`/`).filter(e=>e!==``),t=``;return e.map(e=>(t+=`/`+e,{name:Number.isNaN(Number(e))?(e.charAt(0).toUpperCase()+e.slice(1)).replaceAll(`-`,` `):e,url:t}))});return(e,i)=>{let o=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,p,[(0,t.createElementVNode)(`ol`,m,[(0,t.createElementVNode)(`li`,h,[(0,t.createVNode)(o,{to:`/`,class:`inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(r.HomeIcon),{class:`h-4 w-4 text-gray-500 mr-2`}),i[0]||=(0,t.createTextVNode)(` Home `,-1)]),_:1})]),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r,class:`inline-flex items-center`,style:{"margin-left":`0`}},[(0,t.createVNode)((0,t.unref)(n.ChevronRightIcon),{class:`h-4 w-4 text-gray-500`}),(0,t.createVNode)(o,{to:e.url,class:`ml-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ml-2 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`to`])]))),128))])])}}}),_=function(e){return e.RED=`RED`,e.BLUE=`BLUE`,e.WHITE=`WHITE`,e.DARK=`DARK`,e.GREEN=`GREEN`,e.EMERALD=`EMERALD`,e.YELLOW=`YELLOW`,e.PURPLE=`PURPLE`,e.SKY=`SKY`,e.GRAY=`GRAY`,e.AMBER=`AMBER`,e}({}),v=function(e){return e.EXTRA_SMALL=`EXTRA_SMALL`,e.SMALL=`SMALL`,e.BASE=`BASE`,e.LARGE=`LARGE`,e.EXTRA_LARGE=`EXTRA_LARGE`,e}({}),y=(0,t.ref)(!1),b=!1,x=`mgv-theme`;function ee(e){if(!b){if(b=!0,x=e,typeof window<`u`){let e=window.localStorage?.getItem(x);e?y.value=e===`dark`:typeof window.matchMedia==`function`&&(y.value=window.matchMedia(`(prefers-color-scheme: dark)`).matches)}typeof document<`u`&&(0,t.effectScope)(!0).run(()=>{(0,t.watch)(y,e=>{document.documentElement.classList.toggle(`dark`,e),window.localStorage?.setItem(x,e?`dark`:`light`)},{immediate:!0})})}}function S(e){ee(e?.storageKey??x);function t(){y.value=!y.value}return{isDark:y,toggleTheme:t}}var te=[`type`,`disabled`,`onClick`],C={key:0,class:`inline-flex items-center`},w={key:1},T={key:2},E=[`type`,`disabled`],D={key:0,class:`inline-flex items-center`},ne={key:1},re={key:2},ie=(0,t.defineComponent)({__name:`BaseButton`,props:{description:{type:String,required:!0},color:{type:String,required:!1,default:_.BLUE},to:{type:String,required:!1},type:{type:String,required:!1,default:`button`},icon:{type:String,required:!1},iconSize:{type:String,required:!1},iconLeft:{type:Boolean,required:!1,default:!1},isRounded:{type:Boolean,required:!1},outline:{type:Boolean,required:!1,default:!1},ghost:{type:Boolean,required:!1,default:!1},isDisable:{type:Boolean,required:!1},size:{type:String,required:!1},isLoading:{type:Boolean,required:!1}},setup(e){let{isDark:n}=S(),r=e;function i(){let e={[_.BLUE]:{light:`text-blue-700 border-blue-300 hover:bg-blue-50`,dark:`text-blue-400 border-blue-500/40 hover:bg-blue-500/10`},[_.GREEN]:{light:`text-green-700 border-green-300 hover:bg-green-50`,dark:`text-green-400 border-green-500/40 hover:bg-green-500/10`},[_.EMERALD]:{light:`text-emerald-700 border-emerald-300 hover:bg-emerald-50`,dark:`text-emerald-400 border-emerald-500/40 hover:bg-emerald-500/10`},[_.RED]:{light:`text-red-700 border-red-300 hover:bg-red-50`,dark:`text-red-400 border-red-500/40 hover:bg-red-500/10`},[_.YELLOW]:{light:`text-yellow-700 border-yellow-300 hover:bg-yellow-50`,dark:`text-yellow-400 border-yellow-500/40 hover:bg-yellow-500/10`},[_.PURPLE]:{light:`text-purple-700 border-purple-300 hover:bg-purple-50`,dark:`text-purple-400 border-purple-500/40 hover:bg-purple-500/10`},[_.SKY]:{light:`text-sky-700 border-sky-300 hover:bg-sky-50`,dark:`text-sky-400 border-sky-500/40 hover:bg-sky-500/10`},[_.AMBER]:{light:`text-amber-700 border-amber-300 hover:bg-amber-50`,dark:`text-amber-400 border-amber-500/40 hover:bg-amber-500/10`},[_.GRAY]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`},[_.DARK]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`},[_.WHITE]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`}},t=e[r.color]??e[_.BLUE],i=n.value?t.dark:t.light;return r.isDisable||r.isLoading?`border bg-transparent ${i} opacity-50 cursor-not-allowed`:`focus:outline-none border bg-transparent ${i}`}function a(){let e={[_.BLUE]:{light:`text-blue-600 hover:bg-blue-50`,dark:`text-blue-400 hover:bg-blue-500/10`},[_.GREEN]:{light:`text-green-600 hover:bg-green-50`,dark:`text-green-400 hover:bg-green-500/10`},[_.EMERALD]:{light:`text-emerald-600 hover:bg-emerald-50`,dark:`text-emerald-400 hover:bg-emerald-500/10`},[_.SKY]:{light:`text-sky-600 hover:bg-sky-50`,dark:`text-sky-400 hover:bg-sky-500/10`},[_.RED]:{light:`text-red-500 hover:bg-red-50`,dark:`text-red-400 hover:bg-red-500/10`},[_.AMBER]:{light:`text-amber-700 hover:bg-amber-50`,dark:`text-amber-300 hover:bg-amber-500/10`},[_.YELLOW]:{light:`text-yellow-600 hover:bg-yellow-50`,dark:`text-yellow-400 hover:bg-yellow-500/10`},[_.PURPLE]:{light:`text-purple-600 hover:bg-purple-50`,dark:`text-purple-400 hover:bg-purple-500/10`},[_.GRAY]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`},[_.DARK]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`},[_.WHITE]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`}},t=e[r.color]??e[_.GRAY],i=n.value?t.dark:t.light;return r.isDisable||r.isLoading?`bg-transparent ${i} opacity-60 cursor-not-allowed`:`focus:outline-none bg-transparent ${i} cursor-pointer`}function o(){let e=r.isDisable||r.isLoading,t;switch(r.color){case _.BLUE:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break;case _.WHITE:t=e?`text-gray-900 bg-gray-200 border border-gray-200 cursor-not-allowed`:`focus:outline-none text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200`;break;case _.DARK:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300`;break;case _.GREEN:t=e?`text-white bg-green-400 cursor-not-allowed`:`focus:outline-none text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300`;break;case _.EMERALD:t=e?`text-white bg-emerald-400 cursor-not-allowed`:`focus:outline-none text-white bg-emerald-600 hover:bg-emerald-700 focus:ring-4 focus:ring-emerald-300`;break;case _.RED:t=e?`text-white bg-red-400 cursor-not-allowed`:`focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300`;break;case _.YELLOW:t=e?`text-white bg-yellow-300 cursor-not-allowed`:`focus:outline-none text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300`;break;case _.PURPLE:t=e?`text-white bg-purple-400 cursor-not-allowed`:`focus:outline-none text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 px-5 py-2.5 mb-2`;break;case _.SKY:t=e?`text-white bg-sky-400 cursor-not-allowed`:`focus:outline-none text-white bg-sky-600 hover:bg-sky-700 focus:ring-4 focus:ring-sky-300`;break;case _.AMBER:t=e?`text-white bg-amber-300 cursor-not-allowed`:`focus:outline-none text-white bg-amber-500 hover:bg-amber-600 focus:ring-4 focus:ring-amber-300`;break;case _.GRAY:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-600 hover:bg-gray-700 focus:ring-4 focus:ring-gray-300`;break;default:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break}r.outline&&(t=i()),r.ghost&&(t=a());let n=`px-5 py-2.5 mr-2 mb-2 text-sm`;switch(r.size){case v.EXTRA_SMALL:n=`px-3 py-2 text-xs`;break;case v.SMALL:n=`px-3 py-2 text-sm`;break;case v.BASE:n=`px-5 py-2.5 text-sm`;break;case v.LARGE:n=`px-5 py-3 text-base`;break;case v.EXTRA_LARGE:n=`px-6 py-3.5 text-base`;break}let o=`rounded-lg`;return r.isRounded&&(o=`rounded-full`),`inline-flex items-center `+n+` `+t+` font-medium `+o}return(n,i)=>{let a=(0,t.resolveComponent)(`router-link`);return e.to?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,to:e.to,custom:``},{default:(0,t.withCtx)(({navigate:a})=>[(0,t.createElementVNode)(`button`,{type:r.type,class:(0,t.normalizeClass)(o()),disabled:e.isDisable||e.isLoading,onClick:a},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,C,[...i[0]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,w,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(n.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,T,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,te)]),_:3},8,[`to`])):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:r.type,class:(0,t.normalizeClass)(o()),disabled:e.isDisable||e.isLoading},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,D,[...i[1]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ne,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(n.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,re,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,E))}}}),O=function(e){return e.BASE=`BASE`,e.BASE_SHORTER=`BASE_SHORTER`,e.SQUARE=`SQUARE`,e}({}),ae={key:0,class:`h-px my-8 bg-gray-200 border-0 dark:bg-gray-700`},oe={key:1,class:`w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700`},se={key:2,class:`w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700`},ce=(0,t.defineComponent)({__name:`BaseLine`,props:{mode:{type:String,required:!1,default:O.BASE}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[e.mode===(0,t.unref)(O).BASE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ae)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(O).BASE_SHORTER?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,oe)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(O).SQUARE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,se)):(0,t.createCommentVNode)(``,!0)],64))}}),k=function(e){return e.SMALL=`SMALL`,e.MEDIUM=`MEDIUM`,e.LARGE=`LARGE`,e}({}),le=k,A=[`height`,`width`],j=(0,t.defineComponent)({__name:`BaseLogo`,props:{size:{type:String,required:!1,default:k.MEDIUM}},setup(e){let n=e;function r(){let e=``;switch(n.size){case k.SMALL:e=`50px`;break;case k.MEDIUM:e=`100px`;break;case k.LARGE:e=`150px`;break}return e}return(e,n)=>{let i=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createBlock)(i,{to:`/`,class:`flex items-center mb-6 text-2xl font-semibold text-gray-900 dark:text-white`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{height:r(),width:r(),viewBox:`33.6 130.6 499.7 242.9`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`},[...n[0]||=[(0,t.createElementVNode)(`linearGradient`,{id:`a`},[(0,t.createElementVNode)(`stop`,{offset:`.085`,"stop-color":`#469e43`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#132d13`})],-1),(0,t.createElementVNode)(`linearGradient`,{id:`b`,gradientUnits:`userSpaceOnUse`,x1:`64.863`,x2:`64.863`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`c`,gradientUnits:`userSpaceOnUse`,x1:`138.367`,x2:`138.367`,"xlink:href":`#a`,y1:`308.454`,y2:`370.601`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`d`,gradientUnits:`userSpaceOnUse`,x1:`195.475`,x2:`195.475`,"xlink:href":`#a`,y1:`288.291`,y2:`369.85`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`e`,gradientUnits:`userSpaceOnUse`,x1:`249.634`,x2:`249.634`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`f`,gradientUnits:`userSpaceOnUse`,x1:`302.884`,x2:`302.884`,"xlink:href":`#a`,y1:`288.291`,y2:`367.857`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`g`,gradientUnits:`userSpaceOnUse`,x1:`354.118`,x2:`354.118`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`h`,gradientUnits:`userSpaceOnUse`,x1:`428.02`,x2:`428.02`,"xlink:href":`#a`,y1:`306.156`,y2:`367.742`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`i`,gradientUnits:`userSpaceOnUse`,x1:`502.066`,x2:`502.066`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`j`,gradientUnits:`userSpaceOnUse`,x1:`283.264`,x2:`283.264`,"xlink:href":`#a`,y1:`131.629`,y2:`232.559`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`k`,gradientUnits:`userSpaceOnUse`,x1:`283.46`,x2:`283.46`,y1:`202.275`,y2:`183.785`},[(0,t.createElementVNode)(`stop`,{offset:`0`,"stop-color":`#969799`,"stop-opacity":`0`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#808183`})],-1),(0,t.createElementVNode)(`path`,{d:`m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z`,fill:`url(#b)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z`,fill:`url(#c)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z`,fill:`url(#d)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#e)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m296.4 288.3h13v79.6h-13z`,fill:`url(#f)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#g)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z`,fill:`url(#h)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z`,fill:`url(#i)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z`,fill:`url(#j)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m281.7 183.8h3.6v18.5h-3.6z`,fill:`url(#k)`},null,-1)]],8,A))]),_:1})}}}),M=function(e){return e.DELETE=`DELETE`,e.SUCCESS=`SUCCESS`,e}({}),N=[`aria-labelledby`],P={key:0,class:`p-6 text-center`},F=[`id`],I={class:`flex justify-center`},L=(0,t.defineComponent)({__name:`BaseModal`,props:{title:{type:String,required:!0},description:{type:String,required:!1},to:{type:String,required:!1,default:`/`},mode:{type:String,required:!1,default:M.SUCCESS}},emits:[`closeModal`,`confirmModal`],setup(e,{emit:r}){let i=r;function a(e){e.key===`Escape`&&i(`closeModal`)}return(0,t.onMounted)(()=>{document.addEventListener(`keydown`,a)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`keydown`,a)}),(r,i)=>{let a=(0,t.resolveComponent)(`base-button`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{class:`outside`,onClick:i[0]||=e=>r.$emit(`closeModal`)}),(0,t.createElementVNode)(`div`,{class:`dialog relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`modal-title-`+e.title},[e.mode===(0,t.unref)(M).DELETE?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,P,[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`w-12 h-12 text-gray-400 mx-auto mb-4`}),(0,t.createElementVNode)(`h3`,{id:`modal-title-`+e.title,class:`mb-5 text-lg font-normal text-gray-500 dark:text-gray-400`},` Are you sure you want to delete this `+(0,t.toDisplayString)(e.title)+`? `,9,F),(0,t.createElementVNode)(`div`,I,[(0,t.createVNode)(a,{color:(0,t.unref)(_).RED,onClick:i[1]||=e=>r.$emit(`confirmModal`),description:`Yes, I'm sure`},null,8,[`color`]),(0,t.createVNode)(a,{color:(0,t.unref)(_).WHITE,onClick:i[2]||=e=>r.$emit(`closeModal`),description:`No, cancel`},null,8,[`color`])])])):(0,t.createCommentVNode)(``,!0)],8,N)],64)}}}),R=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},z=R(L,[[`__scopeId`,`data-v-1db4f0ac`]]),B=(0,t.defineComponent)({__name:`BaseRow`,props:{bgColor:{type:String,required:!1,default:`white`}},setup(e){let n=e;function r(){return`block p-8 border border-gray-200 rounded-xl shadow-sm dark:bg-gray-800 dark:border-gray-700 `+n.bgColor}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r())},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),V=(0,t.defineComponent)({__name:`BaseSpinner`,props:{size:{default:`sm`},color:{default:`blue`}},setup(e){let n=e,r=(0,t.computed)(()=>({sm:`w-4 h-4 border-2`,md:`w-6 h-6 border-2`,lg:`w-8 h-8 border-4`,xl:`w-12 h-12 border-4`})[n.size]),i=(0,t.computed)(()=>({blue:`border-t-blue-500`,emerald:`border-t-emerald-500`,sky:`border-t-sky-500`,indigo:`border-t-indigo-500`,teal:`border-t-teal-500`,purple:`border-t-purple-500`,red:`border-t-red-500`,amber:`border-t-amber-500`})[n.color]);return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`border-gray-200 rounded-full animate-spin`,[r.value,i.value]]),role:`status`,"aria-label":`Loading`},null,2))}}),H=function(e){return e.SUCCESS=`SUCCESS`,e.WARNING=`WARNING`,e.ERROR=`ERROR`,e}({}),U=function(e){return e.TOP_LEFT=`TOP_LEFT`,e.TOP_RIGHT=`TOP_RIGHT`,e.BOTTOM_LEFT=`BOTTOM_LEFT`,e.BOTTOM_RIGHT=`BOTTOM_RIGHT`,e}({}),W={class:`flex items-center w-full max-w-md p-4 mb-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800`},ue={class:`ml-3 text-sm font-normal`},de={key:3,type:`button`,class:`ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex items-center justify-center h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700`,"data-dismiss-target":`#toast-danger`,"aria-label":`Close`},fe=(0,t.defineComponent)({__name:`BaseToast`,props:{mode:{type:Object,required:!0},description:{type:String,required:!0},hasCloseIcon:{type:Boolean,required:!1,default:!0},positioning:{type:String,required:!1,default:U.TOP_RIGHT},duration:{type:Number,required:!1,default:5e3}},setup(e){let r=e,i=(0,t.ref)(!0),a=null;function o(){i.value=!1,a&&=(clearTimeout(a),null)}(0,t.onMounted)(()=>{a=setTimeout(()=>i.value=!1,r.duration)}),(0,t.onUnmounted)(()=>{a&&clearTimeout(a)});function s(){let e=``;switch(r.mode){case H.ERROR:e=`text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200`;break;case H.SUCCESS:e=`text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200`;break;case H.WARNING:e=`text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200`;break;default:e=`text-gray-500 bg-gray-100 dark:bg-gray-800 dark:text-gray-200`;break}return`inline-flex items-center justify-center flex-shrink-0 w-8 h-8 rounded-lg `+e}function c(){let e=`top-5 right-5`;switch(r.positioning){case U.BOTTOM_LEFT:e=`bottom-5 left-5`;break;case U.TOP_LEFT:e=`top-5 left-5`;break;case U.TOP_RIGHT:e=`top-5 right-5`;break;case U.BOTTOM_RIGHT:e=`bottom-5 right-5`;break}return`fixed flex items-center w-full max-w-md p-4 space-x-4 divide-x rounded-lg `+e}return(r,a)=>i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`toast-top-right`,class:(0,t.normalizeClass)(c()),role:`alert`},[(0,t.createElementVNode)(`div`,W,[e.mode==(0,t.unref)(H).ERROR?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`h-6 w-6 text-red-500`}),a[0]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Error icon`,-1)],2)):e.mode==(0,t.unref)(H).SUCCESS?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.CheckCircleIcon),{class:`h-6 w-6 text-green-500`}),a[1]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Check icon`,-1)],2)):e.mode==(0,t.unref)(H).WARNING?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:`h-6 w-6 text-yellow-500`}),a[2]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Warning icon`,-1)],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ue,(0,t.toDisplayString)(e.description),1),e.hasCloseIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,de,[a[3]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Close`,-1),(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`h-6 w-6 text-gray-500 cursor-pointer`,onClick:o})])):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)}}),pe={class:`w-13`},me=(0,t.defineComponent)({__name:`ColoredSquares`,props:{color:{type:String,required:!1}},setup(e){let n=e,r=[`bg-slate-300`,`bg-zinc-300`,`bg-neutral-300`,`bg-stone-300`,`bg-blue-300`,`bg-green-300`,`bg-yellow-300`,`bg-purple-300`,`bg-pink-300`],i=(0,t.ref)(r[Math.floor(Math.random()*r.length)]);function a(){let e=`gray`;switch(n.color){case o.GREEN:e=`green`;break;case o.RED:e=`red`;break;case o.BLUE:e=`blue`;break;case o.YELLOW:e=`yellow`;break;case o.NONE:e=``;break}return`font-bold bg-`+e+`-100 text-`+e+`-800 text-xs mr-2 px-2.5 py-0.5 rounded-full`}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pe,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center`,a()])},[(0,t.renderSlot)(e.$slots,`default`),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`absolute bottom-0 left-0 h-1 w-full`,i.value])},null,2)],2)]))}}),he={class:`flex items-start justify-between`},ge={class:`text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200`},_e=(0,t.defineComponent)({__name:`EarningsCard`,props:{title:{default:`TOTAL EARNINGS`},amount:{default:0},subtitle:{default:`Lifetime commission`},badge:{default:``},currency:{default:`$`},decimals:{default:2},accent:{default:`orange`}},setup(e){let n=e,r={orange:{border:`border-orange-300 dark:border-orange-700`,badge:`bg-orange-100 text-orange-500 dark:bg-orange-900/40 dark:text-orange-400`,amount:`text-gray-400 dark:text-slate-300`,subtitle:`text-orange-400 dark:text-orange-400`,iconBox:`bg-orange-50 dark:bg-orange-900/30`,icon:`text-orange-400`},emerald:{border:`border-emerald-300 dark:border-emerald-700`,badge:`bg-emerald-100 text-emerald-600 dark:bg-emerald-900/40 dark:text-emerald-400`,amount:`text-emerald-500 dark:text-emerald-400`,subtitle:`text-emerald-500 dark:text-emerald-400`,iconBox:`bg-emerald-50 dark:bg-emerald-900/30`,icon:`text-emerald-500`}},i=(0,t.computed)(()=>r[n.accent]),a=(0,t.computed)(()=>{let e=Number.isFinite(n.amount)?n.amount:0;return n.currency+e.toLocaleString(`en-US`,{minimumFractionDigits:n.decimals,maximumFractionDigits:n.decimals})});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`relative rounded-xl border-2 border-dashed bg-white p-6 dark:bg-slate-800`,i.value.border])},[e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide`,i.value.badge])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,he,[(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`p`,ge,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`mt-1 text-4xl font-bold`,i.value.amount])},(0,t.toDisplayString)(a.value),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`mt-1 text-sm font-medium`,i.value.subtitle])},(0,t.toDisplayString)(e.subtitle),3)]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mt-6 flex h-12 w-12 items-center justify-center rounded-xl`,i.value.iconBox])},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`h-6 w-6`,i.value.icon]),viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[0]||=[(0,t.createElementVNode)(`polyline`,{points:`22 7 13.5 15.5 8.5 10.5 2 17`},null,-1),(0,t.createElementVNode)(`polyline`,{points:`16 7 22 7 22 13`},null,-1)]],2))],2)])],2))}}),ve={key:0,class:`font-bold text-green-800`},ye={key:0},be={key:0},xe=`font-bold`,Se=(0,t.defineComponent)({__name:`EuroAmount`,props:{amount:{type:Number,required:!1},beforeAmount:{type:Number,default:null,required:!1},showCurrency:{type:Boolean,default:!0,required:!1}},setup(e){let n=e,r=(0,t.computed)(()=>n.amount!==null&&n.amount!==void 0),i=(0,t.computed)(()=>r.value&&n.amount<0),a=(0,t.computed)(()=>n.beforeAmount===null||n.beforeAmount===void 0?!1:n.amount<n.beforeAmount),o=(0,t.computed)(()=>i.value||a.value),s=(0,t.computed)(()=>!i.value&&!a.value&&!(n.beforeAmount===null||n.beforeAmount===void 0));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[r.value&&s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ve,[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ye,`€`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),r.value&&!s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([xe,o.value?`text-red-800`:`text-gray-800`])},[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,be,`€`)):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)],64))}}),Ce=[`onClick`,`onKeydown`],we={key:1,style:{cursor:`not-allowed`}},Te=R((0,t.defineComponent)({__name:`Pagination`,props:{totalItems:{type:Number,required:!0},itemsPerPage:{type:Number,default:20}},emits:[`page-changed`],setup(e,{emit:n}){let r=e,i=(0,t.ref)(1),a=(0,t.ref)(0),o=(0,t.ref)([]),s=n;function c(e){if(e!==i.value&&e>=1&&e<=a.value&&(i.value=e),a.value>5){o.value=[],e-3>0&&(o.value.push(1),o.value.push(0));for(let t=1;t<=2;t++){let n=e-t;n>0&&o.value.push(n)}o.value.length,o.value.push(i.value);let t=a.value-e;if(t>2){for(let t=1;t<=2;t++)o.value.push(e+t);o.value.push(0),o.value.push(a.value)}else for(let n=1;n<=t;n++)o.value.push(e+n)}s(`page-changed`,e)}return(0,t.watch)(()=>r.totalItems,()=>{if(a.value=Math.ceil(r.totalItems/r.itemsPerPage),o.value=[],a.value>5){for(let e=1;e<5;e++)o.value.push(e);o.value.push(0),o.value.push(a.value)}else for(let e=1;e<=a.value;e++)o.value.push(e)},{immediate:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`ul`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n},[e===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,role:`button`,tabindex:`0`,onClick:t=>c(e),onKeydown:(0,t.withKeys)(t=>c(e),[`enter`]),class:(0,t.normalizeClass)({active:e===i.value})},(0,t.toDisplayString)(e),43,Ce)),e===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,we,`...`)):(0,t.createCommentVNode)(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-d7ebb6ac`]]),Ee={key:0},De={key:0,class:`flex items-center space-x-2`},Oe={key:1,class:`flex items-center space-x-2`},ke=(0,t.defineComponent)({__name:`TrendArrow`,props:{number:{type:Number,required:!1},icon:{type:String,required:!1}},setup(e){let r=e,i=(0,t.computed)(()=>r.number!==null&&r.number!==void 0&&r.number<0);return(a,s)=>e.number!==null&&e.number!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ee,[i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,De,[(0,t.createVNode)(f,{color:(0,t.unref)(o).RED},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowDownIcon),{class:`h-5 w-5 text-red-500`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Oe,[(0,t.createVNode)(f,{color:(0,t.unref)(o).GREEN},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowUpIcon),{class:`h-5 w-5 text-green-500`})]))])):(0,t.createCommentVNode)(``,!0)}});function G(){let{isDark:e}=S();return{card:(0,t.computed)(()=>e.value?`bg-gray-800 border-gray-700`:`bg-white border-gray-200`),cardAlt:(0,t.computed)(()=>e.value?`bg-gray-900 border-gray-700`:`bg-white border-gray-200`),pageBg:(0,t.computed)(()=>e.value?`bg-gray-900`:`bg-gray-50`),border:(0,t.computed)(()=>e.value?`border-gray-700`:`border-gray-200`),divider:(0,t.computed)(()=>e.value?`border-gray-800`:`border-gray-100`),primaryText:(0,t.computed)(()=>e.value?`text-white`:`text-gray-900`),primaryTextSoft:(0,t.computed)(()=>e.value?`text-gray-100`:`text-gray-800`),bodyText:(0,t.computed)(()=>e.value?`text-gray-200`:`text-gray-700`),label:(0,t.computed)(()=>e.value?`text-gray-300`:`text-gray-700`),mutedText:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-600`),subtleText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-600`),dimText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-400`),dimTextAlt:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-500`),illustration:(0,t.computed)(()=>e.value?`text-gray-600`:`text-gray-300`),input:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white`:`bg-gray-50 border-gray-300 text-gray-900`),inputWithPlaceholder:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white placeholder-gray-400`:`bg-gray-50 border-gray-300 text-gray-900 placeholder-gray-500`),ghostButton:(0,t.computed)(()=>e.value?`bg-gray-800 text-gray-200 border-gray-600 hover:bg-gray-700`:`bg-white text-gray-700 border-gray-300 hover:bg-gray-50`),emeraldText:(0,t.computed)(()=>e.value?`text-emerald-400`:`text-emerald-600`),amberText:(0,t.computed)(()=>e.value?`text-amber-400`:`text-amber-600`),amberTextStrong:(0,t.computed)(()=>e.value?`text-amber-300`:`text-amber-700`),redText:(0,t.computed)(()=>e.value?`text-red-400`:`text-red-500`)}}function K(e){function n(t){t.key===`Escape`&&e()}(0,t.onMounted)(()=>document.addEventListener(`keydown`,n)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,n))}var Ae={class:`p-6`},je={class:`flex items-start gap-4`},Me={class:`flex-1`},Ne={class:`mt-4`},Pe={class:`mt-6 flex gap-3 justify-end`},q=(0,t.defineComponent)({__name:`BaseModalShell`,props:{title:{},maxWidthClass:{default:`max-w-md`},manualClose:{type:Boolean,default:!1}},emits:[`cancel`,`backdrop`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=S(),o=G(),s=`modal-title-${Math.random().toString(36).slice(2,9)}`,c=(0,t.computed)(()=>a.value?`bg-gray-900 border border-gray-700`:`bg-white border border-gray-200`);function l(){i(`backdrop`),r.manualClose||i(`cancel`)}return K(()=>{r.manualClose||i(`cancel`)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createElementVNode)(`div`,{class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":s,onClick:l},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`relative w-full mx-4 rounded-lg shadow-xl`,[e.maxWidthClass,c.value]]),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`div`,Ae,[(0,t.createElementVNode)(`div`,je,[(0,t.renderSlot)(n.$slots,`icon`),(0,t.createElementVNode)(`div`,Me,[(0,t.createElementVNode)(`h3`,{id:s,class:(0,t.normalizeClass)([`text-lg font-medium`,(0,t.unref)(o).primaryText])},(0,t.toDisplayString)(e.title),3)])]),(0,t.createElementVNode)(`div`,Ne,[(0,t.renderSlot)(n.$slots,`default`)]),(0,t.createElementVNode)(`div`,Pe,[(0,t.renderSlot)(n.$slots,`footer`)])])],2)])]))}}),Fe=[`aria-expanded`],Ie={class:`flex items-center gap-3`},Le=(0,t.defineComponent)({__name:`BaseCollapsibleSection`,props:{title:{},collapsed:{type:Boolean},badge:{},bodyClass:{}},emits:[`toggle`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=S(),o=G(),s=(0,t.computed)(()=>a.value?`text-gray-100`:`text-gray-700`),c=(0,t.computed)(()=>a.value?`bg-gray-800/50 hover:bg-gray-800 border-gray-700`:`bg-gray-50 hover:bg-gray-100 border-gray-200`),l=(0,t.computed)(()=>a.value?`bg-emerald-500/15 text-emerald-400`:`bg-emerald-50 text-emerald-700`),u=(0,t.computed)(()=>r.bodyClass===void 0?a.value?`bg-gray-800`:`bg-white`:r.bodyClass);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{class:(0,t.normalizeClass)([`rounded-xl border overflow-hidden transition-colors`,(0,t.unref)(o).cardAlt])},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`w-full flex items-center justify-between p-4 text-left transition-colors`,c.value]),"aria-expanded":!e.collapsed,onClick:r[0]||=e=>i(`toggle`)},[(0,t.createElementVNode)(`div`,Ie,[(0,t.createElementVNode)(`h2`,{class:(0,t.normalizeClass)([`text-base font-semibold`,s.value])},(0,t.toDisplayString)(e.title),3),e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`text-xs px-2 py-0.5 rounded-full`,l.value])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`w-5 h-5 transition-transform`,[e.collapsed?``:`rotate-180`,(0,t.unref)(o).dimTextAlt]]),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[...r[1]||=[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M19 9l-7 7-7-7`},null,-1)]],2))],10,Fe),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`p-6 border-t`,[(0,t.unref)(o).border,u.value]])},[(0,t.renderSlot)(n.$slots,`default`)],2),[[t.vShow,!e.collapsed]])],2))}}),Re=[`disabled`],ze=[`disabled`],Be={key:0,class:`w-4 h-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`,"aria-hidden":`true`},Ve=(0,t.defineComponent)({__name:`BaseConfirmModal`,props:{title:{},message:{},confirmText:{default:`Yes, I'm sure`},cancelText:{default:`No, cancel`},submittingText:{default:`Working...`},variant:{default:`danger`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G();function c(){i.submitting||a(`confirm`)}function l(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:l},{icon:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,[e.variant===`danger`?(0,t.unref)(o)?`bg-red-900/30`:`bg-red-50`:(0,t.unref)(o)?`bg-amber-900/30`:`bg-amber-50`]])},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,e.variant===`danger`?`text-red-600`:`text-amber-600`]),"aria-hidden":`true`},null,8,[`class`])],2)]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,[(0,t.unref)(s).ghostButton,e.submitting?`opacity-60 cursor-not-allowed`:`cursor-pointer`]]),onClick:l},(0,t.toDisplayString)(e.cancelText),11,Re),(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[e.variant===`danger`?e.submitting?`bg-red-400 cursor-not-allowed`:`bg-red-600 hover:bg-red-700 cursor-pointer`:e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:c},[e.submitting?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Be,[...i[0]||=[(0,t.createElementVNode)(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`},null,-1),(0,t.createElementVNode)(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z`},null,-1)]])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),1)],10,ze)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.renderSlot)(r.$slots,`default`)]),_:3},8,[`title`,`manual-close`]))}}),He={class:`mt-4`},Ue=[`placeholder`],We=[`disabled`],Ge=(0,t.defineComponent)({__name:`BaseTextInputModal`,props:{title:{},message:{},initialValue:{default:``},placeholder:{default:`Enter value...`},inputLabel:{default:`Name`},confirmText:{default:`Confirm`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G(),c=(0,t.ref)(i.initialValue),l=(0,t.ref)(null);(0,t.onMounted)(async()=>{await(0,t.nextTick)(),l.value?.focus()});function u(){!c.value.trim()||i.submitting||a(`confirm`,c.value.trim())}function d(){a(`cancel`)}function f(){c.value.trim()===(i.initialValue??``).trim()&&d()}return K(d),(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":``,onBackdrop:f},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,(0,t.unref)(o)?`bg-emerald-900/30`:`bg-emerald-50`])},[(0,t.createVNode)((0,t.unref)(n.DocumentDuplicateIcon),{class:`h-6 w-6 text-emerald-600`,"aria-hidden":`true`})],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,(0,t.unref)(s).ghostButton]),onClick:d},(0,t.toDisplayString)(e.cancelText),3),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!c.value.trim()||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[!c.value.trim()||e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:u},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,We)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`div`,He,[(0,t.createElementVNode)(`label`,{class:(0,t.normalizeClass)([`block text-sm font-medium mb-1`,(0,t.unref)(s).label])},(0,t.toDisplayString)(e.inputLabel),3),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`nameInput`,ref:l,"onUpdate:modelValue":i[0]||=e=>c.value=e,type:`text`,placeholder:e.placeholder,class:(0,t.normalizeClass)([`w-full px-3 py-2 rounded-md border text-sm transition-colors`,(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:outline-none focus:border-emerald-500`:`bg-white border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-emerald-500`]),onKeyup:(0,t.withKeys)(u,[`enter`])},null,42,Ue),[[t.vModelText,c.value]])])]),_:3},8,[`title`]))}}),Ke={class:`flex items-center justify-center min-h-[60vh]`},qe={class:`text-center px-6`},Je=(0,t.defineComponent)({__name:`BaseNotFoundPage`,props:{code:{default:`404`},message:{default:`Page not found`},homeRouteName:{default:`home`},homeLabel:{default:`Go home`}},setup(e){let r=e,a=(0,i.useRouter)(),{isDark:o}=S(),s=G();function c(){a.push({name:r.homeRouteName})}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ke,[(0,t.createElementVNode)(`div`,qe,[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`w-16 h-16 mx-auto mb-4`,(0,t.unref)(s).illustration])},null,8,[`class`]),(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-4xl font-bold mb-2`,(0,t.unref)(o)?`text-gray-200`:`text-gray-800`])},(0,t.toDisplayString)(e.code),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-lg mb-6`,(0,t.unref)(s).dimTextAlt])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`button`,{onClick:c,class:(0,t.normalizeClass)([`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium text-white transition-colors cursor-pointer`,(0,t.unref)(o)?`bg-emerald-600 hover:bg-emerald-500`:`bg-emerald-600 hover:bg-emerald-700`])},(0,t.toDisplayString)(e.homeLabel),3)])]))}}),J=(0,t.ref)(!1);function Y(){function e(){J.value=!0}function t(){J.value=!1}function n(){J.value=!J.value}return{mobileOpen:J,open:e,close:t,toggle:n}}var Ye=[`aria-label`,`aria-expanded`],Xe={class:`flex flex-col h-full`},Ze={class:`px-5 pt-5 pb-4 flex items-center justify-center relative`},Qe={class:`flex-1 overflow-y-auto px-3 space-y-6`},$e={class:`px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500`},et={class:`space-y-0.5`},tt=[`aria-current`,`onClick`],nt=[`title`,`aria-label`,`aria-pressed`],rt=R((0,t.defineComponent)({__name:`BaseSidebar`,props:{sections:{},homeRouteName:{default:`home`},appName:{default:``},version:{default:``},showThemeToggle:{type:Boolean,default:!0}},setup(e){let r=e,a=(0,i.useRouter)(),o=(0,i.useRoute)(),{isDark:s,toggleTheme:c}=S(),{mobileOpen:l,close:u,toggle:d}=Y(),f=(0,t.ref)(null),p=null;(0,t.watch)(l,async e=>{e?(p=document.activeElement instanceof HTMLElement?document.activeElement:null,await(0,t.nextTick)(),f.value?.focus()):(p?.focus(),p=null)}),(0,t.onMounted)(()=>{}),(0,t.onUnmounted)(()=>{});function m(){a.push({name:r.homeRouteName}),u()}function h(e){return o.name===e}function g(e){a.push({name:e}),u()}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mobile-topbar fixed top-0 inset-x-0 z-30 flex items-center justify-between px-4 py-3 border-b transition-colors`,(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`])},[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:28},void 0,!0)]),(0,t.createElementVNode)(`button`,{type:`button`,onClick:i[0]||=(...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),class:(0,t.normalizeClass)([`p-2 rounded-lg cursor-pointer`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-600 hover:bg-gray-100`]),"aria-label":(0,t.unref)(l)?`Close navigation menu`:`Open navigation menu`,"aria-expanded":(0,t.unref)(l)},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.XMarkIcon),{key:1,class:`w-6 h-6`,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Bars3Icon),{key:0,class:`w-6 h-6`,"aria-hidden":`true`}))],10,Ye)],2),(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`mobile-overlay fixed inset-0 z-40 bg-black/50`,"aria-hidden":`true`,onClick:i[1]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e)})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,{role:`navigation`,"aria-label":`Main navigation`,class:(0,t.normalizeClass)([`fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto`,[(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`,(0,t.unref)(l)?`translate-x-0 z-50`:`-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50`]])},[(0,t.createElementVNode)(`div`,Xe,[(0,t.createElementVNode)(`div`,Ze,[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:52},void 0,!0)]),(0,t.createElementVNode)(`button`,{ref_key:`closeMobileButton`,ref:f,type:`button`,onClick:i[2]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e),class:(0,t.normalizeClass)([`lg:hidden p-1.5 rounded-lg cursor-pointer absolute right-3 top-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-500 hover:bg-gray-100`]),"aria-label":`Close navigation menu`},[(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`w-5 h-5`,"aria-hidden":`true`})],2)]),(0,t.createElementVNode)(`nav`,Qe,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sections,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.title},[(0,t.createElementVNode)(`p`,$e,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`ul`,et,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.name},[(0,t.createElementVNode)(`button`,{type:`button`,"aria-current":h(e.name)?`page`:void 0,onClick:t=>g(e.name),class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors w-full text-left cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,h(e.name)?(0,t.unref)(s)?`bg-emerald-500/15 text-emerald-300`:`bg-emerald-50 text-emerald-700`:(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{class:`w-[18px] h-[18px] shrink-0`})),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)],10,tt)]))),128))])]))),128))]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`px-4 py-4 border-t transition-colors space-y-3`,(0,t.unref)(s)?`border-gray-800`:`border-gray-200`])},[e.showThemeToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:i[3]||=(...e)=>(0,t.unref)(c)&&(0,t.unref)(c)(...e),title:(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-label":(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-pressed":(0,t.unref)(s),class:(0,t.normalizeClass)([`flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(s)?`Switch to light`:`Switch to dark`)+` `,1),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`ml-auto relative w-9 h-5 rounded-full transition-colors`,(0,t.unref)(s)?`bg-emerald-600`:`bg-gray-300`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300`,(0,t.unref)(s)?`translate-x-4`:`translate-x-0`])},null,2)],2)],10,nt)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`status`,{},void 0,!0),(0,t.renderSlot)(r.$slots,`footer`,{},()=>[e.appName||e.version?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`flex items-center justify-center gap-2 text-xs`,((0,t.unref)(s),`text-gray-500`)])},[(0,t.createElementVNode)(`span`,null,[(0,t.createTextVNode)((0,t.toDisplayString)(e.appName),1),e.appName&&e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[],64)):(0,t.createCommentVNode)(``,!0),e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`v`+(0,t.toDisplayString)(e.version),1)],64)):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)],!0)],2)])],2)]))}}),[[`__scopeId`,`data-v-e27f267e`]]),it={key:1,class:`mt-4 flex justify-center py-6`},at={key:2,class:`mt-4 text-sm text-red-500`,role:`alert`},ot={key:3,class:`mt-4`},st={class:`relative`},ct=[`placeholder`],lt={key:4,class:`mt-3 max-h-64 overflow-y-auto`},ut=[`onClick`],dt={class:`flex-1 min-w-0`},ft={key:0,class:`text-center py-6`},pt={key:1,class:`text-center py-6`},mt=[`disabled`],ht=[`disabled`],gt=(0,t.defineComponent)({__name:`BaseEntityPickerModal`,props:{title:{},message:{},items:{default:()=>[]},loader:{},excludeId:{},variant:{default:`emerald`},searchPlaceholder:{default:`Search...`},emptyMessage:{default:`No items available.`},noMatchMessage:{default:`No items match your search.`},confirmText:{default:`Select`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G(),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.ref)(null),f=(0,t.ref)(``),p=(0,t.ref)(null),m=(0,t.computed)(()=>{let e=i.loader?c.value:i.items;return i.excludeId?e.filter(e=>e.id!==i.excludeId):e}),h=(0,t.computed)(()=>m.value.filter(e=>e.label.toLowerCase().includes(f.value.toLowerCase()))),g={emerald:{iconBg:`bg-emerald-50`,iconText:`text-emerald-600`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-50 border border-emerald-200`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-50`,iconText:`text-purple-600`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-50 border border-purple-200`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-50`,iconText:`text-blue-600`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-50 border border-blue-200`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-50`,iconText:`text-red-600`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-50 border border-red-200`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-50`,iconText:`text-amber-600`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-50 border border-amber-200`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},_={emerald:{iconBg:`bg-emerald-900/30`,iconText:`text-emerald-400`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-500/15 border border-emerald-500/30`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-900/30`,iconText:`text-purple-400`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-500/15 border border-purple-500/30`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-900/30`,iconText:`text-blue-400`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-500/15 border border-blue-500/30`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-900/30`,iconText:`text-red-400`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-500/15 border border-red-500/30`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-900/30`,iconText:`text-amber-400`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-500/15 border border-amber-500/30`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},v=(0,t.computed)(()=>(o.value?_:g)[i.variant]);(0,t.onMounted)(async()=>{if(i.loader){l.value=!0;try{c.value=await i.loader()}catch{u.value=`Failed to load items`}finally{l.value=!1}}await(0,t.nextTick)(),p.value?.focus()});function y(){!d.value||i.submitting||a(`confirm`,d.value)}function b(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:b},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,v.value.iconBg])},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,v.value.iconText]),"aria-hidden":`true`},null,8,[`class`])],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 disabled:opacity-50 disabled:cursor-not-allowed`,(0,t.unref)(s).ghostButton]),onClick:b},(0,t.toDisplayString)(e.cancelText),11,mt),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!d.value||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,!d.value||e.submitting?v.value.confirmDisabled:v.value.confirmActive]),onClick:y},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,ht)]),default:(0,t.withCtx)(()=>[e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)):(0,t.createCommentVNode)(``,!0),l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,it,[(0,t.createVNode)(V)])):u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,at,(0,t.toDisplayString)(u.value),1)):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value&&m.value.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ot,[(0,t.createElementVNode)(`div`,st,[(0,t.createVNode)((0,t.unref)(n.MagnifyingGlassIcon),{class:(0,t.normalizeClass)([`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4`,(0,t.unref)(s).dimText]),"aria-hidden":`true`},null,8,[`class`]),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:p,"onUpdate:modelValue":i[0]||=e=>f.value=e,type:`text`,placeholder:e.searchPlaceholder,class:(0,t.normalizeClass)([`w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors`,[(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500`:`bg-white border-gray-300 text-gray-700 placeholder-gray-400`,v.value.inputFocus]])},null,10,ct),[[t.vModelText,f.value]])])])):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors`,[d.value===e.id?v.value.selectedRow:(0,t.unref)(o)?`hover:bg-gray-800 border border-transparent`:`hover:bg-gray-50 border border-transparent`]]),onClick:t=>d.value=e.id},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`w-5 h-5 flex-shrink-0`,(0,t.unref)(s).dimText])},null,8,[`class`]),(0,t.createElementVNode)(`div`,dt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm font-medium truncate`,(0,t.unref)(s).bodyText])},(0,t.toDisplayString)(e.label),3)]),d.value===e.id?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`w-5 h-5 rounded-full flex items-center justify-center`,v.value.checkBg])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{class:`w-3 h-3 text-white`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`3`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M5 13l4 4L19 7`})],-1)]],2)):(0,t.createCommentVNode)(``,!0)],10,ut))),128)),m.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.emptyMessage),3)])):h.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.noMatchMessage),3)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`title`,`manual-close`]))}}),_t={href:`#main-content`,class:`sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-3 focus:py-2 focus:rounded-md focus:bg-emerald-600 focus:text-white focus:shadow-lg`},vt=[`inert`],yt=(0,t.defineComponent)({__name:`BaseAppLayout`,props:{showSidebar:{type:Boolean,default:!0},skipLinkLabel:{default:`Skip to main content`}},setup(e){let n=e,{isDark:r}=S(),{mobileOpen:i}=Y(),a=(0,t.computed)(()=>n.showSidebar);return(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`min-h-screen transition-colors duration-300`,(0,t.unref)(r)?`bg-gray-950 text-gray-100`:`bg-gray-50 text-gray-800`])},[(0,t.createElementVNode)(`a`,_t,(0,t.toDisplayString)(e.skipLinkLabel),1),a.value?(0,t.renderSlot)(n.$slots,`sidebar`,{key:0}):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`main`,{id:`main-content`,tabindex:`-1`,inert:a.value&&(0,t.unref)(i)?!0:void 0,class:(0,t.normalizeClass)(a.value?`pt-14 lg:pt-0 lg:ml-60`:``)},[(0,t.renderSlot)(n.$slots,`default`)],10,vt)],2))}}),bt={class:`flex items-center justify-between mb-8`},xt={class:`flex items-center gap-3`},St={class:`flex items-center gap-2`},Ct=(0,t.defineComponent)({__name:`BasePageHeader`,props:{title:{},subtitle:{default:``},iconColor:{default:`emerald`},maxWidthClass:{default:`max-w-4xl`}},setup(e){let n=e,{isDark:r}=S(),i=G(),a=(0,t.computed)(()=>{let e={emerald:{dark:`bg-emerald-500/10`,light:`bg-emerald-50`},sky:{dark:`bg-sky-500/10`,light:`bg-sky-50`},red:{dark:`bg-red-500/10`,light:`bg-red-50`},amber:{dark:`bg-amber-500/10`,light:`bg-amber-50`}}[n.iconColor];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`}}[n.iconColor];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`mx-auto px-4 sm:px-6`,e.maxWidthClass])},[(0,t.createElementVNode)(`div`,bt,[(0,t.createElementVNode)(`div`,xt,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`w-10 h-10 rounded-lg flex items-center justify-center`,a.value])},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:o.value})],2),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-2xl font-bold`,(0,t.unref)(i).primaryTextSoft])},(0,t.toDisplayString)(e.title),3),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(i).dimTextAlt])},(0,t.toDisplayString)(e.subtitle),3)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,St,[(0,t.renderSlot)(n.$slots,`actions`)])])],2))}}),wt=[`type`,`disabled`,`title`],Tt={key:0},Et=(0,t.defineComponent)({__name:`BaseToolbarButton`,props:{label:{default:``},variant:{default:`neutral`},disabled:{type:Boolean,default:!1},title:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=S(),i=(0,t.computed)(()=>{let e={neutral:{dark:`bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700`,light:`bg-white text-gray-700 border-gray-200 hover:bg-gray-100`},danger:{dark:`bg-red-600 text-white border-red-600 hover:bg-red-500`,light:`bg-red-600 text-white border-red-600 hover:bg-red-700`}}[n.variant];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,class:(0,t.normalizeClass)([`inline-flex shrink-0 items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,i.value]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Tt,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,wt))}}),Dt=[`type`,`disabled`,`title`,`aria-label`],Ot={key:0},kt=(0,t.defineComponent)({__name:`BaseActionButton`,props:{label:{default:``},color:{default:`emerald`},disabled:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},title:{default:void 0},ariaLabel:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=S(),i=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400 hover:bg-emerald-500/10`,light:`text-emerald-600 hover:bg-emerald-50`},sky:{dark:`text-sky-400 hover:bg-sky-500/10`,light:`text-sky-600 hover:bg-sky-50`},indigo:{dark:`text-indigo-400 hover:bg-indigo-500/10`,light:`text-indigo-600 hover:bg-indigo-50`},teal:{dark:`text-teal-400 hover:bg-teal-500/10`,light:`text-teal-600 hover:bg-teal-50`},purple:{dark:`text-purple-400 hover:bg-purple-500/10`,light:`text-purple-600 hover:bg-purple-50`},red:{dark:`text-red-400 hover:bg-red-500/10`,light:`text-red-500 hover:bg-red-50`},amber:{dark:`text-amber-400 hover:bg-amber-500/10`,light:`text-amber-600 hover:bg-amber-50`},amberStrong:{dark:`text-amber-300 hover:bg-amber-500/10`,light:`text-amber-700 hover:bg-amber-50`}}[n.color];return r.value?e.dark:e.light}),a=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},indigo:{dark:`text-indigo-400`,light:`text-indigo-600`},teal:{dark:`text-teal-400`,light:`text-teal-600`},purple:{dark:`text-purple-400`,light:`text-purple-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`},amberStrong:{dark:`text-amber-300`,light:`text-amber-700`}}[n.color];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>n.disabled?`${a.value} opacity-50 cursor-not-allowed`:`${i.value} cursor-pointer`);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,"aria-label":e.ariaLabel,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors`,[e.fullWidth?`flex-1`:``,o.value]]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ot,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,Dt))}});function At(e,n=300){let r=(0,t.ref)(e.value),i=null;return(0,t.watch)(e,e=>{i&&clearTimeout(i),i=setTimeout(()=>{r.value=e,i=null},n)}),(0,t.onScopeDispose)(()=>{i&&=(clearTimeout(i),null)}),r}function jt(e=3e3){let n=(0,t.ref)(!1),r=(0,t.ref)(``),i=(0,t.ref)(H.SUCCESS),a=null;function o(){a&&=(clearTimeout(a),null)}function s(t,s=H.SUCCESS,c=e){r.value=t,i.value=s,n.value=!0,o(),a=setTimeout(()=>{n.value=!1,a=null},c)}return(0,t.onScopeDispose)(()=>{o()}),{showToast:n,toastMessage:r,toastType:i,showToastMessage:s}}var Mt=function(e){return e.WIN=`WIN`,e.LOSE=`LOSE`,e}({}),Nt={GET:`bg-blue-600`,POST:`bg-emerald-600`,PUT:`bg-amber-600`,DELETE:`bg-red-600`,PATCH:`bg-purple-600`,HEAD:`bg-gray-600`},Pt={GET:`bg-blue-500`,POST:`bg-green-500`,PUT:`bg-yellow-500`,DELETE:`bg-red-500`,PATCH:`bg-purple-500`,HEAD:`bg-gray-500`};function Ft(e){return e?Nt[e.toUpperCase()]??`bg-gray-600`:`bg-gray-600`}function It(e){return e?Pt[e.toUpperCase()]??`bg-gray-500`:`bg-gray-500`}function X(e){let t=e??0;return t>=200&&t<300?`bg-emerald-600`:t>=300&&t<400?`bg-blue-600`:t>=400&&t<500?`bg-amber-600`:t>=500?`bg-red-600`:`bg-gray-600`}function Lt(e,t){let n=e??200;return t?n>=200&&n<300?`bg-green-500/15 text-green-400`:n>=300&&n<400?`bg-blue-500/15 text-blue-400`:n>=400&&n<500?`bg-yellow-500/15 text-yellow-400`:`bg-red-500/15 text-red-400`:n>=200&&n<300?`bg-green-100 text-green-800`:n>=300&&n<400?`bg-blue-100 text-blue-800`:n>=400&&n<500?`bg-yellow-100 text-yellow-800`:`bg-red-100 text-red-800`}var Rt=new Set([`A`,`B`,`STRONG`,`I`,`EM`,`CODE`,`PRE`,`BR`,`P`,`UL`,`OL`,`LI`,`SPAN`,`DIV`]),zt=new Set([`SCRIPT`,`STYLE`,`IFRAME`,`OBJECT`,`EMBED`,`NOSCRIPT`,`TEMPLATE`]),Bt={A:new Set([`href`,`title`])};function Z(e){let t=e.trim().toLowerCase();return t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`/`)||t.startsWith(`#`)||t===``}function Q(e){if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e,n=t.tagName.toUpperCase();if(!Rt.has(n)){zt.has(n)?t.remove():t.replaceWith(document.createTextNode(t.textContent??``));return}let r=Bt[n]??new Set;for(let e of Array.from(t.attributes)){if(!r.has(e.name.toLowerCase())){t.removeAttribute(e.name);continue}n===`A`&&e.name.toLowerCase()===`href`&&!Z(e.value)&&t.removeAttribute(e.name)}n===`A`&&t.hasAttribute(`href`)&&(t.setAttribute(`rel`,`noopener noreferrer`),t.setAttribute(`target`,`_blank`));for(let e of Array.from(t.childNodes))Q(e)}function Vt(e){if(!e)return``;let t=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`).body.firstElementChild;if(!t)return``;for(let e of Array.from(t.childNodes))Q(e);return t.innerHTML}var $=`—`;function Ht(e,t=4){if(e==null||typeof e==`string`&&e.trim()===``)return $;let n=typeof e==`string`?Number(e):e;return isFinite(n)?n.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t}):$}function Ut(e){if(e==null||e===``)return $;let t=new Date(e);return isNaN(t.getTime())?String(e):t.toLocaleString()}function Wt(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Gt(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function Kt(e){if(!isFinite(e)||e===0)return e.toFixed(2);let t=Math.abs(e),n=2;return t<1e-4?n=8:t<.01?n=6:t<1?n=4:t<100&&(n=3),e.toLocaleString(void 0,{minimumFractionDigits:n,maximumFractionDigits:n})}function qt(e,t=2){return`${e>=0?`+`:``}${e.toFixed(t)}%`}function Jt(e){return`${e<0?`-`:`+`}$${Math.abs(e).toFixed(2)}`}function Yt(e){if(e.buyPrice==null||e.lastPrice==null||e.filledQty==null)return{pnlUsd:null,pnlPct:null};let t=Number(e.buyPrice),n=Number(e.lastPrice),r=Number(e.filledQty);return!isFinite(t)||!isFinite(n)||!isFinite(r)||t<=0||n<=0?{pnlUsd:null,pnlPct:null}:{pnlUsd:(n-t)*r,pnlPct:(n-t)/t*100}}e.AlertEnum=a,e.BaseActionButton=kt,e.BaseAlert=u,e.BaseAppLayout=yt,e.BaseBadge=f,e.BaseBadgeEnum=Mt,e.BaseBreadcrumb=g,e.BaseButton=ie,e.BaseButtonEnum=_,e.BaseButtonSizeEnum=v,e.BaseCollapsibleSection=Le,e.BaseConfirmModal=Ve,e.BaseEntityPickerModal=gt,e.BaseLine=ce,e.BaseLoginEnum=le,e.BaseLogo=j,e.BaseLogoEnum=k,e.BaseModal=z,e.BaseModalEnum=M,e.BaseModalShell=q,e.BaseNotFoundPage=Je,e.BasePageHeader=Ct,e.BaseRow=B,e.BaseSidebar=rt,e.BaseSpinner=V,e.BaseTextInputModal=Ge,e.BaseToast=fe,e.BaseToastEnum=H,e.BaseToolbarButton=Et,e.ColoredSquares=me,e.ColorsEnums=o,e.EarningsCard=_e,e.EuroAmount=Se,e.LineEnum=O,e.Pagination=Te,e.PositioningEnum=U,e.TrendArrow=ke,e.computePnL=Yt,e.fmtDate=Ut,e.fmtDateShort=Gt,e.fmtDateTime=Wt,e.fmtNumber=Ht,e.fmtPct=qt,e.fmtPrice=Kt,e.fmtUsd=Jt,e.getBaseColor=s,e.getBaseColorOf=c,e.isSafeHref=Z,e.methodBadgeBright=It,e.methodBadgeSolid=Ft,e.sanitizeHtml=Vt,e.statusBadgeSolid=X,e.statusBadgeTinted=Lt,e.useDebouncedRef=At,e.useEscapeKey=K,e.useMobileSidebar=Y,e.useTheme=S,e.useThemeClasses=G,e.useToast=jt});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`@heroicons/vue/24/outline`),require(`@heroicons/vue/24/solid`),require(`vue-router`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@heroicons/vue/24/outline`,`@heroicons/vue/24/solid`,`vue-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UiLib={},e.Vue,e.HeroiconsOutline,e.HeroiconsSolid,e.VueRouter))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=function(e){return e.WARNING=`WARNING`,e.ERROR=`ERROR`,e.SUCCESS=`SUCCESS`,e.INFO=`INFO`,e}({}),o=function(e){return e.NONE=`NONE`,e.RED=`RED`,e.YELLOW=`YELLOW`,e.BLACK=`BLACK`,e.GRAY=`GRAY`,e.GREEN=`GREEN`,e.BLUE=`BLUE`,e}({});function s(e){let t=`red`;switch(e){case a.ERROR:t=`red`;break;case a.SUCCESS:t=`green`;break;case a.INFO:t=`gray`;break;case a.WARNING:t=`yellow`;break}return t}function c(e){let t=`red`;switch(e){case o.GREEN:t=`green`;break;case o.RED:t=`red`;break;case o.BLUE:t=`blue`;break;case o.YELLOW:t=`yellow`;break;case o.BLACK:t=`black`;break;case o.GRAY:t=`gray`;break;case o.NONE:t=``;break}return t}var l={class:`font-medium pl-1`},u=(0,t.defineComponent)({__name:`BaseAlert`,props:{title:{type:String,required:!1,default:``},color:{type:String,required:!1,default:a.ERROR}},setup(e){let r=e;function i(){let e=s(r.color);return`flex items-center p-4 mb-4 text-sm text-`+e+`-800 border border-`+e+`-300 rounded-lg bg-`+e+`-50 dark:bg-gray-800 dark:text-`+e+`-400 dark:border-`+e+`-800`}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i()),role:`alert`},[(0,t.createVNode)((0,t.unref)(n.InformationCircleIcon),{class:`w-6 h-6 text-gray-400`}),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`span`,l,(0,t.toDisplayString)(e.title),1)])],2))}}),d=`bg-red-100 text-red-700 border-red-200`,f=(0,t.defineComponent)({__name:`BaseBadge`,props:{color:{type:String,required:!1}},setup(e){let n=(0,t.useSlots)(),r=(0,t.computed)(()=>!!n.default),i=e,a={[o.RED]:`bg-red-100 text-red-700 border-red-200`,[o.GREEN]:`bg-green-100 text-green-700 border-green-200`,[o.BLUE]:`bg-blue-100 text-blue-700 border-blue-200`,[o.YELLOW]:`bg-yellow-100 text-yellow-700 border-yellow-200`,[o.GRAY]:`bg-gray-100 text-gray-700 border-gray-200`,[o.NONE]:`bg-gray-50 text-gray-600 border-gray-200`},s=(0,t.computed)(()=>`inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color&&a[i.color]||d}`);return(e,n)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)(s.value)},[(0,t.renderSlot)(e.$slots,`default`)],2)):(0,t.createCommentVNode)(``,!0)}}),p={class:`flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700`,"aria-label":`Breadcrumb`},m={class:`inline-flex items-center space-x-1 md:space-x-3`},h={class:`inline-flex items-center`,style:{"margin-left":`0`}},g=(0,t.defineComponent)({__name:`BaseBreadcrumb`,props:{items:{type:Array,required:!1,default:void 0},path:{type:String,required:!1,default:void 0}},setup(e){let i=e,a=(0,t.computed)(()=>{if(i.items&&i.items.length>0)return i.items;let e=(i.path??(typeof window<`u`?window.location.pathname:`/`)).split(`/`).filter(e=>e!==``),t=``;return e.map(e=>(t+=`/`+e,{name:Number.isNaN(Number(e))?(e.charAt(0).toUpperCase()+e.slice(1)).replaceAll(`-`,` `):e,url:t}))});return(e,i)=>{let o=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,p,[(0,t.createElementVNode)(`ol`,m,[(0,t.createElementVNode)(`li`,h,[(0,t.createVNode)(o,{to:`/`,class:`inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(r.HomeIcon),{class:`h-4 w-4 text-gray-500 mr-2`}),i[0]||=(0,t.createTextVNode)(` Home `,-1)]),_:1})]),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r,class:`inline-flex items-center`,style:{"margin-left":`0`}},[(0,t.createVNode)((0,t.unref)(n.ChevronRightIcon),{class:`h-4 w-4 text-gray-500`}),(0,t.createVNode)(o,{to:e.url,class:`ml-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ml-2 dark:text-gray-400 dark:hover:text-white`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`to`])]))),128))])])}}}),_=function(e){return e.RED=`RED`,e.BLUE=`BLUE`,e.WHITE=`WHITE`,e.DARK=`DARK`,e.GREEN=`GREEN`,e.EMERALD=`EMERALD`,e.YELLOW=`YELLOW`,e.PURPLE=`PURPLE`,e.SKY=`SKY`,e.GRAY=`GRAY`,e.AMBER=`AMBER`,e}({}),v=function(e){return e.EXTRA_SMALL=`EXTRA_SMALL`,e.SMALL=`SMALL`,e.BASE=`BASE`,e.LARGE=`LARGE`,e.EXTRA_LARGE=`EXTRA_LARGE`,e}({}),y=(0,t.ref)(!1),b=!1,x=`mgv-theme`;function ee(e){if(!b){if(b=!0,x=e,typeof window<`u`){let e=window.localStorage?.getItem(x);e?y.value=e===`dark`:typeof window.matchMedia==`function`&&(y.value=window.matchMedia(`(prefers-color-scheme: dark)`).matches)}typeof document<`u`&&(0,t.effectScope)(!0).run(()=>{(0,t.watch)(y,e=>{document.documentElement.classList.toggle(`dark`,e),window.localStorage?.setItem(x,e?`dark`:`light`)},{immediate:!0})})}}function S(e){ee(e?.storageKey??x);function t(){y.value=!y.value}return{isDark:y,toggleTheme:t}}var te=[`type`,`disabled`,`onClick`],C={key:0,class:`inline-flex items-center`},w={key:1},T={key:2},E=[`type`,`disabled`],D={key:0,class:`inline-flex items-center`},ne={key:1},re={key:2},ie=(0,t.defineComponent)({__name:`BaseButton`,props:{description:{type:String,required:!0},color:{type:String,required:!1,default:_.BLUE},to:{type:String,required:!1},type:{type:String,required:!1,default:`button`},icon:{type:String,required:!1},iconSize:{type:String,required:!1},iconLeft:{type:Boolean,required:!1,default:!1},isRounded:{type:Boolean,required:!1},outline:{type:Boolean,required:!1,default:!1},ghost:{type:Boolean,required:!1,default:!1},isDisable:{type:Boolean,required:!1},size:{type:String,required:!1},isLoading:{type:Boolean,required:!1}},setup(e){let{isDark:n}=S(),r=e;function i(){let e={[_.BLUE]:{light:`text-blue-700 border-blue-300 hover:bg-blue-50`,dark:`text-blue-400 border-blue-500/40 hover:bg-blue-500/10`},[_.GREEN]:{light:`text-green-700 border-green-300 hover:bg-green-50`,dark:`text-green-400 border-green-500/40 hover:bg-green-500/10`},[_.EMERALD]:{light:`text-emerald-700 border-emerald-300 hover:bg-emerald-50`,dark:`text-emerald-400 border-emerald-500/40 hover:bg-emerald-500/10`},[_.RED]:{light:`text-red-700 border-red-300 hover:bg-red-50`,dark:`text-red-400 border-red-500/40 hover:bg-red-500/10`},[_.YELLOW]:{light:`text-yellow-700 border-yellow-300 hover:bg-yellow-50`,dark:`text-yellow-400 border-yellow-500/40 hover:bg-yellow-500/10`},[_.PURPLE]:{light:`text-purple-700 border-purple-300 hover:bg-purple-50`,dark:`text-purple-400 border-purple-500/40 hover:bg-purple-500/10`},[_.SKY]:{light:`text-sky-700 border-sky-300 hover:bg-sky-50`,dark:`text-sky-400 border-sky-500/40 hover:bg-sky-500/10`},[_.AMBER]:{light:`text-amber-700 border-amber-300 hover:bg-amber-50`,dark:`text-amber-400 border-amber-500/40 hover:bg-amber-500/10`},[_.GRAY]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`},[_.DARK]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`},[_.WHITE]:{light:`text-gray-700 border-gray-300 hover:bg-gray-50`,dark:`text-gray-300 border-gray-600 hover:bg-gray-800`}},t=e[r.color]??e[_.BLUE],i=n.value?t.dark:t.light;return r.isDisable||r.isLoading?`border bg-transparent ${i} opacity-50 cursor-not-allowed`:`focus:outline-none border bg-transparent ${i}`}function a(){let e={[_.BLUE]:{light:`text-blue-600 hover:bg-blue-50`,dark:`text-blue-400 hover:bg-blue-500/10`},[_.GREEN]:{light:`text-green-600 hover:bg-green-50`,dark:`text-green-400 hover:bg-green-500/10`},[_.EMERALD]:{light:`text-emerald-600 hover:bg-emerald-50`,dark:`text-emerald-400 hover:bg-emerald-500/10`},[_.SKY]:{light:`text-sky-600 hover:bg-sky-50`,dark:`text-sky-400 hover:bg-sky-500/10`},[_.RED]:{light:`text-red-500 hover:bg-red-50`,dark:`text-red-400 hover:bg-red-500/10`},[_.AMBER]:{light:`text-amber-700 hover:bg-amber-50`,dark:`text-amber-300 hover:bg-amber-500/10`},[_.YELLOW]:{light:`text-yellow-600 hover:bg-yellow-50`,dark:`text-yellow-400 hover:bg-yellow-500/10`},[_.PURPLE]:{light:`text-purple-600 hover:bg-purple-50`,dark:`text-purple-400 hover:bg-purple-500/10`},[_.GRAY]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`},[_.DARK]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`},[_.WHITE]:{light:`text-gray-500 hover:bg-gray-100`,dark:`text-gray-400 hover:bg-gray-800`}},t=e[r.color]??e[_.GRAY],i=n.value?t.dark:t.light;return r.isDisable||r.isLoading?`bg-transparent ${i} opacity-60 cursor-not-allowed`:`focus:outline-none bg-transparent ${i} cursor-pointer`}function o(){let e=r.isDisable||r.isLoading,t;switch(r.color){case _.BLUE:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break;case _.WHITE:t=e?`text-gray-900 bg-gray-200 border border-gray-200 cursor-not-allowed`:`focus:outline-none text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200`;break;case _.DARK:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300`;break;case _.GREEN:t=e?`text-white bg-green-400 cursor-not-allowed`:`focus:outline-none text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300`;break;case _.EMERALD:t=e?`text-white bg-emerald-400 cursor-not-allowed`:`focus:outline-none text-white bg-emerald-600 hover:bg-emerald-700 focus:ring-4 focus:ring-emerald-300`;break;case _.RED:t=e?`text-white bg-red-400 cursor-not-allowed`:`focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300`;break;case _.YELLOW:t=e?`text-white bg-yellow-300 cursor-not-allowed`:`focus:outline-none text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300`;break;case _.PURPLE:t=e?`text-white bg-purple-400 cursor-not-allowed`:`focus:outline-none text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 px-5 py-2.5 mb-2`;break;case _.SKY:t=e?`text-white bg-sky-400 cursor-not-allowed`:`focus:outline-none text-white bg-sky-600 hover:bg-sky-700 focus:ring-4 focus:ring-sky-300`;break;case _.AMBER:t=e?`text-white bg-amber-300 cursor-not-allowed`:`focus:outline-none text-white bg-amber-500 hover:bg-amber-600 focus:ring-4 focus:ring-amber-300`;break;case _.GRAY:t=e?`text-white bg-gray-400 cursor-not-allowed`:`focus:outline-none text-white bg-gray-600 hover:bg-gray-700 focus:ring-4 focus:ring-gray-300`;break;default:t=e?`text-white bg-blue-400 cursor-not-allowed`:`focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300`;break}r.outline&&(t=i()),r.ghost&&(t=a());let n=`px-5 py-2.5 mr-2 mb-2 text-sm`;switch(r.size){case v.EXTRA_SMALL:n=`px-3 py-2 text-xs`;break;case v.SMALL:n=`px-3 py-2 text-sm`;break;case v.BASE:n=`px-5 py-2.5 text-sm`;break;case v.LARGE:n=`px-5 py-3 text-base`;break;case v.EXTRA_LARGE:n=`px-6 py-3.5 text-base`;break}let o=`rounded-lg`;return r.isRounded&&(o=`rounded-full`),`inline-flex items-center `+n+` `+t+` font-medium `+o}return(n,i)=>{let a=(0,t.resolveComponent)(`router-link`);return e.to?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,to:e.to,custom:``},{default:(0,t.withCtx)(({navigate:a})=>[(0,t.createElementVNode)(`button`,{type:r.type,class:(0,t.normalizeClass)(o()),disabled:e.isDisable||e.isLoading,onClick:a},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,C,[...i[0]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,w,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(n.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,T,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,te)]),_:3},8,[`to`])):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:r.type,class:(0,t.normalizeClass)(o()),disabled:e.isDisable||e.isLoading},[e.isLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,D,[...i[1]||=[(0,t.createElementVNode)(`svg`,{"aria-hidden":`true`,role:`status`,class:`inline w-4 h-4 me-3 animate-spin`,viewBox:`0 0 100 101`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[(0,t.createElementVNode)(`path`,{d:`M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z`,fill:`#E5E7EB`}),(0,t.createElementVNode)(`path`,{d:`M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z`,fill:`currentColor`})],-1)]])):(0,t.createCommentVNode)(``,!0),e.iconLeft?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ne,(0,t.toDisplayString)(e.description),1)),(0,t.renderSlot)(n.$slots,`default`),e.iconLeft?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,re,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],10,E))}}}),O=function(e){return e.BASE=`BASE`,e.BASE_SHORTER=`BASE_SHORTER`,e.SQUARE=`SQUARE`,e}({}),ae={key:0,class:`h-px my-8 bg-gray-200 border-0 dark:bg-gray-700`},oe={key:1,class:`w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700`},se={key:2,class:`w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700`},ce=(0,t.defineComponent)({__name:`BaseLine`,props:{mode:{type:String,required:!1,default:O.BASE}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[e.mode===(0,t.unref)(O).BASE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,ae)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(O).BASE_SHORTER?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,oe)):(0,t.createCommentVNode)(``,!0),e.mode===(0,t.unref)(O).SQUARE?((0,t.openBlock)(),(0,t.createElementBlock)(`hr`,se)):(0,t.createCommentVNode)(``,!0)],64))}}),k=function(e){return e.SMALL=`SMALL`,e.MEDIUM=`MEDIUM`,e.LARGE=`LARGE`,e}({}),le=k,A=[`height`,`width`],j=(0,t.defineComponent)({__name:`BaseLogo`,props:{size:{type:String,required:!1,default:k.MEDIUM}},setup(e){let n=e;function r(){let e=``;switch(n.size){case k.SMALL:e=`50px`;break;case k.MEDIUM:e=`100px`;break;case k.LARGE:e=`150px`;break}return e}return(e,n)=>{let i=(0,t.resolveComponent)(`router-link`);return(0,t.openBlock)(),(0,t.createBlock)(i,{to:`/`,class:`flex items-center mb-6 text-2xl font-semibold text-gray-900 dark:text-white`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{height:r(),width:r(),viewBox:`33.6 130.6 499.7 242.9`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`},[...n[0]||=[(0,t.createElementVNode)(`linearGradient`,{id:`a`},[(0,t.createElementVNode)(`stop`,{offset:`.085`,"stop-color":`#469e43`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#132d13`})],-1),(0,t.createElementVNode)(`linearGradient`,{id:`b`,gradientUnits:`userSpaceOnUse`,x1:`64.863`,x2:`64.863`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`c`,gradientUnits:`userSpaceOnUse`,x1:`138.367`,x2:`138.367`,"xlink:href":`#a`,y1:`308.454`,y2:`370.601`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`d`,gradientUnits:`userSpaceOnUse`,x1:`195.475`,x2:`195.475`,"xlink:href":`#a`,y1:`288.291`,y2:`369.85`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`e`,gradientUnits:`userSpaceOnUse`,x1:`249.634`,x2:`249.634`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`f`,gradientUnits:`userSpaceOnUse`,x1:`302.884`,x2:`302.884`,"xlink:href":`#a`,y1:`288.291`,y2:`367.857`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`g`,gradientUnits:`userSpaceOnUse`,x1:`354.118`,x2:`354.118`,"xlink:href":`#a`,y1:`307.312`,y2:`369.511`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`h`,gradientUnits:`userSpaceOnUse`,x1:`428.02`,x2:`428.02`,"xlink:href":`#a`,y1:`306.156`,y2:`367.742`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`i`,gradientUnits:`userSpaceOnUse`,x1:`502.066`,x2:`502.066`,"xlink:href":`#a`,y1:`288.291`,y2:`369.4`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`j`,gradientUnits:`userSpaceOnUse`,x1:`283.264`,x2:`283.264`,"xlink:href":`#a`,y1:`131.629`,y2:`232.559`},null,-1),(0,t.createElementVNode)(`linearGradient`,{id:`k`,gradientUnits:`userSpaceOnUse`,x1:`283.46`,x2:`283.46`,y1:`202.275`,y2:`183.785`},[(0,t.createElementVNode)(`stop`,{offset:`0`,"stop-color":`#969799`,"stop-opacity":`0`}),(0,t.createElementVNode)(`stop`,{offset:`1`,"stop-color":`#808183`})],-1),(0,t.createElementVNode)(`path`,{d:`m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z`,fill:`url(#b)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z`,fill:`url(#c)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z`,fill:`url(#d)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#e)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m296.4 288.3h13v79.6h-13z`,fill:`url(#f)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z`,fill:`url(#g)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z`,fill:`url(#h)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z`,fill:`url(#i)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z`,fill:`url(#j)`},null,-1),(0,t.createElementVNode)(`path`,{d:`m281.7 183.8h3.6v18.5h-3.6z`,fill:`url(#k)`},null,-1)]],8,A))]),_:1})}}}),M=function(e){return e.DELETE=`DELETE`,e.SUCCESS=`SUCCESS`,e}({}),N=[`aria-labelledby`],P={key:0,class:`p-6 text-center`},F=[`id`],I={class:`flex justify-center`},L=(0,t.defineComponent)({__name:`BaseModal`,props:{title:{type:String,required:!0},description:{type:String,required:!1},to:{type:String,required:!1,default:`/`},mode:{type:String,required:!1,default:M.SUCCESS}},emits:[`closeModal`,`confirmModal`],setup(e,{emit:r}){let i=r;function a(e){e.key===`Escape`&&i(`closeModal`)}return(0,t.onMounted)(()=>{document.addEventListener(`keydown`,a)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`keydown`,a)}),(r,i)=>{let a=(0,t.resolveComponent)(`base-button`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{class:`outside`,onClick:i[0]||=e=>r.$emit(`closeModal`)}),(0,t.createElementVNode)(`div`,{class:`dialog relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`modal-title-`+e.title},[e.mode===(0,t.unref)(M).DELETE?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,P,[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`w-12 h-12 text-gray-400 mx-auto mb-4`}),(0,t.createElementVNode)(`h3`,{id:`modal-title-`+e.title,class:`mb-5 text-lg font-normal text-gray-500 dark:text-gray-400`},` Are you sure you want to delete this `+(0,t.toDisplayString)(e.title)+`? `,9,F),(0,t.createElementVNode)(`div`,I,[(0,t.createVNode)(a,{color:(0,t.unref)(_).RED,onClick:i[1]||=e=>r.$emit(`confirmModal`),description:`Yes, I'm sure`},null,8,[`color`]),(0,t.createVNode)(a,{color:(0,t.unref)(_).WHITE,onClick:i[2]||=e=>r.$emit(`closeModal`),description:`No, cancel`},null,8,[`color`])])])):(0,t.createCommentVNode)(``,!0)],8,N)],64)}}}),R=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},z=R(L,[[`__scopeId`,`data-v-1db4f0ac`]]),B=(0,t.defineComponent)({__name:`BaseRow`,props:{bgColor:{type:String,required:!1,default:`white`}},setup(e){let n=e;function r(){return`block p-8 border border-gray-200 rounded-xl shadow-sm dark:bg-gray-800 dark:border-gray-700 `+n.bgColor}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r())},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),V=(0,t.defineComponent)({__name:`BaseSpinner`,props:{size:{default:`sm`},color:{default:`blue`}},setup(e){let n=e,r=(0,t.computed)(()=>({sm:`w-4 h-4 border-2`,md:`w-6 h-6 border-2`,lg:`w-8 h-8 border-4`,xl:`w-12 h-12 border-4`})[n.size]),i=(0,t.computed)(()=>({blue:`border-t-blue-500`,emerald:`border-t-emerald-500`,sky:`border-t-sky-500`,indigo:`border-t-indigo-500`,teal:`border-t-teal-500`,purple:`border-t-purple-500`,red:`border-t-red-500`,amber:`border-t-amber-500`})[n.color]);return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`border-gray-200 rounded-full animate-spin`,[r.value,i.value]]),role:`status`,"aria-label":`Loading`},null,2))}}),H=function(e){return e.SUCCESS=`SUCCESS`,e.WARNING=`WARNING`,e.ERROR=`ERROR`,e}({}),U=function(e){return e.TOP_LEFT=`TOP_LEFT`,e.TOP_RIGHT=`TOP_RIGHT`,e.BOTTOM_LEFT=`BOTTOM_LEFT`,e.BOTTOM_RIGHT=`BOTTOM_RIGHT`,e}({}),W={class:`flex items-center w-full max-w-md p-4 mb-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800`},ue={class:`ml-3 text-sm font-normal`},de={key:3,type:`button`,class:`ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex items-center justify-center h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700`,"data-dismiss-target":`#toast-danger`,"aria-label":`Close`},fe=(0,t.defineComponent)({__name:`BaseToast`,props:{mode:{type:Object,required:!0},description:{type:String,required:!0},hasCloseIcon:{type:Boolean,required:!1,default:!0},positioning:{type:String,required:!1,default:U.TOP_RIGHT},duration:{type:Number,required:!1,default:5e3}},setup(e){let r=e,i=(0,t.ref)(!0),a=null;function o(){i.value=!1,a&&=(clearTimeout(a),null)}(0,t.onMounted)(()=>{a=setTimeout(()=>i.value=!1,r.duration)}),(0,t.onUnmounted)(()=>{a&&clearTimeout(a)});function s(){let e=``;switch(r.mode){case H.ERROR:e=`text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200`;break;case H.SUCCESS:e=`text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200`;break;case H.WARNING:e=`text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200`;break;default:e=`text-gray-500 bg-gray-100 dark:bg-gray-800 dark:text-gray-200`;break}return`inline-flex items-center justify-center flex-shrink-0 w-8 h-8 rounded-lg `+e}function c(){let e=`top-5 right-5`;switch(r.positioning){case U.BOTTOM_LEFT:e=`bottom-5 left-5`;break;case U.TOP_LEFT:e=`top-5 left-5`;break;case U.TOP_RIGHT:e=`top-5 right-5`;break;case U.BOTTOM_RIGHT:e=`bottom-5 right-5`;break}return`fixed flex items-center w-full max-w-md p-4 space-x-4 divide-x rounded-lg `+e}return(r,a)=>i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:`toast-top-right`,class:(0,t.normalizeClass)(c()),role:`alert`},[(0,t.createElementVNode)(`div`,W,[e.mode==(0,t.unref)(H).ERROR?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationCircleIcon),{class:`h-6 w-6 text-red-500`}),a[0]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Error icon`,-1)],2)):e.mode==(0,t.unref)(H).SUCCESS?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.CheckCircleIcon),{class:`h-6 w-6 text-green-500`}),a[1]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Check icon`,-1)],2)):e.mode==(0,t.unref)(H).WARNING?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)(s())},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:`h-6 w-6 text-yellow-500`}),a[2]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Warning icon`,-1)],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,ue,(0,t.toDisplayString)(e.description),1),e.hasCloseIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,de,[a[3]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Close`,-1),(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`h-6 w-6 text-gray-500 cursor-pointer`,onClick:o})])):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)}}),pe={class:`w-13`},me=(0,t.defineComponent)({__name:`ColoredSquares`,props:{color:{type:String,required:!1}},setup(e){let n=e,r=[`bg-slate-300`,`bg-zinc-300`,`bg-neutral-300`,`bg-stone-300`,`bg-blue-300`,`bg-green-300`,`bg-yellow-300`,`bg-purple-300`,`bg-pink-300`],i=(0,t.ref)(r[Math.floor(Math.random()*r.length)]);function a(){let e=`gray`;switch(n.color){case o.GREEN:e=`green`;break;case o.RED:e=`red`;break;case o.BLUE:e=`blue`;break;case o.YELLOW:e=`yellow`;break;case o.NONE:e=``;break}return`font-bold bg-`+e+`-100 text-`+e+`-800 text-xs mr-2 px-2.5 py-0.5 rounded-full`}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pe,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center`,a()])},[(0,t.renderSlot)(e.$slots,`default`),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`absolute bottom-0 left-0 h-1 w-full`,i.value])},null,2)],2)]))}}),he={class:`flex items-start justify-between`},ge={class:`text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200`},_e=(0,t.defineComponent)({__name:`EarningsCard`,props:{title:{default:`TOTAL EARNINGS`},amount:{default:0},subtitle:{default:`Lifetime commission`},badge:{default:``},currency:{default:`$`},decimals:{default:2},accent:{default:`orange`}},setup(e){let n=e,r={orange:{border:`border-orange-300 dark:border-orange-700`,badge:`bg-orange-100 text-orange-500 dark:bg-orange-900/40 dark:text-orange-400`,amount:`text-gray-400 dark:text-slate-300`,subtitle:`text-orange-400 dark:text-orange-400`,iconBox:`bg-orange-50 dark:bg-orange-900/30`,icon:`text-orange-400`},emerald:{border:`border-emerald-300 dark:border-emerald-700`,badge:`bg-emerald-100 text-emerald-600 dark:bg-emerald-900/40 dark:text-emerald-400`,amount:`text-emerald-500 dark:text-emerald-400`,subtitle:`text-emerald-500 dark:text-emerald-400`,iconBox:`bg-emerald-50 dark:bg-emerald-900/30`,icon:`text-emerald-500`}},i=(0,t.computed)(()=>r[n.accent]),a=(0,t.computed)(()=>{let e=Number.isFinite(n.amount)?n.amount:0;return n.currency+e.toLocaleString(`en-US`,{minimumFractionDigits:n.decimals,maximumFractionDigits:n.decimals})});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`relative rounded-xl border-2 border-dashed bg-white p-6 dark:bg-slate-800`,i.value.border])},[e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide`,i.value.badge])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,he,[(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`p`,ge,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`mt-1 text-4xl font-bold`,i.value.amount])},(0,t.toDisplayString)(a.value),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`mt-1 text-sm font-medium`,i.value.subtitle])},(0,t.toDisplayString)(e.subtitle),3)]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mt-6 flex h-12 w-12 items-center justify-center rounded-xl`,i.value.iconBox])},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`h-6 w-6`,i.value.icon]),viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[0]||=[(0,t.createElementVNode)(`polyline`,{points:`22 7 13.5 15.5 8.5 10.5 2 17`},null,-1),(0,t.createElementVNode)(`polyline`,{points:`16 7 22 7 22 13`},null,-1)]],2))],2)])],2))}}),ve={key:0,class:`font-bold text-green-800`},ye={key:0},be={key:0},xe=`font-bold`,Se=(0,t.defineComponent)({__name:`EuroAmount`,props:{amount:{type:Number,required:!1},beforeAmount:{type:Number,default:null,required:!1},showCurrency:{type:Boolean,default:!0,required:!1}},setup(e){let n=e,r=(0,t.computed)(()=>n.amount!==null&&n.amount!==void 0),i=(0,t.computed)(()=>r.value&&n.amount<0),a=(0,t.computed)(()=>n.beforeAmount===null||n.beforeAmount===void 0?!1:n.amount<n.beforeAmount),o=(0,t.computed)(()=>i.value||a.value),s=(0,t.computed)(()=>!i.value&&!a.value&&!(n.beforeAmount===null||n.beforeAmount===void 0));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[r.value&&s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ve,[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ye,`€`)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),r.value&&!s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([xe,o.value?`text-red-800`:`text-gray-800`])},[(0,t.createTextVNode)((0,t.toDisplayString)(e.amount)+` `,1),e.showCurrency?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,be,`€`)):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)],64))}}),Ce=[`onClick`,`onKeydown`],we={key:1,style:{cursor:`not-allowed`}},Te=R((0,t.defineComponent)({__name:`Pagination`,props:{totalItems:{type:Number,required:!0},itemsPerPage:{type:Number,default:20}},emits:[`page-changed`],setup(e,{emit:n}){let r=e,i=(0,t.ref)(1),a=(0,t.ref)(0),o=(0,t.ref)([]),s=n;function c(e){if(e!==i.value&&e>=1&&e<=a.value&&(i.value=e),a.value>5){o.value=[],e-3>0&&(o.value.push(1),o.value.push(0));for(let t=1;t<=2;t++){let n=e-t;n>0&&o.value.push(n)}o.value.length,o.value.push(i.value);let t=a.value-e;if(t>2){for(let t=1;t<=2;t++)o.value.push(e+t);o.value.push(0),o.value.push(a.value)}else for(let n=1;n<=t;n++)o.value.push(e+n)}s(`page-changed`,e)}return(0,t.watch)(()=>r.totalItems,()=>{if(a.value=Math.ceil(r.totalItems/r.itemsPerPage),o.value=[],a.value>5){for(let e=1;e<5;e++)o.value.push(e);o.value.push(0),o.value.push(a.value)}else for(let e=1;e<=a.value;e++)o.value.push(e)},{immediate:!0}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`ul`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n},[e===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,role:`button`,tabindex:`0`,onClick:t=>c(e),onKeydown:(0,t.withKeys)(t=>c(e),[`enter`]),class:(0,t.normalizeClass)({active:e===i.value})},(0,t.toDisplayString)(e),43,Ce)),e===0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,we,`...`)):(0,t.createCommentVNode)(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-d7ebb6ac`]]),Ee={key:0},De={key:0,class:`flex items-center space-x-2`},Oe={key:1,class:`flex items-center space-x-2`},ke=(0,t.defineComponent)({__name:`TrendArrow`,props:{number:{type:Number,required:!1},icon:{type:String,required:!1}},setup(e){let r=e,i=(0,t.computed)(()=>r.number!==null&&r.number!==void 0&&r.number<0);return(a,s)=>e.number!==null&&e.number!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ee,[i.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,De,[(0,t.createVNode)(f,{color:(0,t.unref)(o).RED},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowDownIcon),{class:`h-5 w-5 text-red-500`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Oe,[(0,t.createVNode)(f,{color:(0,t.unref)(o).GREEN},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.number)+(0,t.toDisplayString)(r.icon),1)]),_:1},8,[`color`]),(0,t.createVNode)((0,t.unref)(n.ArrowUpIcon),{class:`h-5 w-5 text-green-500`})]))])):(0,t.createCommentVNode)(``,!0)}});function G(){let{isDark:e}=S();return{card:(0,t.computed)(()=>e.value?`bg-gray-800 border-gray-700`:`bg-white border-gray-200`),cardAlt:(0,t.computed)(()=>e.value?`bg-gray-900 border-gray-700`:`bg-white border-gray-200`),pageBg:(0,t.computed)(()=>e.value?`bg-gray-900`:`bg-gray-50`),border:(0,t.computed)(()=>e.value?`border-gray-700`:`border-gray-200`),divider:(0,t.computed)(()=>e.value?`border-gray-800`:`border-gray-100`),primaryText:(0,t.computed)(()=>e.value?`text-white`:`text-gray-900`),primaryTextSoft:(0,t.computed)(()=>e.value?`text-gray-100`:`text-gray-800`),bodyText:(0,t.computed)(()=>e.value?`text-gray-200`:`text-gray-700`),label:(0,t.computed)(()=>e.value?`text-gray-300`:`text-gray-700`),mutedText:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-600`),subtleText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-600`),dimText:(0,t.computed)(()=>e.value?`text-gray-500`:`text-gray-400`),dimTextAlt:(0,t.computed)(()=>e.value?`text-gray-400`:`text-gray-500`),illustration:(0,t.computed)(()=>e.value?`text-gray-600`:`text-gray-300`),input:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white`:`bg-gray-50 border-gray-300 text-gray-900`),inputWithPlaceholder:(0,t.computed)(()=>e.value?`bg-gray-700 border-gray-600 text-white placeholder-gray-400`:`bg-gray-50 border-gray-300 text-gray-900 placeholder-gray-500`),ghostButton:(0,t.computed)(()=>e.value?`bg-gray-800 text-gray-200 border-gray-600 hover:bg-gray-700`:`bg-white text-gray-700 border-gray-300 hover:bg-gray-50`),emeraldText:(0,t.computed)(()=>e.value?`text-emerald-400`:`text-emerald-600`),amberText:(0,t.computed)(()=>e.value?`text-amber-400`:`text-amber-600`),amberTextStrong:(0,t.computed)(()=>e.value?`text-amber-300`:`text-amber-700`),redText:(0,t.computed)(()=>e.value?`text-red-400`:`text-red-500`)}}function K(e){function n(t){t.key===`Escape`&&e()}(0,t.onMounted)(()=>document.addEventListener(`keydown`,n)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,n))}var Ae={class:`flex items-start gap-4 min-w-0`},je={class:`flex-1 min-w-0`},Me={class:`p-6 overflow-y-auto flex-1`},Ne={class:`p-6`},Pe={class:`flex items-start gap-4`},Fe={class:`flex-1`},Ie={class:`mt-4`},Le={class:`mt-6 flex gap-3 justify-end`},q=(0,t.defineComponent)({__name:`BaseModalShell`,props:{title:{},maxWidthClass:{default:`max-w-md`},manualClose:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},subtitle:{default:``}},emits:[`cancel`,`backdrop`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=S(),o=G(),s=`modal-title-${Math.random().toString(36).slice(2,9)}`,c=(0,t.computed)(()=>a.value?`bg-gray-900 border border-gray-700`:`bg-white border border-gray-200`);function l(){i(`backdrop`),r.manualClose||i(`cancel`)}return K(()=>{r.manualClose||i(`cancel`)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createElementVNode)(`div`,{class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":s,onClick:l},[e.scrollable?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`relative w-full mx-4 rounded-lg shadow-xl max-h-[90vh] flex flex-col`,[e.maxWidthClass,c.value]]),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex items-start justify-between gap-4 p-6 border-b shrink-0`,(0,t.unref)(o).border])},[(0,t.createElementVNode)(`div`,Ae,[(0,t.renderSlot)(n.$slots,`icon`),(0,t.createElementVNode)(`div`,je,[(0,t.createElementVNode)(`h3`,{id:s,class:(0,t.normalizeClass)([`text-lg font-medium`,(0,t.unref)(o).primaryText])},(0,t.toDisplayString)(e.title),3),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm mt-1 break-all`,(0,t.unref)(o).mutedText])},(0,t.toDisplayString)(e.subtitle),3)):(0,t.createCommentVNode)(``,!0)])]),(0,t.renderSlot)(n.$slots,`header-actions`)],2),(0,t.createElementVNode)(`div`,Me,[(0,t.renderSlot)(n.$slots,`default`)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`flex gap-3 justify-end p-6 border-t shrink-0`,(0,t.unref)(o).border])},[(0,t.renderSlot)(n.$slots,`footer`)],2)):(0,t.createCommentVNode)(``,!0)],2)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`relative w-full mx-4 rounded-lg shadow-xl`,[e.maxWidthClass,c.value]]),onClick:r[1]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`div`,Ne,[(0,t.createElementVNode)(`div`,Pe,[(0,t.renderSlot)(n.$slots,`icon`),(0,t.createElementVNode)(`div`,Fe,[(0,t.createElementVNode)(`h3`,{id:s,class:(0,t.normalizeClass)([`text-lg font-medium`,(0,t.unref)(o).primaryText])},(0,t.toDisplayString)(e.title),3)])]),(0,t.createElementVNode)(`div`,Ie,[(0,t.renderSlot)(n.$slots,`default`)]),(0,t.createElementVNode)(`div`,Le,[(0,t.renderSlot)(n.$slots,`footer`)])])],2))])]))}}),Re=[`aria-expanded`],ze={class:`flex items-center gap-3`},Be=(0,t.defineComponent)({__name:`BaseCollapsibleSection`,props:{title:{},collapsed:{type:Boolean},badge:{},bodyClass:{}},emits:[`toggle`],setup(e,{emit:n}){let r=e,i=n,{isDark:a}=S(),o=G(),s=(0,t.computed)(()=>a.value?`text-gray-100`:`text-gray-700`),c=(0,t.computed)(()=>a.value?`bg-gray-800/50 hover:bg-gray-800 border-gray-700`:`bg-gray-50 hover:bg-gray-100 border-gray-200`),l=(0,t.computed)(()=>a.value?`bg-emerald-500/15 text-emerald-400`:`bg-emerald-50 text-emerald-700`),u=(0,t.computed)(()=>r.bodyClass===void 0?a.value?`bg-gray-800`:`bg-white`:r.bodyClass);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,{class:(0,t.normalizeClass)([`rounded-xl border overflow-hidden transition-colors`,(0,t.unref)(o).cardAlt])},[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`w-full flex items-center justify-between p-4 text-left transition-colors`,c.value]),"aria-expanded":!e.collapsed,onClick:r[0]||=e=>i(`toggle`)},[(0,t.createElementVNode)(`div`,ze,[(0,t.createElementVNode)(`h2`,{class:(0,t.normalizeClass)([`text-base font-semibold`,s.value])},(0,t.toDisplayString)(e.title),3),e.badge?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`text-xs px-2 py-0.5 rounded-full`,l.value])},(0,t.toDisplayString)(e.badge),3)):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:(0,t.normalizeClass)([`w-5 h-5 transition-transform`,[e.collapsed?``:`rotate-180`,(0,t.unref)(o).dimTextAlt]]),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`2`,"aria-hidden":`true`},[...r[1]||=[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M19 9l-7 7-7-7`},null,-1)]],2))],10,Re),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`p-6 border-t`,[(0,t.unref)(o).border,u.value]])},[(0,t.renderSlot)(n.$slots,`default`)],2),[[t.vShow,!e.collapsed]])],2))}}),Ve=[`disabled`],He=[`disabled`],Ue={key:0,class:`w-4 h-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`,"aria-hidden":`true`},We=(0,t.defineComponent)({__name:`BaseConfirmModal`,props:{title:{},message:{},confirmText:{default:`Yes, I'm sure`},cancelText:{default:`No, cancel`},submittingText:{default:`Working...`},variant:{default:`danger`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G();function c(){i.submitting||a(`confirm`)}function l(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:l},{icon:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,[e.variant===`danger`?(0,t.unref)(o)?`bg-red-900/30`:`bg-red-50`:(0,t.unref)(o)?`bg-amber-900/30`:`bg-amber-50`]])},[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,e.variant===`danger`?`text-red-600`:`text-amber-600`]),"aria-hidden":`true`},null,8,[`class`])],2)]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,[(0,t.unref)(s).ghostButton,e.submitting?`opacity-60 cursor-not-allowed`:`cursor-pointer`]]),onClick:l},(0,t.toDisplayString)(e.cancelText),11,Ve),(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[e.variant===`danger`?e.submitting?`bg-red-400 cursor-not-allowed`:`bg-red-600 hover:bg-red-700 cursor-pointer`:e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:c},[e.submitting?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Ue,[...i[0]||=[(0,t.createElementVNode)(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`},null,-1),(0,t.createElementVNode)(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z`},null,-1)]])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),1)],10,He)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.renderSlot)(r.$slots,`default`)]),_:3},8,[`title`,`manual-close`]))}}),Ge={class:`mt-4`},Ke=[`placeholder`],qe=[`disabled`],Je=(0,t.defineComponent)({__name:`BaseTextInputModal`,props:{title:{},message:{},initialValue:{default:``},placeholder:{default:`Enter value...`},inputLabel:{default:`Name`},confirmText:{default:`Confirm`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G(),c=(0,t.ref)(i.initialValue),l=(0,t.ref)(null);(0,t.onMounted)(async()=>{await(0,t.nextTick)(),l.value?.focus()});function u(){!c.value.trim()||i.submitting||a(`confirm`,c.value.trim())}function d(){a(`cancel`)}function f(){c.value.trim()===(i.initialValue??``).trim()&&d()}return K(d),(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":``,onBackdrop:f},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,(0,t.unref)(o)?`bg-emerald-900/30`:`bg-emerald-50`])},[(0,t.createVNode)((0,t.unref)(n.DocumentDuplicateIcon),{class:`h-6 w-6 text-emerald-600`,"aria-hidden":`true`})],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150`,(0,t.unref)(s).ghostButton]),onClick:d},(0,t.toDisplayString)(e.cancelText),3),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!c.value.trim()||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,[!c.value.trim()||e.submitting?`bg-emerald-400 cursor-not-allowed`:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`]]),onClick:u},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,qe)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`div`,Ge,[(0,t.createElementVNode)(`label`,{class:(0,t.normalizeClass)([`block text-sm font-medium mb-1`,(0,t.unref)(s).label])},(0,t.toDisplayString)(e.inputLabel),3),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`nameInput`,ref:l,"onUpdate:modelValue":i[0]||=e=>c.value=e,type:`text`,placeholder:e.placeholder,class:(0,t.normalizeClass)([`w-full px-3 py-2 rounded-md border text-sm transition-colors`,(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:outline-none focus:border-emerald-500`:`bg-white border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-emerald-500`]),onKeyup:(0,t.withKeys)(u,[`enter`])},null,42,Ke),[[t.vModelText,c.value]])])]),_:3},8,[`title`]))}}),Ye={class:`flex items-center justify-center min-h-[60vh]`},Xe={class:`text-center px-6`},Ze=(0,t.defineComponent)({__name:`BaseNotFoundPage`,props:{code:{default:`404`},message:{default:`Page not found`},homeRouteName:{default:`home`},homeLabel:{default:`Go home`}},setup(e){let r=e,a=(0,i.useRouter)(),{isDark:o}=S(),s=G();function c(){a.push({name:r.homeRouteName})}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ye,[(0,t.createElementVNode)(`div`,Xe,[(0,t.createVNode)((0,t.unref)(n.ExclamationTriangleIcon),{class:(0,t.normalizeClass)([`w-16 h-16 mx-auto mb-4`,(0,t.unref)(s).illustration])},null,8,[`class`]),(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-4xl font-bold mb-2`,(0,t.unref)(o)?`text-gray-200`:`text-gray-800`])},(0,t.toDisplayString)(e.code),3),(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-lg mb-6`,(0,t.unref)(s).dimTextAlt])},(0,t.toDisplayString)(e.message),3),(0,t.createElementVNode)(`button`,{onClick:c,class:(0,t.normalizeClass)([`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium text-white transition-colors cursor-pointer`,(0,t.unref)(o)?`bg-emerald-600 hover:bg-emerald-500`:`bg-emerald-600 hover:bg-emerald-700`])},(0,t.toDisplayString)(e.homeLabel),3)])]))}}),J=(0,t.ref)(!1);function Y(){function e(){J.value=!0}function t(){J.value=!1}function n(){J.value=!J.value}return{mobileOpen:J,open:e,close:t,toggle:n}}var Qe=[`aria-label`,`aria-expanded`],$e={class:`flex flex-col h-full`},et={class:`px-5 pt-5 pb-4 flex items-center justify-center relative`},tt={class:`flex-1 overflow-y-auto px-3 space-y-6`},nt={class:`px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500`},rt={class:`space-y-0.5`},it=[`aria-current`,`onClick`],at=[`title`,`aria-label`,`aria-pressed`],ot=R((0,t.defineComponent)({__name:`BaseSidebar`,props:{sections:{},homeRouteName:{default:`home`},appName:{default:``},version:{default:``},showThemeToggle:{type:Boolean,default:!0}},setup(e){let r=e,a=(0,i.useRouter)(),o=(0,i.useRoute)(),{isDark:s,toggleTheme:c}=S(),{mobileOpen:l,close:u,toggle:d}=Y(),f=(0,t.ref)(null),p=null;(0,t.watch)(l,async e=>{e?(p=document.activeElement instanceof HTMLElement?document.activeElement:null,await(0,t.nextTick)(),f.value?.focus()):(p?.focus(),p=null)}),(0,t.onMounted)(()=>{}),(0,t.onUnmounted)(()=>{});function m(){a.push({name:r.homeRouteName}),u()}function h(e){return o.name===e}function g(e){a.push({name:e}),u()}return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,null,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`mobile-topbar fixed top-0 inset-x-0 z-30 flex items-center justify-between px-4 py-3 border-b transition-colors`,(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`])},[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:28},void 0,!0)]),(0,t.createElementVNode)(`button`,{type:`button`,onClick:i[0]||=(...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),class:(0,t.normalizeClass)([`p-2 rounded-lg cursor-pointer`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-600 hover:bg-gray-100`]),"aria-label":(0,t.unref)(l)?`Close navigation menu`:`Open navigation menu`,"aria-expanded":(0,t.unref)(l)},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.XMarkIcon),{key:1,class:`w-6 h-6`,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Bars3Icon),{key:0,class:`w-6 h-6`,"aria-hidden":`true`}))],10,Qe)],2),(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`mobile-overlay fixed inset-0 z-40 bg-black/50`,"aria-hidden":`true`,onClick:i[1]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e)})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,{role:`navigation`,"aria-label":`Main navigation`,class:(0,t.normalizeClass)([`fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto`,[(0,t.unref)(s)?`bg-gray-900 border-gray-800`:`bg-white border-gray-200`,(0,t.unref)(l)?`translate-x-0 z-50`:`-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50`]])},[(0,t.createElementVNode)(`div`,$e,[(0,t.createElementVNode)(`div`,et,[(0,t.createElementVNode)(`button`,{type:`button`,onClick:m,class:`cursor-pointer`,"aria-label":`Go to home`},[(0,t.renderSlot)(r.$slots,`logo`,{size:52},void 0,!0)]),(0,t.createElementVNode)(`button`,{ref_key:`closeMobileButton`,ref:f,type:`button`,onClick:i[2]||=(...e)=>(0,t.unref)(u)&&(0,t.unref)(u)(...e),class:(0,t.normalizeClass)([`lg:hidden p-1.5 rounded-lg cursor-pointer absolute right-3 top-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:bg-gray-800`:`text-gray-500 hover:bg-gray-100`]),"aria-label":`Close navigation menu`},[(0,t.createVNode)((0,t.unref)(n.XMarkIcon),{class:`w-5 h-5`,"aria-hidden":`true`})],2)]),(0,t.createElementVNode)(`nav`,tt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.sections,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.title},[(0,t.createElementVNode)(`p`,nt,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`ul`,rt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.name},[(0,t.createElementVNode)(`button`,{type:`button`,"aria-current":h(e.name)?`page`:void 0,onClick:t=>g(e.name),class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors w-full text-left cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,h(e.name)?(0,t.unref)(s)?`bg-emerald-500/15 text-emerald-300`:`bg-emerald-50 text-emerald-700`:(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{class:`w-[18px] h-[18px] shrink-0`})),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)],10,it)]))),128))])]))),128))]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`px-4 py-4 border-t transition-colors space-y-3`,(0,t.unref)(s)?`border-gray-800`:`border-gray-200`])},[e.showThemeToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,onClick:i[3]||=(...e)=>(0,t.unref)(c)&&(0,t.unref)(c)(...e),title:(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-label":(0,t.unref)(s)?`Switch to light mode`:`Switch to dark mode`,"aria-pressed":(0,t.unref)(s),class:(0,t.normalizeClass)([`flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500`,(0,t.unref)(s)?`text-gray-400 hover:text-gray-100 hover:bg-gray-800`:`text-gray-600 hover:text-gray-900 hover:bg-gray-100`])},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(s)?`Switch to light`:`Switch to dark`)+` `,1),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`ml-auto relative w-9 h-5 rounded-full transition-colors`,(0,t.unref)(s)?`bg-emerald-600`:`bg-gray-300`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300`,(0,t.unref)(s)?`translate-x-4`:`translate-x-0`])},null,2)],2)],10,at)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`status`,{},void 0,!0),(0,t.renderSlot)(r.$slots,`footer`,{},()=>[e.appName||e.version?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`flex items-center justify-center gap-2 text-xs`,((0,t.unref)(s),`text-gray-500`)])},[(0,t.createElementVNode)(`span`,null,[(0,t.createTextVNode)((0,t.toDisplayString)(e.appName),1),e.appName&&e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[],64)):(0,t.createCommentVNode)(``,!0),e.version?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`v`+(0,t.toDisplayString)(e.version),1)],64)):(0,t.createCommentVNode)(``,!0)])],2)):(0,t.createCommentVNode)(``,!0)],!0)],2)])],2)]))}}),[[`__scopeId`,`data-v-e27f267e`]]),st={key:1,class:`mt-4 flex justify-center py-6`},ct={key:2,class:`mt-4 text-sm text-red-500`,role:`alert`},lt={key:3,class:`mt-4`},ut={class:`relative`},dt=[`placeholder`],ft={key:4,class:`mt-3 max-h-64 overflow-y-auto`},pt=[`onClick`],mt={class:`flex-1 min-w-0`},ht={key:0,class:`text-center py-6`},gt={key:1,class:`text-center py-6`},_t=[`disabled`],vt=[`disabled`],yt=(0,t.defineComponent)({__name:`BaseEntityPickerModal`,props:{title:{},message:{},items:{default:()=>[]},loader:{},excludeId:{},variant:{default:`emerald`},searchPlaceholder:{default:`Search...`},emptyMessage:{default:`No items available.`},noMatchMessage:{default:`No items match your search.`},confirmText:{default:`Select`},cancelText:{default:`Cancel`},submittingText:{default:`Working...`},submitting:{type:Boolean,default:!1}},emits:[`confirm`,`cancel`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=G(),c=(0,t.ref)([]),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.ref)(null),f=(0,t.ref)(``),p=(0,t.ref)(null),m=(0,t.computed)(()=>{let e=i.loader?c.value:i.items;return i.excludeId?e.filter(e=>e.id!==i.excludeId):e}),h=(0,t.computed)(()=>m.value.filter(e=>e.label.toLowerCase().includes(f.value.toLowerCase()))),g={emerald:{iconBg:`bg-emerald-50`,iconText:`text-emerald-600`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-50 border border-emerald-200`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-50`,iconText:`text-purple-600`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-50 border border-purple-200`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-50`,iconText:`text-blue-600`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-50 border border-blue-200`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-50`,iconText:`text-red-600`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-50 border border-red-200`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-50`,iconText:`text-amber-600`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-50 border border-amber-200`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},_={emerald:{iconBg:`bg-emerald-900/30`,iconText:`text-emerald-400`,inputFocus:`focus:border-emerald-500`,selectedRow:`bg-emerald-500/15 border border-emerald-500/30`,checkBg:`bg-emerald-600`,confirmActive:`bg-emerald-600 hover:bg-emerald-700 cursor-pointer`,confirmDisabled:`bg-emerald-400 cursor-not-allowed`},purple:{iconBg:`bg-purple-900/30`,iconText:`text-purple-400`,inputFocus:`focus:border-purple-500`,selectedRow:`bg-purple-500/15 border border-purple-500/30`,checkBg:`bg-purple-600`,confirmActive:`bg-purple-600 hover:bg-purple-700 cursor-pointer`,confirmDisabled:`bg-purple-400 cursor-not-allowed`},blue:{iconBg:`bg-blue-900/30`,iconText:`text-blue-400`,inputFocus:`focus:border-blue-500`,selectedRow:`bg-blue-500/15 border border-blue-500/30`,checkBg:`bg-blue-600`,confirmActive:`bg-blue-600 hover:bg-blue-700 cursor-pointer`,confirmDisabled:`bg-blue-400 cursor-not-allowed`},red:{iconBg:`bg-red-900/30`,iconText:`text-red-400`,inputFocus:`focus:border-red-500`,selectedRow:`bg-red-500/15 border border-red-500/30`,checkBg:`bg-red-600`,confirmActive:`bg-red-600 hover:bg-red-700 cursor-pointer`,confirmDisabled:`bg-red-400 cursor-not-allowed`},amber:{iconBg:`bg-amber-900/30`,iconText:`text-amber-400`,inputFocus:`focus:border-amber-500`,selectedRow:`bg-amber-500/15 border border-amber-500/30`,checkBg:`bg-amber-600`,confirmActive:`bg-amber-600 hover:bg-amber-700 cursor-pointer`,confirmDisabled:`bg-amber-400 cursor-not-allowed`}},v=(0,t.computed)(()=>(o.value?_:g)[i.variant]);(0,t.onMounted)(async()=>{if(i.loader){l.value=!0;try{c.value=await i.loader()}catch{u.value=`Failed to load items`}finally{l.value=!1}}await(0,t.nextTick)(),p.value?.focus()});function y(){!d.value||i.submitting||a(`confirm`,d.value)}function b(){i.submitting||a(`cancel`)}return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)(q,{title:e.title,"manual-close":e.submitting,onCancel:b},{icon:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full`,v.value.iconBg])},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`h-6 w-6`,v.value.iconText]),"aria-hidden":`true`},null,8,[`class`])],2)])]),footer:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`button`,{type:`button`,disabled:e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 disabled:opacity-50 disabled:cursor-not-allowed`,(0,t.unref)(s).ghostButton]),onClick:b},(0,t.toDisplayString)(e.cancelText),11,_t),(0,t.createElementVNode)(`button`,{type:`button`,disabled:!d.value||e.submitting,class:(0,t.normalizeClass)([`inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150`,!d.value||e.submitting?v.value.confirmDisabled:v.value.confirmActive]),onClick:y},(0,t.toDisplayString)(e.submitting?e.submittingText:e.confirmText),11,vt)]),default:(0,t.withCtx)(()=>[e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(o)?`text-gray-300`:`text-gray-600`])},(0,t.toDisplayString)(e.message),3)):(0,t.createCommentVNode)(``,!0),l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,st,[(0,t.createVNode)(V,{color:`emerald`})])):u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ct,(0,t.toDisplayString)(u.value),1)):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value&&m.value.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lt,[(0,t.createElementVNode)(`div`,ut,[(0,t.createVNode)((0,t.unref)(n.MagnifyingGlassIcon),{class:(0,t.normalizeClass)([`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4`,(0,t.unref)(s).dimText]),"aria-hidden":`true`},null,8,[`class`]),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:p,"onUpdate:modelValue":i[0]||=e=>f.value=e,type:`text`,placeholder:e.searchPlaceholder,class:(0,t.normalizeClass)([`w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors`,[(0,t.unref)(o)?`bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500`:`bg-white border-gray-300 text-gray-700 placeholder-gray-400`,v.value.inputFocus]])},null,10,dt),[[t.vModelText,f.value]])])])):(0,t.createCommentVNode)(``,!0),!l.value&&!u.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ft,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors`,[d.value===e.id?v.value.selectedRow:(0,t.unref)(o)?`hover:bg-gray-800 border border-transparent`:`hover:bg-gray-50 border border-transparent`]]),onClick:t=>d.value=e.id},[(0,t.createVNode)((0,t.unref)(n.FolderIcon),{class:(0,t.normalizeClass)([`w-5 h-5 flex-shrink-0`,(0,t.unref)(s).dimText])},null,8,[`class`]),(0,t.createElementVNode)(`div`,mt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm font-medium truncate`,(0,t.unref)(s).bodyText])},(0,t.toDisplayString)(e.label),3)]),d.value===e.id?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`w-5 h-5 rounded-full flex items-center justify-center`,v.value.checkBg])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{class:`w-3 h-3 text-white`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,"stroke-width":`3`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,d:`M5 13l4 4L19 7`})],-1)]],2)):(0,t.createCommentVNode)(``,!0)],10,pt))),128)),m.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ht,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.emptyMessage),3)])):h.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gt,[(0,t.createElementVNode)(`p`,{class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(s).dimText])},(0,t.toDisplayString)(e.noMatchMessage),3)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`title`,`manual-close`]))}}),bt={href:`#main-content`,class:`sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-3 focus:py-2 focus:rounded-md focus:bg-emerald-600 focus:text-white focus:shadow-lg`},xt=[`inert`],St=(0,t.defineComponent)({__name:`BaseAppLayout`,props:{showSidebar:{type:Boolean,default:!0},skipLinkLabel:{default:`Skip to main content`}},setup(e){let n=e,{isDark:r}=S(),{mobileOpen:i}=Y(),a=(0,t.computed)(()=>n.showSidebar);return(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`min-h-screen transition-colors duration-300`,(0,t.unref)(r)?`bg-gray-950 text-gray-100`:`bg-gray-50 text-gray-800`])},[(0,t.createElementVNode)(`a`,bt,(0,t.toDisplayString)(e.skipLinkLabel),1),a.value?(0,t.renderSlot)(n.$slots,`sidebar`,{key:0}):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`main`,{id:`main-content`,tabindex:`-1`,inert:a.value&&(0,t.unref)(i)?!0:void 0,class:(0,t.normalizeClass)(a.value?`pt-14 lg:pt-0 lg:ml-60`:``)},[(0,t.renderSlot)(n.$slots,`default`)],10,xt)],2))}}),Ct={class:`flex items-center justify-between mb-8`},wt={class:`flex items-center gap-3`},Tt={class:`flex items-center gap-2`},Et=(0,t.defineComponent)({__name:`BasePageHeader`,props:{title:{},subtitle:{default:``},iconColor:{default:`emerald`},maxWidthClass:{default:`max-w-4xl`}},setup(e){let n=e,{isDark:r}=S(),i=G(),a=(0,t.computed)(()=>{let e={emerald:{dark:`bg-emerald-500/10`,light:`bg-emerald-50`},sky:{dark:`bg-sky-500/10`,light:`bg-sky-50`},red:{dark:`bg-red-500/10`,light:`bg-red-50`},amber:{dark:`bg-amber-500/10`,light:`bg-amber-50`}}[n.iconColor];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`}}[n.iconColor];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`mx-auto px-4 sm:px-6`,e.maxWidthClass])},[(0,t.createElementVNode)(`div`,Ct,[(0,t.createElementVNode)(`div`,wt,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`w-10 h-10 rounded-lg flex items-center justify-center`,a.value])},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:o.value})],2),(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`h1`,{class:(0,t.normalizeClass)([`text-2xl font-bold`,(0,t.unref)(i).primaryTextSoft])},(0,t.toDisplayString)(e.title),3),e.subtitle?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:0,class:(0,t.normalizeClass)([`text-sm`,(0,t.unref)(i).dimTextAlt])},(0,t.toDisplayString)(e.subtitle),3)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,Tt,[(0,t.renderSlot)(n.$slots,`actions`)])])],2))}}),Dt=[`type`,`disabled`,`title`],Ot={key:0},kt=(0,t.defineComponent)({__name:`BaseToolbarButton`,props:{label:{default:``},variant:{default:`neutral`},disabled:{type:Boolean,default:!1},title:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=S(),i=(0,t.computed)(()=>{let e={neutral:{dark:`bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700`,light:`bg-white text-gray-700 border-gray-200 hover:bg-gray-100`},danger:{dark:`bg-red-600 text-white border-red-600 hover:bg-red-500`,light:`bg-red-600 text-white border-red-600 hover:bg-red-700`}}[n.variant];return r.value?e.dark:e.light});return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,class:(0,t.normalizeClass)([`inline-flex shrink-0 items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,i.value]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ot,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,Dt))}}),At=[`type`,`disabled`,`title`,`aria-label`],jt={key:0},Mt=(0,t.defineComponent)({__name:`BaseActionButton`,props:{label:{default:``},color:{default:`emerald`},disabled:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},title:{default:void 0},ariaLabel:{default:void 0},type:{default:`button`}},emits:[`click`],setup(e){let n=e,{isDark:r}=S(),i=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400 hover:bg-emerald-500/10`,light:`text-emerald-600 hover:bg-emerald-50`},sky:{dark:`text-sky-400 hover:bg-sky-500/10`,light:`text-sky-600 hover:bg-sky-50`},indigo:{dark:`text-indigo-400 hover:bg-indigo-500/10`,light:`text-indigo-600 hover:bg-indigo-50`},teal:{dark:`text-teal-400 hover:bg-teal-500/10`,light:`text-teal-600 hover:bg-teal-50`},purple:{dark:`text-purple-400 hover:bg-purple-500/10`,light:`text-purple-600 hover:bg-purple-50`},red:{dark:`text-red-400 hover:bg-red-500/10`,light:`text-red-500 hover:bg-red-50`},amber:{dark:`text-amber-400 hover:bg-amber-500/10`,light:`text-amber-600 hover:bg-amber-50`},amberStrong:{dark:`text-amber-300 hover:bg-amber-500/10`,light:`text-amber-700 hover:bg-amber-50`}}[n.color];return r.value?e.dark:e.light}),a=(0,t.computed)(()=>{let e={emerald:{dark:`text-emerald-400`,light:`text-emerald-600`},sky:{dark:`text-sky-400`,light:`text-sky-600`},indigo:{dark:`text-indigo-400`,light:`text-indigo-600`},teal:{dark:`text-teal-400`,light:`text-teal-600`},purple:{dark:`text-purple-400`,light:`text-purple-600`},red:{dark:`text-red-400`,light:`text-red-500`},amber:{dark:`text-amber-400`,light:`text-amber-600`},amberStrong:{dark:`text-amber-300`,light:`text-amber-700`}}[n.color];return r.value?e.dark:e.light}),o=(0,t.computed)(()=>n.disabled?`${a.value} opacity-50 cursor-not-allowed`:`${i.value} cursor-pointer`);return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:e.type,disabled:e.disabled,title:e.title,"aria-label":e.ariaLabel,class:(0,t.normalizeClass)([`inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors`,[e.fullWidth?`flex-1`:``,o.value]]),onClick:r[0]||=e=>n.$emit(`click`,e)},[(0,t.renderSlot)(n.$slots,`icon`,{iconClass:`w-4 h-4`}),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,jt,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,At))}}),Nt=[`title`,`aria-label`],Pt=(0,t.defineComponent)({__name:`BaseCopyButton`,props:{text:{},label:{default:``},variant:{default:`ghost`},resetMs:{default:1500},iconClass:{default:`w-4 h-4`}},emits:[`copied`,`error`],setup(e,{emit:r}){let i=e,a=r,{isDark:o}=S(),s=(0,t.ref)(!1),c=null,l=(0,t.computed)(()=>s.value?`Copied!`:i.label?`Copy ${i.label}`:`Copy`),u=(0,t.computed)(()=>i.label?`Copy ${i.label}`:`Copy`),d=(0,t.computed)(()=>i.variant===`bordered`?`inline-flex items-center justify-center w-9 h-9 rounded-lg border transition-colors cursor-pointer shrink-0 ${s.value?o.value?`border-emerald-500/40 bg-emerald-500/10 text-emerald-400`:`border-emerald-300 bg-emerald-50 text-emerald-600`:o.value?`border-gray-600 text-gray-400 hover:text-gray-200 hover:bg-gray-800`:`border-gray-300 text-gray-400 hover:text-gray-600 hover:bg-gray-50`}`:`p-1 rounded transition-colors cursor-pointer ${o.value?`text-gray-400 hover:text-emerald-300 hover:bg-emerald-500/10`:`text-gray-500 hover:text-emerald-600 hover:bg-emerald-50`}`);async function f(e){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}}catch{}let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);if(document.body.removeChild(t),!n)throw Error(`Copy command was rejected`)}async function p(){try{await f(i.text),s.value=!0,c&&clearTimeout(c),c=setTimeout(()=>{s.value=!1},i.resetMs),a(`copied`)}catch(e){a(`error`,e)}}return(0,t.onUnmounted)(()=>{c&&clearTimeout(c)}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,title:l.value,"aria-label":u.value,class:(0,t.normalizeClass)(d.value),onClick:p},[s.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.ClipboardDocumentCheckIcon),{key:0,class:(0,t.normalizeClass)(e.iconClass),"aria-hidden":`true`},null,8,[`class`])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.ClipboardDocumentIcon),{key:1,class:(0,t.normalizeClass)(e.iconClass),"aria-hidden":`true`},null,8,[`class`]))],10,Nt))}});function Ft(e,n=300){let r=(0,t.ref)(e.value),i=null;return(0,t.watch)(e,e=>{i&&clearTimeout(i),i=setTimeout(()=>{r.value=e,i=null},n)}),(0,t.onScopeDispose)(()=>{i&&=(clearTimeout(i),null)}),r}function It(e=3e3){let n=(0,t.ref)(!1),r=(0,t.ref)(``),i=(0,t.ref)(H.SUCCESS),a=null;function o(){a&&=(clearTimeout(a),null)}function s(t,s=H.SUCCESS,c=e){r.value=t,i.value=s,n.value=!0,o(),a=setTimeout(()=>{n.value=!1,a=null},c)}return(0,t.onScopeDispose)(()=>{o()}),{showToast:n,toastMessage:r,toastType:i,showToastMessage:s}}var Lt=function(e){return e.WIN=`WIN`,e.LOSE=`LOSE`,e}({}),Rt={GET:`bg-blue-600`,POST:`bg-emerald-600`,PUT:`bg-amber-600`,DELETE:`bg-red-600`,PATCH:`bg-purple-600`,HEAD:`bg-gray-600`},zt={GET:`bg-blue-500`,POST:`bg-green-500`,PUT:`bg-yellow-500`,DELETE:`bg-red-500`,PATCH:`bg-purple-500`,HEAD:`bg-gray-500`};function Bt(e){return e?Rt[e.toUpperCase()]??`bg-gray-600`:`bg-gray-600`}function Vt(e){return e?zt[e.toUpperCase()]??`bg-gray-500`:`bg-gray-500`}function Ht(e){let t=e??0;return t>=200&&t<300?`bg-emerald-600`:t>=300&&t<400?`bg-blue-600`:t>=400&&t<500?`bg-amber-600`:t>=500?`bg-red-600`:`bg-gray-600`}function Ut(e,t){let n=e??200;return t?n>=200&&n<300?`bg-green-500/15 text-green-400`:n>=300&&n<400?`bg-blue-500/15 text-blue-400`:n>=400&&n<500?`bg-yellow-500/15 text-yellow-400`:`bg-red-500/15 text-red-400`:n>=200&&n<300?`bg-green-100 text-green-800`:n>=300&&n<400?`bg-blue-100 text-blue-800`:n>=400&&n<500?`bg-yellow-100 text-yellow-800`:`bg-red-100 text-red-800`}var X=new Set([`A`,`B`,`STRONG`,`I`,`EM`,`CODE`,`PRE`,`BR`,`P`,`UL`,`OL`,`LI`,`SPAN`,`DIV`]),Wt=new Set([`SCRIPT`,`STYLE`,`IFRAME`,`OBJECT`,`EMBED`,`NOSCRIPT`,`TEMPLATE`]),Gt={A:new Set([`href`,`title`])};function Z(e){let t=e.trim().toLowerCase();return t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`/`)||t.startsWith(`#`)||t===``}function Q(e){if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e,n=t.tagName.toUpperCase();if(!X.has(n)){Wt.has(n)?t.remove():t.replaceWith(document.createTextNode(t.textContent??``));return}let r=Gt[n]??new Set;for(let e of Array.from(t.attributes)){if(!r.has(e.name.toLowerCase())){t.removeAttribute(e.name);continue}n===`A`&&e.name.toLowerCase()===`href`&&!Z(e.value)&&t.removeAttribute(e.name)}n===`A`&&t.hasAttribute(`href`)&&(t.setAttribute(`rel`,`noopener noreferrer`),t.setAttribute(`target`,`_blank`));for(let e of Array.from(t.childNodes))Q(e)}function Kt(e){if(!e)return``;let t=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`).body.firstElementChild;if(!t)return``;for(let e of Array.from(t.childNodes))Q(e);return t.innerHTML}var $=`—`;function qt(e,t=4){if(e==null||typeof e==`string`&&e.trim()===``)return $;let n=typeof e==`string`?Number(e):e;return isFinite(n)?n.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t}):$}function Jt(e){if(e==null||e===``)return $;let t=new Date(e);return isNaN(t.getTime())?String(e):t.toLocaleString()}function Yt(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Xt(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function Zt(e){if(!isFinite(e)||e===0)return e.toFixed(2);let t=Math.abs(e),n=2;return t<1e-4?n=8:t<.01?n=6:t<1?n=4:t<100&&(n=3),e.toLocaleString(void 0,{minimumFractionDigits:n,maximumFractionDigits:n})}function Qt(e,t=2){return`${e>=0?`+`:``}${e.toFixed(t)}%`}function $t(e){return`${e<0?`-`:`+`}$${Math.abs(e).toFixed(2)}`}function en(e){if(e.buyPrice==null||e.lastPrice==null||e.filledQty==null)return{pnlUsd:null,pnlPct:null};let t=Number(e.buyPrice),n=Number(e.lastPrice),r=Number(e.filledQty);return!isFinite(t)||!isFinite(n)||!isFinite(r)||t<=0||n<=0?{pnlUsd:null,pnlPct:null}:{pnlUsd:(n-t)*r,pnlPct:(n-t)/t*100}}e.AlertEnum=a,e.BaseActionButton=Mt,e.BaseAlert=u,e.BaseAppLayout=St,e.BaseBadge=f,e.BaseBadgeEnum=Lt,e.BaseBreadcrumb=g,e.BaseButton=ie,e.BaseButtonEnum=_,e.BaseButtonSizeEnum=v,e.BaseCollapsibleSection=Be,e.BaseConfirmModal=We,e.BaseCopyButton=Pt,e.BaseEntityPickerModal=yt,e.BaseLine=ce,e.BaseLoginEnum=le,e.BaseLogo=j,e.BaseLogoEnum=k,e.BaseModal=z,e.BaseModalEnum=M,e.BaseModalShell=q,e.BaseNotFoundPage=Ze,e.BasePageHeader=Et,e.BaseRow=B,e.BaseSidebar=ot,e.BaseSpinner=V,e.BaseTextInputModal=Je,e.BaseToast=fe,e.BaseToastEnum=H,e.BaseToolbarButton=kt,e.ColoredSquares=me,e.ColorsEnums=o,e.EarningsCard=_e,e.EuroAmount=Se,e.LineEnum=O,e.Pagination=Te,e.PositioningEnum=U,e.TrendArrow=ke,e.computePnL=en,e.fmtDate=Jt,e.fmtDateShort=Xt,e.fmtDateTime=Yt,e.fmtNumber=qt,e.fmtPct=Qt,e.fmtPrice=Zt,e.fmtUsd=$t,e.getBaseColor=s,e.getBaseColorOf=c,e.isSafeHref=Z,e.methodBadgeBright=Vt,e.methodBadgeSolid=Bt,e.sanitizeHtml=Kt,e.statusBadgeSolid=Ht,e.statusBadgeTinted=Ut,e.useDebouncedRef=Ft,e.useEscapeKey=K,e.useMobileSidebar=Y,e.useTheme=S,e.useThemeClasses=G,e.useToast=It});
|
package/package.json
CHANGED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!--
|
|
3
|
+
Copy-to-clipboard icon button with transient "copied" feedback.
|
|
4
|
+
Click → writes `text` to the clipboard → swaps the clipboard icon
|
|
5
|
+
for a checkmark for `resetMs` → reverts. Emits `copied` / `error`
|
|
6
|
+
so the parent can surface its own toast (the button itself stays
|
|
7
|
+
silent — the icon swap is the built-in affordance).
|
|
8
|
+
|
|
9
|
+
Variants:
|
|
10
|
+
• ghost — borderless `p-1` icon, emerald hover tint. The
|
|
11
|
+
affordance used next to inline IDs / code headers.
|
|
12
|
+
• bordered — `w-9 h-9` boxed button that turns emerald while
|
|
13
|
+
"copied". Pairs with a read-only input in a form row.
|
|
14
|
+
|
|
15
|
+
Copy strategy: the async Clipboard API where available, falling
|
|
16
|
+
back to a hidden-textarea `execCommand('copy')` so it still works
|
|
17
|
+
on insecure origins / older browsers.
|
|
18
|
+
-->
|
|
19
|
+
<button
|
|
20
|
+
type="button"
|
|
21
|
+
:title="title"
|
|
22
|
+
:aria-label="ariaLabel"
|
|
23
|
+
:class="buttonClass"
|
|
24
|
+
@click="handleCopy"
|
|
25
|
+
>
|
|
26
|
+
<ClipboardDocumentCheckIcon v-if="copied" :class="iconClass" aria-hidden="true" />
|
|
27
|
+
<ClipboardDocumentIcon v-else :class="iconClass" aria-hidden="true" />
|
|
28
|
+
</button>
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script setup lang="ts">
|
|
32
|
+
import { ref, computed, onUnmounted } from 'vue'
|
|
33
|
+
import { ClipboardDocumentIcon, ClipboardDocumentCheckIcon } from '@heroicons/vue/24/outline'
|
|
34
|
+
import { useTheme } from '../composables/useTheme'
|
|
35
|
+
|
|
36
|
+
type CopyVariant = 'ghost' | 'bordered'
|
|
37
|
+
|
|
38
|
+
const props = withDefaults(
|
|
39
|
+
defineProps<{
|
|
40
|
+
/** The text written to the clipboard on click. */
|
|
41
|
+
text: string
|
|
42
|
+
/** Used in the tooltip / aria-label, e.g. label="Stub ID" → "Copy Stub ID". */
|
|
43
|
+
label?: string
|
|
44
|
+
/** Visual style. See the component comment. */
|
|
45
|
+
variant?: CopyVariant
|
|
46
|
+
/** How long the checkmark stays before reverting (ms). */
|
|
47
|
+
resetMs?: number
|
|
48
|
+
/** Icon size class. */
|
|
49
|
+
iconClass?: string
|
|
50
|
+
}>(),
|
|
51
|
+
{
|
|
52
|
+
label: '',
|
|
53
|
+
variant: 'ghost',
|
|
54
|
+
resetMs: 1500,
|
|
55
|
+
iconClass: 'w-4 h-4',
|
|
56
|
+
},
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
const emit = defineEmits<{
|
|
60
|
+
copied: []
|
|
61
|
+
error: [error: unknown]
|
|
62
|
+
}>()
|
|
63
|
+
|
|
64
|
+
const { isDark } = useTheme()
|
|
65
|
+
|
|
66
|
+
const copied = ref(false)
|
|
67
|
+
let timer: ReturnType<typeof setTimeout> | null = null
|
|
68
|
+
|
|
69
|
+
const title = computed(() => {
|
|
70
|
+
if (copied.value) return 'Copied!'
|
|
71
|
+
return props.label ? `Copy ${props.label}` : 'Copy'
|
|
72
|
+
})
|
|
73
|
+
const ariaLabel = computed(() => (props.label ? `Copy ${props.label}` : 'Copy'))
|
|
74
|
+
|
|
75
|
+
const buttonClass = computed(() => {
|
|
76
|
+
if (props.variant === 'bordered') {
|
|
77
|
+
const base =
|
|
78
|
+
'inline-flex items-center justify-center w-9 h-9 rounded-lg border transition-colors cursor-pointer shrink-0'
|
|
79
|
+
const state = copied.value
|
|
80
|
+
? isDark.value
|
|
81
|
+
? 'border-emerald-500/40 bg-emerald-500/10 text-emerald-400'
|
|
82
|
+
: 'border-emerald-300 bg-emerald-50 text-emerald-600'
|
|
83
|
+
: isDark.value
|
|
84
|
+
? 'border-gray-600 text-gray-400 hover:text-gray-200 hover:bg-gray-800'
|
|
85
|
+
: 'border-gray-300 text-gray-400 hover:text-gray-600 hover:bg-gray-50'
|
|
86
|
+
return `${base} ${state}`
|
|
87
|
+
}
|
|
88
|
+
// ghost
|
|
89
|
+
const base = 'p-1 rounded transition-colors cursor-pointer'
|
|
90
|
+
const state = isDark.value
|
|
91
|
+
? 'text-gray-400 hover:text-emerald-300 hover:bg-emerald-500/10'
|
|
92
|
+
: 'text-gray-500 hover:text-emerald-600 hover:bg-emerald-50'
|
|
93
|
+
return `${base} ${state}`
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
async function writeToClipboard(text: string): Promise<void> {
|
|
97
|
+
// Prefer the async Clipboard API, but fall back to execCommand if it
|
|
98
|
+
// is unavailable or throws (e.g. insecure origin / denied permission).
|
|
99
|
+
try {
|
|
100
|
+
if (navigator.clipboard?.writeText) {
|
|
101
|
+
await navigator.clipboard.writeText(text)
|
|
102
|
+
return
|
|
103
|
+
}
|
|
104
|
+
} catch {
|
|
105
|
+
// fall through to the textarea fallback
|
|
106
|
+
}
|
|
107
|
+
const ta = document.createElement('textarea')
|
|
108
|
+
ta.value = text
|
|
109
|
+
ta.style.position = 'fixed'
|
|
110
|
+
ta.style.opacity = '0'
|
|
111
|
+
document.body.appendChild(ta)
|
|
112
|
+
ta.select()
|
|
113
|
+
const ok = document.execCommand('copy')
|
|
114
|
+
document.body.removeChild(ta)
|
|
115
|
+
if (!ok) throw new Error('Copy command was rejected')
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
async function handleCopy() {
|
|
119
|
+
try {
|
|
120
|
+
await writeToClipboard(props.text)
|
|
121
|
+
copied.value = true
|
|
122
|
+
if (timer) clearTimeout(timer)
|
|
123
|
+
timer = setTimeout(() => {
|
|
124
|
+
copied.value = false
|
|
125
|
+
}, props.resetMs)
|
|
126
|
+
emit('copied')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
emit('error', e)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
onUnmounted(() => {
|
|
133
|
+
if (timer) clearTimeout(timer)
|
|
134
|
+
})
|
|
135
|
+
</script>
|
|
@@ -23,7 +23,45 @@
|
|
|
23
23
|
:aria-labelledby="titleId"
|
|
24
24
|
@click="onBackdrop"
|
|
25
25
|
>
|
|
26
|
+
<!--
|
|
27
|
+
Scrollable layout — for large content modals. A flex column
|
|
28
|
+
capped at 90vh: header and footer stay fixed (`shrink-0`) while
|
|
29
|
+
the body scrolls (`overflow-y-auto flex-1`). Supports a subtitle
|
|
30
|
+
and a `header-actions` slot (e.g. a close button) on the right.
|
|
31
|
+
-->
|
|
26
32
|
<div
|
|
33
|
+
v-if="scrollable"
|
|
34
|
+
class="relative w-full mx-4 rounded-lg shadow-xl max-h-[90vh] flex flex-col"
|
|
35
|
+
:class="[maxWidthClass, shellClass]"
|
|
36
|
+
@click.stop
|
|
37
|
+
>
|
|
38
|
+
<div class="flex items-start justify-between gap-4 p-6 border-b shrink-0" :class="t.border">
|
|
39
|
+
<div class="flex items-start gap-4 min-w-0">
|
|
40
|
+
<slot name="icon" />
|
|
41
|
+
<div class="flex-1 min-w-0">
|
|
42
|
+
<h3 :id="titleId" class="text-lg font-medium" :class="t.primaryText">
|
|
43
|
+
{{ title }}
|
|
44
|
+
</h3>
|
|
45
|
+
<p v-if="subtitle" class="text-sm mt-1 break-all" :class="t.mutedText">
|
|
46
|
+
{{ subtitle }}
|
|
47
|
+
</p>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<slot name="header-actions" />
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="p-6 overflow-y-auto flex-1">
|
|
54
|
+
<slot />
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<div v-if="$slots.footer" class="flex gap-3 justify-end p-6 border-t shrink-0" :class="t.border">
|
|
58
|
+
<slot name="footer" />
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<!-- Compact layout (default) — small centered dialog. -->
|
|
63
|
+
<div
|
|
64
|
+
v-else
|
|
27
65
|
class="relative w-full mx-4 rounded-lg shadow-xl"
|
|
28
66
|
:class="[maxWidthClass, shellClass]"
|
|
29
67
|
@click.stop
|
|
@@ -78,11 +116,25 @@ interface Props {
|
|
|
78
116
|
* `backdrop` / handle their own Escape.
|
|
79
117
|
*/
|
|
80
118
|
manualClose?: boolean
|
|
119
|
+
/**
|
|
120
|
+
* Switches to the scrollable layout — a flex column capped at 90vh
|
|
121
|
+
* with a fixed header/footer and a scrolling body. Use for large
|
|
122
|
+
* content modals (request detail, import preview, …) rather than the
|
|
123
|
+
* compact confirm-style default.
|
|
124
|
+
*/
|
|
125
|
+
scrollable?: boolean
|
|
126
|
+
/**
|
|
127
|
+
* Optional muted line under the title. Only rendered in the
|
|
128
|
+
* scrollable layout.
|
|
129
|
+
*/
|
|
130
|
+
subtitle?: string
|
|
81
131
|
}
|
|
82
132
|
|
|
83
133
|
const props = withDefaults(defineProps<Props>(), {
|
|
84
134
|
maxWidthClass: 'max-w-md',
|
|
85
135
|
manualClose: false,
|
|
136
|
+
scrollable: false,
|
|
137
|
+
subtitle: '',
|
|
86
138
|
})
|
|
87
139
|
|
|
88
140
|
const emit = defineEmits<{
|
package/src/index.ts
CHANGED
|
@@ -29,6 +29,7 @@ export { default as BaseAppLayout } from './components/BaseAppLayout.vue'
|
|
|
29
29
|
export { default as BasePageHeader } from './components/BasePageHeader.vue'
|
|
30
30
|
export { default as BaseToolbarButton } from './components/BaseToolbarButton.vue'
|
|
31
31
|
export { default as BaseActionButton } from './components/BaseActionButton.vue'
|
|
32
|
+
export { default as BaseCopyButton } from './components/BaseCopyButton.vue'
|
|
32
33
|
|
|
33
34
|
// Composables
|
|
34
35
|
export { useTheme } from './composables/useTheme'
|