@wascartech/devbot 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/settings-routes.js +2 -1
- package/dist/admin/settings-routes.js.map +1 -1
- package/dist/devcontainer.js +9 -0
- package/dist/devcontainer.js.map +1 -1
- package/dist/global-settings-store.js +11 -4
- package/dist/global-settings-store.js.map +1 -1
- package/dist/migrate.js +395 -30
- package/dist/migrate.js.map +1 -1
- package/dist/platform/gitealike/base.js +5 -0
- package/dist/platform/gitealike/base.js.map +1 -1
- package/dist/platform/github/index.js +5 -0
- package/dist/platform/github/index.js.map +1 -1
- package/dist/platform/gitlab/api.js +7 -1
- package/dist/platform/gitlab/api.js.map +1 -1
- package/dist/platform/gitlab/index.js +5 -0
- package/dist/platform/gitlab/index.js.map +1 -1
- package/dist/platform/gitlab/schemas.js +14 -0
- package/dist/platform/gitlab/schemas.js.map +1 -1
- package/dist/platform/port.js +1 -1
- package/dist/platform/port.js.map +1 -1
- package/dist/platform/types.js.map +1 -1
- package/dist/settings-store.js +28 -4
- package/dist/settings-store.js.map +1 -1
- package/dist/types/global-settings.js +6 -0
- package/dist/types/global-settings.js.map +1 -1
- package/dist/types/project-settings.js +1 -0
- package/dist/types/project-settings.js.map +1 -1
- package/dist/webhook.js +35 -4
- package/dist/webhook.js.map +1 -1
- package/migrations/0032_confidential_work_items.sql +11 -0
- package/package.json +3 -1
- package/public/assets/{DashboardSidebarCollapse-rIuzCmVm.js → DashboardSidebarCollapse-CWmehYha.js} +1 -1
- package/public/assets/{DashboardToolbar-DFCUqZ4Z.js → DashboardToolbar-DHcR2yAt.js} +1 -1
- package/public/assets/{ErrorLogModal.vue_vue_type_script_setup_true_lang-BCyNIf1E.js → ErrorLogModal.vue_vue_type_script_setup_true_lang-B0yvkhY5.js} +1 -1
- package/public/assets/{ErrorLogsPage-DyYK2Rop.js → ErrorLogsPage-ClPltTSr.js} +1 -1
- package/public/assets/{LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js → LogSlideover.vue_vue_type_script_setup_true_lang-F1i8DRzf.js} +1 -1
- package/public/assets/{OverviewPage-CFfa0uwg.js → OverviewPage-DWz8IJ46.js} +1 -1
- package/public/assets/{PageGrid-CBROIU87.js → PageGrid-DelloK5f.js} +1 -1
- package/public/assets/{PeriodRangePicker.vue_vue_type_script_setup_true_lang-DiFUNem7.js → PeriodRangePicker.vue_vue_type_script_setup_true_lang-YOwfelec.js} +1 -1
- package/public/assets/ProjectDetailPage-QEdo9Ytu.js +1 -0
- package/public/assets/{ProjectsPage-CFx8-elJ.js → ProjectsPage-BJzRIlvb.js} +1 -1
- package/public/assets/{RunDetailSlideover.vue_vue_type_script_setup_true_lang-DopYYmCT.js → RunDetailSlideover.vue_vue_type_script_setup_true_lang-BLDs3UaU.js} +1 -1
- package/public/assets/{RunsPage-CRnnXU4P.js → RunsPage-BYlDZjwk.js} +1 -1
- package/public/assets/{Select-Bvx32Diz.js → Select-DGVDts9_.js} +1 -1
- package/public/assets/{SelectMenu-BjMxc4VB.js → SelectMenu-B6n06FSV.js} +1 -1
- package/public/assets/{SettingsPage-Bb6LM3wO.js → SettingsPage-BpLc2GAe.js} +21 -21
- package/public/assets/{TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js → TimeCell.vue_vue_type_script_setup_true_lang-BNWTJF4u.js} +1 -1
- package/public/assets/{UsagePage-BLMDEsv-.js → UsagePage-CSt7StoP.js} +1 -1
- package/public/assets/{VolumesPage-CxcLc3L2.js → VolumesPage-Cxav6H5n.js} +1 -1
- package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-DQNacZEe.js +1 -0
- package/public/assets/{WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js → WorkItemCell.vue_vue_type_script_setup_true_lang-DAJMkNI8.js} +1 -1
- package/public/assets/{index-C5RBBrPj.js → index-Cs2OnrL7.js} +2 -2
- package/public/assets/{index-BMbMibyb.js → index-RZx6yIXX.js} +1 -1
- package/public/assets/{usage-format-jsb31_O8.js → usage-format-RcSEOPCq.js} +1 -1
- package/public/assets/{useManagedProjects-8rtjRqVJ.js → useManagedProjects-DnOY5lQq.js} +1 -1
- package/public/assets/{useRouteTab-DfwrcMic.js → useRouteTab-B-Vrl8p9.js} +1 -1
- package/public/index.html +1 -1
- package/public/assets/ProjectDetailPage-CreyvUit.js +0 -1
- package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-B2V2GF6b.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as xe,S as ue,T as ge,ak as ve,V as we,al as qe,am as ze,o as ke,e as i,c as z,a as u,w as d,F as O,g as X,h as g,u as e,X as v,l as Z,t as M,D as B,y as oe,an as Te,E as S,j as k,r as pe,x as p,$ as fe,ao as Ce,Z as he,ap as Ve,aq as Ie,ar as _e,q as ce,a6 as Se,a5 as ye,a4 as me,i as N,f as Be,as as De,at as Oe,au as Re,av as Fe,aw as Me,ax as $e,ay as Pe,d as je,az as Ae}from"./index-C5RBBrPj.js";import{_ as Ne}from"./Select-Bvx32Diz.js";function Xe(T,C,m){const o=new URLSearchParams;return T==="custom"?C&&(o.set("from",C.start.toString()),o.set("to",C.end.toString())):o.set("days",String(T)),m.projectId!==null&&o.set("projectId",String(m.projectId)),m.model!==null&&o.set("model",m.model),m.mode!==null&&o.set("mode",m.mode),o.toString()}const Le={slots:{base:["group relative inline-flex items-center rounded-md select-none","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",segment:["rounded text-center outline-hidden data-placeholder:text-dimmed data-[segment=literal]:text-muted data-invalid:text-error data-disabled:cursor-not-allowed data-disabled:opacity-75","transition-colors"],separatorIcon:"shrink-0 size-4 text-muted"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:["px-2 py-1 text-sm/4 gap-1","gap-0.25"],leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},sm:{base:["px-2.5 py-1.5 text-sm/4 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},md:{base:["px-2.5 py-1.5 text-base/5 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},lg:{base:["px-3 py-2 text-base/5 gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},xl:{base:["px-3 py-2 text-base gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",segment:"data-[segment=day]:w-10 data-[segment=month]:w-10 data-[segment=year]:w-12"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated has-focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated has-focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent has-focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 has-focus-visible:outline-3 has-focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 has-focus-visible:outline-3 has-focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 has-focus-visible:outline-3 has-focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 has-focus-visible:outline-3 has-focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 has-focus-visible:outline-3 has-focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 has-focus-visible:outline-3 has-focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 has-focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 has-focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 has-focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 has-focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 has-focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 has-focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 has-focus-visible:outline-3 has-focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 has-focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"},{variant:"outline",class:{segment:"focus:bg-elevated"}},{variant:"soft",class:{segment:"focus:bg-accented/50 group-hover:focus:bg-accented"}},{variant:"subtle",class:{segment:"focus:bg-accented"}},{variant:"ghost",class:{segment:"focus:bg-elevated group-hover:focus:bg-accented"}},{variant:"none",class:{segment:"focus:bg-elevated"}}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},Ue=Object.assign({inheritAttrs:!1},{__name:"InputDate",props:{as:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},separatorIcon:{type:null,required:!1},range:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},stepSnapping:{type:Boolean,required:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},isDateUnavailable:{type:Function,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","change","blur","focus","update:placeholder"],setup(T,{expose:C,emit:m}){const o=T,a=m,w=xe(),l=ue("inputDate",o),$=fe(),h=ge(ve(l,"id","name","range","modelValue","defaultValue","color","variant","size","highlight","fixed","disabled","autofocus","autofocusDelay","icon","avatar","leading","leadingIcon","trailing","trailingIcon","loading","loadingIcon","separatorIcon","class","ui"),a),{emitFormBlur:y,emitFormFocus:b,emitFormChange:q,emitFormInput:r,size:L,color:V,id:U,name:P,highlight:I,disabled:W,ariaAttrs:Y}=we(o),{orientation:G,size:ae}=qe(o),{isLeading:j,isTrailing:c,leadingIconName:Q,trailingIconName:J}=Ce(l),[te,H]=ze(),le=p(()=>ae.value||L.value),f=p(()=>he({extend:Le,...$.ui?.inputDate||{}})({color:V.value??l.color,variant:l.variant,size:le.value??l.size,highlight:I.value??l.highlight,fixed:l.fixed,loading:l.loading,leading:j.value||!!l.avatar||!!w.leading,trailing:c.value||!!w.trailing,fieldGroup:G.value})),E=pe([]);function se(n,t){E.value[n]=t}function re(n){const t=new Event("change",{target:{value:n}});a("change",t),q(),r()}function ie(n){y(),a("blur",n)}function ne(n){b(),a("focus",n)}function de(){l.autofocus&&E.value[0]?.$el?.focus()}ke(()=>{setTimeout(()=>{de()},l.autofocusDelay)});const K=p(()=>l.range?Ve:Ie);return C({inputsRef:E}),(n,t)=>(i(),z(O,null,[u(e(te),null,{default:d(({segments:s,type:_})=>[(i(!0),z(O,null,X(s,(D,ee)=>(i(),g(e(K).Input,{key:`${D.part}-${ee}`,ref_for:!0,ref:x=>se(ee,x),type:_,part:D.part,"data-slot":"segment",class:v(f.value.segment({class:e(l).ui?.segment})),"data-segment":D.part},{default:d(()=>[Z(M(D.value.trim()),1)]),_:2},1032,["type","part","class","data-segment"]))),128))]),_:1}),u(e(K).Root,S({id:e(U),"data-slot":"base"},{...e(h),...n.$attrs,...e(Y)},{"model-value":e(l).modelValue,"default-value":e(l).defaultValue,name:e(P),disabled:e(W),class:f.value.base({class:[e(l).ui?.base,e(l).class]}),"onUpdate:modelValue":re,onBlur:ie,onFocus:ne}),{default:d(({segments:s})=>[Array.isArray(s)?(i(),g(e(H),{key:0,segments:s},null,8,["segments"])):(i(),z(O,{key:1},[u(e(H),{segments:s.start,type:"start"},null,8,["segments"]),B(n.$slots,"separator",{ui:f.value},()=>[u(oe,{name:e(l).separatorIcon||e($).ui.icons.minus,"data-slot":"separatorIcon",class:v(f.value.separatorIcon({class:e(l).ui?.separatorIcon}))},null,8,["name","class"])]),u(e(H),{segments:s.end,type:"end"},null,8,["segments"])],64)),B(n.$slots,"default",{ui:f.value}),e(j)||e(l).avatar||w.leading?(i(),z("span",{key:2,"data-slot":"leading",class:v(f.value.leading({class:e(l).ui?.leading}))},[B(n.$slots,"leading",{ui:f.value},()=>[e(j)&&e(Q)?(i(),g(oe,{key:0,name:e(Q),"data-slot":"leadingIcon",class:v(f.value.leadingIcon({class:e(l).ui?.leadingIcon}))},null,8,["name","class"])):e(l).avatar?(i(),g(Te,S({key:1,size:e(l).ui?.leadingAvatarSize||f.value.leadingAvatarSize()},e(l).avatar,{"data-slot":"leadingAvatar",class:f.value.leadingAvatar({class:e(l).ui?.leadingAvatar})}),null,16,["size","class"])):k("",!0)])],2)):k("",!0),e(c)||w.trailing?(i(),z("span",{key:3,"data-slot":"trailing",class:v(f.value.trailing({class:e(l).ui?.trailing}))},[B(n.$slots,"trailing",{ui:f.value},()=>[e(J)?(i(),g(oe,{key:0,name:e(J),"data-slot":"trailingIcon",class:v(f.value.trailingIcon({class:e(l).ui?.trailingIcon}))},null,8,["name","class"])):k("",!0)])],2)):k("",!0)]),_:3},16,["id","model-value","default-value","name","disabled","class"])],64))}}),We={slots:{root:"",header:"flex items-center justify-between",body:"flex flex-col space-y-4 pt-4 sm:flex-row sm:space-x-4 sm:space-y-0",heading:"flex-1 min-w-0 text-center",headingLabel:"font-medium block truncate p-1.5",grid:"w-full border-collapse select-none space-y-1 focus:outline-none",gridRow:"grid",gridWeekDaysRow:"mb-1 grid w-full grid-cols-7",gridBody:"grid",headCell:"rounded-md",headCellWeek:"rounded-md text-muted",cell:"relative text-center",cellTrigger:["m-0.5 relative flex items-center justify-center whitespace-nowrap focus-visible:outline-3 data-disabled:text-muted data-unavailable:line-through data-unavailable:text-muted data-unavailable:pointer-events-none data-today:font-semibold","transition"],cellWeek:"relative text-center text-muted"},variants:{color:{primary:{headCell:"text-primary",cellTrigger:"outline-primary/25"},secondary:{headCell:"text-secondary",cellTrigger:"outline-secondary/25"},success:{headCell:"text-success",cellTrigger:"outline-success/25"},info:{headCell:"text-info",cellTrigger:"outline-info/25"},warning:{headCell:"text-warning",cellTrigger:"outline-warning/25"},error:{headCell:"text-error",cellTrigger:"outline-error/25"},neutral:{headCell:"text-highlighted",cellTrigger:"outline-inverted/25"}},variant:{solid:"",outline:"",soft:"",subtle:""},size:{xs:{headingLabel:"text-xs",cell:"text-xs",cellWeek:"text-xs",headCell:"text-[10px]",headCellWeek:"text-[10px]",body:"space-y-2 pt-2"},sm:{headingLabel:"text-xs",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-xs"},md:{headingLabel:"text-sm",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-sm"},lg:{headingLabel:"text-md",headCell:"text-md",headCellWeek:"text-md"},xl:{headingLabel:"text-lg",headCell:"text-lg",headCellWeek:"text-lg"}},view:{day:{gridRow:"grid-cols-7 place-items-center",cellTrigger:"rounded-full data-outside-view:text-muted"},month:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"},year:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"}},weekNumbers:{true:""}},compoundVariants:[{color:"primary",variant:"solid",class:{cellTrigger:"data-selected:bg-primary data-selected:text-inverted data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"solid",class:{cellTrigger:"data-selected:bg-secondary data-selected:text-inverted data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"solid",class:{cellTrigger:"data-selected:bg-success data-selected:text-inverted data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"solid",class:{cellTrigger:"data-selected:bg-info data-selected:text-inverted data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"solid",class:{cellTrigger:"data-selected:bg-warning data-selected:text-inverted data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"solid",class:{cellTrigger:"data-selected:bg-error data-selected:text-inverted data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-primary/50 data-selected:text-primary data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/10 hover:not-data-selected:bg-primary/10"}},{color:"secondary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-secondary/50 data-selected:text-secondary data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/10 hover:not-data-selected:bg-secondary/10"}},{color:"success",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-success/50 data-selected:text-success data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/10 hover:not-data-selected:bg-success/10"}},{color:"info",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-info/50 data-selected:text-info data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/10 hover:not-data-selected:bg-info/10"}},{color:"warning",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-warning/50 data-selected:text-warning data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/10 hover:not-data-selected:bg-warning/10"}},{color:"error",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-error/50 data-selected:text-error data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/10 hover:not-data-selected:bg-error/10"}},{color:"primary",variant:"soft",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"soft",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"soft",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"soft",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"soft",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"soft",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"subtle",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-selected:ring data-selected:ring-inset data-selected:ring-primary/25 data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"subtle",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-selected:ring data-selected:ring-inset data-selected:ring-secondary/25 data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"subtle",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-selected:ring data-selected:ring-inset data-selected:ring-success/25 data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"subtle",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-selected:ring data-selected:ring-inset data-selected:ring-info/25 data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"subtle",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-selected:ring data-selected:ring-inset data-selected:ring-warning/25 data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"subtle",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-selected:ring data-selected:ring-inset data-selected:ring-error/25 data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"neutral",variant:"solid",class:{cellTrigger:"data-selected:bg-inverted data-selected:text-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:text-default data-selected:bg-default data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/10 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"soft",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"subtle",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{size:"xs",view:"day",class:{cellTrigger:"size-7"}},{size:"sm",view:"day",class:{cellTrigger:"size-7"}},{size:"md",view:"day",class:{cellTrigger:"size-8"}},{size:"lg",view:"day",class:{cellTrigger:"size-9 text-md"}},{size:"xl",view:"day",class:{cellTrigger:"size-10 text-lg"}},{size:"xs",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"sm",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"md",view:["month","year"],class:{cellTrigger:"h-8 px-3"}},{size:"lg",view:["month","year"],class:{cellTrigger:"h-9 px-4 text-md"}},{size:"xl",view:["month","year"],class:{cellTrigger:"h-10 px-5 text-lg"}},{view:"day",weekNumbers:!0,class:{gridRow:"grid-cols-8",gridWeekDaysRow:"grid-cols-8 [&>*:first-child]:col-start-2"}}],defaultVariants:{size:"md",color:"primary",variant:"solid",view:"day"}},Ye={__name:"Calendar",props:{as:{type:null,required:!1},type:{type:String,required:!1,default:"date"},nextYearIcon:{type:null,required:!1},nextYear:{type:Object,required:!1},nextMonthIcon:{type:null,required:!1},nextMonth:{type:Object,required:!1},prevYearIcon:{type:null,required:!1},prevYear:{type:Object,required:!1},prevMonthIcon:{type:null,required:!1},prevMonth:{type:Object,required:!1},viewControl:{type:[Boolean,Object],required:!1,default:!0},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},range:{type:Boolean,required:!1},multiple:{type:Boolean,required:!1},monthControls:{type:Boolean,required:!1,default:!0},yearControls:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},weekNumbers:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},allowNonContiguousRanges:{type:Boolean,required:!1},pagedNavigation:{type:Boolean,required:!1},preventDeselect:{type:Boolean,required:!1},maximumDays:{type:Number,required:!1},weekStartsOn:{type:Number,required:!1},weekdayFormat:{type:String,required:!1},fixedWeeks:{type:Boolean,required:!1,default:!0},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},numberOfMonths:{type:Number,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},initialFocus:{type:Boolean,required:!1},isDateDisabled:{type:Function,required:!1},isDateUnavailable:{type:Function,required:!1},isDateHighlightable:{type:Function,required:!1},nextPage:{type:Function,required:!1},prevPage:{type:Function,required:!1},disableDaysOutsideCurrentView:{type:Boolean,required:!1},fixedDate:{type:String,required:!1},isMonthDisabled:{type:Function,required:!1},isMonthUnavailable:{type:Function,required:!1},isYearDisabled:{type:Function,required:!1},isYearUnavailable:{type:Function,required:!1}},emits:["update:modelValue","update:placeholder","update:startValue","update:validModelValue"],setup(T,{emit:C}){const m=T,o=C,a=ue("calendar",m),{dir:w,t:l,locale:$}=_e(),h=fe(),y=["day","month","year"],b=p(()=>a.type==="year"?"year":a.type==="month"?"month":"day"),q="year",r=pe(b.value);ce(()=>a.type,()=>{r.value=b.value});const L=p(()=>b.value!==q),V=p(()=>r.value===b.value);function U(t){const s=y.indexOf(b.value),_=y.indexOf(q);return y[Math.min(Math.max(y.indexOf(t),s),_)]}function P(t){r.value=U(t)}function I(){const t=y.indexOf(q),s=y.indexOf(r.value)>=t?b.value:y[y.indexOf(r.value)+1];r.value=s}function W(t){if(Array.isArray(t))return t[0];if(t){if("start"in t||"end"in t){const s=t;return s.start??s.end??void 0}return t}}const Y=Se(a.placeholder??W(a.modelValue)??W(a.defaultValue)??ye(me()));ce(()=>a.placeholder,t=>{t&&(Y.value=t)});function G(t){Y.value=t,o("update:placeholder",t)}function ae(t){if(V.value){o("update:modelValue",t);return}const s=W(t);s&&G(s),P(y[y.indexOf(r.value)-1])}function j(t,s){return s===-1?t.subtract({years:1}):t.add({years:1})}const c=p(()=>{const t=a.range&&V.value;return r.value==="year"?t?Oe:Re:r.value==="month"?t?Fe:Me:a.range?$e:Pe}),Q=["type","placeholder","range","modelValue","defaultValue","color","variant","size","monthControls","yearControls","viewControl","class","ui"],J=["pagedNavigation","weekStartsOn","weekdayFormat","fixedWeeks","numberOfMonths","isDateDisabled","isDateUnavailable","isDateHighlightable","disableDaysOutsideCurrentView","maximumDays"],te=["isMonthDisabled","isMonthUnavailable"],H=["isYearDisabled","isYearUnavailable"],le=["allowNonContiguousRanges","fixedDate"],f=ge(ve(a,(t,s)=>Q.includes(s)||r.value!=="day"&&J.includes(s)||r.value!=="month"&&te.includes(s)||r.value!=="year"&&H.includes(s)||!V.value&&le.includes(s)));function E(t,s){return r.value==="month"?{month:t}:r.value==="year"?{year:t}:{day:t,month:s}}const se=p(()=>a.nextYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleLeft:h.ui.icons.chevronDoubleRight)),re=p(()=>a.nextMonthIcon||(w.value==="rtl"?h.ui.icons.chevronLeft:h.ui.icons.chevronRight)),ie=p(()=>a.prevYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleRight:h.ui.icons.chevronDoubleLeft)),ne=p(()=>a.prevMonthIcon||(w.value==="rtl"?h.ui.icons.chevronRight:h.ui.icons.chevronLeft)),de=p(()=>r.value==="day"?l("calendar.prevMonth"):l("calendar.prevYear")),K=p(()=>r.value==="day"?l("calendar.nextMonth"):l("calendar.nextYear")),n=p(()=>he({extend:We,...h.ui?.calendar||{}})({color:a.color,size:a.size,variant:a.variant,weekNumbers:a.weekNumbers,view:r.value}));return(t,s)=>(i(),g(e(c).Root,S(e(f),{"model-value":V.value?e(a).modelValue:void 0,"default-value":V.value?e(a).defaultValue:void 0,placeholder:Y.value,"data-slot":"root",class:n.value.root({class:[e(a).ui?.root,e(a).class]}),"onUpdate:placeholder":G,"onUpdate:modelValue":ae,"onUpdate:startValue":s[0]||(s[0]=_=>o("update:startValue",_)),"onUpdate:validModelValue":s[1]||(s[1]=_=>o("update:validModelValue",_))}),{default:d(({weekDays:_,grid:D,date:ee})=>[u(e(c).Header,{"data-slot":"header",class:v(n.value.header({class:e(a).ui?.header}))},{default:d(()=>[r.value==="day"&&e(a).yearControls?(i(),g(e(c).Prev,{key:0,"prev-page":x=>j(x,-1),"aria-label":e(l)("calendar.prevYear"),"as-child":""},{default:d(()=>[u(N,S({icon:ie.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevYear),null,16,["icon","size"])]),_:1},8,["prev-page","aria-label"])):k("",!0),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Prev,{key:1,"aria-label":de.value,"as-child":""},{default:d(()=>[u(N,S({icon:ne.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),u(e(c).Heading,{"data-slot":"heading",class:v(n.value.heading({class:e(a).ui?.heading}))},{default:d(({headingValue:x})=>[B(t.$slots,"heading",{value:x,view:r.value,date:ee,setView:P,setPlaceholder:G},()=>[L.value&&e(a).viewControl?(i(),g(N,S({key:0,label:x,size:e(a).size,color:"neutral",variant:"ghost",block:""},typeof e(a).viewControl=="object"?e(a).viewControl:{},{onClick:I}),null,16,["label","size"])):(i(),z("span",{key:1,"data-slot":"headingLabel",class:v(n.value.headingLabel({class:e(a).ui?.headingLabel}))},M(x),3))])]),_:2},1032,["class"]),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Next,{key:2,"aria-label":K.value,"as-child":""},{default:d(()=>[u(N,S({icon:re.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),r.value==="day"&&e(a).yearControls?(i(),g(e(c).Next,{key:3,"next-page":x=>j(x,1),"aria-label":e(l)("calendar.nextYear"),"as-child":""},{default:d(()=>[u(N,S({icon:se.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextYear),null,16,["icon","size"])]),_:1},8,["next-page","aria-label"])):k("",!0)]),_:2},1032,["class"]),Be("div",{"data-slot":"body",class:v(n.value.body({class:e(a).ui?.body}))},[(i(!0),z(O,null,X(Array.isArray(D)?D:[D],x=>(i(),g(e(c).Grid,{key:x.value.toString(),"data-slot":"grid",class:v(n.value.grid({class:e(a).ui?.grid}))},{default:d(()=>["GridHead"in c.value?(i(),g(e(c).GridHead,{key:0},{default:d(()=>[u(e(c).GridRow,{"data-slot":"gridWeekDaysRow",class:v(n.value.gridWeekDaysRow({class:e(a).ui?.gridWeekDaysRow}))},{default:d(()=>[(i(!0),z(O,null,X(_,R=>(i(),g(e(c).HeadCell,{key:R,"data-slot":"headCell",class:v(n.value.headCell({class:e(a).ui?.headCell}))},{default:d(()=>[B(t.$slots,"week-day",{day:R},()=>[Z(M(R),1)])]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1024)):k("",!0),u(e(c).GridBody,{"data-slot":"gridBody",class:v(n.value.gridBody({class:e(a).ui?.gridBody}))},{default:d(()=>[(i(!0),z(O,null,X(x.rows,(R,be)=>(i(),g(e(c).GridRow,{key:`row-${be}`,"data-slot":"gridRow",class:v(n.value.gridRow({class:e(a).ui?.gridRow}))},{default:d(()=>[r.value==="day"&&e(a).weekNumbers&&R[0]?(i(),z("td",{key:0,role:"gridcell","data-slot":"cellWeek",class:v(n.value.cellWeek({class:e(a).ui?.cellWeek}))},M(e(De)(R[0],e(a).locale??e($).code)),3)):k("",!0),(i(!0),z(O,null,X(R,F=>(i(),g(e(c).Cell,{key:F.toString(),date:F,"data-slot":"cell",class:v(n.value.cell({class:e(a).ui?.cell}))},{default:d(()=>[u(e(c).CellTrigger,S({ref_for:!0},E(F,x.value),{"data-slot":"cellTrigger",class:n.value.cellTrigger({class:e(a).ui?.cellTrigger})}),{default:d(A=>[r.value==="day"?B(t.$slots,"day",{day:F},()=>[Z(M(F.day),1)],void 0,0):r.value==="month"?B(t.$slots,"month-cell",{month:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.monthValue),1)],void 0,1):B(t.$slots,"year-cell",{year:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.yearValue),1)],void 0,2)]),_:2},1040,["class"])]),_:2},1032,["date","class"]))),128))]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1032,["class"]))),128))],2)]),_:3},16,["model-value","default-value","placeholder","class"]))}},Ge=365,Ze=je({__name:"PeriodRangePicker",props:{period:{},range:{}},emits:["update:period","update:range"],setup(T,{emit:C}){const m=T,o=C,a=[{label:"Last 7 days",value:7},{label:"Last 14 days",value:14},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"All time",value:365},{label:"Custom",value:"custom"}],w=p({get:()=>m.period,set:b=>o("update:period",b)}),l=p({get:()=>m.range,set:b=>o("update:range",b)}),$=me(),h=ye($),y=h.subtract({days:Ge-1});return(b,q)=>{const r=Ne,L=N,V=Ye,U=Ae,P=Ue;return i(),z(O,null,[u(r,{modelValue:w.value,"onUpdate:modelValue":q[0]||(q[0]=I=>w.value=I),items:a,"value-key":"value",class:"w-40","aria-label":"Period"},null,8,["modelValue"]),T.period==="custom"?(i(),g(P,{key:0,modelValue:l.value,"onUpdate:modelValue":q[2]||(q[2]=I=>l.value=I),"min-value":e(y),"max-value":e(h),range:"",class:"w-56","aria-label":"Custom date range"},{trailing:d(()=>[u(U,null,{content:d(()=>[u(V,{modelValue:l.value,"onUpdate:modelValue":q[1]||(q[1]=I=>l.value=I),class:"p-2","number-of-months":2,range:""},null,8,["modelValue"])]),default:d(()=>[u(L,{color:"neutral",variant:"link",size:"sm",icon:"i-lucide-calendar","aria-label":"Select a date range",class:"px-0"})]),_:1})]),_:1},8,["modelValue","min-value","max-value"])):k("",!0)],64)}}});export{Ze as _,Xe as b};
|
|
1
|
+
import{R as xe,S as ue,T as ge,ak as ve,V as we,al as qe,am as ze,o as ke,e as i,c as z,a as u,w as d,F as O,g as X,h as g,u as e,X as v,l as Z,t as M,D as B,y as oe,an as Te,E as S,j as k,r as pe,x as p,$ as fe,ao as Ce,Z as he,ap as Ve,aq as Ie,ar as _e,q as ce,a6 as Se,a5 as ye,a4 as me,i as N,f as Be,as as De,at as Oe,au as Re,av as Fe,aw as Me,ax as $e,ay as Pe,d as je,az as Ae}from"./index-Cs2OnrL7.js";import{_ as Ne}from"./Select-DGVDts9_.js";function Xe(T,C,m){const o=new URLSearchParams;return T==="custom"?C&&(o.set("from",C.start.toString()),o.set("to",C.end.toString())):o.set("days",String(T)),m.projectId!==null&&o.set("projectId",String(m.projectId)),m.model!==null&&o.set("model",m.model),m.mode!==null&&o.set("mode",m.mode),o.toString()}const Le={slots:{base:["group relative inline-flex items-center rounded-md select-none","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",segment:["rounded text-center outline-hidden data-placeholder:text-dimmed data-[segment=literal]:text-muted data-invalid:text-error data-disabled:cursor-not-allowed data-disabled:opacity-75","transition-colors"],separatorIcon:"shrink-0 size-4 text-muted"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:["px-2 py-1 text-sm/4 gap-1","gap-0.25"],leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},sm:{base:["px-2.5 py-1.5 text-sm/4 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},md:{base:["px-2.5 py-1.5 text-base/5 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},lg:{base:["px-3 py-2 text-base/5 gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},xl:{base:["px-3 py-2 text-base gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",segment:"data-[segment=day]:w-10 data-[segment=month]:w-10 data-[segment=year]:w-12"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated has-focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated has-focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent has-focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 has-focus-visible:outline-3 has-focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 has-focus-visible:outline-3 has-focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 has-focus-visible:outline-3 has-focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 has-focus-visible:outline-3 has-focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 has-focus-visible:outline-3 has-focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 has-focus-visible:outline-3 has-focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 has-focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 has-focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 has-focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 has-focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 has-focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 has-focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 has-focus-visible:outline-3 has-focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 has-focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"},{variant:"outline",class:{segment:"focus:bg-elevated"}},{variant:"soft",class:{segment:"focus:bg-accented/50 group-hover:focus:bg-accented"}},{variant:"subtle",class:{segment:"focus:bg-accented"}},{variant:"ghost",class:{segment:"focus:bg-elevated group-hover:focus:bg-accented"}},{variant:"none",class:{segment:"focus:bg-elevated"}}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},Ue=Object.assign({inheritAttrs:!1},{__name:"InputDate",props:{as:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},separatorIcon:{type:null,required:!1},range:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},stepSnapping:{type:Boolean,required:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},isDateUnavailable:{type:Function,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","change","blur","focus","update:placeholder"],setup(T,{expose:C,emit:m}){const o=T,a=m,w=xe(),l=ue("inputDate",o),$=fe(),h=ge(ve(l,"id","name","range","modelValue","defaultValue","color","variant","size","highlight","fixed","disabled","autofocus","autofocusDelay","icon","avatar","leading","leadingIcon","trailing","trailingIcon","loading","loadingIcon","separatorIcon","class","ui"),a),{emitFormBlur:y,emitFormFocus:b,emitFormChange:q,emitFormInput:r,size:L,color:V,id:U,name:P,highlight:I,disabled:W,ariaAttrs:Y}=we(o),{orientation:G,size:ae}=qe(o),{isLeading:j,isTrailing:c,leadingIconName:Q,trailingIconName:J}=Ce(l),[te,H]=ze(),le=p(()=>ae.value||L.value),f=p(()=>he({extend:Le,...$.ui?.inputDate||{}})({color:V.value??l.color,variant:l.variant,size:le.value??l.size,highlight:I.value??l.highlight,fixed:l.fixed,loading:l.loading,leading:j.value||!!l.avatar||!!w.leading,trailing:c.value||!!w.trailing,fieldGroup:G.value})),E=pe([]);function se(n,t){E.value[n]=t}function re(n){const t=new Event("change",{target:{value:n}});a("change",t),q(),r()}function ie(n){y(),a("blur",n)}function ne(n){b(),a("focus",n)}function de(){l.autofocus&&E.value[0]?.$el?.focus()}ke(()=>{setTimeout(()=>{de()},l.autofocusDelay)});const K=p(()=>l.range?Ve:Ie);return C({inputsRef:E}),(n,t)=>(i(),z(O,null,[u(e(te),null,{default:d(({segments:s,type:_})=>[(i(!0),z(O,null,X(s,(D,ee)=>(i(),g(e(K).Input,{key:`${D.part}-${ee}`,ref_for:!0,ref:x=>se(ee,x),type:_,part:D.part,"data-slot":"segment",class:v(f.value.segment({class:e(l).ui?.segment})),"data-segment":D.part},{default:d(()=>[Z(M(D.value.trim()),1)]),_:2},1032,["type","part","class","data-segment"]))),128))]),_:1}),u(e(K).Root,S({id:e(U),"data-slot":"base"},{...e(h),...n.$attrs,...e(Y)},{"model-value":e(l).modelValue,"default-value":e(l).defaultValue,name:e(P),disabled:e(W),class:f.value.base({class:[e(l).ui?.base,e(l).class]}),"onUpdate:modelValue":re,onBlur:ie,onFocus:ne}),{default:d(({segments:s})=>[Array.isArray(s)?(i(),g(e(H),{key:0,segments:s},null,8,["segments"])):(i(),z(O,{key:1},[u(e(H),{segments:s.start,type:"start"},null,8,["segments"]),B(n.$slots,"separator",{ui:f.value},()=>[u(oe,{name:e(l).separatorIcon||e($).ui.icons.minus,"data-slot":"separatorIcon",class:v(f.value.separatorIcon({class:e(l).ui?.separatorIcon}))},null,8,["name","class"])]),u(e(H),{segments:s.end,type:"end"},null,8,["segments"])],64)),B(n.$slots,"default",{ui:f.value}),e(j)||e(l).avatar||w.leading?(i(),z("span",{key:2,"data-slot":"leading",class:v(f.value.leading({class:e(l).ui?.leading}))},[B(n.$slots,"leading",{ui:f.value},()=>[e(j)&&e(Q)?(i(),g(oe,{key:0,name:e(Q),"data-slot":"leadingIcon",class:v(f.value.leadingIcon({class:e(l).ui?.leadingIcon}))},null,8,["name","class"])):e(l).avatar?(i(),g(Te,S({key:1,size:e(l).ui?.leadingAvatarSize||f.value.leadingAvatarSize()},e(l).avatar,{"data-slot":"leadingAvatar",class:f.value.leadingAvatar({class:e(l).ui?.leadingAvatar})}),null,16,["size","class"])):k("",!0)])],2)):k("",!0),e(c)||w.trailing?(i(),z("span",{key:3,"data-slot":"trailing",class:v(f.value.trailing({class:e(l).ui?.trailing}))},[B(n.$slots,"trailing",{ui:f.value},()=>[e(J)?(i(),g(oe,{key:0,name:e(J),"data-slot":"trailingIcon",class:v(f.value.trailingIcon({class:e(l).ui?.trailingIcon}))},null,8,["name","class"])):k("",!0)])],2)):k("",!0)]),_:3},16,["id","model-value","default-value","name","disabled","class"])],64))}}),We={slots:{root:"",header:"flex items-center justify-between",body:"flex flex-col space-y-4 pt-4 sm:flex-row sm:space-x-4 sm:space-y-0",heading:"flex-1 min-w-0 text-center",headingLabel:"font-medium block truncate p-1.5",grid:"w-full border-collapse select-none space-y-1 focus:outline-none",gridRow:"grid",gridWeekDaysRow:"mb-1 grid w-full grid-cols-7",gridBody:"grid",headCell:"rounded-md",headCellWeek:"rounded-md text-muted",cell:"relative text-center",cellTrigger:["m-0.5 relative flex items-center justify-center whitespace-nowrap focus-visible:outline-3 data-disabled:text-muted data-unavailable:line-through data-unavailable:text-muted data-unavailable:pointer-events-none data-today:font-semibold","transition"],cellWeek:"relative text-center text-muted"},variants:{color:{primary:{headCell:"text-primary",cellTrigger:"outline-primary/25"},secondary:{headCell:"text-secondary",cellTrigger:"outline-secondary/25"},success:{headCell:"text-success",cellTrigger:"outline-success/25"},info:{headCell:"text-info",cellTrigger:"outline-info/25"},warning:{headCell:"text-warning",cellTrigger:"outline-warning/25"},error:{headCell:"text-error",cellTrigger:"outline-error/25"},neutral:{headCell:"text-highlighted",cellTrigger:"outline-inverted/25"}},variant:{solid:"",outline:"",soft:"",subtle:""},size:{xs:{headingLabel:"text-xs",cell:"text-xs",cellWeek:"text-xs",headCell:"text-[10px]",headCellWeek:"text-[10px]",body:"space-y-2 pt-2"},sm:{headingLabel:"text-xs",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-xs"},md:{headingLabel:"text-sm",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-sm"},lg:{headingLabel:"text-md",headCell:"text-md",headCellWeek:"text-md"},xl:{headingLabel:"text-lg",headCell:"text-lg",headCellWeek:"text-lg"}},view:{day:{gridRow:"grid-cols-7 place-items-center",cellTrigger:"rounded-full data-outside-view:text-muted"},month:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"},year:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"}},weekNumbers:{true:""}},compoundVariants:[{color:"primary",variant:"solid",class:{cellTrigger:"data-selected:bg-primary data-selected:text-inverted data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"solid",class:{cellTrigger:"data-selected:bg-secondary data-selected:text-inverted data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"solid",class:{cellTrigger:"data-selected:bg-success data-selected:text-inverted data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"solid",class:{cellTrigger:"data-selected:bg-info data-selected:text-inverted data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"solid",class:{cellTrigger:"data-selected:bg-warning data-selected:text-inverted data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"solid",class:{cellTrigger:"data-selected:bg-error data-selected:text-inverted data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-primary/50 data-selected:text-primary data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/10 hover:not-data-selected:bg-primary/10"}},{color:"secondary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-secondary/50 data-selected:text-secondary data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/10 hover:not-data-selected:bg-secondary/10"}},{color:"success",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-success/50 data-selected:text-success data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/10 hover:not-data-selected:bg-success/10"}},{color:"info",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-info/50 data-selected:text-info data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/10 hover:not-data-selected:bg-info/10"}},{color:"warning",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-warning/50 data-selected:text-warning data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/10 hover:not-data-selected:bg-warning/10"}},{color:"error",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-error/50 data-selected:text-error data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/10 hover:not-data-selected:bg-error/10"}},{color:"primary",variant:"soft",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"soft",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"soft",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"soft",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"soft",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"soft",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"subtle",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-selected:ring data-selected:ring-inset data-selected:ring-primary/25 data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"subtle",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-selected:ring data-selected:ring-inset data-selected:ring-secondary/25 data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"subtle",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-selected:ring data-selected:ring-inset data-selected:ring-success/25 data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"subtle",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-selected:ring data-selected:ring-inset data-selected:ring-info/25 data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"subtle",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-selected:ring data-selected:ring-inset data-selected:ring-warning/25 data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"subtle",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-selected:ring data-selected:ring-inset data-selected:ring-error/25 data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"neutral",variant:"solid",class:{cellTrigger:"data-selected:bg-inverted data-selected:text-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:text-default data-selected:bg-default data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/10 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"soft",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"subtle",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{size:"xs",view:"day",class:{cellTrigger:"size-7"}},{size:"sm",view:"day",class:{cellTrigger:"size-7"}},{size:"md",view:"day",class:{cellTrigger:"size-8"}},{size:"lg",view:"day",class:{cellTrigger:"size-9 text-md"}},{size:"xl",view:"day",class:{cellTrigger:"size-10 text-lg"}},{size:"xs",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"sm",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"md",view:["month","year"],class:{cellTrigger:"h-8 px-3"}},{size:"lg",view:["month","year"],class:{cellTrigger:"h-9 px-4 text-md"}},{size:"xl",view:["month","year"],class:{cellTrigger:"h-10 px-5 text-lg"}},{view:"day",weekNumbers:!0,class:{gridRow:"grid-cols-8",gridWeekDaysRow:"grid-cols-8 [&>*:first-child]:col-start-2"}}],defaultVariants:{size:"md",color:"primary",variant:"solid",view:"day"}},Ye={__name:"Calendar",props:{as:{type:null,required:!1},type:{type:String,required:!1,default:"date"},nextYearIcon:{type:null,required:!1},nextYear:{type:Object,required:!1},nextMonthIcon:{type:null,required:!1},nextMonth:{type:Object,required:!1},prevYearIcon:{type:null,required:!1},prevYear:{type:Object,required:!1},prevMonthIcon:{type:null,required:!1},prevMonth:{type:Object,required:!1},viewControl:{type:[Boolean,Object],required:!1,default:!0},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},range:{type:Boolean,required:!1},multiple:{type:Boolean,required:!1},monthControls:{type:Boolean,required:!1,default:!0},yearControls:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},weekNumbers:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},allowNonContiguousRanges:{type:Boolean,required:!1},pagedNavigation:{type:Boolean,required:!1},preventDeselect:{type:Boolean,required:!1},maximumDays:{type:Number,required:!1},weekStartsOn:{type:Number,required:!1},weekdayFormat:{type:String,required:!1},fixedWeeks:{type:Boolean,required:!1,default:!0},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},numberOfMonths:{type:Number,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},initialFocus:{type:Boolean,required:!1},isDateDisabled:{type:Function,required:!1},isDateUnavailable:{type:Function,required:!1},isDateHighlightable:{type:Function,required:!1},nextPage:{type:Function,required:!1},prevPage:{type:Function,required:!1},disableDaysOutsideCurrentView:{type:Boolean,required:!1},fixedDate:{type:String,required:!1},isMonthDisabled:{type:Function,required:!1},isMonthUnavailable:{type:Function,required:!1},isYearDisabled:{type:Function,required:!1},isYearUnavailable:{type:Function,required:!1}},emits:["update:modelValue","update:placeholder","update:startValue","update:validModelValue"],setup(T,{emit:C}){const m=T,o=C,a=ue("calendar",m),{dir:w,t:l,locale:$}=_e(),h=fe(),y=["day","month","year"],b=p(()=>a.type==="year"?"year":a.type==="month"?"month":"day"),q="year",r=pe(b.value);ce(()=>a.type,()=>{r.value=b.value});const L=p(()=>b.value!==q),V=p(()=>r.value===b.value);function U(t){const s=y.indexOf(b.value),_=y.indexOf(q);return y[Math.min(Math.max(y.indexOf(t),s),_)]}function P(t){r.value=U(t)}function I(){const t=y.indexOf(q),s=y.indexOf(r.value)>=t?b.value:y[y.indexOf(r.value)+1];r.value=s}function W(t){if(Array.isArray(t))return t[0];if(t){if("start"in t||"end"in t){const s=t;return s.start??s.end??void 0}return t}}const Y=Se(a.placeholder??W(a.modelValue)??W(a.defaultValue)??ye(me()));ce(()=>a.placeholder,t=>{t&&(Y.value=t)});function G(t){Y.value=t,o("update:placeholder",t)}function ae(t){if(V.value){o("update:modelValue",t);return}const s=W(t);s&&G(s),P(y[y.indexOf(r.value)-1])}function j(t,s){return s===-1?t.subtract({years:1}):t.add({years:1})}const c=p(()=>{const t=a.range&&V.value;return r.value==="year"?t?Oe:Re:r.value==="month"?t?Fe:Me:a.range?$e:Pe}),Q=["type","placeholder","range","modelValue","defaultValue","color","variant","size","monthControls","yearControls","viewControl","class","ui"],J=["pagedNavigation","weekStartsOn","weekdayFormat","fixedWeeks","numberOfMonths","isDateDisabled","isDateUnavailable","isDateHighlightable","disableDaysOutsideCurrentView","maximumDays"],te=["isMonthDisabled","isMonthUnavailable"],H=["isYearDisabled","isYearUnavailable"],le=["allowNonContiguousRanges","fixedDate"],f=ge(ve(a,(t,s)=>Q.includes(s)||r.value!=="day"&&J.includes(s)||r.value!=="month"&&te.includes(s)||r.value!=="year"&&H.includes(s)||!V.value&&le.includes(s)));function E(t,s){return r.value==="month"?{month:t}:r.value==="year"?{year:t}:{day:t,month:s}}const se=p(()=>a.nextYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleLeft:h.ui.icons.chevronDoubleRight)),re=p(()=>a.nextMonthIcon||(w.value==="rtl"?h.ui.icons.chevronLeft:h.ui.icons.chevronRight)),ie=p(()=>a.prevYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleRight:h.ui.icons.chevronDoubleLeft)),ne=p(()=>a.prevMonthIcon||(w.value==="rtl"?h.ui.icons.chevronRight:h.ui.icons.chevronLeft)),de=p(()=>r.value==="day"?l("calendar.prevMonth"):l("calendar.prevYear")),K=p(()=>r.value==="day"?l("calendar.nextMonth"):l("calendar.nextYear")),n=p(()=>he({extend:We,...h.ui?.calendar||{}})({color:a.color,size:a.size,variant:a.variant,weekNumbers:a.weekNumbers,view:r.value}));return(t,s)=>(i(),g(e(c).Root,S(e(f),{"model-value":V.value?e(a).modelValue:void 0,"default-value":V.value?e(a).defaultValue:void 0,placeholder:Y.value,"data-slot":"root",class:n.value.root({class:[e(a).ui?.root,e(a).class]}),"onUpdate:placeholder":G,"onUpdate:modelValue":ae,"onUpdate:startValue":s[0]||(s[0]=_=>o("update:startValue",_)),"onUpdate:validModelValue":s[1]||(s[1]=_=>o("update:validModelValue",_))}),{default:d(({weekDays:_,grid:D,date:ee})=>[u(e(c).Header,{"data-slot":"header",class:v(n.value.header({class:e(a).ui?.header}))},{default:d(()=>[r.value==="day"&&e(a).yearControls?(i(),g(e(c).Prev,{key:0,"prev-page":x=>j(x,-1),"aria-label":e(l)("calendar.prevYear"),"as-child":""},{default:d(()=>[u(N,S({icon:ie.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevYear),null,16,["icon","size"])]),_:1},8,["prev-page","aria-label"])):k("",!0),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Prev,{key:1,"aria-label":de.value,"as-child":""},{default:d(()=>[u(N,S({icon:ne.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),u(e(c).Heading,{"data-slot":"heading",class:v(n.value.heading({class:e(a).ui?.heading}))},{default:d(({headingValue:x})=>[B(t.$slots,"heading",{value:x,view:r.value,date:ee,setView:P,setPlaceholder:G},()=>[L.value&&e(a).viewControl?(i(),g(N,S({key:0,label:x,size:e(a).size,color:"neutral",variant:"ghost",block:""},typeof e(a).viewControl=="object"?e(a).viewControl:{},{onClick:I}),null,16,["label","size"])):(i(),z("span",{key:1,"data-slot":"headingLabel",class:v(n.value.headingLabel({class:e(a).ui?.headingLabel}))},M(x),3))])]),_:2},1032,["class"]),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Next,{key:2,"aria-label":K.value,"as-child":""},{default:d(()=>[u(N,S({icon:re.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),r.value==="day"&&e(a).yearControls?(i(),g(e(c).Next,{key:3,"next-page":x=>j(x,1),"aria-label":e(l)("calendar.nextYear"),"as-child":""},{default:d(()=>[u(N,S({icon:se.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextYear),null,16,["icon","size"])]),_:1},8,["next-page","aria-label"])):k("",!0)]),_:2},1032,["class"]),Be("div",{"data-slot":"body",class:v(n.value.body({class:e(a).ui?.body}))},[(i(!0),z(O,null,X(Array.isArray(D)?D:[D],x=>(i(),g(e(c).Grid,{key:x.value.toString(),"data-slot":"grid",class:v(n.value.grid({class:e(a).ui?.grid}))},{default:d(()=>["GridHead"in c.value?(i(),g(e(c).GridHead,{key:0},{default:d(()=>[u(e(c).GridRow,{"data-slot":"gridWeekDaysRow",class:v(n.value.gridWeekDaysRow({class:e(a).ui?.gridWeekDaysRow}))},{default:d(()=>[(i(!0),z(O,null,X(_,R=>(i(),g(e(c).HeadCell,{key:R,"data-slot":"headCell",class:v(n.value.headCell({class:e(a).ui?.headCell}))},{default:d(()=>[B(t.$slots,"week-day",{day:R},()=>[Z(M(R),1)])]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1024)):k("",!0),u(e(c).GridBody,{"data-slot":"gridBody",class:v(n.value.gridBody({class:e(a).ui?.gridBody}))},{default:d(()=>[(i(!0),z(O,null,X(x.rows,(R,be)=>(i(),g(e(c).GridRow,{key:`row-${be}`,"data-slot":"gridRow",class:v(n.value.gridRow({class:e(a).ui?.gridRow}))},{default:d(()=>[r.value==="day"&&e(a).weekNumbers&&R[0]?(i(),z("td",{key:0,role:"gridcell","data-slot":"cellWeek",class:v(n.value.cellWeek({class:e(a).ui?.cellWeek}))},M(e(De)(R[0],e(a).locale??e($).code)),3)):k("",!0),(i(!0),z(O,null,X(R,F=>(i(),g(e(c).Cell,{key:F.toString(),date:F,"data-slot":"cell",class:v(n.value.cell({class:e(a).ui?.cell}))},{default:d(()=>[u(e(c).CellTrigger,S({ref_for:!0},E(F,x.value),{"data-slot":"cellTrigger",class:n.value.cellTrigger({class:e(a).ui?.cellTrigger})}),{default:d(A=>[r.value==="day"?B(t.$slots,"day",{day:F},()=>[Z(M(F.day),1)],void 0,0):r.value==="month"?B(t.$slots,"month-cell",{month:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.monthValue),1)],void 0,1):B(t.$slots,"year-cell",{year:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.yearValue),1)],void 0,2)]),_:2},1040,["class"])]),_:2},1032,["date","class"]))),128))]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1032,["class"]))),128))],2)]),_:3},16,["model-value","default-value","placeholder","class"]))}},Ge=365,Ze=je({__name:"PeriodRangePicker",props:{period:{},range:{}},emits:["update:period","update:range"],setup(T,{emit:C}){const m=T,o=C,a=[{label:"Last 7 days",value:7},{label:"Last 14 days",value:14},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"All time",value:365},{label:"Custom",value:"custom"}],w=p({get:()=>m.period,set:b=>o("update:period",b)}),l=p({get:()=>m.range,set:b=>o("update:range",b)}),$=me(),h=ye($),y=h.subtract({days:Ge-1});return(b,q)=>{const r=Ne,L=N,V=Ye,U=Ae,P=Ue;return i(),z(O,null,[u(r,{modelValue:w.value,"onUpdate:modelValue":q[0]||(q[0]=I=>w.value=I),items:a,"value-key":"value",class:"w-40","aria-label":"Period"},null,8,["modelValue"]),T.period==="custom"?(i(),g(P,{key:0,modelValue:l.value,"onUpdate:modelValue":q[2]||(q[2]=I=>l.value=I),"min-value":e(y),"max-value":e(h),range:"",class:"w-56","aria-label":"Custom date range"},{trailing:d(()=>[u(U,null,{content:d(()=>[u(V,{modelValue:l.value,"onUpdate:modelValue":q[1]||(q[1]=I=>l.value=I),class:"p-2","number-of-months":2,range:""},null,8,["modelValue"])]),default:d(()=>[u(L,{color:"neutral",variant:"link",size:"sm",icon:"i-lucide-calendar","aria-label":"Select a date range",class:"px-0"})]),_:1})]),_:1},8,["modelValue","min-value","max-value"])):k("",!0)],64)}}});export{Ze as _,Xe as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as me,_ as Oe,b as Ge,c as Le}from"./DashboardSidebarCollapse-CWmehYha.js";import{u as Ie,R as We,a as Ne,j as re,b as Ke,p as ie,s as Je,L as He,i as Ye,m as Ze,c as he,_ as Xe,d as pe,e as ye,f as ke,g as Qe,h as el,k as ll,l as al,n as tl,o as _e}from"./WebhookConfigPanel.vue_vue_type_script_setup_true_lang-DQNacZEe.js";import{z as sl,d as J,A as $e,B as Re,C as ne,e as d,c as p,a as t,w as m,D as Y,u as e,E as Z,G as qe,P as fe,h as E,j as F,F as z,x as j,H as ol,I as Se,J as we,K as Ce,r as V,L as rl,M as il,n as ve,q as te,N as be,b as G,O as nl,Q as dl,R as ul,S as cl,T as ml,U as pl,V as fl,W as vl,f as o,X as H,l as x,t as W,g as K,Y as xe,Z as bl,$ as gl,a0 as ce,m as Ve,s as hl,i as de,o as Ae,a1 as Ue,a2 as yl,_ as kl,y as _l,a3 as wl}from"./index-Cs2OnrL7.js";import{m as xl,a as je,r as Vl}from"./useManagedProjects-DnOY5lQq.js";import{u as jl}from"./useRouteTab-B-Vrl8p9.js";import{V as Me,u as Pe,_ as Be,a as ge}from"./SelectMenu-B6n06FSV.js";import{_ as Il}from"./Select-DGVDts9_.js";const $l="radio.select";function Rl(g,a,i){sl($l,i,{originalEvent:g,value:a})}var ql=J({inheritAttrs:!1,__name:"Radio",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:checked","select"],setup(g,{emit:a}){const i=g,l=a,c=$e(i,"checked",l,{passive:i.checked===void 0}),{value:r}=Re(i),{forwardRef:f,currentElement:v}=ne(),u=Pe(v),s=Ie(),_=j(()=>i.id&&v.value?document.querySelector(`[for="${i.id}"]`)?.innerText??i.value:void 0);function q(h){i.disabled||Rl(h,i.value,C=>{l("select",C),!C?.defaultPrevented&&(c.value=!0,u.value&&C.stopPropagation())})}return(h,C)=>(d(),p(z,null,[t(e(fe),Z({id:h.id,ref:e(f),role:"radio",type:h.as==="button"?"button":void 0,as:h.as,"aria-checked":e(c)??!1,"aria-label":_.value,"as-child":h.asChild,disabled:h.disabled?"":void 0,"data-state":e(c)?"checked":"unchecked","data-disabled":h.disabled?"":void 0,value:e(r),required:h.required,name:h.name},{...e(s),...h.$attrs},{onClick:qe(q,["stop"])}),{default:m(()=>[Y(h.$slots,"default",{checked:e(c)})]),_:3},16,["id","type","as","aria-checked","aria-label","as-child","disabled","data-state","data-disabled","value","required","name"]),e(u)&&h.name?(d(),E(e(Me),Z({key:0,type:"radio",tabindex:"-1",value:e(r),checked:!!e(c),name:h.name,disabled:h.disabled,required:h.required},e(s)),null,16,["value","checked","name","disabled","required"])):F("v-if",!0)],64))}}),Sl=ql;const[Cl,Al]=Se("RadioGroupRoot");var Ul=J({__name:"RadioGroupRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue"],setup(g,{emit:a}){const i=g,l=a,{forwardRef:c,currentElement:r}=ne(),f=$e(i,"modelValue",l,{defaultValue:i.defaultValue,passive:i.modelValue===void 0}),{disabled:v,loop:u,orientation:s,name:_,required:q,dir:h}=Re(i),C=ol(h),U=Pe(r);return Al({modelValue:f,changeModelValue:w=>{f.value=w},disabled:v,loop:u,orientation:s,name:_?.value,required:q}),(w,D)=>(d(),E(e(We),{"as-child":"",orientation:e(s),dir:e(C),loop:e(u)},{default:m(()=>[t(e(fe),{ref:e(c),role:"radiogroup","data-disabled":e(v)?"":void 0,"as-child":w.asChild,as:w.as,"aria-orientation":e(s),"aria-required":e(q),dir:e(C)},{default:m(()=>[Y(w.$slots,"default",{modelValue:e(f)}),e(U)&&e(_)?(d(),E(e(Me),{key:0,required:e(q),disabled:e(v),value:e(f),name:e(_)},null,8,["required","disabled","value","name"])):F("v-if",!0)]),_:3},8,["data-disabled","as-child","as","aria-orientation","aria-required","dir"])]),_:3},8,["orientation","dir","loop"]))}}),Ml=Ul;const[Pl,Bl]=Se("RadioGroupItem");var Dl=J({inheritAttrs:!1,__name:"RadioGroupItem",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["select"],setup(g,{emit:a}){const i=g,l=a,{forwardRef:c,currentElement:r}=ne(),f=Cl(),v=j(()=>f.disabled.value||i.disabled),u=j(()=>f.required.value||i.required),s=j(()=>rl(f.modelValue?.value,i.value));Bl({disabled:v,checked:s});const _=V(!1),q=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];we("keydown",U=>{q.includes(U.key)&&(_.value=!0)}),we("keyup",()=>{_.value=!1});function h(){setTimeout(()=>{_.value&&r.value?.click()},0)}const C=Ie();return(U,w)=>(d(),E(e(Ne),{checked:s.value,disabled:v.value,"as-child":"",focusable:!v.value,active:s.value},{default:m(()=>[t(Sl,Z({...e(C),...U.$attrs,...i},{ref:e(c),checked:s.value,required:u.value,disabled:v.value,"onUpdate:checked":w[0]||(w[0]=D=>e(f).changeModelValue(U.value)),onSelect:w[1]||(w[1]=D=>l("select",D)),onKeydown:w[2]||(w[2]=Ce(qe(()=>{},["prevent"]),["enter"])),onFocus:h}),{default:m(()=>[Y(U.$slots,"default",{checked:s.value,required:u.value,disabled:v.value})]),_:3},16,["checked","required","disabled"])]),_:3},8,["checked","disabled","focusable","active"]))}}),El=Dl,Fl=J({__name:"RadioGroupIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(g){const{forwardRef:a}=ne(),i=Pl();return(l,c)=>(d(),E(e(il),{present:l.forceMount||e(i).checked.value},{default:m(()=>[t(e(fe),Z({ref:e(a),"data-state":e(i).checked.value?"checked":"unchecked","data-disabled":e(i).disabled.value?"":void 0,"as-child":l.asChild,as:l.as},l.$attrs),{default:m(()=>[Y(l.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),zl=Fl;const Tl=["none","minimal","low","medium","high","xhigh","max"];function Ol(){return{planModel:"",buildModel:"",planVariant:"",buildVariant:"",plugins:"",baseBranches:"",lspServers:"",lspDisabled:"",builderImage:"",assignee:"",buildWorkflow:"",mrDescription:"",minRole:"",requireAuthorOrAssignee:"",autoPush:"",autoMr:"",autoResolveConflicts:"",ciFailAutoReport:"",allowConfidentialWorkItems:""}}function Gl(g){return g===""?"inherit":g==="none"?"none":"user"}function Ll(g){const a=ve(),i=V(Ol()),l=be({planModel:"",buildModel:"",planVariant:"",buildVariant:"",plugins:"",baseBranches:"",lspServers:"",lspDisabled:"",builderImage:"",assignee:"",assigneeMode:"inherit",buildWorkflow:"",mrDescription:"",minRole:"",requireAuthorOrAssignee:"",autoPush:"",autoMr:"",autoResolveConflicts:"",ciFailAutoReport:"",allowConfidentialWorkItems:""}),c=V(!1),r=V(!1),f=V({}),v=V([]),u=V([]),s=V([]),_=V([]),q=V(""),h=j(()=>ie(i.value.lspServers)),C=j(()=>Je(l.lspDisabled)),U=j({get:()=>h.value.filter(A=>!C.value.includes(A)),set:A=>{const b=new Set(A),n=new Set(h.value),B=C.value.filter(L=>!n.has(L)),Q=new Set([...B,...h.value.filter(L=>!b.has(L))]);l.lspDisabled=re(He.map(L=>L.id).filter(L=>Q.has(L)))}}),w=j(()=>Ye(l)&&(q.value!=="custom"||_.value.length>0)),D=j(()=>Ze(v.value)),T=j(()=>[{label:`Inherit global (${i.value.planModel||"none"})`,value:""},...D.value]),S=j(()=>[{label:`Inherit global (${i.value.buildModel||"none"})`,value:""},...D.value]);function M(A){return[{label:`Inherit global (${A||"no variant"})`,value:""},...Tl.map(b=>({label:b,value:b}))]}const y=j(()=>M(i.value.planVariant)),O=j(()=>M(i.value.buildVariant)),I=j(()=>[{label:`Inherit global (${i.value.minRole||"write"})`,value:""},{label:"No project role required",value:"none"},{label:"Reporter (or higher)",value:"read"},{label:"Developer (or higher)",value:"write"},{label:"Maintainer (or higher)",value:"admin"},{label:"Owner only",value:"owner"}]),P=j(()=>[{label:`Inherit global (${i.value.requireAuthorOrAssignee==="false"?"not required":"required"})`,value:""},{label:"Required",value:"true"},{label:"Not required",value:"false"}]),k=j(()=>[{label:`Inherit global (${i.value.autoPush==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),N=j(()=>[{label:`Inherit global (${i.value.autoMr==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),ee=j(()=>[{label:`Inherit global (${i.value.autoResolveConflicts==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),$=j(()=>[{label:`Inherit global (${i.value.ciFailAutoReport==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),X=j(()=>[{label:`Inherit global (${i.value.allowConfidentialWorkItems==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),se=j(()=>{const A=U.value.length;return A===0?"off":`${A} servers`}),le=j(()=>[{label:`Inherit global (${se.value})`,value:""},{label:"Custom list",value:"custom"}]);async function oe(){if(!g.value)return;c.value=!0,f.value={};const[A,b]=await Promise.all([G(`/api/projects/${g.value.projectId}/settings`),G("/api/settings/providers")]);if(c.value=!1,A.error){A.status!==401&&a.add({title:"Failed to load settings",description:A.error,color:"error",icon:"i-lucide-alert-circle"});return}i.value=A.data?.defaults??i.value,v.value=b.data?.providers??[];const n=A.data?.settings;l.planModel=n?.planModel??"",l.buildModel=n?.buildModel??"",l.planVariant=n?.planVariant??"",l.buildVariant=n?.buildVariant??"",l.plugins=n?.plugins??"",l.baseBranches=n?.baseBranches??"",l.lspServers=n?.lspServers??"",l.lspDisabled=n?.lspDisabled??"",l.builderImage=n?.builderImage??"",l.assignee=n?.assignee??"",l.assigneeMode=Gl(l.assignee),l.buildWorkflow=n?.buildWorkflow??"",l.mrDescription=n?.mrDescription??"",l.minRole=n?.minRole??"",l.requireAuthorOrAssignee=n?.requireAuthorOrAssignee??"",l.autoPush=n?.autoPush??"",l.autoMr=n?.autoMr??"",l.autoResolveConflicts=n?.autoResolveConflicts??"",l.ciFailAutoReport=n?.ciFailAutoReport??"",l.allowConfidentialWorkItems=n?.allowConfidentialWorkItems??"",u.value=ie(l.plugins),s.value=ie(l.baseBranches),_.value=ie(l.lspServers),q.value=l.lspServers?"custom":""}async function ue(){if(!g.value||!w.value)return;l.plugins=re(u.value),l.baseBranches=re(s.value),l.lspServers=q.value==="custom"?re(_.value):"",r.value=!0;const{error:A,status:b,data:n}=await G(`/api/projects/${g.value.projectId}/settings`,{method:"PUT",body:JSON.stringify(Ke(l))});if(r.value=!1,A){b===400&&n?.issues?(f.value=Object.fromEntries(n.issues.map(B=>[B.path.join("."),B.message])),a.add({title:"Validation error",description:n.issues.map(B=>B.message).join("; "),color:"error",icon:"i-lucide-alert-circle"})):a.add({title:"Save failed",description:A,color:"error",icon:"i-lucide-alert-circle"});return}a.add({title:"Settings saved",color:"success",icon:"i-lucide-check-circle"})}return te(g,A=>{A&&oe()},{immediate:!0}),te(q,A=>{A==="custom"&&_.value.length===0&&(_.value=h.value.filter(b=>!C.value.includes(b)))}),{defaults:i,form:l,loading:c,submitting:r,errors:f,providers:v,pluginItems:u,branchItems:s,lspServerItems:_,lspDisabledIds:C,lspGlobalIds:h,lspInheritedSelection:U,lspMode:q,lspModeItems:le,lspGlobalSummary:se,projectId:j(()=>g.value?.projectId??null),isValid:w,planModelItems:T,buildModelItems:S,planVariantItems:y,buildVariantItems:O,policyRoleItems:I,requireAuthorItems:P,autoPushItems:k,autoMrItems:N,autoResolveConflictsItems:ee,ciFailAutoReportItems:$,allowConfidentialWorkItemsItems:X,load:oe,submit:ue}}const De=Symbol("projectSettings");function Wl(g){const a=Ll(g),i=be(a);return dl(De,i),i}function Nl(){const g=nl(De);if(!g)throw new Error("useProjectSettingsContext must be used within ProjectDetailPage");return g}const Kl={slots:{root:"relative",fieldset:"flex gap-x-2",legend:"mb-1 block font-medium text-default",item:"flex items-start",container:"flex items-center",base:"rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full after:bg-default after:rounded-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{item:""},card:{item:"border border-muted rounded-lg"},table:{item:"border border-muted"}},orientation:{horizontal:{fieldset:"flex-row"},vertical:{fieldset:"flex-col"}},indicator:{start:{item:"flex-row",wrapper:"ms-2"},end:{item:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3",item:"text-xs",container:"h-4",indicator:"after:size-1"},sm:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3.5",item:"text-xs",container:"h-4",indicator:"after:size-1"},md:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},lg:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4.5",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},xl:{fieldset:"gap-y-1.5",legend:"text-base",base:"size-5",item:"text-base",container:"h-6",indicator:"after:size-2"}},highlight:{true:""},disabled:{true:{item:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},required:{true:{legend:"after:content-['*'] after:ms-0.5 after:text-error"}}},compoundVariants:[{size:"xs",variant:["card","table"],class:{item:"p-2.5"}},{size:"sm",variant:["card","table"],class:{item:"p-3"}},{size:"md",variant:["card","table"],class:{item:"p-3.5"}},{size:"lg",variant:["card","table"],class:{item:"p-4"}},{size:"xl",variant:["card","table"],class:{item:"p-4.5"}},{orientation:"horizontal",variant:"table",class:{item:"first-of-type:rounded-s-lg last-of-type:rounded-e-lg",fieldset:"gap-0 -space-x-px"}},{orientation:"vertical",variant:"table",class:{item:"first-of-type:rounded-t-lg last-of-type:rounded-b-lg",fieldset:"gap-0 -space-y-px"}},{color:"primary",variant:"card",class:{item:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{item:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{item:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{item:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{item:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{item:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{item:"has-data-[state=checked]:border-inverted"}},{color:"primary",variant:"table",class:{item:"has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]"}},{color:"secondary",variant:"table",class:{item:"has-data-[state=checked]:bg-secondary/10 has-data-[state=checked]:border-secondary/50 has-data-[state=checked]:z-[1]"}},{color:"success",variant:"table",class:{item:"has-data-[state=checked]:bg-success/10 has-data-[state=checked]:border-success/50 has-data-[state=checked]:z-[1]"}},{color:"info",variant:"table",class:{item:"has-data-[state=checked]:bg-info/10 has-data-[state=checked]:border-info/50 has-data-[state=checked]:z-[1]"}},{color:"warning",variant:"table",class:{item:"has-data-[state=checked]:bg-warning/10 has-data-[state=checked]:border-warning/50 has-data-[state=checked]:z-[1]"}},{color:"error",variant:"table",class:{item:"has-data-[state=checked]:bg-error/10 has-data-[state=checked]:border-error/50 has-data-[state=checked]:z-[1]"}},{color:"neutral",variant:"table",class:{item:"has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]"}},{variant:["card","table"],disabled:!0,class:{item:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},Jl={__name:"RadioGroup",props:{as:{type:null,required:!1},legend:{type:String,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},size:{type:null,required:!1},variant:{type:null,required:!1},color:{type:null,required:!1},highlight:{type:Boolean,required:!1},orientation:{type:null,required:!1,default:"vertical"},indicator:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["change","update:modelValue"],setup(g,{emit:a}){const i=g,l=a,c=ul(),r=cl("radioGroup",i),f=gl(),v=ml(pl(r,"as","loop","required"),l),{emitFormChange:u,emitFormInput:s,color:_,name:q,size:h,highlight:C,id:U,disabled:w,ariaAttrs:D}=fl(i,{bind:!1}),T=U.value??vl(),S=j(()=>bl({extend:Kl,...f.ui?.radioGroup||{}})({size:h.value??r.size,color:_.value??r.color,highlight:C.value??r.highlight,disabled:w.value,required:r.required,orientation:r.orientation,variant:r.variant,indicator:r.indicator}));function M(I){if(I===null)return{id:`${T}:null`,value:void 0,label:void 0};if(typeof I=="string"||typeof I=="number"||typeof I=="bigint")return{id:`${T}:${I}`,value:String(I),label:String(I)};const P=ce(I,r.valueKey),k=ce(I,r.labelKey),N=ce(I,r.descriptionKey);return{...I,value:P,label:k,description:N,id:`${T}:${P}`}}const y=j(()=>r.items?r.items.map(M):[]);function O(I){const P=new Event("change",{target:{value:I}});l("change",P),u(),s()}return(I,P)=>(d(),E(e(Ml),Z({id:e(T)},e(v),{"model-value":e(r).modelValue,"default-value":e(r).defaultValue,orientation:e(r).orientation,name:e(q),disabled:e(w),"data-slot":"root",class:S.value.root({class:[e(r).ui?.root,e(r).class]}),"onUpdate:modelValue":O}),{default:m(()=>[o("fieldset",Z({"data-slot":"fieldset",class:S.value.fieldset({class:e(r).ui?.fieldset})},e(D)),[e(r).legend||c.legend?(d(),p("legend",{key:0,"data-slot":"legend",class:H(S.value.legend({class:e(r).ui?.legend}))},[Y(I.$slots,"legend",{},()=>[x(W(e(r).legend),1)])],2)):F("",!0),(d(!0),p(z,null,K(y.value,k=>(d(),E(xe(!e(r).variant||e(r).variant==="list"?"div":e(he)),{key:k.value,"data-slot":"item",class:H(S.value.item({class:[e(r).ui?.item,k.ui?.item,k.class],disabled:k.disabled||e(w)}))},{default:m(()=>[o("div",{"data-slot":"container",class:H(S.value.container({class:[e(r).ui?.container,k.ui?.container]}))},[t(e(El),{id:k.id,value:k.value,disabled:k.disabled||e(w),"data-slot":"base",class:H(S.value.base({class:[e(r).ui?.base,k.ui?.base],disabled:k.disabled||e(w)}))},{default:m(()=>[t(e(zl),{"data-slot":"indicator",class:H(S.value.indicator({class:[e(r).ui?.indicator,k.ui?.indicator]}))},null,8,["class"])]),_:2},1032,["id","value","disabled","class"])],2),k.label||c.label||k.description||c.description?(d(),p("div",{key:0,"data-slot":"wrapper",class:H(S.value.wrapper({class:[e(r).ui?.wrapper,k.ui?.wrapper]}))},[k.label||c.label?(d(),E(xe(!e(r).variant||e(r).variant==="list"?e(he):"p"),{key:0,for:k.id,"data-slot":"label",class:H(S.value.label({class:[e(r).ui?.label,k.ui?.label],disabled:k.disabled||e(w)}))},{default:m(()=>[Y(I.$slots,"label",{item:k,modelValue:e(r).modelValue},()=>[x(W(k.label),1)])]),_:2},1032,["for","class"])):F("",!0),k.description||c.description?(d(),p("p",{key:1,"data-slot":"description",class:H(S.value.description({class:[e(r).ui?.description,k.ui?.description],disabled:k.disabled||e(w)}))},[Y(I.$slots,"description",{item:k,modelValue:e(r).modelValue},()=>[x(W(k.description),1)])],2)):F("",!0)],2)):F("",!0)]),_:2},1032,["class"]))),128))],16)]),_:3},16,["id","model-value","default-value","orientation","name","disabled","class"]))}},Hl={class:"space-y-2"},Yl=J({__name:"ProjectAssigneeControl",props:hl({projectId:{}},{modelValue:{default:""},modelModifiers:{},mode:{default:"inherit"},modeModifiers:{}}),emits:["update:modelValue","update:mode"],setup(g){const a=Ve(g,"modelValue"),i=Ve(g,"mode"),l=g,c=[{label:"Inherit global",value:"inherit"},{label:"Nobody",value:"none"},{label:"Specific user",value:"user"}];te(i,f=>{f==="inherit"?a.value="":f==="none"?a.value="none":f==="user"&&(a.value="")});function r(f){f!=="none"&&(a.value=f,f&&i.value!=="user"&&(i.value="user"))}return(f,v)=>{const u=Jl;return d(),p("div",Hl,[t(u,{modelValue:i.value,"onUpdate:modelValue":v[0]||(v[0]=s=>i.value=s),items:c,orientation:"horizontal","aria-label":"Assignee mode"},null,8,["modelValue"]),i.value==="user"?(d(),E(Xe,{key:0,"model-value":a.value==="none"?"":a.value,"project-id":l.projectId??null,"aria-label":"Project assignee",placeholder:"Search project members…","onUpdate:modelValue":r},null,8,["model-value","project-id"])):F("",!0)])}}}),Zl={class:"space-y-4"},Xl={class:"space-y-3"},Ql={class:"grid grid-cols-2 gap-3"},ea={class:"grid grid-cols-2 gap-3"},la={class:"flex items-center gap-2"},aa={class:"flex items-center gap-2"},ta={class:"space-y-3"},sa={class:"text-xs text-dimmed mt-1"},oa={class:"text-xs text-dimmed mt-1"},ra={class:"space-y-3"},ia={key:0,class:"mt-3 space-y-2"},na={key:1,class:"text-xs text-dimmed"},da={class:"text-xs text-dimmed"},ua={key:1,class:"mt-3 space-y-2"},ca={key:0,class:"text-xs text-error"},ma={class:"space-y-3"},pa={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},fa={class:"space-y-3"},va={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},ba={class:"space-y-3"},ga={class:"flex items-center justify-between mt-1"},ha={class:"text-xs text-dimmed"},ya={class:"flex items-center justify-between mt-1"},ka={class:"text-xs text-dimmed"},_a=J({__name:"ProjectSettingsSection",setup(g){const a=Nl();return(i,l)=>{const c=Be,r=pe,f=de,v=ge,u=Qe;return d(),p("div",Zl,[l[46]||(l[46]=o("p",{class:"text-sm text-dimmed"},[x(" Fields default to inheriting the global setting. Pick "),o("strong",null,"Inherit global"),x(" to keep it, or override it with a value below. ")],-1)),o("section",Xl,[l[26]||(l[26]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Models",-1)),o("div",Ql,[t(r,{label:"Plan model",error:e(a).errors.planModel??!1},{default:m(()=>[t(c,{modelValue:e(a).form.planModel,"onUpdate:modelValue":l[0]||(l[0]=s=>e(a).form.planModel=s),items:e(a).planModelItems,"value-key":"value","aria-label":"Plan model",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Build model",error:e(a).errors.buildModel??!1},{default:m(()=>[t(c,{modelValue:e(a).form.buildModel,"onUpdate:modelValue":l[1]||(l[1]=s=>e(a).form.buildModel=s),items:e(a).buildModelItems,"value-key":"value","aria-label":"Build model",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])]),o("div",ea,[t(r,{label:"Plan variant (optional)",error:e(a).errors.planVariant??!1},{default:m(()=>[o("div",la,[t(c,{modelValue:e(a).form.planVariant,"onUpdate:modelValue":l[2]||(l[2]=s=>e(a).form.planVariant=s),items:e(a).planVariantItems,"value-key":"value","aria-label":"Plan variant",class:"flex-1"},null,8,["modelValue","items"]),t(f,{icon:"i-lucide-rotate-ccw",color:"neutral",variant:"ghost","aria-label":"Reset plan variant to inherit",disabled:e(a).form.planVariant==="",onClick:l[3]||(l[3]=s=>e(a).form.planVariant="")},null,8,["disabled"])])]),_:1},8,["error"]),t(r,{label:"Build variant (optional)",error:e(a).errors.buildVariant??!1},{default:m(()=>[o("div",aa,[t(c,{modelValue:e(a).form.buildVariant,"onUpdate:modelValue":l[4]||(l[4]=s=>e(a).form.buildVariant=s),items:e(a).buildVariantItems,"value-key":"value","aria-label":"Build variant",class:"flex-1"},null,8,["modelValue","items"]),t(f,{icon:"i-lucide-rotate-ccw",color:"neutral",variant:"ghost","aria-label":"Reset build variant to inherit",disabled:e(a).form.buildVariant==="",onClick:l[5]||(l[5]=s=>e(a).form.buildVariant="")},null,8,["disabled"])])]),_:1},8,["error"])]),l[27]||(l[27]=o("p",{class:"text-xs text-dimmed"},[x(" Models come from your enabled providers. A variant is a named model option set (e.g. reasoning effort). Choose "),o("strong",null,"Inherit global"),x(" to use the global value. ")],-1))]),o("section",ta,[l[31]||(l[31]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Runtime",-1)),t(r,{label:"Plugins override",error:e(a).errors.plugins??!1},{default:m(()=>[t(ye,{modelValue:e(a).pluginItems,"onUpdate:modelValue":l[6]||(l[6]=s=>e(a).pluginItems=s),placeholder:"@scope/plugin","add-label":"Add plugin","item-label":"Plugin"},null,8,["modelValue"]),o("p",sa,[e(a).pluginItems.length===0?(d(),p(z,{key:0},[x("Inherit global: "+W(e(a).defaults.plugins||"none")+".",1)],64)):F("",!0),l[28]||(l[28]=x(" Set replaces the global list; shipped base plugins always apply. ",-1))])]),_:1},8,["error"]),t(r,{label:"Base branches",error:e(a).errors.baseBranches??!1},{default:m(()=>[t(ye,{modelValue:e(a).branchItems,"onUpdate:modelValue":l[7]||(l[7]=s=>e(a).branchItems=s),reorderable:"",placeholder:"dev","add-label":"Add branch","item-label":"Base branch"},null,8,["modelValue"]),o("p",oa,[e(a).branchItems.length===0?(d(),p(z,{key:0},[x("Inherit global: "+W(e(a).defaults.baseBranches||"none")+".",1)],64)):F("",!0),l[29]||(l[29]=x(" Top is tried first (highest priority). A /base mention still wins. ",-1))])]),_:1},8,["error"]),t(r,{label:"Builder image",error:e(a).errors.builderImage??!1},{default:m(()=>[t(v,{modelValue:e(a).form.builderImage,"onUpdate:modelValue":l[8]||(l[8]=s=>e(a).form.builderImage=s),placeholder:e(a).defaults.builderImage||"devbot-builder:latest","aria-label":"Builder image",class:"w-full"},null,8,["modelValue","placeholder"]),l[30]||(l[30]=o("p",{class:"text-xs text-dimmed mt-1"}," Podman image for this project's containers (clone/sync, agent run, push). Empty inherits the global image (placeholder). Must be a valid image reference. ",-1))]),_:1},8,["error"])]),o("section",ra,[l[33]||(l[33]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Language servers",-1)),t(r,{label:"Language servers",error:e(a).errors.lspServers??e(a).errors.lspDisabled??!1},{default:m(()=>[t(c,{modelValue:e(a).lspMode,"onUpdate:modelValue":l[9]||(l[9]=s=>e(a).lspMode=s),items:e(a).lspModeItems,"value-key":"value","aria-label":"Language servers inheritance",class:"w-full"},null,8,["modelValue","items"]),e(a).lspMode===""?(d(),p("div",ia,[e(a).lspGlobalIds.length>0?(d(),E(ke,{key:0,modelValue:e(a).lspInheritedSelection,"onUpdate:modelValue":l[10]||(l[10]=s=>e(a).lspInheritedSelection=s),"server-ids":e(a).lspGlobalIds},null,8,["modelValue","server-ids"])):(d(),p("p",na,"Global LSP is off; there is nothing to inherit.")),o("p",da," Inheriting "+W(e(a).lspGlobalSummary)+". Unchecking a server adds it to this project's disabled list. ",1)])):(d(),p("div",ua,[t(ke,{modelValue:e(a).lspServerItems,"onUpdate:modelValue":l[11]||(l[11]=s=>e(a).lspServerItems=s)},null,8,["modelValue"]),t(r,{label:"Disabled servers (optional)",error:e(a).errors.lspDisabled??!1},{default:m(()=>[t(v,{modelValue:e(a).form.lspDisabled,"onUpdate:modelValue":l[12]||(l[12]=s=>e(a).form.lspDisabled=s),placeholder:"rust, vue","aria-label":"Disabled LSP servers",class:"w-full font-mono"},null,8,["modelValue"]),l[32]||(l[32]=o("p",{class:"text-xs text-dimmed mt-1"}," Comma or whitespace separated ids, subtracted from this custom list. ",-1))]),_:1},8,["error"]),e(a).lspServerItems.length===0?(d(),p("p",ca," Select at least one server, or inherit the global list. ")):F("",!0)]))]),_:1},8,["error"])]),o("section",ma,[l[34]||(l[34]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Permissions",-1)),l[35]||(l[35]=o("p",{class:"text-xs text-dimmed"},[x(" The baseline policy gates who may trigger DevBot; each field inherits the global default unless overridden here. Refine the role gate for one role or user on the "),o("strong",null,"Access"),x(" tab. ")],-1)),o("div",pa,[t(r,{label:"Require author or assignee",error:e(a).errors.requireAuthorOrAssignee??!1},{default:m(()=>[t(c,{modelValue:e(a).form.requireAuthorOrAssignee,"onUpdate:modelValue":l[13]||(l[13]=s=>e(a).form.requireAuthorOrAssignee=s),items:e(a).requireAuthorItems,"value-key":"value","aria-label":"Require author or assignee",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Minimum project role",error:e(a).errors.minRole??!1},{default:m(()=>[t(c,{modelValue:e(a).form.minRole,"onUpdate:modelValue":l[14]||(l[14]=s=>e(a).form.minRole=s),items:e(a).policyRoleItems,"value-key":"value","aria-label":"Minimum project role",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Confidential work items",error:e(a).errors.allowConfidentialWorkItems??!1},{default:m(()=>[t(c,{modelValue:e(a).form.allowConfidentialWorkItems,"onUpdate:modelValue":l[15]||(l[15]=s=>e(a).form.allowConfidentialWorkItems=s),items:e(a).allowConfidentialWorkItemsItems,"value-key":"value","aria-label":"Confidential work items",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])]),l[36]||(l[36]=o("p",{class:"text-xs text-dimmed"}," While off, a mention on a confidential item is ignored silently (no note, no run). The empty choice inherits the global value shown in the label. ",-1))]),o("section",fa,[l[38]||(l[38]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Build output",-1)),l[39]||(l[39]=o("p",{class:"text-xs text-dimmed"},[x(" What DevBot does with the branch after a successful build. Both default to the global setting; the "),o("code",null,"/push"),x(" and "),o("code",null,"/mr"),x(" mention tokens turn a step on for a single run. ")],-1)),o("div",va,[t(r,{label:"Auto-push branch",error:e(a).errors.autoPush??!1},{default:m(()=>[t(c,{modelValue:e(a).form.autoPush,"onUpdate:modelValue":l[16]||(l[16]=s=>e(a).form.autoPush=s),items:e(a).autoPushItems,"value-key":"value","aria-label":"Auto-push branch",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Auto-open merge request",error:e(a).errors.autoMr??!1},{default:m(()=>[t(c,{modelValue:e(a).form.autoMr,"onUpdate:modelValue":l[17]||(l[17]=s=>e(a).form.autoMr=s),items:e(a).autoMrItems,"value-key":"value","aria-label":"Auto-open merge request",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Auto-resolve merge conflicts",error:e(a).errors.autoResolveConflicts??!1},{default:m(()=>[t(c,{modelValue:e(a).form.autoResolveConflicts,"onUpdate:modelValue":l[18]||(l[18]=s=>e(a).form.autoResolveConflicts=s),items:e(a).autoResolveConflictsItems,"value-key":"value","aria-label":"Auto-resolve merge conflicts",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])]),l[40]||(l[40]=o("p",{class:"text-xs text-dimmed"}," Auto-MR requires auto-push: an MR needs a published branch, so enabling it without a push has no effect. Conflict auto-fix checks the branch against its MR target before opening the MR and runs a direct build run to resolve conflicts; if it cannot, the branch is pushed but the MR is skipped. ",-1)),t(r,{label:"Merge request assignee",error:e(a).errors.assignee??!1},{default:m(()=>[t(Yl,{modelValue:e(a).form.assignee,"onUpdate:modelValue":l[19]||(l[19]=s=>e(a).form.assignee=s),mode:e(a).form.assigneeMode,"onUpdate:mode":l[20]||(l[20]=s=>e(a).form.assigneeMode=s),"project-id":e(a).projectId},null,8,["modelValue","mode","project-id"]),l[37]||(l[37]=o("p",{class:"text-xs text-dimmed mt-1"}," Inherit the global assignee, assign nobody on this project, or pick a specific project member. A stale or non-member user never fails MR creation — it is skipped with a warning. ",-1))]),_:1},8,["error"]),t(r,{label:"Auto-report failed CI",error:e(a).errors.ciFailAutoReport??!1},{default:m(()=>[t(c,{modelValue:e(a).form.ciFailAutoReport,"onUpdate:modelValue":l[21]||(l[21]=s=>e(a).form.ciFailAutoReport=s),items:e(a).ciFailAutoReportItems,"value-key":"value","aria-label":"Auto-report failed CI",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),l[41]||(l[41]=o("p",{class:"text-xs text-dimmed"}," When on, a failed pipeline on a merge/pull request DevBot created starts an automatic plan run with the failing job logs. Turning this on attempts to subscribe this project's webhook to CI events; if that fails, re-onboard the project. ",-1))]),o("section",ba,[l[44]||(l[44]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Build workflow templates",-1)),l[45]||(l[45]=o("p",{class:"text-xs text-dimmed"},[x(" Override the global build-mode prompt text for this project. Empty inherits the global value; the built-in default applies if both are empty. The "),o("code",null,"```mr"),x(" scaffold stays fixed. Placeholders: "),o("code",null,"{{iid}}"),x(", "),o("code",null,"{{branch}}"),x(", "),o("code",null,"{{mrTarget}}"),x(", and "),o("code",null,"{{mrBlock}}"),x(" (workflow only). ")],-1)),t(r,{label:"Build workflow override",error:e(a).errors.buildWorkflow??!1},{default:m(()=>[t(u,{modelValue:e(a).form.buildWorkflow,"onUpdate:modelValue":l[22]||(l[22]=s=>e(a).form.buildWorkflow=s),rows:10,placeholder:e(a).defaults.buildWorkflow||"Inherit global","aria-label":"Build workflow template",class:"w-full font-mono text-xs"},null,8,["modelValue","placeholder"]),o("div",ga,[o("p",ha,[e(a).form.buildWorkflow?F("",!0):(d(),p(z,{key:0},[x("Inheriting global.")],64)),l[42]||(l[42]=x(" Set replaces the global template. ",-1))]),t(f,{label:"Load default",size:"xs",color:"neutral",variant:"ghost",disabled:!e(a).defaults.buildWorkflow,onClick:l[23]||(l[23]=s=>e(a).form.buildWorkflow=e(a).defaults.buildWorkflow)},null,8,["disabled"])])]),_:1},8,["error"]),t(r,{label:"MR description override",error:e(a).errors.mrDescription??!1},{default:m(()=>[t(u,{modelValue:e(a).form.mrDescription,"onUpdate:modelValue":l[24]||(l[24]=s=>e(a).form.mrDescription=s),rows:8,placeholder:e(a).defaults.mrDescription||"Inherit global","aria-label":"MR description template",class:"w-full font-mono text-xs"},null,8,["modelValue","placeholder"]),o("div",ya,[o("p",ka,[e(a).form.mrDescription?F("",!0):(d(),p(z,{key:0},[x("Inheriting global.")],64)),l[43]||(l[43]=x(" Set replaces the global template. ",-1))]),t(f,{label:"Load default",size:"xs",color:"neutral",variant:"ghost",disabled:!e(a).defaults.mrDescription,onClick:l[25]||(l[25]=s=>e(a).form.mrDescription=e(a).defaults.mrDescription)},null,8,["disabled"])])]),_:1},8,["error"])])])}}}),wa={class:"space-y-6"},xa={class:"space-y-3"},Va={key:0,class:"divide-y divide-default rounded-md border border-default"},ja={class:"truncate text-default"},Ia={class:"font-mono"},$a={class:"flex items-center gap-2"},Ra={key:1,class:"text-sm text-dimmed"},qa={class:"flex flex-wrap items-end gap-2"},Sa={class:"space-y-3"},Ca={key:0,class:"space-y-2"},Aa={class:"space-y-2"},Ua={key:0,class:"divide-y divide-default rounded-md border border-default"},Ma={class:"truncate text-default"},Pa={key:1,class:"text-sm text-dimmed"},Ba={key:2,class:"flex items-end gap-2 pt-1"},Da={key:3,class:"text-xs text-dimmed pt-1"},Ea={class:"space-y-2"},Fa={key:0,class:"divide-y divide-default rounded-md border border-default"},za={class:"truncate text-default"},Ta={key:1,class:"text-sm text-dimmed"},Oa=J({__name:"ProjectAccessSection",props:{project:{}},setup(g){const a=g,i=ve(),l=V([]),c=V(!1),r=V(!1),f=V(null),v=V("role"),u=V("read"),s=V(""),_=V("plan"),q=[{label:"Read (Reporter/Guest+)",value:"read"},{label:"Write (Developer+)",value:"write"},{label:"Admin (Maintainer+)",value:"admin"},{label:"Owner",value:"owner"},{label:"No access",value:"none"}],h=[{label:"Full (plan + build)",value:"full"},{label:"Plan only",value:"plan"},{label:"Denied (ignore)",value:"denied"}],C=[{label:"Role",value:"role"},{label:"Username",value:"user"}],U=V([]),w=V([]),D=V([]),T=V(!1),S=V(!1),M=V(null),y=V(void 0),O=j(()=>D.value.map(b=>({label:b.projectPath,value:b.projectId}))),I=j(()=>y.value===void 0?{}:{modelValue:y.value});function P(b){y.value=typeof b=="number"?b:void 0}function k(b){return b.subjectType==="role"?`role: ${b.role}`:`@${b.username}`}function N(b){return`${b.subjectType}:${b.subjectId}`}function ee(b){return b==="full"?"Full":b==="plan"?"Plan only":"Denied"}async function $(){c.value=!0;const{data:b,error:n,status:B}=await G(`/api/projects/${a.project.projectId}/access-rules`);if(c.value=!1,n){B!==401&&i.add({title:"Failed to load access rules",description:n,color:"error",icon:"i-lucide-alert-circle"});return}l.value=b?.rules??[]}async function X(){const b=v.value==="role"?{subjectType:"role",role:u.value,level:_.value}:{subjectType:"user",username:s.value.trim(),level:_.value};if(v.value==="user"&&s.value.trim()==="")return;r.value=!0;const{error:n,status:B}=await G(`/api/projects/${a.project.projectId}/access-rules`,{method:"POST",body:JSON.stringify(b)});if(r.value=!1,n){B===404?i.add({title:"User not found",description:`No user matches "${s.value.trim()}".`,color:"error",icon:"i-lucide-alert-circle"}):B!==401&&i.add({title:"Failed to add rule",description:n,color:"error",icon:"i-lucide-alert-circle"});return}v.value==="user"&&(s.value=""),await $()}async function se(b){f.value=N(b);const{status:n,error:B}=await G(`/api/projects/${a.project.projectId}/access-rules/${b.subjectType}/${encodeURIComponent(b.subjectId)}`,{method:"DELETE"});if(f.value=null,n===204||n===404){await $();return}n!==401&&i.add({title:"Failed to remove rule",description:B??"unknown",color:"error",icon:"i-lucide-alert-circle"})}async function le(){T.value=!0;const{data:b,error:n,status:B}=await G(`/api/projects/${a.project.projectId}/access`);if(T.value=!1,n){B!==401&&i.add({title:"Failed to load access grants",description:n,color:"error",icon:"i-lucide-alert-circle"}),U.value=[],w.value=[],D.value=[];return}U.value=b?.outbound??[],w.value=b?.inbound??[],D.value=b?.candidates??[]}async function oe(){if(y.value===void 0)return;S.value=!0;const{error:b,status:n}=await G(`/api/projects/${a.project.projectId}/access/${y.value}`,{method:"PUT"});if(S.value=!1,b){n!==401&&i.add({title:"Failed to grant access",description:b,color:"error",icon:"i-lucide-alert-circle"});return}i.add({title:"Access granted",color:"success",icon:"i-lucide-check-circle"}),y.value=void 0,await le()}async function ue(b){M.value=b;const{status:n,error:B}=await G(`/api/projects/${a.project.projectId}/access/${b}`,{method:"DELETE"});if(M.value=null,n===204||n===404){i.add({title:"Access revoked",color:"success",icon:"i-lucide-check-circle"}),await le();return}n!==401&&i.add({title:"Failed to revoke access",description:B??"unknown",color:"error",icon:"i-lucide-alert-circle"})}async function A(){await Promise.all([$(),le()])}return Ae(A),(b,n)=>{const B=Ue,Q=de,L=Il,ae=pe,Ee=ge,Fe=me,ze=Be;return d(),p("div",wa,[o("section",xa,[n[4]||(n[4]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Trigger access rules",-1)),n[5]||(n[5]=o("p",{class:"text-xs text-dimmed"},[x(" Add a rule to refine the role gate from the Settings tab for one role or user (it can broaden or narrow, and an exact username rule beats a role rule). Users set to "),o("strong",null,"Denied"),x(" are ignored silently; plan-only subjects are ignored on build requests. A rule cannot bypass the author/assignee requirement. Rule changes apply immediately. ")],-1)),l.value.length>0?(d(),p("ul",Va,[(d(!0),p(z,null,K(l.value,R=>(d(),p("li",{key:N(R),class:"flex items-center justify-between px-3 py-2 gap-2"},[o("span",ja,[o("span",Ia,W(k(R)),1)]),o("div",$a,[t(B,{label:ee(R.level),color:R.level==="denied"?"error":R.level==="plan"?"warning":"success",variant:"subtle",size:"sm"},null,8,["label","color"]),t(Q,{icon:"i-lucide-x",color:"error",variant:"ghost",size:"sm",loading:f.value===N(R),"aria-label":`Remove rule for ${k(R)}`,onClick:Te=>se(R)},null,8,["loading","aria-label","onClick"])])]))),128))])):c.value?F("",!0):(d(),p("p",Ra,"No per-project rules; the role-based default applies.")),o("div",qa,[t(ae,{label:"Subject",class:"w-32"},{default:m(()=>[t(L,{modelValue:v.value,"onUpdate:modelValue":n[0]||(n[0]=R=>v.value=R),items:C,"aria-label":"Rule subject type",class:"w-full"},null,8,["modelValue"])]),_:1}),v.value==="role"?(d(),E(ae,{key:0,label:"Role",class:"w-52"},{default:m(()=>[t(L,{modelValue:u.value,"onUpdate:modelValue":n[1]||(n[1]=R=>u.value=R),items:q,"aria-label":"Rule role",class:"w-full"},null,8,["modelValue"])]),_:1})):(d(),E(ae,{key:1,label:"Username",class:"flex-1 min-w-40"},{default:m(()=>[t(Ee,{modelValue:s.value,"onUpdate:modelValue":n[2]||(n[2]=R=>s.value=R),placeholder:"forge-username","aria-label":"Rule username",class:"w-full font-mono",onKeyup:Ce(X,["enter"])},null,8,["modelValue"])]),_:1})),t(ae,{label:"Level",class:"w-52"},{default:m(()=>[t(L,{modelValue:_.value,"onUpdate:modelValue":n[3]||(n[3]=R=>_.value=R),items:h,"aria-label":"Rule level",class:"w-full"},null,8,["modelValue"])]),_:1}),t(Q,{label:"Add rule",icon:"i-lucide-plus",color:"primary","aria-label":"Add access rule",loading:r.value,disabled:v.value==="user"&&s.value.trim()==="",onClick:X},null,8,["loading","disabled"])])]),o("section",Sa,[n[8]||(n[8]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Cross-project access",-1)),n[9]||(n[9]=o("p",{class:"text-xs text-dimmed"},[x(" Allow this project's runs to read another "),o("strong",null,"enrolled"),x(" project via the internal forge MCP and to clone its code. Access is one-directional: granting A access to B does not grant B access to A. Changes apply immediately. ")],-1)),T.value?(d(),p("div",Ca,[(d(),p(z,null,K(2,R=>t(Fe,{key:R,class:"h-10 w-full"})),64))])):(d(),p(z,{key:1},[o("div",Aa,[n[6]||(n[6]=o("h4",{class:"text-xs font-semibold text-muted uppercase"},"Projects this project can access",-1)),U.value.length>0?(d(),p("ul",Ua,[(d(!0),p(z,null,K(U.value,R=>(d(),p("li",{key:R.projectId,class:"flex items-center justify-between px-3 py-2"},[o("span",Ma,W(R.projectPath),1),t(Q,{icon:"i-lucide-x",color:"error",variant:"ghost",size:"sm",loading:M.value===R.projectId,"aria-label":`Revoke access to ${R.projectPath}`,onClick:Te=>ue(R.projectId)},null,8,["loading","aria-label","onClick"])]))),128))])):(d(),p("p",Pa,"No outbound access granted.")),D.value.length>0?(d(),p("div",Ba,[t(ae,{label:"Grant access to",class:"flex-1"},{default:m(()=>[t(ze,Z(I.value,{"onUpdate:modelValue":P,items:O.value,"value-key":"value","search-input":{icon:"i-lucide-search"},placeholder:"Select an enrolled project","aria-label":"Grant access to project",class:"w-full"}),null,16,["items"])]),_:1}),t(Q,{label:"Grant",icon:"i-lucide-plus",color:"primary",loading:S.value,disabled:y.value===void 0,onClick:oe},null,8,["loading","disabled"])])):(d(),p("p",Da," Every other enrolled project is already granted (or none are enrolled yet). "))]),o("div",Ea,[n[7]||(n[7]=o("h4",{class:"text-xs font-semibold text-muted uppercase"},"Projects that can access this project",-1)),w.value.length>0?(d(),p("ul",Fa,[(d(!0),p(z,null,K(w.value,R=>(d(),p("li",{key:R.projectId,class:"flex items-center justify-between px-3 py-2"},[o("span",za,W(R.projectPath),1),t(B,{label:"Read-only",color:"neutral",variant:"subtle"})]))),128))])):(d(),p("p",Ta,"No other project can access this one."))])],64))])])}}}),Ga=/^[A-Z_][A-Z0-9_]*$/,La=64;function Wa(g,a){return!(!Ga.test(g.name)||g.name.length>La||a==="add"&&!g.value)}const Na={class:"space-y-4"},Ka={key:0,class:"space-y-4"},Ja={key:0,class:"space-y-2"},Ha={key:1,class:"divide-y divide-default"},Ya={class:"min-w-0"},Za={class:"flex items-center gap-2 flex-wrap"},Xa={class:"font-medium text-default truncate font-mono"},Qa={class:"text-sm text-dimmed"},et={class:"flex items-center gap-1"},lt={key:2,class:"text-center py-4 text-muted"},at={key:1,class:"space-y-4"},tt={class:"flex items-center gap-2"},st={class:"flex items-center justify-end gap-2"},ot=J({__name:"ProjectEnvSection",props:{project:{}},setup(g){const a=g,i=ve(),l=V([]),c=V(!1),r=V(null),f=V(!1),v=V(null),u=be({name:"",value:"",enabled:!0,showValue:!1}),s=V({}),_=V(null),q=j(()=>Wa({name:u.name,value:u.value},v.value));async function h(){c.value=!0;const{data:M,error:y,status:O}=await G(`/api/projects/${a.project.projectId}/env`);if(y){O!==401&&i.add({title:"Failed to load env vars",description:y,color:"error",icon:"i-lucide-alert-circle"}),l.value=[],c.value=!1;return}l.value=M?.vars??[],c.value=!1}function C(){D(),v.value="add"}function U(M){D(),v.value=M.name,u.name=M.name,u.enabled=M.enabled,u.value="",u.showValue=!1}function w(){v.value=null}function D(){u.name="",u.value="",u.enabled=!0,u.showValue=!1,s.value={},_.value=null}async function T(){if(!q.value)return;f.value=!0;const M=JSON.stringify({value:u.value,enabled:u.enabled}),{error:y,status:O,data:I}=await G(`/api/projects/${a.project.projectId}/env/${encodeURIComponent(u.name)}`,{method:"PUT",body:M});if(f.value=!1,y){O===400&&I?.issues?(s.value=Object.fromEntries(I.issues.map(P=>[P.path.join("."),P.message])),i.add({title:"Validation error",description:I.issues.map(P=>P.message).join("; "),color:"error",icon:"i-lucide-alert-circle"})):i.add({title:"Save failed",description:y,color:"error",icon:"i-lucide-alert-circle"});return}i.add({title:v.value==="add"?"Added":"Updated",description:u.name,color:"success",icon:"i-lucide-check-circle"}),v.value=null,await h()}async function S(M){r.value=M;const{status:y,error:O}=await G(`/api/projects/${a.project.projectId}/env/${encodeURIComponent(M)}`,{method:"DELETE"});if(r.value=null,y===204||y===404){i.add({title:"Deleted",description:M,color:"success",icon:"i-lucide-check-circle"}),_.value=null,await h();return}i.add({title:"Delete failed",description:O??"unknown",color:"error",icon:"i-lucide-alert-circle"})}return Ae(h),(M,y)=>{const O=me,I=Ue,P=de,k=ge,N=pe,ee=el;return d(),p("div",Na,[v.value===null?(d(),p("div",Ka,[y[4]||(y[4]=o("p",{class:"text-sm text-dimmed"},[x(" These variables are injected into every builder container run and are available to "),o("code",null,".devbot/init.sh"),x(" after clone. ")],-1)),c.value?(d(),p("div",Ja,[(d(),p(z,null,K(3,$=>t(O,{key:$,class:"h-12 w-full"})),64))])):l.value.length>0?(d(),p("ul",Ha,[(d(!0),p(z,null,K(l.value,$=>(d(),p("li",{key:$.name,class:"flex items-center justify-between py-3 gap-2"},[o("div",Ya,[o("div",Za,[o("p",Xa,W($.name),1),t(I,{label:$.enabled?"Enabled":"Disabled",color:$.enabled?"success":"neutral",variant:"subtle",size:"sm"},null,8,["label","color"])]),o("p",Qa,W($.hasValue?"••••••••":"no value"),1)]),o("div",et,[t(P,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost","aria-label":"Edit",onClick:X=>U($)},null,8,["onClick"]),t(P,{icon:_.value===$.name?"i-lucide-check":"i-lucide-trash",color:_.value===$.name?"error":"neutral",variant:"ghost",loading:r.value===$.name,"aria-label":"Delete",onClick:X=>_.value===$.name?S($.name):_.value=$.name},null,8,["icon","color","loading","onClick"])])]))),128))])):c.value?F("",!0):(d(),p("div",lt," No environment variables configured for this project. ")),c.value?F("",!0):(d(),E(P,{key:3,label:"Add variable",icon:"i-lucide-plus",color:"primary",variant:"outline",class:"w-full justify-center",onClick:C}))])):(d(),p("div",at,[t(N,{label:"Name",error:s.value.name??!1},{default:m(()=>[t(k,{modelValue:u.name,"onUpdate:modelValue":y[0]||(y[0]=$=>u.name=$),placeholder:"e.g. DATABASE_URL","aria-label":"Variable name",class:"w-full font-mono",disabled:v.value!=="add"},null,8,["modelValue","disabled"]),y[5]||(y[5]=o("p",{class:"text-xs text-dimmed mt-1"},"Uppercase letters, digits, underscore. Must start with a letter or underscore.",-1))]),_:1},8,["error"]),t(N,{label:v.value==="add"?"Value":"Value (leave empty to keep unchanged)",error:s.value.value??!1},{default:m(()=>[t(k,{modelValue:u.value,"onUpdate:modelValue":y[1]||(y[1]=$=>u.value=$),type:u.showValue?"text":"password",placeholder:"••••••••","aria-label":"Variable value",class:"w-full font-mono"},null,8,["modelValue","type"]),t(P,{icon:u.showValue?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"ghost",size:"xs",class:"mt-1",label:u.showValue?"Hide":"Show",onClick:y[2]||(y[2]=$=>u.showValue=!u.showValue)},null,8,["icon","label"])]),_:1},8,["label","error"]),o("div",tt,[t(ee,{modelValue:u.enabled,"onUpdate:modelValue":y[3]||(y[3]=$=>u.enabled=$),"aria-label":"Enabled"},null,8,["modelValue"]),y[6]||(y[6]=o("span",{class:"text-sm"},"Enabled",-1))]),o("div",st,[t(P,{label:"Cancel",color:"neutral",variant:"outline",disabled:f.value,onClick:w},null,8,["disabled"]),t(P,{label:v.value==="add"?"Add":"Save",icon:"i-lucide-check",color:"primary",loading:f.value,disabled:!q.value,onClick:T},null,8,["label","loading","disabled"])])]))])}}}),rt={key:0,class:"space-y-3"},it={class:"space-y-3 py-6"},nt={key:0,class:"space-y-2"},dt={class:"space-y-8"},gt=J({__name:"ProjectDetailPage",setup(g){const a=yl(),i=j(()=>Number(a.params.id)),l=j(()=>je.value.find(u=>u.projectId===i.value)??null);te(()=>i.value,()=>{je.value.length===0&&Vl()},{immediate:!0}),te(l,u=>{u&&(document.title=`DevBot - Project - ${u.projectPath}`)},{immediate:!0});const c=Wl(l),f=jl(["settings","access","env","repos","mcp","webhooks"],"settings"),v=[{label:"Settings",icon:"i-lucide-sliders-horizontal",value:"settings",slot:"settings"},{label:"Access",icon:"i-lucide-share-2",value:"access",slot:"access"},{label:"Environment",icon:"i-lucide-terminal",value:"env",slot:"env"},{label:"Skills & Agents",icon:"i-lucide-sparkles",value:"repos",slot:"repos"},{label:"MCP",icon:"i-lucide-plug",value:"mcp",slot:"mcp"},{label:"Webhooks",icon:"i-lucide-webhook",value:"webhooks",slot:"webhooks"}];return(u,s)=>{const _=Le,q=de,h=Ge,C=me,U=_l,w=kl,D=ll,T=Oe;return d(),E(T,{id:"project"},{header:m(()=>[t(h,{title:l.value?.projectPath??"Project",icon:"i-lucide-folder-git-2"},{leading:m(()=>[t(_)]),right:m(()=>[t(q,{label:"Back to projects",icon:"i-lucide-arrow-left",color:"neutral",variant:"ghost",to:"/projects"}),e(f)==="settings"?(d(),E(q,{key:0,label:"Save settings",icon:"i-lucide-check",color:"primary",loading:e(c).submitting,disabled:!e(c).isValid||e(c).loading,onClick:e(c).submit},null,8,["loading","disabled","onClick"])):F("",!0)]),_:1},8,["title"])]),body:m(()=>[e(xl)&&!l.value?(d(),p("div",rt,[(d(),p(z,null,K(4,S=>t(C,{key:S,class:"h-12 w-full"})),64))])):l.value?(d(),E(D,{key:2,modelValue:e(f),"onUpdate:modelValue":s[0]||(s[0]=S=>wl(f)?f.value=S:null),items:v,variant:"link","unmount-on-hide":!1,ui:{trigger:"grow"},class:"gap-6"},{settings:m(()=>[e(c).loading?(d(),p("div",nt,[(d(),p(z,null,K(4,S=>t(C,{key:S,class:"h-10 w-full"})),64))])):(d(),E(_a,{key:1}))]),access:m(()=>[t(Oa,{project:l.value},null,8,["project"])]),env:m(()=>[t(ot,{project:l.value},null,8,["project"])]),repos:m(()=>[o("div",dt,[t(_e,{scope:"project",kind:"skills",project:l.value},null,8,["project"]),t(_e,{scope:"project",kind:"agents",project:l.value},null,8,["project"])])]),mcp:m(()=>[t(tl,{scope:"project",project:l.value},null,8,["project"])]),webhooks:m(()=>[t(al,{scope:"project",project:l.value},null,8,["project"])]),_:1},8,["modelValue"])):(d(),E(w,{key:1,class:"text-center"},{default:m(()=>[o("div",it,[t(U,{name:"i-lucide-folder-x",class:"size-10 text-dimmed mx-auto"}),s[1]||(s[1]=o("p",{class:"text-muted"},"Project not found or no longer managed.",-1)),t(q,{label:"Back to projects",color:"primary",to:"/projects"})])]),_:1}))]),_:1})}}});export{gt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as H,a as Q,b as W,c as X}from"./DashboardSidebarCollapse-
|
|
1
|
+
import{_ as H,a as Q,b as W,c as X}from"./DashboardSidebarCollapse-CWmehYha.js";import{_ as Y,a as ee}from"./DashboardToolbar-DHcR2yAt.js";import{d as O,k as oe,e as b,h as V,w as p,f as T,a,i as D,l as K,t as G,m as J,n as F,p as te,q as B,s as I,v as Z,r as u,x as R,b as N,o as ae,c as C,u as ne,F as L,g as le,_ as re,y as se,j as E}from"./index-Cs2OnrL7.js";import{_ as ce,a as ie}from"./SelectMenu-B6n06FSV.js";import{a as de,r as ue}from"./useManagedProjects-DnOY5lQq.js";import{_ as pe,w as me}from"./index-RZx6yIXX.js";import{_ as ve}from"./TimeCell.vue_vue_type_script_setup_true_lang-BNWTJF4u.js";const fe={class:"flex items-center gap-1"},_e=O({__name:"ProjectsTable",props:{projects:{},loading:{type:Boolean}},emits:["remove"],setup(j,{emit:g}){const i=g,_=[{accessorKey:"projectPath",header:"Project"},{accessorKey:"createdAt",header:"Onboarded"},{id:"actions"}];return(S,m)=>{const d=oe("RouterLink"),n=D,c=pe;return b(),V(c,{data:j.projects,columns:_,loading:j.loading},{"projectPath-cell":p(({row:e})=>[a(d,{to:`/projects/${e.original.projectId}`,class:"font-medium text-default hover:text-primary"},{default:p(()=>[K(G(e.original.projectPath),1)]),_:2},1032,["to"])]),"createdAt-cell":p(({row:e})=>[a(ve,{value:e.original.createdAt||null,unit:"s"},null,8,["value"])]),"actions-cell":p(({row:e})=>[T("div",fe,[a(n,{label:"Configure",icon:"i-lucide-sliders-horizontal",color:"neutral",variant:"soft",size:"xs",to:`/projects/${e.original.projectId}`,"aria-label":`Configure project ${e.original.projectPath}`},null,8,["to","aria-label"]),a(n,{label:"Remove",icon:"i-lucide-trash",color:"error",variant:"soft",size:"xs","aria-label":`Remove project ${e.original.projectPath}`,onClick:v=>i("remove",e.original)},null,8,["aria-label","onClick"])])]),_:1},8,["data","loading"])}}}),ge=O({__name:"AddProjectModal",props:I({managedIds:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:I(["done"],["update:open"]),setup(j,{emit:g}){const i=J(j,"open"),_=j,S=g,m=F(),d=u(""),n=u([]),c=u(new Set),e=u(!1),v=u(!1);let y;te(()=>{y&&clearTimeout(y)});async function h(){e.value=!0;const{data:l,error:t,status:o}=await N(`/api/projects?q=${encodeURIComponent(d.value)}`);if(e.value=!1,t){o!==401&&m.add({title:"Search failed",description:t,color:"error",icon:"i-lucide-alert-circle"}),n.value=[];return}n.value=l?.projects??[]}B(d,()=>{y&&clearTimeout(y),y=setTimeout(h,300)}),B(i,l=>{l&&(d.value="",c.value=new Set,n.value=[],h())});const x=R(()=>new Set(_.managedIds??[])),A=R(()=>n.value.filter(l=>!x.value.has(l.id)).slice(0,10)),k=u(new Map);B(n,l=>{if(l.length===0)return;const t=new Map(k.value);for(const o of l)t.set(o.id,o);k.value=t});const s=R(()=>{const l=new Set(A.value.map(o=>o.id)),t=[...c.value].map(o=>k.value.get(o)).filter(o=>!!o&&!l.has(o.id));return[...A.value,...t].map(o=>({value:String(o.id),label:o.path}))}),U=R({get:()=>[...c.value].map(String),set:l=>{c.value=new Set(l.map(Number))}});async function $(){if(c.value.size===0)return;v.value=!0;const l={projects:[...c.value].map(r=>{const z=k.value.get(r)??n.value.find(q=>q.id===r);return{id:r,path:z?.path??`project ${r}`}})},{data:t,error:o,status:P}=await N("/api/onboard",{method:"POST",body:JSON.stringify(l)});if(v.value=!1,o){m.add({title:P===400?"Validation error":"Onboard failed",description:o,color:"error",icon:"i-lucide-alert-circle"});return}const w=t?.results??[];for(const r of w)r.ok?m.add({title:r.created?"Onboarded":"Already onboarded",description:r.projectPath,color:"success",icon:"i-lucide-check-circle"}):m.add({title:"Failed",description:`${r.projectPath}: ${r.error??"unknown error"}`,color:"error",icon:"i-lucide-alert-circle"});S("done",w),i.value=!1}return(l,t)=>{const o=ce,P=D,w=Z;return b(),V(w,{open:i.value,"onUpdate:open":t[2]||(t[2]=r=>i.value=r),title:"Add project",description:"Search projects and select one or more to onboard.",ui:{footer:"justify-end"}},{body:p(()=>[a(o,{modelValue:U.value,"onUpdate:modelValue":t[0]||(t[0]=r=>U.value=r),"search-term":d.value,"onUpdate:searchTerm":t[1]||(t[1]=r=>d.value=r),items:s.value,"value-key":"value",multiple:"","ignore-filter":"","reset-search-term-on-select":!1,loading:e.value,"search-input":{icon:"i-lucide-search",loading:e.value},placeholder:"Search projects…","aria-label":"Search projects",class:"w-full"},{empty:p(()=>[...t[3]||(t[3]=[K("No projects found.",-1)])]),_:1},8,["modelValue","search-term","items","loading","search-input"])]),footer:p(({close:r})=>[a(P,{label:"Cancel",color:"neutral",variant:"outline",onClick:r},null,8,["onClick"]),a(P,{label:"Onboard selected",icon:"i-lucide-plus",color:"primary",loading:v.value,disabled:c.value.size===0,onClick:$},null,8,["loading","disabled"])]),_:1},8,["open"])}}}),he=O({__name:"RemoveProjectModal",props:I({project:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:I(["removed"],["update:open"]),setup(j,{emit:g}){const i=J(j,"open"),_=j,S=g,m=F(),d=u(!1);async function n(){if(!_.project)return;d.value=!0;const{data:c,error:e,status:v}=await N(`/api/revoke/${_.project.projectId}`,{method:"POST"});if(d.value=!1,v===404||v===200&&c?.ok){m.add({title:"Revoked",description:_.project.projectPath,color:"success",icon:"i-lucide-check-circle"}),S("removed"),i.value=!1;return}if(e){m.add({title:"Revoke failed",description:e,color:"error",icon:"i-lucide-alert-circle"});return}}return(c,e)=>{const v=D,y=Z;return b(),V(y,{open:i.value,"onUpdate:open":e[0]||(e[0]=h=>i.value=h),title:"Revoke project",description:j.project?.projectPath??"",ui:{footer:"justify-end"}},{body:p(()=>[...e[1]||(e[1]=[T("p",{class:"text-muted"}," This removes the bot from the project, deletes its webhook, and deletes the stored signing token. The bot will no longer respond to mentions in this project. Re-onboard via the project list to undo. ",-1)])]),footer:p(({close:h})=>[a(v,{label:"Cancel",color:"neutral",variant:"outline",disabled:d.value,onClick:h},null,8,["disabled","onClick"]),a(v,{label:"Confirm revoke",icon:"i-lucide-trash",color:"error",loading:d.value,onClick:n},null,8,["loading"])]),_:1},8,["open","description"])}}}),je={class:"space-y-4"},be={key:0,class:"space-y-3"},ye={class:"space-y-3 py-6"},ke={class:"text-muted"},$e={key:0,class:"flex justify-center pt-2"},M=15,Re=O({__name:"ProjectsPage",setup(j){const g=u([]),i=u(!0),_=u(0),S=F(),m=u(""),d=R(()=>m.value.trim()!==""),n=u(1),c=u(!1),e=u(!1),v=u(null);function y(k){v.value=k,e.value=!0}async function h(){i.value=!0;const k=(n.value-1)*M,s=new URLSearchParams,U=m.value.trim();U.length>0&&s.set("q",U),s.set("limit",String(M)),s.set("offset",String(k));const{data:$,error:l,status:t}=await N(`/api/managed?${s.toString()}`);if(i.value=!1,l){t!==401&&S.add({title:"Failed to load projects",description:l,color:"error",icon:"i-lucide-alert-circle"});return}g.value=$?.projects??[],_.value=$?.total??g.value.length;const o=Math.max(1,Math.ceil(_.value/M));if(n.value>o){n.value=o;return}}async function x(){await Promise.all([h(),ue()])}function A(){n.value!==1?n.value=1:h()}return me(m,A,{debounce:300}),B(n,()=>{h()}),ae(x),(k,s)=>{const U=X,$=D,l=W,t=ie,o=ee,P=Q,w=se,r=re,z=Y,q=H;return b(),C(L,null,[a(q,{id:"projects"},{header:p(()=>[a(l,{title:"Projects",icon:"i-lucide-folder-git-2"},{leading:p(()=>[a(U)]),right:p(()=>[a($,{label:"Add project",icon:"i-lucide-plus",color:"primary",onClick:s[0]||(s[0]=f=>c.value=!0)}),a($,{label:"Reload",icon:"i-lucide-refresh-cw",color:"neutral",variant:"soft",loading:i.value,onClick:h},null,8,["loading"])]),_:1}),a(o,null,{left:p(()=>[a(t,{modelValue:m.value,"onUpdate:modelValue":s[1]||(s[1]=f=>m.value=f),icon:"i-lucide-search",placeholder:"Search project path","aria-label":"Search project path",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:p(()=>[T("div",je,[i.value&&g.value.length===0?(b(),C("div",be,[(b(),C(L,null,le(3,f=>a(P,{key:f,class:"h-10 w-full"})),64))])):g.value.length===0?(b(),V(r,{key:1,class:"text-center"},{default:p(()=>[T("div",ye,[a(w,{name:"i-lucide-folder-open",class:"size-10 text-dimmed mx-auto"}),T("p",ke,G(d.value?"No projects match your search.":"No projects onboarded yet."),1),d.value?E("",!0):(b(),V($,{key:0,label:"Add project",icon:"i-lucide-plus",color:"primary",onClick:s[2]||(s[2]=f=>c.value=!0)}))])]),_:1})):(b(),C(L,{key:2},[a(_e,{projects:g.value,loading:i.value,onRemove:y},null,8,["projects","loading"]),_.value>M?(b(),C("div",$e,[a(z,{page:n.value,"onUpdate:page":s[3]||(s[3]=f=>n.value=f),total:_.value,"items-per-page":M},null,8,["page","total"])])):E("",!0)],64))])]),_:1}),a(ge,{open:c.value,"onUpdate:open":s[4]||(s[4]=f=>c.value=f),"managed-ids":ne(de).map(f=>f.projectId),onDone:x},null,8,["open","managed-ids"]),a(he,{open:e.value,"onUpdate:open":s[5]||(s[5]=f=>e.value=f),project:v.value,onRemoved:x},null,8,["open","project"])],64)}}});export{Re as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as E,u as F}from"./index-
|
|
1
|
+
import{_ as E,u as F}from"./index-RZx6yIXX.js";import{d as R,e as r,h as N,w as i,f as n,a as b,i as Q,j as g,t as o,u as f,a1 as O,c as v,x as W,r as $,m as z,q as G,a7 as H,s as J,l as m,b as j}from"./index-Cs2OnrL7.js";import{f as V,a as w,t as P,u as X}from"./usage-format-RcSEOPCq.js";import{_ as Y}from"./WorkItemCell.vue_vue_type_script_setup_true_lang-DAJMkNI8.js";import{_ as D}from"./TimeCell.vue_vue_type_script_setup_true_lang-BNWTJF4u.js";import{_ as Z,a as _,f as ee}from"./LogSlideover.vue_vue_type_script_setup_true_lang-F1i8DRzf.js";const te={class:"flex items-center gap-1.5"},ae=["title"],ne={key:1,class:"text-sm text-dimmed"},se={class:"text-sm text-muted whitespace-nowrap"},le={class:"text-sm text-muted whitespace-nowrap"},oe={class:"text-sm text-muted whitespace-nowrap"},ie={class:"text-sm text-muted"},re={class:"flex items-center gap-1"},Ke=R({__name:"RunsTable",props:{runs:{},loading:{type:Boolean},stopping:{},compact:{type:Boolean}},emits:["logs","stop","details"],setup(a,{emit:I}){const S=a,p=I,h=[{accessorKey:"workItemId",header:"Work item"},{accessorKey:"mode",header:"Mode"},{accessorKey:"model",header:"Model"},{accessorKey:"state",header:"State"},{accessorKey:"phase",header:"Phase"},{accessorKey:"tokens",header:"Tokens"},{accessorKey:"costUsd",header:"Cost"},{accessorKey:"enqueuedAt",header:"Queued"},{accessorKey:"finishedAt",header:"Finished"},{accessorKey:"duration",header:"Duration"},{accessorKey:"attempts",header:"Attempts"},{id:"actions"}],K=[{accessorKey:"workItemId",header:"Work item"},{accessorKey:"mode",header:"Mode"},{accessorKey:"model",header:"Model"},{accessorKey:"state",header:"State"},{accessorKey:"enqueuedAt",header:"Queued"},{accessorKey:"duration",header:"Duration"},{accessorKey:"attempts",header:"Attempts"},{id:"actions"}],M=W(()=>S.compact?K:h),T=new Set(["queued","waiting","running"]),x=X({scheduler:l=>F(l,1e3)}),d=$(null);function C(l){if(d.value!==l.seq){d.value=l.seq;return}d.value=null,p("stop",l)}function k(l){return l==="running"?"primary":l==="queued"||l==="waiting"?"warning":l==="ok"?"success":l==="failed"?"error":"neutral"}function q(l){const y=l.durationMs!==null?l.durationMs:T.has(l.state)&&l.enqueuedAt>0?Math.max(0,x.value.getTime()-l.enqueuedAt):null;if(y===null)return"—";const c=Math.round(y/1e3);return c<60?`${c}s`:`${Math.floor(c/60)}m ${c%60}s`}return(l,y)=>{const c=O,A=Q,L=E;return r(),N(L,{data:a.runs,columns:M.value,loading:a.loading},{"workItemId-cell":i(({row:e})=>[b(Y,{"work-item-iid":e.original.workItemIid,"work-item-title":e.original.workItemTitle,"project-path":e.original.projectPath,"project-id":e.original.projectId,onOpen:U=>p("details",e.original)},null,8,["work-item-iid","work-item-title","project-path","project-id","onOpen"])]),"mode-cell":i(({row:e})=>[b(c,{label:e.original.mode,color:"neutral",variant:"subtle"},null,8,["label"])]),"model-cell":i(({row:e})=>[b(Z,{model:e.original.model,variant:e.original.variant},null,8,["model","variant"])]),"state-cell":i(({row:e})=>[n("div",te,[b(c,{label:e.original.state,color:k(e.original.state),variant:"subtle"},null,8,["label","color"]),e.original.state==="waiting"&&e.original.position!==null?(r(),v("span",{key:0,class:"text-xs text-muted whitespace-nowrap",title:`Queue position ${e.original.position}`},"#"+o(e.original.position),9,ae)):g("",!0)])]),"phase-cell":i(({row:e})=>[e.original.phase?(r(),N(c,{key:0,label:e.original.phase,color:"neutral",variant:"subtle"},null,8,["label"])):(r(),v("span",ne,"—"))]),"tokens-cell":i(({row:e})=>[n("span",se,o(f(w)(f(P)(e.original))),1)]),"costUsd-cell":i(({row:e})=>[n("span",le,o(f(V)(e.original.costUsd)),1)]),"enqueuedAt-cell":i(({row:e})=>[b(D,{value:e.original.enqueuedAt,unit:"ms"},null,8,["value"])]),"finishedAt-cell":i(({row:e})=>[b(D,{value:e.original.finishedAt,unit:"ms"},null,8,["value"])]),"duration-cell":i(({row:e})=>[n("span",oe,o(q(e.original)),1)]),"attempts-cell":i(({row:e})=>[n("span",ie,o(e.original.attempts),1)]),"actions-cell":i(({row:e})=>[n("div",re,[b(A,{label:"Logs",icon:"i-lucide-scroll-text",color:"neutral",variant:"ghost",size:"xs",disabled:e.original.logKind==="none","aria-label":`View logs for run ${e.original.historyId??e.original.seq}`,onClick:U=>p("logs",e.original)},null,8,["disabled","aria-label","onClick"]),e.original.canStop?(r(),N(A,{key:0,label:d.value===e.original.seq?"Confirm":"Stop",icon:d.value===e.original.seq?"i-lucide-check":"i-lucide-square",color:d.value===e.original.seq?"error":"neutral",variant:"ghost",size:"xs",loading:a.stopping===e.original.seq,"aria-label":`Stop task ${e.original.seq}`,onClick:U=>C(e.original)},null,8,["label","icon","color","loading","aria-label","onClick"])):g("",!0)])]),_:1},8,["data","columns","loading"])}}}),ue={key:0,class:"text-sm text-muted space-y-1"},de={key:0},ce={key:1},me={key:2},fe={key:3},ge={key:4},ve={key:5},pe=2e3,Te=R({__name:"RunDetailSlideover",props:J({run:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(a){const I=z(a,"open"),S=a,p=$(""),h=$(!1),K=$(!1),M=$(""),T=$(!1),x=$("");let d=null,C=!1,k=0;function q(){d!==null&&(clearInterval(d),d=null)}function l(){p.value="",h.value=!1,K.value=!1,M.value="",T.value=!1,x.value=""}function y(){return"Run logs expired. The run-log file was removed by the retention policy."}async function c(s,t){if(C)return;C=!0;const{data:u}=await j(`/api/tasks/${s}/logs`);C=!1,t===k&&u&&(p.value=u.text,h.value=u.available,K.value=u.truncated,M.value=u.phaseLabel,u.archived&&(T.value=!1,q(),u.available||(x.value=u.reason==="expired"?y():"No logs captured for this run.")))}async function A(s,t){if(!s.historyId){h.value=!1,x.value=s.logKind==="none"?"No logs captured for this run.":y();return}const{data:u}=await j(`/api/run-history/${s.historyId}`);if(t!==k)return;const B=u?.run;p.value=B?.logs??"",h.value=B?.logAvailable??!1,K.value=B?.truncated??!1,h.value||(x.value=B?.logReason==="expired"?y():"No logs captured for this run.")}function L(s){q(),l();const t=++k;s.logKind==="live"?(T.value=!0,(async()=>(await c(s.seq,t),t===k&&(d=setInterval(()=>{c(s.seq,t)},pe))))()):(x.value=s.logKind==="none"?"No logs captured for this run.":y(),A(s,t))}G([I,()=>S.run],([s,t])=>{s&&t?L(t):(k++,q())}),H(()=>{k++,q()});function e(s){return s?new Date(s).toLocaleString():"—"}function U(){const s=S.run;if(!s||s.durationMs===null)return"—";const t=Math.round(s.durationMs/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}return(s,t)=>(r(),N(_,{open:I.value,"onUpdate:open":t[0]||(t[0]=u=>I.value=u),title:a.run?.canStop?"Container logs":"Run detail",description:a.run?`#${a.run.workItemIid} ${a.run.workItemTitle}`:"",text:p.value,available:h.value,truncated:K.value,"phase-label":M.value,live:T.value,"unavailable-text":x.value,"work-item-url":a.run?.workItemUrl??""},{meta:i(()=>[a.run?(r(),v("div",ue,[n("p",null,[t[1]||(t[1]=n("span",{class:"text-default font-medium"},"State:",-1)),m(" "+o(a.run.state),1)]),a.run.state==="waiting"&&a.run.position!==null?(r(),v("p",de,[t[2]||(t[2]=n("span",{class:"text-default font-medium"},"Queue position:",-1)),m(" #"+o(a.run.position),1)])):g("",!0),a.run.phase?(r(),v("p",ce,[t[3]||(t[3]=n("span",{class:"text-default font-medium"},"Phase:",-1)),m(" "+o(a.run.phase),1)])):g("",!0),n("p",null,[t[4]||(t[4]=n("span",{class:"text-default font-medium"},"Model:",-1)),m(" "+o(f(ee)(a.run.model,a.run.variant)),1)]),n("p",null,[t[5]||(t[5]=n("span",{class:"text-default font-medium"},"Started:",-1)),m(" "+o(e(a.run.startedAt)),1)]),n("p",null,[t[6]||(t[6]=n("span",{class:"text-default font-medium"},"Finished:",-1)),m(" "+o(e(a.run.finishedAt)),1)]),n("p",null,[t[7]||(t[7]=n("span",{class:"text-default font-medium"},"Duration:",-1)),m(" "+o(U()),1)]),a.run.exitCode!==null?(r(),v("p",me,[t[8]||(t[8]=n("span",{class:"text-default font-medium"},"Exit code:",-1)),m(" "+o(a.run.exitCode),1)])):g("",!0),f(P)(a.run)>0||a.run.costUsd>0?(r(),v("p",fe,[t[9]||(t[9]=n("span",{class:"text-default font-medium"},"Tokens:",-1)),m(" "+o(f(w)(a.run.inputTokens))+" in · "+o(f(w)(a.run.outputTokens))+" out · "+o(f(w)(a.run.reasoningTokens))+" reasoning · "+o(f(w)(a.run.cacheReadTokens))+" cache read · "+o(f(w)(a.run.cacheWriteTokens))+" cache write",1)])):g("",!0),a.run.costUsd>0?(r(),v("p",ge,[t[10]||(t[10]=n("span",{class:"text-default font-medium"},"Cost:",-1)),m(" "+o(f(V)(a.run.costUsd)),1)])):g("",!0),a.run.message?(r(),v("p",ve,[t[11]||(t[11]=n("span",{class:"text-default font-medium"},"Message:",-1)),m(" "+o(a.run.message),1)])):g("",!0)])):g("",!0)]),_:1},8,["open","title","description","text","available","truncated","phase-label","live","unavailable-text","work-item-url"]))}});export{Te as _,Ke as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as ne,a as ue,b as ie,c as re}from"./DashboardSidebarCollapse-
|
|
1
|
+
import{_ as ne,a as ue,b as ie,c as re}from"./DashboardSidebarCollapse-CWmehYha.js";import{_ as ce,a as de}from"./DashboardToolbar-DHcR2yAt.js";import{d as me,a4 as ve,a5 as pe,a6 as _e,n as fe,q as Q,o as ge,c as h,a as t,w as m,F as T,r as o,b as z,e as r,f as D,g as be,h as C,_ as ye,y as we,t as $e,j as B,a1 as he,i as Ue,a3 as Se,u as ke,x as U}from"./index-Cs2OnrL7.js";import{_ as Ve,a as xe}from"./SelectMenu-B6n06FSV.js";import{u as je}from"./useRouteTab-B-Vrl8p9.js";import{b as Ie,_ as Pe}from"./PeriodRangePicker.vue_vue_type_script_setup_true_lang-YOwfelec.js";import{_ as Re,a as qe}from"./RunDetailSlideover.vue_vue_type_script_setup_true_lang-BLDs3UaU.js";import{w as Ae}from"./index-RZx6yIXX.js";import"./Select-DGVDts9_.js";import"./usage-format-RcSEOPCq.js";import"./WorkItemCell.vue_vue_type_script_setup_true_lang-DAJMkNI8.js";import"./TimeCell.vue_vue_type_script_setup_true_lang-BNWTJF4u.js";import"./LogSlideover.vue_vue_type_script_setup_true_lang-F1i8DRzf.js";function Te(s){const c=new URLSearchParams(Ie(s.period,s.range,{projectId:s.projectId,model:s.model,mode:s.mode}));c.set("status",s.status);const n=s.search.trim();return n.length>0&&c.set("q",n),c.set("limit",String(s.limit)),c.set("offset",String(s.offset)),c.toString()}const De={class:"space-y-4"},Ce={key:0,class:"space-y-3"},Be={class:"space-y-3 py-6"},Ee={class:"text-muted"},Me={key:0,class:"flex justify-center pt-2"},S=15,Ye=me({__name:"RunsPage",setup(s){const n=je(["all","active","errored","cancelled","settled"],"all","status"),G=[{label:"All runs",value:"all"},{label:"Active",value:"active"},{label:"Errored",value:"errored"},{label:"Cancelled",value:"cancelled"},{label:"Settled",value:"settled"}],v=o(365),Z=ve(),E=pe(Z),k=_e({start:E.subtract({days:29}),end:E}),p=o(null),_=o(null),f=o(null),g=o(""),b=o([]),y=o(!0),d=o({active:0,max:0,waiting:0}),V=o({projects:[],models:[],modes:[]}),M=o({}),P=fe(),R=o(!1),N=o(null),i=o(1),x=o(0),q=o(null),H=U(()=>[{label:"All projects",value:null},...V.value.projects.map(l=>({label:M.value[String(l)]??`#${l}`,value:l}))]),J=U(()=>[{label:"All models",value:null},...V.value.models.map(l=>({label:l||"—",value:l}))]),K=U(()=>[{label:"All modes",value:null},...V.value.modes.map(l=>({label:l||"—",value:l}))]),F=U(()=>n.value==="all"||n.value==="active"),W=U(()=>p.value!==null||_.value!==null||f.value!==null||g.value.trim()!==""||v.value!==365);function L(l){N.value=l,R.value=!0}async function X(l){q.value=l.seq;const{error:e,status:u}=await z(`/api/tasks/${l.seq}/stop`,{method:"POST"});if(q.value=null,e){u!==401&&P.add({title:"Failed to stop task",description:e,color:"error",icon:"i-lucide-alert-circle"});return}P.add({title:"Stop requested",color:"success",icon:"i-lucide-square"}),await w()}async function w(){y.value=!0;const l=(i.value-1)*S,e=Te({status:n.value,period:v.value,range:k.value,projectId:p.value,model:_.value,mode:f.value,search:g.value,limit:S,offset:l}),{data:u,error:$,status:A}=await z(`/api/runs?${e}`);if(y.value=!1,$){A!==401&&P.add({title:"Failed to load runs",description:$,color:"error",icon:"i-lucide-alert-circle"});return}b.value=u?.runs??[],x.value=u?.total??b.value.length,d.value=u?.quota??{active:0,max:0,waiting:0},V.value=u?.filterOptions??{projects:[],models:[],modes:[]},M.value=u?.projectPaths??{};const j=Math.max(1,Math.ceil(x.value/S));if(i.value>j){i.value=j;return}}function O(){i.value!==1?i.value=1:w()}return Q([n,v,k,p,_,f],O,{deep:!0}),Ae(g,O,{debounce:300}),Q(i,()=>{w()}),ge(w),(l,e)=>{const u=re,$=he,A=Ue,j=ie,I=Ve,Y=xe,ee=de,ae=ue,le=we,te=ye,oe=ce,se=ne;return r(),h(T,null,[t(se,{id:"runs"},{header:m(()=>[t(j,{title:"Runs",icon:"i-lucide-activity"},{leading:m(()=>[t(u)]),right:m(()=>[F.value?(r(),C($,{key:0,label:`${d.value.active} / ${d.value.max} running`,color:d.value.active>0?"primary":"neutral",variant:"subtle",icon:"i-lucide-activity"},null,8,["label","color"])):B("",!0),F.value?(r(),C($,{key:1,label:`${d.value.waiting} waiting`,color:d.value.waiting>0?"warning":"neutral",variant:"subtle",icon:"i-lucide-hourglass"},null,8,["label","color"])):B("",!0),t(A,{label:"Reload",icon:"i-lucide-refresh-cw",color:"neutral",variant:"soft",loading:y.value,onClick:w},null,8,["loading"])]),_:1}),t(ee,null,{left:m(()=>[t(I,{modelValue:ke(n),"onUpdate:modelValue":e[0]||(e[0]=a=>Se(n)?n.value=a:null),items:G,"value-key":"value",class:"w-36","aria-label":"Run status filter"},null,8,["modelValue"]),t(Pe,{period:v.value,"onUpdate:period":e[1]||(e[1]=a=>v.value=a),range:k.value,"onUpdate:range":e[2]||(e[2]=a=>k.value=a)},null,8,["period","range"]),t(I,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=a=>p.value=a),items:H.value,"value-key":"value",class:"w-48","aria-label":"Project filter"},null,8,["modelValue","items"]),t(I,{modelValue:_.value,"onUpdate:modelValue":e[4]||(e[4]=a=>_.value=a),items:J.value,"value-key":"value",class:"w-56","aria-label":"Model filter"},null,8,["modelValue","items"]),t(I,{modelValue:f.value,"onUpdate:modelValue":e[5]||(e[5]=a=>f.value=a),items:K.value,"value-key":"value",class:"w-40","aria-label":"Mode filter"},null,8,["modelValue","items"]),t(Y,{modelValue:g.value,"onUpdate:modelValue":e[6]||(e[6]=a=>g.value=a),icon:"i-lucide-search",placeholder:"Search work item title","aria-label":"Search work item title",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:m(()=>[D("div",De,[y.value&&b.value.length===0?(r(),h("div",Ce,[(r(),h(T,null,be(3,a=>t(ae,{key:a,class:"h-10 w-full"})),64))])):b.value.length===0?(r(),C(te,{key:1,class:"text-center"},{default:m(()=>[D("div",Be,[t(le,{name:"i-lucide-list-checks",class:"size-10 text-dimmed mx-auto"}),D("p",Ee,$e(W.value?"No runs match your filters.":"No runs to show."),1)])]),_:1})):(r(),h(T,{key:2},[t(qe,{runs:b.value,loading:y.value,stopping:q.value,onLogs:L,onDetails:L,onStop:X},null,8,["runs","loading","stopping"]),x.value>S?(r(),h("div",Me,[t(oe,{page:i.value,"onUpdate:page":e[7]||(e[7]=a=>i.value=a),total:x.value,"items-per-page":S},null,8,["page","total"])])):B("",!0)],64))])]),_:1}),t(Re,{open:R.value,"onUpdate:open":e[8]||(e[8]=a=>R.value=a),run:N.value},null,8,["open","run"])],64)}}});export{Ye as default};
|