@coreplane/switchboard 1.260.3 → 1.260.4

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.
Files changed (121) hide show
  1. package/dist/assets/deploy/cloudflare-resident/Dockerfile +11 -2
  2. package/dist/assets/package-lock.json +3 -3
  3. package/dist/assets/package.json +4 -3
  4. package/dist/assets/project.json +4 -0
  5. package/dist/assets/source.json +3 -3
  6. package/dist/assets/src/core/coordinator/driver.ts +4 -4
  7. package/dist/assets/src/core/runFriction.ts +1 -1
  8. package/dist/assets/src/core/ship/contract.ts +1 -1
  9. package/dist/assets/src/core/ship/coordinator.ts +31 -31
  10. package/dist/assets/src/core/ship/renewal.ts +3 -1
  11. package/dist/assets/src/execution/bashTimeout.ts +1 -1
  12. package/dist/assets/src/execution/sandboxErrors.ts +6 -6
  13. package/dist/assets/web/dist/.vite/manifest.json +488 -488
  14. package/dist/assets/web/dist/assets/{AppShell-CSXDCV4x.js → AppShell-DPJVhUGP.js} +1 -1
  15. package/dist/assets/web/dist/assets/{CostChart-DsuPS2g7.js → CostChart-4TeDdbvJ.js} +1 -1
  16. package/dist/assets/web/dist/assets/CostsPage-8HDgvuWB.js +1 -0
  17. package/dist/assets/web/dist/assets/{DeliveryPage-62qCSLvk.js → DeliveryPage-BaemWKW8.js} +1 -1
  18. package/dist/assets/web/dist/assets/{HomePage-Dk3HRBc3.js → HomePage-fgKQHLaO.js} +1 -1
  19. package/dist/assets/web/dist/assets/{InputMenu-BdZXnibG.js → InputMenu-BRV35UWP.js} +1 -1
  20. package/dist/assets/web/dist/assets/{MetricsPage-o5fSaCTe.js → MetricsPage-BQBuIuYU.js} +1 -1
  21. package/dist/assets/web/dist/assets/{NotFoundPage-DHuWyjlq.js → NotFoundPage-CDjMfCcj.js} +1 -1
  22. package/dist/assets/web/dist/assets/{PendingTurnRow-CeTGOXUy.js → PendingTurnRow-vuWiDzvz.js} +1 -1
  23. package/dist/assets/web/dist/assets/{PlanePage-RD0M6O6W.js → PlanePage-DXMJf8FB.js} +1 -1
  24. package/dist/assets/web/dist/assets/{ResidentDetailPage-Dl2KId95.js → ResidentDetailPage-DdC8yU_S.js} +1 -1
  25. package/dist/assets/web/dist/assets/{ResidentsIndexPage-DBy43I1R.js → ResidentsIndexPage-CSM-KODv.js} +1 -1
  26. package/dist/assets/web/dist/assets/{RunFoldRow-CwHDL-Mo.js → RunFoldRow-Csik3wD6.js} +1 -1
  27. package/dist/assets/web/dist/assets/{RunRoutePage-Du1HqLZs.js → RunRoutePage-jo6NZxsP.js} +3 -3
  28. package/dist/assets/web/dist/assets/{RunsIndexPage-BZphy3Hr.js → RunsIndexPage-Dx1Y4sSq.js} +1 -1
  29. package/dist/assets/web/dist/assets/{RunsTabs-kHbbxVHx.js → RunsTabs-C7Ua3XX5.js} +1 -1
  30. package/dist/assets/web/dist/assets/{ScheduledPage-B7jh898t.js → ScheduledPage-BuB_NZyR.js} +1 -1
  31. package/dist/assets/web/dist/assets/{SettingSelect-BfID5nF4.js → SettingSelect-CEeA4iuC.js} +1 -1
  32. package/dist/assets/web/dist/assets/{SettingsPage-3uLEsiiE.js → SettingsPage-Cn96jB6Q.js} +1 -1
  33. package/dist/assets/web/dist/assets/{SilentTurn-CKxSxnQC.js → SilentTurn-D2cJfpEq.js} +1 -1
  34. package/dist/assets/web/dist/assets/{SlackMark-CtiHrNjr.js → SlackMark-DB0MGiF5.js} +1 -1
  35. package/dist/assets/web/dist/assets/{StatusDot-x7vcK0iE.js → StatusDot-DDHUCPVJ.js} +1 -1
  36. package/dist/assets/web/dist/assets/{Tooltip-wVXCWhMp.js → Tooltip-B4VIHkAI.js} +1 -1
  37. package/dist/assets/web/dist/assets/{UnitRoutePage-V5BXK7FH.js → UnitRoutePage-C-2DfjLI.js} +1 -1
  38. package/dist/assets/web/dist/assets/{angular-html-C8b5YTHf.js → angular-html-BRRhsdQE.js} +1 -1
  39. package/dist/assets/web/dist/assets/{angular-ts-C3f4WYNe.js → angular-ts-BFj-mqCm.js} +1 -1
  40. package/dist/assets/web/dist/assets/{apl-DSHxUJc3.js → apl-CsBuy1IL.js} +1 -1
  41. package/dist/assets/web/dist/assets/{astro-BSGCCBP6.js → astro-cVaqxBZq.js} +1 -1
  42. package/dist/assets/web/dist/assets/{blade-DFeYrMKk.js → blade-MEP5mWha.js} +1 -1
  43. package/dist/assets/web/dist/assets/{browser-B6T5hjfR.js → browser-CCImen5O.js} +1 -1
  44. package/dist/assets/web/dist/assets/{c-L_QOnFVv.js → c-D4NGQ_Pd.js} +1 -1
  45. package/dist/assets/web/dist/assets/{chapel-DLQWUwhu.js → chapel-BkWImsIy.js} +1 -1
  46. package/dist/assets/web/dist/assets/{cobol-1DlMmrEO.js → cobol-RPDSPSET.js} +1 -1
  47. package/dist/assets/web/dist/assets/{coffee-BTB6os6N.js → coffee-DZ5z7oVX.js} +1 -1
  48. package/dist/assets/web/dist/assets/{cpp-BvJI2z3u.js → cpp-CrBtIaRZ.js} +1 -1
  49. package/dist/assets/web/dist/assets/{crystal-B11wGW_h.js → crystal-DJesYi6f.js} +1 -1
  50. package/dist/assets/web/dist/assets/{css-BiIWx5Pw.js → css-DO9mjau-.js} +1 -1
  51. package/dist/assets/web/dist/assets/{dist-C-XGnvM4.js → dist-Cf1CmCSK.js} +2 -2
  52. package/dist/assets/web/dist/assets/{edge-nSglEXaD.js → edge-C3VzbSW0.js} +1 -1
  53. package/dist/assets/web/dist/assets/{elixir-x7o8qMl8.js → elixir-BkD_Vhfe.js} +1 -1
  54. package/dist/assets/web/dist/assets/{elm-DGrRyqTQ.js → elm-KIM0mFPk.js} +1 -1
  55. package/dist/assets/web/dist/assets/{erb--_dh58Nw.js → erb-D2ruCqb2.js} +1 -1
  56. package/dist/assets/web/dist/assets/{eventSource-Bj_dZf6M.js → eventSource-Cv0AFlMi.js} +1 -1
  57. package/dist/assets/web/dist/assets/{git-rebase-DbpUXwyg.js → git-rebase-CnfbQTxA.js} +1 -1
  58. package/dist/assets/web/dist/assets/{glimmer-js-BG0CuZG5.js → glimmer-js-CbiwFXWH.js} +1 -1
  59. package/dist/assets/web/dist/assets/{glimmer-ts-CQIl5qyR.js → glimmer-ts-DV8ii0Pv.js} +1 -1
  60. package/dist/assets/web/dist/assets/{glsl-9PJNQTcw.js → glsl-CgmznWkA.js} +1 -1
  61. package/dist/assets/web/dist/assets/{graphql-CzVTzjEI.js → graphql-BK-bBYfH.js} +1 -1
  62. package/dist/assets/web/dist/assets/{hack-BhCmAz3Q.js → hack-DnwTTP5n.js} +1 -1
  63. package/dist/assets/web/dist/assets/{haml-BmI12COR.js → haml-DAVJsWwT.js} +1 -1
  64. package/dist/assets/web/dist/assets/{handlebars-Cib-ISTS.js → handlebars-voOVfxFL.js} +1 -1
  65. package/dist/assets/web/dist/assets/{html-D3lDapvI.js → html-3FTqwaPk.js} +1 -1
  66. package/dist/assets/web/dist/assets/{html-derivative-DRPY8vOK.js → html-derivative-CSlhLDQn.js} +1 -1
  67. package/dist/assets/web/dist/assets/{http-B9VttK6m.js → http-Vx4ilPfS.js} +1 -1
  68. package/dist/assets/web/dist/assets/{hurl-C0saNJYj.js → hurl-DxyZDE3R.js} +1 -1
  69. package/dist/assets/web/dist/assets/{java-BCFbtYAj.js → java-nWqdjNJG.js} +1 -1
  70. package/dist/assets/web/dist/assets/{javascript-nwBjnrhh.js → javascript-Dr82HOwp.js} +1 -1
  71. package/dist/assets/web/dist/assets/{jinja-CMYO9byN.js → jinja-BhjLrPOt.js} +1 -1
  72. package/dist/assets/web/dist/assets/{jison-Cko8HnE_.js → jison-DilGIUa8.js} +1 -1
  73. package/dist/assets/web/dist/assets/{json-Dzv__YsX.js → json-CrOcvmhJ.js} +1 -1
  74. package/dist/assets/web/dist/assets/{jsx-CTFxagih.js → jsx-BW_RX-fo.js} +1 -1
  75. package/dist/assets/web/dist/assets/{julia-_Xvten1-.js → julia-CWH071DB.js} +1 -1
  76. package/dist/assets/web/dist/assets/{just-bLps4qOu.js → just-DkhhoWBy.js} +1 -1
  77. package/dist/assets/web/dist/assets/{latex-D6UaYsUP.js → latex-cuHJ4TUT.js} +1 -1
  78. package/dist/assets/web/dist/assets/{liquid-CoDIeULa.js → liquid-DG6afYQN.js} +1 -1
  79. package/dist/assets/web/dist/assets/{lua-D1KFRnVf.js → lua-C5CMnCPS.js} +1 -1
  80. package/dist/assets/web/dist/assets/{main-DAL--hyj.js → main-DxPqaFu9.js} +3 -3
  81. package/dist/assets/web/dist/assets/{marko-B5N5XcOw.js → marko-Dy2_DuC4.js} +1 -1
  82. package/dist/assets/web/dist/assets/{mdc-uxzjQO3q.js → mdc-BMKb_EeA.js} +1 -1
  83. package/dist/assets/web/dist/assets/{nginx-BMJxs2TK.js → nginx-og0RgMKf.js} +1 -1
  84. package/dist/assets/web/dist/assets/{nim-DqQ3-8p1.js → nim-CQxTQQP0.js} +1 -1
  85. package/dist/assets/web/dist/assets/{org-DsY6LK59.js → org-b5lkq_Pl.js} +1 -1
  86. package/dist/assets/web/dist/assets/{perl--pq9iJFp.js → perl-D9X5_i_J.js} +1 -1
  87. package/dist/assets/web/dist/assets/{php-RHCMbsM2.js → php-CwUxvLX0.js} +1 -1
  88. package/dist/assets/web/dist/assets/{pug-CFNq_FCp.js → pug-uOIOExr0.js} +1 -1
  89. package/dist/assets/web/dist/assets/{qml-C9Acx9E8.js → qml-g5RoADf-.js} +1 -1
  90. package/dist/assets/web/dist/assets/{r-DxlU8FBd.js → r-5LdAopD3.js} +1 -1
  91. package/dist/assets/web/dist/assets/{razor-CLJ2kKih.js → razor-DwrvFLYQ.js} +1 -1
  92. package/dist/assets/web/dist/assets/{regexp-CzmdGoEp.js → regexp-dGtAaxC-.js} +1 -1
  93. package/dist/assets/web/dist/assets/{rst-D9yuxBET.js → rst-wFdW0brr.js} +1 -1
  94. package/dist/assets/web/dist/assets/{ruby-CIRcEvnD.js → ruby-DPglN6I9.js} +1 -1
  95. package/dist/assets/web/dist/assets/{sas-LOl-uUPh.js → sas-CUbCs40d.js} +1 -1
  96. package/dist/assets/web/dist/assets/{scss-BX2_sZHY.js → scss-B-DUiI1c.js} +1 -1
  97. package/dist/assets/web/dist/assets/{shellscript-4d-QvKkY.js → shellscript-lGOV7Ram.js} +1 -1
  98. package/dist/assets/web/dist/assets/{shellsession-DhB16UGy.js → shellsession-BDWtAAjr.js} +1 -1
  99. package/dist/assets/web/dist/assets/{soy-Cm1xTUBr.js → soy-zod_dcOy.js} +1 -1
  100. package/dist/assets/web/dist/assets/{sql-BsfcBJdu.js → sql-BG0HSSoM.js} +1 -1
  101. package/dist/assets/web/dist/assets/{sseReplay-BqgOggyQ.js → sseReplay-BzoeVxZB.js} +1 -1
  102. package/dist/assets/web/dist/assets/{stata-Dwat3BSw.js → stata-BVUMLp1W.js} +1 -1
  103. package/dist/assets/web/dist/assets/{surrealql-P4rtxzAW.js → surrealql-DiSUbHKF.js} +1 -1
  104. package/dist/assets/web/dist/assets/{svelte-DTcsi8S8.js → svelte-DZenT45Y.js} +1 -1
  105. package/dist/assets/web/dist/assets/{templ-D-kP0Tg5.js → templ-BWKRNM0-.js} +1 -1
  106. package/dist/assets/web/dist/assets/{tex-D-4vuedK.js → tex-CbMzBlkK.js} +1 -1
  107. package/dist/assets/web/dist/assets/{ts-tags-jEEWYxsu.js → ts-tags-CZsVorDN.js} +1 -1
  108. package/dist/assets/web/dist/assets/{tsx-CFnlrVzT.js → tsx-R1r3mH4W.js} +1 -1
  109. package/dist/assets/web/dist/assets/{twig-D5rGrPjs.js → twig-BjPMyjKH.js} +1 -1
  110. package/dist/assets/web/dist/assets/{typescript-nYIQ35or.js → typescript-Bx-66VN_.js} +1 -1
  111. package/dist/assets/web/dist/assets/{typst-3-UX8dna.js → typst-fW037Eo6.js} +1 -1
  112. package/dist/assets/web/dist/assets/{vue-CLIPIX03.js → vue-D1V_GNxW.js} +1 -1
  113. package/dist/assets/web/dist/assets/{vue-html-Ci9CpkHU.js → vue-html-C-4pTZ-s.js} +1 -1
  114. package/dist/assets/web/dist/assets/{vue-vine-DL5pEYYk.js → vue-vine-C-QsX3hR.js} +1 -1
  115. package/dist/assets/web/dist/assets/{wallClock-DmaC1sKA.js → wallClock-x0hjr0J_.js} +1 -1
  116. package/dist/assets/web/dist/assets/{xml-bO80qikC.js → xml-BJTJXPgC.js} +1 -1
  117. package/dist/assets/web/dist/assets/{xsl-BPze60Ej.js → xsl-Xc9lukqe.js} +1 -1
  118. package/dist/assets/web/dist/assets/{yaml-BQUSon_o.js → yaml-Dw-FMsQa.js} +1 -1
  119. package/dist/cli.js +134 -146
  120. package/package.json +1 -1
  121. package/dist/assets/web/dist/assets/CostsPage-BaeWnm-o.js +0 -1
@@ -1 +1 @@
1
- import{A as e,D as t,E as n,I as r,M as i,O as a,P as o,S as s,T as c,_ as l,g as u,h as d,j as f,k as p,m,p as h,w as g}from"./AppShell-CSXDCV4x.js";import{$ as _,An as v,Br as y,Cn as b,Cr as x,Ct as S,D as C,Di as w,Dr as ee,E as T,Fi as E,G as D,Gr as te,Hn as O,I as k,Ii as ne,K as A,Kr as re,L as ie,Li as j,Mn as M,Oi as N,Pi as P,Q as ae,R as oe,S as se,Sn as F,T as ce,Vr as le,W as ue,X as I,Xr as L,Z as de,_ as fe,_r as R,b as pe,bn as me,dr as z,g as he,gi as ge,gt as _e,h as ve,hr as ye,ht as be,ir as B,ji as V,kn as H,ln as U,m as xe,nt as Se,ot as W,p as Ce,pn as we,rn as G,rr as K,rt as Te,tt as Ee,v as De,w as Oe,wr as q,x as ke,xi as J,xn as Y,y as Ae,yn as X,z as Z}from"./browser-B6T5hjfR.js";function je(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}var Me=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Ne=[` `,`Enter`];function Q(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Pe(e,t,n)):Pe(e,t,n)}function Pe(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Ee(e,t)}function Fe(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Ie=[`value`],[$,Le]=A(`SelectRoot`),Re=M({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:``},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(t,{emit:n}){let r=t,a=n,{required:o,disabled:s,multiple:c,dir:u}=N(r),d=_e(r,`modelValue`,a,{defaultValue:r.defaultValue??(c.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),f=_e(r,`open`,a,{defaultValue:r.defaultOpen,passive:r.open===void 0}),p=J(),m=J(),h=J({x:0,y:0}),g=X(()=>c.value&&Array.isArray(d.value)?d.value?.length===0:ue(d.value));T({isProvider:!0});let _=i(u),v=e(p),y=J(new Set),S=X(()=>Array.from(y.value).map(e=>e.value).join(`;`));function C(e){if(c.value){let t=Array.isArray(d.value)?[...d.value]:[],n=t.findIndex(t=>Pe(t,e,r.by));n===-1?t.push(e):t.splice(n,1),d.value=[...t]}else d.value=e}function w(e){return Array.from(y.value).find(t=>Q(e,t.value,r.by))}return Le({triggerElement:p,onTriggerChange:e=>{p.value=e},valueElement:m,onValueElementChange:e=>{m.value=e},contentId:``,modelValue:d,onValueChange:C,by:r.by,open:f,multiple:c,required:o,onOpenChange:e=>{f.value=e},dir:_,triggerPointerDownPosRef:h,disabled:s,isEmptyModelValue:g,optionsSet:y,onOptionAdd:e=>{let t=w(e.value);t&&y.value.delete(t),y.value.add(e)},onOptionRemove:e=>{let t=w(e.value);t&&y.value.delete(t)}}),(e,t)=>(R(),Y(V(l),null,{default:L(()=>[q(e.$slots,`default`,{modelValue:V(d),open:V(f)}),V(v)&&e.name?(R(),Y(ze,{key:S.value,"aria-hidden":`true`,tabindex:`-1`,multiple:V(c),required:V(o),name:e.name,autocomplete:e.autocomplete,disabled:V(s),value:V(d)},{default:L(()=>[V(ue)(V(d))?(R(),b(`option`,{key:0,value:e.nullableValue},null,8,Ie)):F(`v-if`,!0),(R(!0),b(U,null,x(Array.from(y.value),e=>(R(),b(`option`,K({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):F(`v-if`,!0)]),_:3}))}}),ze=M({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=J(),r=$();te(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(R(),Y(V(ce),{"as-child":``},{default:L(()=>[me(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[q(e.$slots,`default`)],16)]),_:3}))}}),Be=M({__name:`SelectPopperPosition`,props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=oe(e);return(e,n)=>(R(),Y(V(d),K(V(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),Ve={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[He,Ue]=A(`SelectContent`),We=M({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let r=e,i=t,l=$();f(),o(r.bodyLock);let{CollectionSlot:u,getItems:d}=T(),p=J();a(p);let{search:m,handleTypeaheadSearch:h}=n(),_=J(),y=J(),b=J(),x=J(!1),S=J(!1),C=J(!1);function w(){y.value&&p.value&&s([y.value,p.value])}te(x,()=>{w()});let{onOpenChange:E,triggerPointerDownPosRef:D}=l;re(e=>{if(!p.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(D.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(D.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():p.value?.contains(e.target)||E(!1),document.removeEventListener(`pointermove`,n),D.value=null)};D.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function O(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&h(e.key,d()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...d().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>s(t)),e.preventDefault()}}let k=X(()=>r.position===`popper`?r:{}),ne=oe(k.value);return Ue({content:p,viewport:_,onViewportChange:e=>{_.value=e},itemRefCallback:(e,t,n)=>{let r=!S.value&&!n,i=Q(l.modelValue.value,t,l.by);if(l.multiple.value){if(C.value)return;(i||r)&&(y.value=e,i&&(C.value=!0))}else(i||r)&&(y.value=e);r&&(S.value=!0)},selectedItem:y,selectedItemText:b,onItemLeave:()=>{p.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!S.value&&!n;(Q(l.modelValue.value,t,l.by)||r)&&(b.value=e)},focusSelectedItem:w,position:r.position,isPositioned:x,searchRef:m}),(e,t)=>(R(),Y(V(u),null,{default:L(()=>[v(V(g),{"as-child":``,onMountAutoFocus:t[6]||=G(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{i(`closeAutoFocus`,e),!e.defaultPrevented&&(V(l).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:L(()=>[v(V(c),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=G(()=>{},[`prevent`]),onDismiss:t[3]||=e=>V(l).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>i(`pointerDownOutside`,e)},{default:L(()=>[(R(),Y(ee(e.position===`popper`?Be:qe),K({...e.$attrs,...V(ne)},{id:V(l).contentId,ref:e=>{if(!e)return;let t=V(W)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?p.value=t.firstElementChild:p.value=t},role:`listbox`,"data-state":V(l).open.value?`open`:`closed`,dir:V(l).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=G(()=>{},[`prevent`]),onPlaced:t[1]||=e=>x.value=!0,onKeydown:O}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[Ge,Ke]=A(`SelectItemAlignedPosition`),qe=M({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=T(),a=$(),o=He(),s=J(!1),c=J(!0),l=J(),{forwardRef:u,currentElement:d}=Z(),{viewport:f,selectedItem:p,selectedItemText:m,focusSelectedItem:h}=o;function g(){if(a.triggerElement.value&&a.valueElement.value&&l.value&&d.value&&f?.value&&p?.value&&m?.value){let e=a.triggerElement.value.getBoundingClientRect(),t=d.value.getBoundingClientRect(),n=a.valueElement.value.getBoundingClientRect(),o=m.value.getBoundingClientRect();if(a.dir.value!==`rtl`){let r=o.left-t.left,i=n.left-r,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=je(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.left=`${d}px`}else{let r=t.right-o.right,i=window.innerWidth-n.right-r,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=je(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.right=`${d}px`}let c=i().map(e=>e.ref),u=window.innerHeight-20,h=f.value.scrollHeight,g=window.getComputedStyle(d.value),_=Number.parseInt(g.borderTopWidth,10),v=Number.parseInt(g.paddingTop,10),y=Number.parseInt(g.borderBottomWidth,10),b=Number.parseInt(g.paddingBottom,10),x=_+v+h+b+y,S=Math.min(p.value.offsetHeight*5,x),C=window.getComputedStyle(f.value),w=Number.parseInt(C.paddingTop,10),ee=Number.parseInt(C.paddingBottom,10),T=e.top+e.height/2-10,E=u-T,D=p.value.offsetHeight/2,te=p.value.offsetTop+D,O=_+v+te,k=x-O;if(O<=T){let e=p.value===c.at(-1);l.value.style.bottom=`0px`;let t=d.value.clientHeight-f.value.offsetTop-f.value.offsetHeight,n=O+Math.max(E,D+(e?ee:0)+t+y);l.value.style.height=`${n}px`}else{let e=p.value===c[0];l.value.style.top=`0px`;let t=Math.max(T,_+f.value.offsetTop+(e?w:0)+D)+k;l.value.style.height=`${t}px`,f.value.scrollTop=O-T+f.value.offsetTop}l.value.style.margin=`10px 0`,l.value.style.minHeight=`${S}px`,l.value.style.maxHeight=`${u}px`,r(`placed`),requestAnimationFrame(()=>s.value=!0)}}let _=J(``);z(async()=>{await B(),g(),d.value&&(_.value=window.getComputedStyle(d.value).zIndex)});function y(e){e&&c.value===!0&&(g(),h?.(),c.value=!1)}return be(a.triggerElement,()=>{g()}),Ke({contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:y}),(e,t)=>(R(),b(`div`,{ref_key:`contentWrapperElement`,ref:l,style:ne({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:_.value})},[v(V(k),K({ref:V(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)],4))}}),Je=M({__name:`SelectArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e,n=He(Ve);return(e,r)=>V(n).position===`popper`?(R(),Y(V(m),E(K({key:0},t)),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)):F(`v-if`,!0)}}),Ye=M({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Le(e.context),Ue(Ve),(e,t)=>q(e.$slots,`default`)}}),Xe={key:1},Ze=M({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=p(n,t),i=$(),a=J();z(()=>{a.value=new DocumentFragment});let o=J(),s=X(()=>n.forceMount||i.open.value),c=J(s.value),l;function u(){l&&=(clearTimeout(l),void 0)}return te(s,(e,t,n)=>{u(),l=setTimeout(()=>{c.value=s.value,l=void 0}),n(u)}),ye(u),(e,t)=>s.value||c.value||o.value?.present?(R(),Y(V(ie),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:L(()=>[v(We,E(O({...V(r),...e.$attrs})),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(R(),b(`div`,Xe,[(R(),Y(we,{to:a.value},[v(Ye,{context:V(i)},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):F(`v-if`,!0)}}),[Qe,$e]=A(`SelectGroup`),et=M({__name:`SelectGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=t(void 0,`reka-select-group`);return $e({id:r}),(e,t)=>(R(),Y(V(k),K({role:`group`},n,{"aria-labelledby":V(r)}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),[tt,nt]=A(`SelectItem`),rt=M({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:n}){let i=e,a=n,{disabled:o}=N(i),s=$(),c=He(),{forwardRef:l,currentElement:u}=Z(),{CollectionItem:d}=T(),f=X(()=>Q(s.modelValue?.value,i.value,s.by)),p=J(!1),m=J(i.textValue??``),h=t(void 0,`reka-select-item-text`);async function g(e){if(e.defaultPrevented)return;let t={originalEvent:e,value:i.value};r(`select.select`,_,t)}async function _(e){await B(),a(`select`,e),!e.defaultPrevented&&(o.value||(s.onValueChange(i.value),s.multiple.value||s.onOpenChange(!1)))}async function y(e){await B(),!e.defaultPrevented&&(o.value?c.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function b(e){await B(),!e.defaultPrevented&&e.currentTarget===D()&&c.onItemLeave?.()}async function x(e){await B(),!e.defaultPrevented&&(c.searchRef?.value===``||e.key!==` `)&&(Ne.includes(e.key)&&g(e),e.key===` `&&e.preventDefault())}if(i.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return z(()=>{u.value&&c.itemRefCallback(u.value,i.value,i.disabled)}),nt({value:i.value,disabled:o,textId:h,isSelected:f,onItemTextChange:e=>{m.value=((m.value||e?.textContent)??``).trim()}}),(e,t)=>(R(),Y(V(d),{value:{textValue:m.value}},{default:L(()=>[v(V(k),{ref:V(l),role:`option`,"aria-labelledby":V(h),"data-highlighted":p.value?``:void 0,"aria-selected":f.value,"data-state":f.value?`checked`:`unchecked`,"aria-disabled":V(o)||void 0,"data-disabled":V(o)?``:void 0,tabindex:V(o)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>p.value=!0,onBlur:t[1]||=e=>p.value=!1,onPointerup:g,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=G(()=>{},[`prevent`,`stop`]),onPointermove:y,onPointerleave:b,onKeydown:x},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),it=M({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=tt();return(e,r)=>V(n).isSelected.value?(R(),Y(V(k),K({key:0,"aria-hidden":`true`},t),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)):F(`v-if`,!0)}}),at=M({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=$(),r=He(),i=tt(),{forwardRef:a,currentElement:o}=Z(),s=X(()=>({value:i.value,disabled:i.disabled.value,textContent:o.value?.textContent??i.value?.toString()??``}));return z(()=>{o.value&&(i.onItemTextChange(o.value),r.itemTextRefCallback(o.value,i.value,i.disabled.value),n.onOptionAdd(s.value))}),ye(()=>{n.onOptionRemove(s.value)}),(e,n)=>(R(),Y(V(k),K({id:V(i).textId,ref:V(a)},{...t,...e.$attrs}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`]))}}),ot=M({__name:`SelectLabel`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Qe({id:``});return(e,r)=>(R(),Y(V(k),K(t,{id:V(n).id}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`]))}}),st=M({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(R(),Y(V(C),E(O(t)),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),ct=M({__name:`SelectSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(R(),Y(V(k),K({"aria-hidden":`true`},t),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),lt=M({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let r=e,i=$(),{forwardRef:a,currentElement:o}=Z(),s=X(()=>i.disabled?.value||r.disabled);i.contentId||=t(void 0,`reka-select-content`),z(()=>{i.onTriggerChange(o.value)});let{getItems:c}=T(),{search:l,handleTypeaheadSearch:d,resetTypeahead:f}=n();function p(){s.value||(i.onOpenChange(!0),f())}function m(e){p(),i.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}function h(e){return e.button===0&&e.ctrlKey===!1}let g=!1;function _(e){if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),h(e)&&(m(e),g=!0)}function y(e){h(e)&&e.preventDefault()}function b(e){g||e.currentTarget?.focus(),g=!1}return(e,t)=>(R(),Y(V(u),{"as-child":``,reference:e.reference},{default:L(()=>[v(V(k),{ref:V(a),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":V(i).open.value?V(i).contentId:void 0,"aria-expanded":V(i).open.value||!1,"aria-required":V(i).required?.value,"aria-autocomplete":`none`,disabled:s.value,dir:V(i)?.dir.value,"data-state":V(i)?.open.value?`open`:`closed`,"data-disabled":s.value?``:void 0,"data-placeholder":V(Fe)(V(i).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:b,onPointerdown:_,onMousedown:y,onPointerup:t[0]||=G(e=>{e.pointerType===`touch`&&m(e)},[`prevent`]),onKeydown:t[1]||=e=>{let t=V(l)!==``;(e.ctrlKey||e.altKey||e.metaKey||e.key.length!==1||!t||e.key!==` `)&&(V(d)(e.key,V(c)()),V(Me).includes(e.key)&&(p(),e.preventDefault()))}},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),ut=M({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Z(),i=$();z(()=>{i.valueElement=r});let a=X(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>Q(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=X(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(R(),Y(V(k),{ref:V(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:L(()=>[q(e.$slots,`default`,{selectedLabel:a.value,modelValue:V(i).modelValue.value},()=>[H(j(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),dt=M({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=N(t),r=h(n),i=He(),a=i.position===`item-aligned`?Ge():void 0,{forwardRef:o,currentElement:s}=Z();z(()=>{i?.onViewportChange(s.value)});let c=J(0);function l(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=a??{};if(n?.value&&r?.value){let e=Math.abs(c.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}c.value=t.scrollTop}return(e,n)=>(R(),b(U,null,[v(V(k),K({ref:V(o),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:l}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16),v(V(k),{as:`style`,nonce:V(r)},{default:L(()=>n[0]||=[H(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),ft={slots:{base:[`relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75`,`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`,value:`truncate pointer-events-none`,placeholder:`truncate text-dimmed`,arrow:`fill-bg stroke-default`,content:`max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col`,viewport:`relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1`,group:`p-1 isolate`,empty:`text-center text-muted`,label:`font-semibold text-highlighted`,separator:`-mx-1 my-1 h-px bg-border`,item:[`group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50`,`transition-colors before:transition-colors`],itemLeadingIcon:[`shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default`,`transition-colors`],itemLeadingAvatar:`shrink-0`,itemLeadingAvatarSize:``,itemLeadingChip:`shrink-0`,itemLeadingChipSize:``,itemTrailing:`ms-auto inline-flex gap-1.5 items-center`,itemTrailingIcon:`shrink-0`,itemWrapper:`flex-1 flex flex-col min-w-0`,itemLabel:`truncate`,itemDescription:`truncate 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`,leading:`ps-2`,trailing:`pe-2`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`,label:`p-1 text-[10px]/3 gap-1`,item:`p-1 text-xs gap-1`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemLeadingChip:`size-4`,itemLeadingChipSize:`sm`,itemTrailingIcon:`size-4`,empty:`p-2 text-xs`},sm:{base:`px-2.5 py-1.5 text-sm/4 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`,label:`p-1.5 text-[10px]/3 gap-1.5`,item:`p-1.5 text-xs gap-1.5`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemLeadingChip:`size-4`,itemLeadingChipSize:`sm`,itemTrailingIcon:`size-4`,empty:`p-2.5 text-xs`},md:{base:`px-2.5 py-1.5 text-base/5 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`,label:`p-1.5 text-xs gap-1.5`,item:`p-1.5 text-sm gap-1.5`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemLeadingChip:`size-5`,itemLeadingChipSize:`md`,itemTrailingIcon:`size-5`,empty:`p-2.5 text-sm`},lg:{base:`px-3 py-2 text-base/5 gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`,label:`p-2 text-xs gap-2`,item:`p-2 text-sm gap-2`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemLeadingChip:`size-5`,itemLeadingChipSize:`md`,itemTrailingIcon:`size-5`,empty:`p-3 text-sm`},xl:{base:`px-3 py-2 text-base gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-6`,leadingAvatarSize:`xs`,trailingIcon:`size-6`,label:`p-2 text-sm gap-2`,item:`p-2 text-base gap-2`,itemLeadingIcon:`size-6`,itemLeadingAvatarSize:`xs`,itemLeadingChip:`size-6`,itemLeadingChipSize:`lg`,itemTrailingIcon:`size-6`,empty:`p-3 text-base`}},variant:{outline:`text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default`,soft:`text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50`,subtle:`text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated`,ghost:`text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent`,none:`text-highlighted bg-transparent 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`},position:{popper:{content:`data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)]`},"item-aligned":{content:``}},multiple:{true:``}},compoundVariants:[{color:`primary`,variant:[`outline`,`subtle`],class:`outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary`},{color:`secondary`,variant:[`outline`,`subtle`],class:`outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary`},{color:`success`,variant:[`outline`,`subtle`],class:`outline-success/25 focus-visible:outline-3 focus-visible:ring-success`},{color:`info`,variant:[`outline`,`subtle`],class:`outline-info/25 focus-visible:outline-3 focus-visible:ring-info`},{color:`warning`,variant:[`outline`,`subtle`],class:`outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning`},{color:`error`,variant:[`outline`,`subtle`],class:`outline-error/25 focus-visible:outline-3 focus-visible:ring-error`},{color:`primary`,variant:[`soft`,`ghost`],class:`outline-primary/25 focus-visible:outline-3`},{color:`secondary`,variant:[`soft`,`ghost`],class:`outline-secondary/25 focus-visible:outline-3`},{color:`success`,variant:[`soft`,`ghost`],class:`outline-success/25 focus-visible:outline-3`},{color:`info`,variant:[`soft`,`ghost`],class:`outline-info/25 focus-visible:outline-3`},{color:`warning`,variant:[`soft`,`ghost`],class:`outline-warning/25 focus-visible:outline-3`},{color:`error`,variant:[`soft`,`ghost`],class:`outline-error/25 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 focus-visible:outline-3 focus-visible:ring-inverted`},{color:`neutral`,variant:[`soft`,`ghost`],class:`outline-inverted/25 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`}],defaultVariants:{size:`md`,color:`primary`,variant:`outline`,position:`popper`}},pt=Object.assign({inheritAttrs:!1},{__name:`Select`,props:{id:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},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},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},multiple:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},nullableValue:{type:String,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,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},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:[`change`,`blur`,`focus`,`update:modelValue`,`update:open`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=y(),o=se(`select`,r),s=Te(),c=ke(S(o,`open`,`defaultOpen`,`disabled`,`autocomplete`,`required`,`multiple`,`nullableValue`),i),l=Oe(w(()=>o.portal)),u=X(()=>o.content?.position??s.ui?.select?.defaultVariants?.position??ft.defaultVariants?.position),d=w(()=>Se(o.content,{side:`bottom`,sideOffset:8,collisionPadding:8,position:u.value})),f=w(()=>Se(o.arrow,{rounded:!0})),{emitFormChange:p,emitFormInput:m,emitFormBlur:h,emitFormFocus:g,size:C,color:T,id:D,name:te,highlight:k,disabled:ne,ariaAttrs:A}=Ce(r),{orientation:re,size:ie}=ve(r),{isLeading:M,isTrailing:N,leadingIconName:oe,trailingIconName:ce}=he(X(()=>({icon:o.icon,leading:o.leading,leadingIcon:o.leadingIcon,trailing:o.trailing,trailingIcon:o.trailingIcon??s.ui.icons.chevronDown,loading:o.loading,loadingIcon:o.loadingIcon}))),ue=X(()=>T.value??o.color),_e=X(()=>k.value??o.highlight),ye=X(()=>ie.value??C.value??o.size),be=X(()=>ne.value??o.disabled),B=X(()=>u.value===`item-aligned`),W=X(()=>pe({extend:ft,...s.ui?.select||{}})({color:ue.value,variant:o.variant,size:ye.value,loading:o.loading,highlight:_e.value,fixed:o.fixed,leading:M.value||!!o.avatar||!!a.leading,trailing:N.value||!!a.trailing,fieldGroup:re.value,position:u.value,multiple:o.multiple})),we=X(()=>o.items?.length?ae(o.items)?o.items:[o.items]:[]),G=X(()=>we.value.flatMap(e=>e));function Ee(e){if(o.multiple&&Array.isArray(e)){let t=e.map(e=>de(G.value,e,{labelKey:o.labelKey,valueKey:o.valueKey})).filter(e=>e!=null&&e!==``);return t.length>0?t.join(`, `):void 0}return de(G.value,e,{labelKey:o.labelKey,valueKey:o.valueKey})}let J=le(`triggerRef`);function Z(){o.autofocus&&J.value?.$el?.focus({focusVisible:!0})}let je;z(()=>{je=setTimeout(()=>{Z()},o.autofocusDelay)}),ge(()=>clearTimeout(je));function Me(e){o.modelModifiers?.trim&&(typeof e==`string`||e==null)&&(e=e?.trim()??null),o.modelModifiers?.number&&(e=_(e)),o.modelModifiers?.nullable&&(e??=null),o.modelModifiers?.optional&&!o.modelModifiers?.nullable&&e!==null&&(e??=void 0);let t=new Event(`change`,{target:{value:e}});i(`change`,t),p(),m()}function Ne(e){if(e){let e=new FocusEvent(`focus`);i(`focus`,e),g()}else{let e=new FocusEvent(`blur`);i(`blur`,e),h()}}function Q(e){return typeof e==`object`&&!!e}function Pe(e){e||J.value?.$el?.dispatchEvent(new PointerEvent(`pointerdown`,{bubbles:!0,button:0}))}let Fe=le(`viewportRef`);return t({triggerRef:w(()=>J.value?.$el),viewportRef:w(()=>{let e=Fe.value;return e&&typeof e==`object`&&`$el`in e?e.$el:e})}),(t,n)=>(R(),Y(V(Re),K({name:V(te)},V(c),{autocomplete:V(o).autocomplete,disabled:be.value,"default-value":V(o).defaultValue,"model-value":e.modelValue,"onUpdate:modelValue":Me,"onUpdate:open":Ne}),{default:L(({modelValue:e,open:n})=>[v(V(lt),K({id:V(D),ref_key:`triggerRef`,ref:J,"data-slot":`base`,class:W.value.base({class:[V(o).ui?.base,V(o).class]})},{...t.$attrs,...V(A)},{onClick:e=>Pe(n)}),{default:L(()=>[V(M)||V(o).avatar||a.leading?(R(),b(`span`,{key:0,"data-slot":`leading`,class:P(W.value.leading({class:V(o).ui?.leading}))},[q(t.$slots,`leading`,{modelValue:e,open:n,ui:W.value},()=>[V(M)&&V(oe)?(R(),Y(Ae,{key:0,name:V(oe),"data-slot":`leadingIcon`,class:P(W.value.leadingIcon({class:V(o).ui?.leadingIcon}))},null,8,[`name`,`class`])):V(o).avatar?(R(),Y(fe,K({key:1,size:V(o).ui?.itemLeadingAvatarSize||W.value.itemLeadingAvatarSize()},V(o).avatar,{"data-slot":`itemLeadingAvatar`,class:W.value.itemLeadingAvatar({class:V(o).ui?.itemLeadingAvatar})}),null,16,[`size`,`class`])):F(``,!0)])],2)):F(``,!0),(R(!0),b(U,null,x([Ee(e)],r=>(R(),Y(V(ut),{key:r,"data-slot":r==null?`placeholder`:`value`,class:P(r==null?W.value.placeholder({class:V(o).ui?.placeholder}):W.value.value({class:V(o).ui?.value}))},{default:L(()=>[q(t.$slots,`default`,{modelValue:e,open:n,ui:W.value},()=>[H(j(r??V(o).placeholder??`\xA0`),1)])]),_:2},1032,[`data-slot`,`class`]))),128)),V(N)||a.trailing?(R(),b(`span`,{key:1,"data-slot":`trailing`,class:P(W.value.trailing({class:V(o).ui?.trailing}))},[q(t.$slots,`trailing`,{modelValue:e,open:n,ui:W.value},()=>[V(ce)?(R(),Y(Ae,{key:0,name:V(ce),"data-slot":`trailingIcon`,class:P(W.value.trailingIcon({class:V(o).ui?.trailingIcon}))},null,8,[`name`,`class`])):F(``,!0)])],2)):F(``,!0)]),_:2},1040,[`id`,`class`,`onClick`]),v(V(st),E(O(V(l))),{default:L(()=>[v(V(xe),null,{default:L(()=>[v(V(Ze),K({"data-slot":`content`,class:W.value.content({class:V(o).ui?.content})},d.value),{default:L(()=>[q(t.$slots,`content-top`),(R(),Y(ee(B.value?V(dt):`div`),{ref_key:`viewportRef`,ref:Fe,role:`presentation`,"data-slot":`viewport`,class:P(W.value.viewport({class:V(o).ui?.viewport}))},{default:L(()=>[(R(!0),b(U,null,x(we.value,(e,n)=>(R(),Y(V(et),{key:`group-${n}`,"data-slot":`group`,class:P(W.value.group({class:V(o).ui?.group}))},{default:L(()=>[(R(!0),b(U,null,x(e,(e,r)=>(R(),b(U,{key:`group-${n}-${r}`},[Q(e)&&e.type===`label`?(R(),Y(V(ot),{key:0,"data-slot":`label`,class:P(W.value.label({class:[V(o).ui?.label,e.ui?.label,e.class]}))},{default:L(()=>[H(j(V(I)(e,V(o).labelKey)),1)]),_:2},1032,[`class`])):Q(e)&&e.type===`separator`?(R(),Y(V(ct),{key:1,"data-slot":`separator`,class:P(W.value.separator({class:[V(o).ui?.separator,e.ui?.separator,e.class]}))},null,8,[`class`])):(R(),Y(V(rt),{key:2,"data-slot":`item`,class:P(W.value.item({class:[V(o).ui?.item,Q(e)&&e.ui?.item,Q(e)&&e.class]})),disabled:Q(e)&&e.disabled,value:Q(e)?V(I)(e,V(o).valueKey):e,onSelect:t=>Q(e)&&e.onSelect?.(t)},{default:L(()=>[q(t.$slots,`item`,{item:e,index:r,ui:W.value},()=>[q(t.$slots,`item-leading`,{item:e,index:r,ui:W.value},()=>[Q(e)&&e.icon?(R(),Y(Ae,{key:0,name:e.icon,"data-slot":`itemLeadingIcon`,class:P(W.value.itemLeadingIcon({class:[V(o).ui?.itemLeadingIcon,e.ui?.itemLeadingIcon]}))},null,8,[`name`,`class`])):Q(e)&&e.avatar?(R(),Y(fe,K({key:1,size:e.ui?.itemLeadingAvatarSize||V(o).ui?.itemLeadingAvatarSize||W.value.itemLeadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":`itemLeadingAvatar`,class:W.value.itemLeadingAvatar({class:[V(o).ui?.itemLeadingAvatar,e.ui?.itemLeadingAvatar]})}),null,16,[`size`,`class`])):Q(e)&&e.chip?(R(),Y(De,K({key:2,size:e.ui?.itemLeadingChipSize||V(o).ui?.itemLeadingChipSize||W.value.itemLeadingChipSize(),inset:``,standalone:``},{ref_for:!0},e.chip,{"data-slot":`itemLeadingChip`,class:W.value.itemLeadingChip({class:[V(o).ui?.itemLeadingChip,e.ui?.itemLeadingChip]})}),null,16,[`size`,`class`])):F(``,!0)]),me(`span`,{"data-slot":`itemWrapper`,class:P(W.value.itemWrapper({class:[V(o).ui?.itemWrapper,Q(e)&&e.ui?.itemWrapper]}))},[v(V(at),{"data-slot":`itemLabel`,class:P(W.value.itemLabel({class:[V(o).ui?.itemLabel,Q(e)&&e.ui?.itemLabel]}))},{default:L(()=>[q(t.$slots,`item-label`,{item:e,index:r},()=>[H(j(Q(e)?V(I)(e,V(o).labelKey):e),1)])]),_:2},1032,[`class`]),Q(e)&&(V(I)(e,V(o).descriptionKey)||a[`item-description`])?(R(),b(`span`,{key:0,"data-slot":`itemDescription`,class:P(W.value.itemDescription({class:[V(o).ui?.itemDescription,Q(e)&&e.ui?.itemDescription]}))},[q(t.$slots,`item-description`,{item:e,index:r},()=>[H(j(V(I)(e,V(o).descriptionKey)),1)])],2)):F(``,!0)],2),me(`span`,{"data-slot":`itemTrailing`,class:P(W.value.itemTrailing({class:[V(o).ui?.itemTrailing,Q(e)&&e.ui?.itemTrailing]}))},[q(t.$slots,`item-trailing`,{item:e,index:r,ui:W.value}),v(V(it),{"as-child":``},{default:L(()=>[v(Ae,{name:V(o).selectedIcon||V(s).ui.icons.check,"data-slot":`itemTrailingIcon`,class:P(W.value.itemTrailingIcon({class:[V(o).ui?.itemTrailingIcon,Q(e)&&e.ui?.itemTrailingIcon]}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:2},1032,[`class`,`disabled`,`value`,`onSelect`]))],64))),128))]),_:2},1032,[`class`]))),128))]),_:3},8,[`class`])),q(t.$slots,`content-bottom`),V(o).arrow?(R(),Y(V(Je),K({key:0},f.value,{"data-slot":`arrow`,class:W.value.arrow({class:V(o).ui?.arrow})}),null,16,[`class`])):F(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`name`,`autocomplete`,`disabled`,`default-value`,`model-value`]))}}),mt=`__none__`,ht=M({__name:`SettingSelect`,props:{modelValue:{},items:{},id:{},name:{},disabled:{type:Boolean},ariaLabel:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=X(()=>n.items.map(e=>({...e,value:e.value===``?mt:e.value}))),a=X(()=>n.modelValue===``?mt:n.modelValue);function o(e){let t=typeof e==`string`?e:``;r(`update:modelValue`,t===mt?``:t)}return(t,n)=>{let r=pt;return R(),Y(r,{id:e.id,name:e.name,"model-value":a.value,items:i.value,"value-key":`value`,size:`sm`,class:`setting-select font-mono text-xs`,disabled:e.disabled,"aria-label":e.ariaLabel,"onUpdate:modelValue":o},null,8,[`id`,`name`,`model-value`,`items`,`disabled`,`aria-label`])}}});export{ht as t};
1
+ import{A as e,D as t,E as n,I as r,M as i,O as a,P as o,S as s,T as c,_ as l,g as u,h as d,j as f,k as p,m,p as h,w as g}from"./AppShell-DPJVhUGP.js";import{$ as _,An as v,Br as y,Cn as b,Cr as x,Ct as S,D as C,Di as w,Dr as ee,E as T,Fi as E,G as D,Gr as te,Hn as O,I as k,Ii as ne,K as A,Kr as re,L as ie,Li as j,Mn as M,Oi as N,Pi as P,Q as ae,R as oe,S as se,Sn as F,T as ce,Vr as le,W as ue,X as I,Xr as L,Z as de,_ as fe,_r as R,b as pe,bn as me,dr as z,g as he,gi as ge,gt as _e,h as ve,hr as ye,ht as be,ir as B,ji as V,kn as H,ln as U,m as xe,nt as Se,ot as W,p as Ce,pn as we,rn as G,rr as K,rt as Te,tt as Ee,v as De,w as Oe,wr as q,x as ke,xi as J,xn as Y,y as Ae,yn as X,z as Z}from"./browser-CCImen5O.js";function je(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}var Me=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Ne=[` `,`Enter`];function Q(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Pe(e,t,n)):Pe(e,t,n)}function Pe(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Ee(e,t)}function Fe(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Ie=[`value`],[$,Le]=A(`SelectRoot`),Re=M({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:``},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(t,{emit:n}){let r=t,a=n,{required:o,disabled:s,multiple:c,dir:u}=N(r),d=_e(r,`modelValue`,a,{defaultValue:r.defaultValue??(c.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),f=_e(r,`open`,a,{defaultValue:r.defaultOpen,passive:r.open===void 0}),p=J(),m=J(),h=J({x:0,y:0}),g=X(()=>c.value&&Array.isArray(d.value)?d.value?.length===0:ue(d.value));T({isProvider:!0});let _=i(u),v=e(p),y=J(new Set),S=X(()=>Array.from(y.value).map(e=>e.value).join(`;`));function C(e){if(c.value){let t=Array.isArray(d.value)?[...d.value]:[],n=t.findIndex(t=>Pe(t,e,r.by));n===-1?t.push(e):t.splice(n,1),d.value=[...t]}else d.value=e}function w(e){return Array.from(y.value).find(t=>Q(e,t.value,r.by))}return Le({triggerElement:p,onTriggerChange:e=>{p.value=e},valueElement:m,onValueElementChange:e=>{m.value=e},contentId:``,modelValue:d,onValueChange:C,by:r.by,open:f,multiple:c,required:o,onOpenChange:e=>{f.value=e},dir:_,triggerPointerDownPosRef:h,disabled:s,isEmptyModelValue:g,optionsSet:y,onOptionAdd:e=>{let t=w(e.value);t&&y.value.delete(t),y.value.add(e)},onOptionRemove:e=>{let t=w(e.value);t&&y.value.delete(t)}}),(e,t)=>(R(),Y(V(l),null,{default:L(()=>[q(e.$slots,`default`,{modelValue:V(d),open:V(f)}),V(v)&&e.name?(R(),Y(ze,{key:S.value,"aria-hidden":`true`,tabindex:`-1`,multiple:V(c),required:V(o),name:e.name,autocomplete:e.autocomplete,disabled:V(s),value:V(d)},{default:L(()=>[V(ue)(V(d))?(R(),b(`option`,{key:0,value:e.nullableValue},null,8,Ie)):F(`v-if`,!0),(R(!0),b(U,null,x(Array.from(y.value),e=>(R(),b(`option`,K({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):F(`v-if`,!0)]),_:3}))}}),ze=M({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=J(),r=$();te(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(R(),Y(V(ce),{"as-child":``},{default:L(()=>[me(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[q(e.$slots,`default`)],16)]),_:3}))}}),Be=M({__name:`SelectPopperPosition`,props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=oe(e);return(e,n)=>(R(),Y(V(d),K(V(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),Ve={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[He,Ue]=A(`SelectContent`),We=M({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let r=e,i=t,l=$();f(),o(r.bodyLock);let{CollectionSlot:u,getItems:d}=T(),p=J();a(p);let{search:m,handleTypeaheadSearch:h}=n(),_=J(),y=J(),b=J(),x=J(!1),S=J(!1),C=J(!1);function w(){y.value&&p.value&&s([y.value,p.value])}te(x,()=>{w()});let{onOpenChange:E,triggerPointerDownPosRef:D}=l;re(e=>{if(!p.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(D.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(D.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():p.value?.contains(e.target)||E(!1),document.removeEventListener(`pointermove`,n),D.value=null)};D.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function O(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&h(e.key,d()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...d().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>s(t)),e.preventDefault()}}let k=X(()=>r.position===`popper`?r:{}),ne=oe(k.value);return Ue({content:p,viewport:_,onViewportChange:e=>{_.value=e},itemRefCallback:(e,t,n)=>{let r=!S.value&&!n,i=Q(l.modelValue.value,t,l.by);if(l.multiple.value){if(C.value)return;(i||r)&&(y.value=e,i&&(C.value=!0))}else(i||r)&&(y.value=e);r&&(S.value=!0)},selectedItem:y,selectedItemText:b,onItemLeave:()=>{p.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!S.value&&!n;(Q(l.modelValue.value,t,l.by)||r)&&(b.value=e)},focusSelectedItem:w,position:r.position,isPositioned:x,searchRef:m}),(e,t)=>(R(),Y(V(u),null,{default:L(()=>[v(V(g),{"as-child":``,onMountAutoFocus:t[6]||=G(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{i(`closeAutoFocus`,e),!e.defaultPrevented&&(V(l).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:L(()=>[v(V(c),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=G(()=>{},[`prevent`]),onDismiss:t[3]||=e=>V(l).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>i(`pointerDownOutside`,e)},{default:L(()=>[(R(),Y(ee(e.position===`popper`?Be:qe),K({...e.$attrs,...V(ne)},{id:V(l).contentId,ref:e=>{if(!e)return;let t=V(W)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?p.value=t.firstElementChild:p.value=t},role:`listbox`,"data-state":V(l).open.value?`open`:`closed`,dir:V(l).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=G(()=>{},[`prevent`]),onPlaced:t[1]||=e=>x.value=!0,onKeydown:O}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[Ge,Ke]=A(`SelectItemAlignedPosition`),qe=M({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=T(),a=$(),o=He(),s=J(!1),c=J(!0),l=J(),{forwardRef:u,currentElement:d}=Z(),{viewport:f,selectedItem:p,selectedItemText:m,focusSelectedItem:h}=o;function g(){if(a.triggerElement.value&&a.valueElement.value&&l.value&&d.value&&f?.value&&p?.value&&m?.value){let e=a.triggerElement.value.getBoundingClientRect(),t=d.value.getBoundingClientRect(),n=a.valueElement.value.getBoundingClientRect(),o=m.value.getBoundingClientRect();if(a.dir.value!==`rtl`){let r=o.left-t.left,i=n.left-r,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=je(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.left=`${d}px`}else{let r=t.right-o.right,i=window.innerWidth-n.right-r,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=je(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.right=`${d}px`}let c=i().map(e=>e.ref),u=window.innerHeight-20,h=f.value.scrollHeight,g=window.getComputedStyle(d.value),_=Number.parseInt(g.borderTopWidth,10),v=Number.parseInt(g.paddingTop,10),y=Number.parseInt(g.borderBottomWidth,10),b=Number.parseInt(g.paddingBottom,10),x=_+v+h+b+y,S=Math.min(p.value.offsetHeight*5,x),C=window.getComputedStyle(f.value),w=Number.parseInt(C.paddingTop,10),ee=Number.parseInt(C.paddingBottom,10),T=e.top+e.height/2-10,E=u-T,D=p.value.offsetHeight/2,te=p.value.offsetTop+D,O=_+v+te,k=x-O;if(O<=T){let e=p.value===c.at(-1);l.value.style.bottom=`0px`;let t=d.value.clientHeight-f.value.offsetTop-f.value.offsetHeight,n=O+Math.max(E,D+(e?ee:0)+t+y);l.value.style.height=`${n}px`}else{let e=p.value===c[0];l.value.style.top=`0px`;let t=Math.max(T,_+f.value.offsetTop+(e?w:0)+D)+k;l.value.style.height=`${t}px`,f.value.scrollTop=O-T+f.value.offsetTop}l.value.style.margin=`10px 0`,l.value.style.minHeight=`${S}px`,l.value.style.maxHeight=`${u}px`,r(`placed`),requestAnimationFrame(()=>s.value=!0)}}let _=J(``);z(async()=>{await B(),g(),d.value&&(_.value=window.getComputedStyle(d.value).zIndex)});function y(e){e&&c.value===!0&&(g(),h?.(),c.value=!1)}return be(a.triggerElement,()=>{g()}),Ke({contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:y}),(e,t)=>(R(),b(`div`,{ref_key:`contentWrapperElement`,ref:l,style:ne({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:_.value})},[v(V(k),K({ref:V(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)],4))}}),Je=M({__name:`SelectArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e,n=He(Ve);return(e,r)=>V(n).position===`popper`?(R(),Y(V(m),E(K({key:0},t)),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)):F(`v-if`,!0)}}),Ye=M({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Le(e.context),Ue(Ve),(e,t)=>q(e.$slots,`default`)}}),Xe={key:1},Ze=M({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=p(n,t),i=$(),a=J();z(()=>{a.value=new DocumentFragment});let o=J(),s=X(()=>n.forceMount||i.open.value),c=J(s.value),l;function u(){l&&=(clearTimeout(l),void 0)}return te(s,(e,t,n)=>{u(),l=setTimeout(()=>{c.value=s.value,l=void 0}),n(u)}),ye(u),(e,t)=>s.value||c.value||o.value?.present?(R(),Y(V(ie),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:L(()=>[v(We,E(O({...V(r),...e.$attrs})),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(R(),b(`div`,Xe,[(R(),Y(we,{to:a.value},[v(Ye,{context:V(i)},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):F(`v-if`,!0)}}),[Qe,$e]=A(`SelectGroup`),et=M({__name:`SelectGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=t(void 0,`reka-select-group`);return $e({id:r}),(e,t)=>(R(),Y(V(k),K({role:`group`},n,{"aria-labelledby":V(r)}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),[tt,nt]=A(`SelectItem`),rt=M({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:n}){let i=e,a=n,{disabled:o}=N(i),s=$(),c=He(),{forwardRef:l,currentElement:u}=Z(),{CollectionItem:d}=T(),f=X(()=>Q(s.modelValue?.value,i.value,s.by)),p=J(!1),m=J(i.textValue??``),h=t(void 0,`reka-select-item-text`);async function g(e){if(e.defaultPrevented)return;let t={originalEvent:e,value:i.value};r(`select.select`,_,t)}async function _(e){await B(),a(`select`,e),!e.defaultPrevented&&(o.value||(s.onValueChange(i.value),s.multiple.value||s.onOpenChange(!1)))}async function y(e){await B(),!e.defaultPrevented&&(o.value?c.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function b(e){await B(),!e.defaultPrevented&&e.currentTarget===D()&&c.onItemLeave?.()}async function x(e){await B(),!e.defaultPrevented&&(c.searchRef?.value===``||e.key!==` `)&&(Ne.includes(e.key)&&g(e),e.key===` `&&e.preventDefault())}if(i.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return z(()=>{u.value&&c.itemRefCallback(u.value,i.value,i.disabled)}),nt({value:i.value,disabled:o,textId:h,isSelected:f,onItemTextChange:e=>{m.value=((m.value||e?.textContent)??``).trim()}}),(e,t)=>(R(),Y(V(d),{value:{textValue:m.value}},{default:L(()=>[v(V(k),{ref:V(l),role:`option`,"aria-labelledby":V(h),"data-highlighted":p.value?``:void 0,"aria-selected":f.value,"data-state":f.value?`checked`:`unchecked`,"aria-disabled":V(o)||void 0,"data-disabled":V(o)?``:void 0,tabindex:V(o)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>p.value=!0,onBlur:t[1]||=e=>p.value=!1,onPointerup:g,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=G(()=>{},[`prevent`,`stop`]),onPointermove:y,onPointerleave:b,onKeydown:x},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),it=M({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=tt();return(e,r)=>V(n).isSelected.value?(R(),Y(V(k),K({key:0,"aria-hidden":`true`},t),{default:L(()=>[q(e.$slots,`default`)]),_:3},16)):F(`v-if`,!0)}}),at=M({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=$(),r=He(),i=tt(),{forwardRef:a,currentElement:o}=Z(),s=X(()=>({value:i.value,disabled:i.disabled.value,textContent:o.value?.textContent??i.value?.toString()??``}));return z(()=>{o.value&&(i.onItemTextChange(o.value),r.itemTextRefCallback(o.value,i.value,i.disabled.value),n.onOptionAdd(s.value))}),ye(()=>{n.onOptionRemove(s.value)}),(e,n)=>(R(),Y(V(k),K({id:V(i).textId,ref:V(a)},{...t,...e.$attrs}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`]))}}),ot=M({__name:`SelectLabel`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Qe({id:``});return(e,r)=>(R(),Y(V(k),K(t,{id:V(n).id}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16,[`id`]))}}),st=M({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(R(),Y(V(C),E(O(t)),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),ct=M({__name:`SelectSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(R(),Y(V(k),K({"aria-hidden":`true`},t),{default:L(()=>[q(e.$slots,`default`)]),_:3},16))}}),lt=M({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let r=e,i=$(),{forwardRef:a,currentElement:o}=Z(),s=X(()=>i.disabled?.value||r.disabled);i.contentId||=t(void 0,`reka-select-content`),z(()=>{i.onTriggerChange(o.value)});let{getItems:c}=T(),{search:l,handleTypeaheadSearch:d,resetTypeahead:f}=n();function p(){s.value||(i.onOpenChange(!0),f())}function m(e){p(),i.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}function h(e){return e.button===0&&e.ctrlKey===!1}let g=!1;function _(e){if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),h(e)&&(m(e),g=!0)}function y(e){h(e)&&e.preventDefault()}function b(e){g||e.currentTarget?.focus(),g=!1}return(e,t)=>(R(),Y(V(u),{"as-child":``,reference:e.reference},{default:L(()=>[v(V(k),{ref:V(a),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":V(i).open.value?V(i).contentId:void 0,"aria-expanded":V(i).open.value||!1,"aria-required":V(i).required?.value,"aria-autocomplete":`none`,disabled:s.value,dir:V(i)?.dir.value,"data-state":V(i)?.open.value?`open`:`closed`,"data-disabled":s.value?``:void 0,"data-placeholder":V(Fe)(V(i).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:b,onPointerdown:_,onMousedown:y,onPointerup:t[0]||=G(e=>{e.pointerType===`touch`&&m(e)},[`prevent`]),onKeydown:t[1]||=e=>{let t=V(l)!==``;(e.ctrlKey||e.altKey||e.metaKey||e.key.length!==1||!t||e.key!==` `)&&(V(d)(e.key,V(c)()),V(Me).includes(e.key)&&(p(),e.preventDefault()))}},{default:L(()=>[q(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),ut=M({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Z(),i=$();z(()=>{i.valueElement=r});let a=X(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>Q(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=X(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(R(),Y(V(k),{ref:V(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:L(()=>[q(e.$slots,`default`,{selectedLabel:a.value,modelValue:V(i).modelValue.value},()=>[H(j(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),dt=M({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=N(t),r=h(n),i=He(),a=i.position===`item-aligned`?Ge():void 0,{forwardRef:o,currentElement:s}=Z();z(()=>{i?.onViewportChange(s.value)});let c=J(0);function l(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=a??{};if(n?.value&&r?.value){let e=Math.abs(c.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}c.value=t.scrollTop}return(e,n)=>(R(),b(U,null,[v(V(k),K({ref:V(o),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:l}),{default:L(()=>[q(e.$slots,`default`)]),_:3},16),v(V(k),{as:`style`,nonce:V(r)},{default:L(()=>n[0]||=[H(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),ft={slots:{base:[`relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75`,`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`,value:`truncate pointer-events-none`,placeholder:`truncate text-dimmed`,arrow:`fill-bg stroke-default`,content:`max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col`,viewport:`relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1`,group:`p-1 isolate`,empty:`text-center text-muted`,label:`font-semibold text-highlighted`,separator:`-mx-1 my-1 h-px bg-border`,item:[`group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50`,`transition-colors before:transition-colors`],itemLeadingIcon:[`shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default`,`transition-colors`],itemLeadingAvatar:`shrink-0`,itemLeadingAvatarSize:``,itemLeadingChip:`shrink-0`,itemLeadingChipSize:``,itemTrailing:`ms-auto inline-flex gap-1.5 items-center`,itemTrailingIcon:`shrink-0`,itemWrapper:`flex-1 flex flex-col min-w-0`,itemLabel:`truncate`,itemDescription:`truncate 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`,leading:`ps-2`,trailing:`pe-2`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`,label:`p-1 text-[10px]/3 gap-1`,item:`p-1 text-xs gap-1`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemLeadingChip:`size-4`,itemLeadingChipSize:`sm`,itemTrailingIcon:`size-4`,empty:`p-2 text-xs`},sm:{base:`px-2.5 py-1.5 text-sm/4 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`,label:`p-1.5 text-[10px]/3 gap-1.5`,item:`p-1.5 text-xs gap-1.5`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemLeadingChip:`size-4`,itemLeadingChipSize:`sm`,itemTrailingIcon:`size-4`,empty:`p-2.5 text-xs`},md:{base:`px-2.5 py-1.5 text-base/5 gap-1.5`,leading:`ps-2.5`,trailing:`pe-2.5`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`,label:`p-1.5 text-xs gap-1.5`,item:`p-1.5 text-sm gap-1.5`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemLeadingChip:`size-5`,itemLeadingChipSize:`md`,itemTrailingIcon:`size-5`,empty:`p-2.5 text-sm`},lg:{base:`px-3 py-2 text-base/5 gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`,label:`p-2 text-xs gap-2`,item:`p-2 text-sm gap-2`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemLeadingChip:`size-5`,itemLeadingChipSize:`md`,itemTrailingIcon:`size-5`,empty:`p-3 text-sm`},xl:{base:`px-3 py-2 text-base gap-2`,leading:`ps-3`,trailing:`pe-3`,leadingIcon:`size-6`,leadingAvatarSize:`xs`,trailingIcon:`size-6`,label:`p-2 text-sm gap-2`,item:`p-2 text-base gap-2`,itemLeadingIcon:`size-6`,itemLeadingAvatarSize:`xs`,itemLeadingChip:`size-6`,itemLeadingChipSize:`lg`,itemTrailingIcon:`size-6`,empty:`p-3 text-base`}},variant:{outline:`text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default`,soft:`text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50`,subtle:`text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated`,ghost:`text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent`,none:`text-highlighted bg-transparent 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`},position:{popper:{content:`data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)]`},"item-aligned":{content:``}},multiple:{true:``}},compoundVariants:[{color:`primary`,variant:[`outline`,`subtle`],class:`outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary`},{color:`secondary`,variant:[`outline`,`subtle`],class:`outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary`},{color:`success`,variant:[`outline`,`subtle`],class:`outline-success/25 focus-visible:outline-3 focus-visible:ring-success`},{color:`info`,variant:[`outline`,`subtle`],class:`outline-info/25 focus-visible:outline-3 focus-visible:ring-info`},{color:`warning`,variant:[`outline`,`subtle`],class:`outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning`},{color:`error`,variant:[`outline`,`subtle`],class:`outline-error/25 focus-visible:outline-3 focus-visible:ring-error`},{color:`primary`,variant:[`soft`,`ghost`],class:`outline-primary/25 focus-visible:outline-3`},{color:`secondary`,variant:[`soft`,`ghost`],class:`outline-secondary/25 focus-visible:outline-3`},{color:`success`,variant:[`soft`,`ghost`],class:`outline-success/25 focus-visible:outline-3`},{color:`info`,variant:[`soft`,`ghost`],class:`outline-info/25 focus-visible:outline-3`},{color:`warning`,variant:[`soft`,`ghost`],class:`outline-warning/25 focus-visible:outline-3`},{color:`error`,variant:[`soft`,`ghost`],class:`outline-error/25 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 focus-visible:outline-3 focus-visible:ring-inverted`},{color:`neutral`,variant:[`soft`,`ghost`],class:`outline-inverted/25 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`}],defaultVariants:{size:`md`,color:`primary`,variant:`outline`,position:`popper`}},pt=Object.assign({inheritAttrs:!1},{__name:`Select`,props:{id:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},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},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},multiple:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},nullableValue:{type:String,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,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},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:[`change`,`blur`,`focus`,`update:modelValue`,`update:open`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=y(),o=se(`select`,r),s=Te(),c=ke(S(o,`open`,`defaultOpen`,`disabled`,`autocomplete`,`required`,`multiple`,`nullableValue`),i),l=Oe(w(()=>o.portal)),u=X(()=>o.content?.position??s.ui?.select?.defaultVariants?.position??ft.defaultVariants?.position),d=w(()=>Se(o.content,{side:`bottom`,sideOffset:8,collisionPadding:8,position:u.value})),f=w(()=>Se(o.arrow,{rounded:!0})),{emitFormChange:p,emitFormInput:m,emitFormBlur:h,emitFormFocus:g,size:C,color:T,id:D,name:te,highlight:k,disabled:ne,ariaAttrs:A}=Ce(r),{orientation:re,size:ie}=ve(r),{isLeading:M,isTrailing:N,leadingIconName:oe,trailingIconName:ce}=he(X(()=>({icon:o.icon,leading:o.leading,leadingIcon:o.leadingIcon,trailing:o.trailing,trailingIcon:o.trailingIcon??s.ui.icons.chevronDown,loading:o.loading,loadingIcon:o.loadingIcon}))),ue=X(()=>T.value??o.color),_e=X(()=>k.value??o.highlight),ye=X(()=>ie.value??C.value??o.size),be=X(()=>ne.value??o.disabled),B=X(()=>u.value===`item-aligned`),W=X(()=>pe({extend:ft,...s.ui?.select||{}})({color:ue.value,variant:o.variant,size:ye.value,loading:o.loading,highlight:_e.value,fixed:o.fixed,leading:M.value||!!o.avatar||!!a.leading,trailing:N.value||!!a.trailing,fieldGroup:re.value,position:u.value,multiple:o.multiple})),we=X(()=>o.items?.length?ae(o.items)?o.items:[o.items]:[]),G=X(()=>we.value.flatMap(e=>e));function Ee(e){if(o.multiple&&Array.isArray(e)){let t=e.map(e=>de(G.value,e,{labelKey:o.labelKey,valueKey:o.valueKey})).filter(e=>e!=null&&e!==``);return t.length>0?t.join(`, `):void 0}return de(G.value,e,{labelKey:o.labelKey,valueKey:o.valueKey})}let J=le(`triggerRef`);function Z(){o.autofocus&&J.value?.$el?.focus({focusVisible:!0})}let je;z(()=>{je=setTimeout(()=>{Z()},o.autofocusDelay)}),ge(()=>clearTimeout(je));function Me(e){o.modelModifiers?.trim&&(typeof e==`string`||e==null)&&(e=e?.trim()??null),o.modelModifiers?.number&&(e=_(e)),o.modelModifiers?.nullable&&(e??=null),o.modelModifiers?.optional&&!o.modelModifiers?.nullable&&e!==null&&(e??=void 0);let t=new Event(`change`,{target:{value:e}});i(`change`,t),p(),m()}function Ne(e){if(e){let e=new FocusEvent(`focus`);i(`focus`,e),g()}else{let e=new FocusEvent(`blur`);i(`blur`,e),h()}}function Q(e){return typeof e==`object`&&!!e}function Pe(e){e||J.value?.$el?.dispatchEvent(new PointerEvent(`pointerdown`,{bubbles:!0,button:0}))}let Fe=le(`viewportRef`);return t({triggerRef:w(()=>J.value?.$el),viewportRef:w(()=>{let e=Fe.value;return e&&typeof e==`object`&&`$el`in e?e.$el:e})}),(t,n)=>(R(),Y(V(Re),K({name:V(te)},V(c),{autocomplete:V(o).autocomplete,disabled:be.value,"default-value":V(o).defaultValue,"model-value":e.modelValue,"onUpdate:modelValue":Me,"onUpdate:open":Ne}),{default:L(({modelValue:e,open:n})=>[v(V(lt),K({id:V(D),ref_key:`triggerRef`,ref:J,"data-slot":`base`,class:W.value.base({class:[V(o).ui?.base,V(o).class]})},{...t.$attrs,...V(A)},{onClick:e=>Pe(n)}),{default:L(()=>[V(M)||V(o).avatar||a.leading?(R(),b(`span`,{key:0,"data-slot":`leading`,class:P(W.value.leading({class:V(o).ui?.leading}))},[q(t.$slots,`leading`,{modelValue:e,open:n,ui:W.value},()=>[V(M)&&V(oe)?(R(),Y(Ae,{key:0,name:V(oe),"data-slot":`leadingIcon`,class:P(W.value.leadingIcon({class:V(o).ui?.leadingIcon}))},null,8,[`name`,`class`])):V(o).avatar?(R(),Y(fe,K({key:1,size:V(o).ui?.itemLeadingAvatarSize||W.value.itemLeadingAvatarSize()},V(o).avatar,{"data-slot":`itemLeadingAvatar`,class:W.value.itemLeadingAvatar({class:V(o).ui?.itemLeadingAvatar})}),null,16,[`size`,`class`])):F(``,!0)])],2)):F(``,!0),(R(!0),b(U,null,x([Ee(e)],r=>(R(),Y(V(ut),{key:r,"data-slot":r==null?`placeholder`:`value`,class:P(r==null?W.value.placeholder({class:V(o).ui?.placeholder}):W.value.value({class:V(o).ui?.value}))},{default:L(()=>[q(t.$slots,`default`,{modelValue:e,open:n,ui:W.value},()=>[H(j(r??V(o).placeholder??`\xA0`),1)])]),_:2},1032,[`data-slot`,`class`]))),128)),V(N)||a.trailing?(R(),b(`span`,{key:1,"data-slot":`trailing`,class:P(W.value.trailing({class:V(o).ui?.trailing}))},[q(t.$slots,`trailing`,{modelValue:e,open:n,ui:W.value},()=>[V(ce)?(R(),Y(Ae,{key:0,name:V(ce),"data-slot":`trailingIcon`,class:P(W.value.trailingIcon({class:V(o).ui?.trailingIcon}))},null,8,[`name`,`class`])):F(``,!0)])],2)):F(``,!0)]),_:2},1040,[`id`,`class`,`onClick`]),v(V(st),E(O(V(l))),{default:L(()=>[v(V(xe),null,{default:L(()=>[v(V(Ze),K({"data-slot":`content`,class:W.value.content({class:V(o).ui?.content})},d.value),{default:L(()=>[q(t.$slots,`content-top`),(R(),Y(ee(B.value?V(dt):`div`),{ref_key:`viewportRef`,ref:Fe,role:`presentation`,"data-slot":`viewport`,class:P(W.value.viewport({class:V(o).ui?.viewport}))},{default:L(()=>[(R(!0),b(U,null,x(we.value,(e,n)=>(R(),Y(V(et),{key:`group-${n}`,"data-slot":`group`,class:P(W.value.group({class:V(o).ui?.group}))},{default:L(()=>[(R(!0),b(U,null,x(e,(e,r)=>(R(),b(U,{key:`group-${n}-${r}`},[Q(e)&&e.type===`label`?(R(),Y(V(ot),{key:0,"data-slot":`label`,class:P(W.value.label({class:[V(o).ui?.label,e.ui?.label,e.class]}))},{default:L(()=>[H(j(V(I)(e,V(o).labelKey)),1)]),_:2},1032,[`class`])):Q(e)&&e.type===`separator`?(R(),Y(V(ct),{key:1,"data-slot":`separator`,class:P(W.value.separator({class:[V(o).ui?.separator,e.ui?.separator,e.class]}))},null,8,[`class`])):(R(),Y(V(rt),{key:2,"data-slot":`item`,class:P(W.value.item({class:[V(o).ui?.item,Q(e)&&e.ui?.item,Q(e)&&e.class]})),disabled:Q(e)&&e.disabled,value:Q(e)?V(I)(e,V(o).valueKey):e,onSelect:t=>Q(e)&&e.onSelect?.(t)},{default:L(()=>[q(t.$slots,`item`,{item:e,index:r,ui:W.value},()=>[q(t.$slots,`item-leading`,{item:e,index:r,ui:W.value},()=>[Q(e)&&e.icon?(R(),Y(Ae,{key:0,name:e.icon,"data-slot":`itemLeadingIcon`,class:P(W.value.itemLeadingIcon({class:[V(o).ui?.itemLeadingIcon,e.ui?.itemLeadingIcon]}))},null,8,[`name`,`class`])):Q(e)&&e.avatar?(R(),Y(fe,K({key:1,size:e.ui?.itemLeadingAvatarSize||V(o).ui?.itemLeadingAvatarSize||W.value.itemLeadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":`itemLeadingAvatar`,class:W.value.itemLeadingAvatar({class:[V(o).ui?.itemLeadingAvatar,e.ui?.itemLeadingAvatar]})}),null,16,[`size`,`class`])):Q(e)&&e.chip?(R(),Y(De,K({key:2,size:e.ui?.itemLeadingChipSize||V(o).ui?.itemLeadingChipSize||W.value.itemLeadingChipSize(),inset:``,standalone:``},{ref_for:!0},e.chip,{"data-slot":`itemLeadingChip`,class:W.value.itemLeadingChip({class:[V(o).ui?.itemLeadingChip,e.ui?.itemLeadingChip]})}),null,16,[`size`,`class`])):F(``,!0)]),me(`span`,{"data-slot":`itemWrapper`,class:P(W.value.itemWrapper({class:[V(o).ui?.itemWrapper,Q(e)&&e.ui?.itemWrapper]}))},[v(V(at),{"data-slot":`itemLabel`,class:P(W.value.itemLabel({class:[V(o).ui?.itemLabel,Q(e)&&e.ui?.itemLabel]}))},{default:L(()=>[q(t.$slots,`item-label`,{item:e,index:r},()=>[H(j(Q(e)?V(I)(e,V(o).labelKey):e),1)])]),_:2},1032,[`class`]),Q(e)&&(V(I)(e,V(o).descriptionKey)||a[`item-description`])?(R(),b(`span`,{key:0,"data-slot":`itemDescription`,class:P(W.value.itemDescription({class:[V(o).ui?.itemDescription,Q(e)&&e.ui?.itemDescription]}))},[q(t.$slots,`item-description`,{item:e,index:r},()=>[H(j(V(I)(e,V(o).descriptionKey)),1)])],2)):F(``,!0)],2),me(`span`,{"data-slot":`itemTrailing`,class:P(W.value.itemTrailing({class:[V(o).ui?.itemTrailing,Q(e)&&e.ui?.itemTrailing]}))},[q(t.$slots,`item-trailing`,{item:e,index:r,ui:W.value}),v(V(it),{"as-child":``},{default:L(()=>[v(Ae,{name:V(o).selectedIcon||V(s).ui.icons.check,"data-slot":`itemTrailingIcon`,class:P(W.value.itemTrailingIcon({class:[V(o).ui?.itemTrailingIcon,Q(e)&&e.ui?.itemTrailingIcon]}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:2},1032,[`class`,`disabled`,`value`,`onSelect`]))],64))),128))]),_:2},1032,[`class`]))),128))]),_:3},8,[`class`])),q(t.$slots,`content-bottom`),V(o).arrow?(R(),Y(V(Je),K({key:0},f.value,{"data-slot":`arrow`,class:W.value.arrow({class:V(o).ui?.arrow})}),null,16,[`class`])):F(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`name`,`autocomplete`,`disabled`,`default-value`,`model-value`]))}}),mt=`__none__`,ht=M({__name:`SettingSelect`,props:{modelValue:{},items:{},id:{},name:{},disabled:{type:Boolean},ariaLabel:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=X(()=>n.items.map(e=>({...e,value:e.value===``?mt:e.value}))),a=X(()=>n.modelValue===``?mt:n.modelValue);function o(e){let t=typeof e==`string`?e:``;r(`update:modelValue`,t===mt?``:t)}return(t,n)=>{let r=pt;return R(),Y(r,{id:e.id,name:e.name,"model-value":a.value,items:i.value,"value-key":`value`,size:`sm`,class:`setting-select font-mono text-xs`,disabled:e.disabled,"aria-label":e.ariaLabel,"onUpdate:modelValue":o},null,8,[`id`,`name`,`model-value`,`items`,`disabled`,`aria-label`])}}});export{ht as t};
@@ -1 +1 @@
1
- import{a as e,t}from"./AppShell-CSXDCV4x.js";import{An as n,Cn as r,Cr as i,Li as a,Mn as o,Pi as s,Qr as c,Sn as l,Tr as u,Xr as d,_r as f,bn as p,en as m,hr as h,ji as g,kn as _,l as ee,ln as v,o as y,rn as b,t as x,xi as S,xn as C,yi as te,yn as w}from"./browser-B6T5hjfR.js";import{t as T}from"./SettingSelect-BfID5nF4.js";import{t as ne}from"./Tooltip-wVXCWhMp.js";import{t as E}from"./InputMenu-BdZXnibG.js";import{n as re,r as D,t as O}from"./settingsApi-Dm6eaQcu.js";import{a as k,t as ie}from"./indexRow-Dxg7C8s9.js";var A={key:0,class:`ml-2 text-[0.6875rem] text-dimmed`},ae=o({__name:`ChannelPicker`,props:{channels:{},modelValue:{},extra:{},placeholder:{},id:{},disabled:{type:Boolean},ariaLabel:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,i=t,o=w(()=>{let e=n.channels.map(e=>({label:e.channelName?`#${e.channelName}`:e.channelId,value:e.channelId,suffix:e.visibility===`private`?`private`:e.channelName?e.channelId:void 0}));return n.extra&&!e.some(e=>e.value===n.extra)&&e.push({label:n.extra,value:n.extra,suffix:`not in the list`}),e});function s(e){i(`update:modelValue`,typeof e==`string`?e:``)}return(t,n)=>{let i=E;return f(),C(i,{id:e.id,"model-value":e.modelValue,items:o.value,"value-key":`value`,"filter-fields":[`label`,`value`],placeholder:e.placeholder??`Search channels…`,disabled:e.disabled,"aria-label":e.ariaLabel,size:`sm`,class:`channel-picker font-mono text-xs`,"onUpdate:modelValue":s},{"item-trailing":d(({item:e})=>[e.suffix?(f(),r(`span`,A,a(e.suffix),1)):l(``,!0)]),_:1},8,[`id`,`model-value`,`items`,`placeholder`,`disabled`,`aria-label`])}}}),j={class:`grid gap-4`},oe={key:0,class:`mine grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4 text-sm sm:grid-cols-3`,"aria-labelledby":`mine-heading`},se={class:`grid content-start gap-1`},M={class:`effective font-mono text-xs text-highlighted`},N={class:`grid content-start gap-1`},P={class:`defaults font-mono text-xs text-muted`},ce={class:`grid content-start gap-1`},F={key:0,class:`yours font-mono text-xs text-muted`},I={key:0},L={key:1,class:`yours text-xs text-muted`},R={key:1,class:`unavailable rounded-md border border-warn/30 bg-warn/10 px-3 py-2 text-sm`},z={class:`grid gap-3 lg:grid-cols-[minmax(16rem,22rem)_1fr]`},le={class:`grid content-start gap-3`},ue={class:`overflow-hidden rounded-lg border border-default bg-elevated`},B={key:0,class:`unavailable px-4 py-3 text-sm text-warn`},V={key:1,class:`empty px-4 py-3 text-sm text-muted`},H={key:2,class:`index text-sm`},de=[`data-channel`],fe=[`title`],pe={class:`text-xs text-muted`},U={class:`picker grid gap-2`},me={key:2,class:`text-xs text-dimmed`},he={key:0,class:`placeholder rounded-lg border border-dashed border-default px-5 py-8 text-center text-sm text-muted`},W={key:1,class:`refused rounded-lg border border-warn/30 bg-warn/10 px-5 py-4 text-sm`},G=[`title`],ge={key:2,class:`scope grid gap-4`},_e={class:`flex flex-wrap items-baseline justify-between gap-2`},ve=[`title`],ye={key:0,class:`ml-2 text-xs font-normal text-dimmed`},be={class:`effective text-xs text-muted`},xe={key:0,class:`restricted text-xs text-muted`},Se={class:`grid gap-3 sm:grid-cols-[9rem_1fr]`},Ce=[`disabled`],we={class:`grid gap-1.5`},Te={class:`text-muted`},Ee=[`onUpdate:modelValue`,`name`,`placeholder`,`disabled`],De={class:`grid gap-1.5`},Oe={class:`text-muted`},ke={class:`grid gap-3 sm:grid-cols-[9rem_1fr]`},Ae=[`disabled`],je={class:`flex flex-wrap gap-x-4 gap-y-1`},Me=[`name`,`checked`,`disabled`,`onChange`],Ne={class:`flex flex-wrap items-center gap-3`},Pe=[`disabled`],Fe={class:`flex flex-wrap items-center gap-3`},Ie={class:`text-xs text-dimmed tabular-nums`},K=o({__name:`ChannelsPanel`,props:{channels:{},vocabulary:{},fetch:{type:Function}},setup(e){let t=e,o=(e,n)=>(t.fetch??((e,t)=>globalThis.fetch(e,t)))(e,n),h=w(()=>t.channels.selected??null),y=w(()=>t.channels.viewer??null),ne=w(()=>{let e=y.value?.user;if(!e)return[];let t=[];e.agent&&t.push(`agent ${e.agent}`),e.model&&t.push(`model ${e.model}`);for(let[n,r]of Object.entries(e.models??{}))t.push(`${n} → ${r}`);e.effort&&t.push(`effort ${e.effort}`);for(let[n,r]of Object.entries(e.efforts??{}))t.push(`${n} effort ${r}`);for(let[n,r]of Object.entries(e.harness??{}))t.push(`${n} on ${r}`);return e.boundary?.maxMinutes&&t.push(`at most ${e.boundary.maxMinutes} min`),e.boundary?.maxIdentity&&t.push(`identity ≤ ${e.boundary.maxIdentity}`),e.boundary?.machines&&t.push(`machines ${e.boundary.machines.join(`, `)}`),e.instructions&&t.push(`instructions (${e.instructions.length} chars)`),t}),E=w(()=>h.value?.scope?.channel??null),re=w(()=>[{label:`— the default (${h.value?.scope?.defaults.agent??`general`}), or the router —`,value:``},...t.vocabulary.agents.map(e=>{let t=h.value?.scope?.restrictedAgents.includes(e)??!1;return{label:t?`${e} (restricted)`:e,value:e,disabled:t}})]),k=w(()=>[{label:`— unset —`,value:``},...t.vocabulary.efforts.map(e=>({label:e,value:e}))]),ie=w(()=>[{label:`— uncapped —`,value:``},...t.vocabulary.identities.map(e=>({label:e,value:e}))]),A=e=>e.channelName?`#${e.channelName}`:e.channelId,K=w(()=>t.channels.pickable?.channels??[]);function q(e){e&&x.navigate(`/settings/channels/${encodeURIComponent(e)}`)}let J=S(``);function Le(){q(J.value.trim())}let Y=te({agent:E.value?.agent??``,model:E.value?.model??``,models:Object.fromEntries(t.vocabulary.agents.map(e=>[e,E.value?.models?.[e]??``])),effort:E.value?.effort??``,efforts:Object.fromEntries(t.vocabulary.agents.map(e=>[e,E.value?.efforts?.[e]??``])),maxMinutes:E.value?.boundary?.maxMinutes?.toString()??``,maxIdentity:E.value?.boundary?.maxIdentity??``,machines:new Set(E.value?.boundary?.machines??[]),instructions:E.value?.instructions??``}),X=S(!1),Z=S(null),Q=w(()=>h.value?.canWrite===!0);function Re(e,t){t?Y.machines.add(e):Y.machines.delete(e)}function ze(){let e={};Y.agent&&(e.agent=Y.agent),Y.model.trim()&&(e.model=Y.model.trim());let t=Object.fromEntries(Object.entries(Y.models).filter(([,e])=>e.trim()));Object.keys(t).length&&(e.models=t),Y.effort&&(e.effort=Y.effort);let n=Object.fromEntries(Object.entries(Y.efforts).filter(([,e])=>e));Object.keys(n).length&&(e.efforts=n);let r={};return Y.maxMinutes.trim()&&(r.maxMinutes=Number(Y.maxMinutes)),Y.maxIdentity&&(r.maxIdentity=Y.maxIdentity),Y.machines.size&&(r.machines=[...Y.machines].join(`,`)),Object.keys(r).length&&(e.boundary=r),e}async function $(e,t,n){if(!h.value)return;X.value=!0,Z.value=null;let r=await D(o,e,{scope:`channel`,channel:h.value.channelId,...t});if(X.value=!1,!r.ok){Z.value={kind:`error`,text:r.failure.message};return}Z.value={kind:`ok`,text:n},x.reload()}let Be=()=>$(`config.set`,ze(),`Saved.`),Ve=()=>$(`config.instructions`,{text:Y.instructions.trim()},`Instructions saved.`),He=()=>$(`config.instructions`,{text:``},`Instructions cleared.`);async function Ue(){h.value&&x.confirm(`Drop every runtime override of ${h.value.channelId}? Static config.yaml values show through again.`)&&await $(`config.clear`,{},`Cleared.`)}let We={config:`config.yaml`,runtime:`runtime`,both:`config.yaml + runtime`};return(t,o)=>{let x=u(`RouterLink`),S=ee;return f(),r(`section`,j,[o[33]||=p(`p`,{class:`text-sm text-muted`},[_(` What a run gets is layered: the installation defaults, then the channel's scope, then your own settings (`),p(`code`,null,`config set me`),_(`). This tab shows yours and lets you set a channel's. `)],-1),y.value?(f(),r(`section`,oe,[o[11]||=p(`h2`,{id:`mine-heading`,class:`font-mono text-xs font-medium uppercase tracking-wider text-muted sm:col-span-3`},` Your settings `,-1),p(`div`,se,[o[7]||=p(`span`,{class:`text-xs text-dimmed`},`A run you ask for outside any channel gets`,-1),p(`span`,M,[_(`agent `+a(y.value.effective.agent)+` · `+a(y.value.effective.model),1),y.value.effective.effort?(f(),r(v,{key:0},[_(` · effort `+a(y.value.effective.effort),1)],64)):l(``,!0)])]),p(`div`,N,[o[9]||=p(`span`,{class:`text-xs text-dimmed`},`Installation defaults`,-1),p(`span`,P,[_(` agent `+a(y.value.defaults.agent)+` `,1),(f(!0),r(v,null,i(y.value.defaults.models,(e,t)=>(f(),r(v,{key:t},[o[8]||=p(`br`,null,null,-1),_(a(t)+` → `+a(e),1)],64))),128))])]),p(`div`,ce,[o[10]||=p(`span`,{class:`text-xs text-dimmed`},[_(`Yours (`),p(`code`,null,`config set me`),_(`)`)],-1),ne.value.length>0?(f(),r(`span`,F,[(f(!0),r(v,null,i(ne.value,(e,t)=>(f(),r(v,{key:e},[t>0?(f(),r(`br`,I)):l(``,!0),_(a(e),1)],64))),128))])):(f(),r(`span`,L,`Nothing of your own yet — the defaults apply.`))])])):e.channels.viewerUnavailable?(f(),r(`p`,R,a(e.channels.viewerUnavailable),1)):l(``,!0),p(`div`,z,[p(`aside`,le,[p(`div`,ue,[o[12]||=p(`h2`,{class:`border-b border-muted px-4 py-2 font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},` Configured channels `,-1),e.channels.unavailable?(f(),r(`p`,B,a(e.channels.unavailable),1)):e.channels.index.length===0?(f(),r(`p`,V,` Every channel runs on the defaults. Open one below to give it settings of its own. `)):(f(),r(`ul`,H,[(f(!0),r(v,null,i(e.channels.index,e=>(f(),r(`li`,{key:e.channelId,class:`border-b border-muted last:border-0`,"data-channel":e.channelId},[n(x,{class:`grid gap-0.5 px-4 py-2 no-underline hover:bg-(--ui-bg-muted)`,to:`/settings/channels/${encodeURIComponent(e.channelId)}`,"aria-current":h.value?.channelId===e.channelId?`page`:void 0},{default:d(()=>[p(`span`,{class:`font-mono text-xs font-medium text-highlighted`,title:e.channelId},a(A(e)),9,fe),p(`span`,pe,a(e.settings.join(`, `))+` · `+a(We[e.source]),1)]),_:2},1032,[`to`,`aria-current`])],8,de))),128))]))]),p(`div`,U,[K.value.length>0?(f(),C(ae,{key:0,id:`channel-pick`,channels:K.value,"model-value":h.value?.channelId??``,extra:h.value?.channelId,placeholder:`Search channels…`,"aria-label":`channel to open`,"onUpdate:modelValue":q},null,8,[`channels`,`model-value`,`extra`])):(f(),r(`form`,{key:1,class:`flex items-center gap-2`,onSubmit:b(Le,[`prevent`])},[c(p(`input`,{id:`channel-open`,"onUpdate:modelValue":o[0]||=e=>J.value=e,class:s([g(O),`flex-1 font-mono text-xs`]),placeholder:`slack:C0123… — a channel id`,"aria-label":`channel id to open`},null,2),[[m,J.value]]),n(S,{type:`submit`,size:`xs`,color:`neutral`,variant:`outline`},{default:d(()=>[...o[13]||=[_(`Open`,-1)]]),_:1})],32)),K.value.length>0&&e.channels.pickable?.listed===!1?(f(),r(`p`,me,` The bot could not list its channels; only the channels that already carry settings are offered. `)):l(``,!0)])]),h.value?h.value.refused?(f(),r(`div`,W,[p(`span`,{class:`font-mono text-xs`,title:h.value.channelId},a(A(h.value)),9,G),_(` · `+a(h.value.refused),1)])):E.value&&h.value.scope?(f(),r(`div`,ge,[p(`div`,_e,[p(`h2`,{class:`font-mono text-sm font-medium text-highlighted`,title:h.value.channelId},[_(a(A(h.value)),1),h.value.channelName?(f(),r(`span`,ye,a(h.value.channelId),1)):l(``,!0)],8,ve),p(`p`,be,[o[15]||=_(` Runs here get agent `,-1),p(`code`,null,a(h.value.scope.effective.agent),1),o[16]||=_(`, model `,-1),p(`code`,null,a(h.value.scope.effective.model),1),h.value.scope.effective.effort?(f(),r(v,{key:0},[o[14]||=_(`, effort `,-1),p(`code`,null,a(h.value.scope.effective.effort),1)],64)):l(``,!0)])]),Q.value?l(``,!0):(f(),r(`p`,xe,` Read-only: channel config changes need the channel-config right. `+a(h.value.scope.adminsHint),1)),p(`form`,{class:`agent-form grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(Be,[`prevent`])},[o[28]||=p(`h3`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Agent, model, effort`,-1),p(`div`,Se,[o[17]||=p(`label`,{class:`text-sm text-muted`,for:`ch-agent`},`Agent`,-1),n(T,{id:`ch-agent`,modelValue:Y.agent,"onUpdate:modelValue":o[1]||=e=>Y.agent=e,items:re.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[18]||=p(`label`,{class:`text-sm text-muted`,for:`ch-model`},`Model, any agent`,-1),c(p(`input`,{id:`ch-model`,"onUpdate:modelValue":o[2]||=e=>Y.model=e,class:s([g(O),`font-mono text-xs`]),placeholder:`provider/model — forces every run's model`,disabled:!Q.value},null,10,Ce),[[m,Y.model]]),o[19]||=p(`span`,{class:`text-sm text-muted`},`Model per agent`,-1),p(`div`,we,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`grid grid-cols-[6rem_1fr] items-center gap-2 font-mono text-xs`},[p(`span`,Te,a(e),1),c(p(`input`,{"onUpdate:modelValue":t=>Y.models[e]=t,name:`models.${e}`,class:s([g(O),`font-mono text-xs`]),placeholder:h.value.scope.defaults.models[e]??`default`,disabled:!Q.value},null,10,Ee),[[m,Y.models[e]]])]))),128))]),o[20]||=p(`label`,{class:`text-sm text-muted`,for:`ch-effort`},`Effort, any agent`,-1),n(T,{id:`ch-effort`,modelValue:Y.effort,"onUpdate:modelValue":o[3]||=e=>Y.effort=e,items:k.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[21]||=p(`span`,{class:`text-sm text-muted`},`Effort per agent`,-1),p(`div`,De,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`grid grid-cols-[6rem_1fr] items-center gap-2 font-mono text-xs`},[p(`span`,Oe,a(e),1),n(T,{modelValue:Y.efforts[e],"onUpdate:modelValue":t=>Y.efforts[e]=t,name:`efforts.${e}`,items:k.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`onUpdate:modelValue`,`name`,`items`,`disabled`])]))),128))])]),o[29]||=p(`h3`,{class:`mt-2 font-mono text-xs font-medium uppercase tracking-wider text-muted`},` Boundary · caps every run here, never grants `,-1),p(`div`,ke,[o[22]||=p(`label`,{class:`text-sm text-muted`,for:`ch-minutes`},`Max minutes`,-1),c(p(`input`,{id:`ch-minutes`,"onUpdate:modelValue":o[4]||=e=>Y.maxMinutes=e,class:s([g(O),`w-28 font-mono text-xs tabular-nums`]),type:`number`,min:`2`,placeholder:`uncapped`,disabled:!Q.value},null,10,Ae),[[m,Y.maxMinutes]]),o[23]||=p(`label`,{class:`text-sm text-muted`,for:`ch-identity`},`Max identity`,-1),n(T,{id:`ch-identity`,modelValue:Y.maxIdentity,"onUpdate:modelValue":o[5]||=e=>Y.maxIdentity=e,items:ie.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[24]||=p(`span`,{class:`text-sm text-muted`},`Machines`,-1),p(`div`,je,[(f(!0),r(v,null,i(e.vocabulary.machines,e=>(f(),r(`label`,{key:e,class:`inline-flex items-center gap-1.5 font-mono text-xs`},[p(`input`,{type:`checkbox`,name:`machine-${e}`,checked:Y.machines.has(e),disabled:!Q.value,onChange:t=>Re(e,t.target.checked)},null,40,Me),_(` `+a(e),1)]))),128))])]),p(`div`,Ne,[n(S,{type:`submit`,size:`sm`,color:`neutral`,disabled:!Q.value||X.value},{default:d(()=>[...o[25]||=[_(`Save`,-1)]]),_:1},8,[`disabled`]),n(S,{size:`sm`,color:`error`,variant:`ghost`,disabled:!Q.value||X.value,onClick:Ue},{default:d(()=>[...o[26]||=[_(`Clear every override`,-1)]]),_:1},8,[`disabled`]),o[27]||=p(`span`,{class:`text-xs text-dimmed`},`Save sets the filled fields and leaves the rest as they are.`,-1)])],32),p(`form`,{class:`instructions-form grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(Ve,[`prevent`])},[o[32]||=p(`h3`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},` Custom instructions · advisory, on every run here `,-1),c(p(`textarea`,{id:`ch-instructions`,"onUpdate:modelValue":o[6]||=e=>Y.instructions=e,class:s([g(O),`min-h-28 w-full`]),maxlength:`2000`,placeholder:`Always reply in bullet points.`,disabled:!Q.value},null,10,Pe),[[m,Y.instructions]]),p(`div`,Fe,[n(S,{type:`submit`,size:`sm`,color:`neutral`,disabled:!Q.value||X.value},{default:d(()=>[...o[30]||=[_(`Save instructions`,-1)]]),_:1},8,[`disabled`]),n(S,{size:`sm`,color:`neutral`,variant:`ghost`,disabled:!Q.value||X.value,onClick:He},{default:d(()=>[...o[31]||=[_(`Clear instructions`,-1)]]),_:1},8,[`disabled`]),p(`span`,Ie,a(Y.instructions.length)+` / 2000`,1)])],32),Z.value?(f(),r(`p`,{key:1,class:s([`notice rounded-md px-3 py-2 text-sm`,Z.value.kind===`error`?`border border-err/30 bg-err/10`:`border border-ok/30 bg-ok/10`])},a(Z.value.text),3)):l(``,!0)])):l(``,!0):(f(),r(`div`,he,` Pick a channel on the left to see and change its own settings. `))])])}}}),q={class:`grid gap-4`},J={class:`overflow-x-auto rounded-lg border border-default bg-elevated`},Le={class:`settings w-full min-w-[42rem] border-collapse text-[0.8125rem]`},Y={class:`border-t border-muted bg-muted/40`},X={colspan:`4`,class:`px-4 py-1.5 text-left font-mono text-xs font-medium text-toned`},Z=[`data-key`],Q={class:`px-4 py-2 font-mono text-xs text-highlighted`},Re={class:`px-4 py-2 font-mono text-xs tabular-nums`},ze={class:`value`},$={key:0,class:`ml-1.5 rounded bg-accented px-1.5 py-0.5 text-[0.625rem] text-muted`},Be={class:`px-4 py-2 text-muted`},Ve={class:`px-4 py-2 text-xs text-dimmed`},He={class:`capabilities grid gap-1.5 rounded-lg border border-default bg-elevated px-4 py-3 text-sm`},Ue=[`data-capability`,`data-on`],We={class:`w-40 font-mono text-xs text-highlighted`},Ge={class:`text-xs text-muted`},Ke=o({__name:`InstallationPanel`,props:{installation:{}},setup(e){let t=e,n=w(()=>{let e=[];for(let n of t.installation.settings){let t=n.key.split(`.`)[0],r=e[e.length-1];r&&r.block===t?r.rows.push(n):e.push({block:t,rows:[n]})}return e}),o={runtime:"config.yaml default · a channel overrides it at run time (Channels tab, `config set channel`)",config:"config.yaml · `deploy config`, then a restart"},c=e=>typeof e==`string`?e:e?`on`:`off`;return(t,u)=>(f(),r(`section`,q,[u[1]||=p(`p`,{class:`text-sm text-muted`},[_(` The behaviour knobs of this installation's `),p(`code`,null,`config.yaml`),_(`, with the value in force. A running process keeps the config it started with: a change here is `),p(`code`,null,`deploy config`),_(` and a restart. The `),p(`code`,null,`defaults.*`),_(` rows are what a channel overrides on the Channels tab. `)],-1),p(`div`,J,[p(`table`,Le,[u[0]||=p(`thead`,null,[p(`tr`,{class:`text-left font-mono text-[0.6875rem] uppercase tracking-widest text-dimmed`},[p(`th`,{class:`px-4 py-2.5 font-medium`},`Key`),p(`th`,{class:`px-4 py-2.5 font-medium`},`Value`),p(`th`,{class:`px-4 py-2.5 font-medium`},`What it does`),p(`th`,{class:`px-4 py-2.5 font-medium`},`Changes in`)])],-1),(f(!0),r(v,null,i(n.value,e=>(f(),r(`tbody`,{key:e.block},[p(`tr`,Y,[p(`th`,X,a(e.block),1)]),(f(!0),r(v,null,i(e.rows,e=>(f(),r(`tr`,{key:e.key,class:`setting border-t border-muted align-top`,"data-key":e.key},[p(`td`,Q,a(e.key),1),p(`td`,Re,[p(`span`,ze,a(e.value),1),e.isDefault?(f(),r(`span`,$,`default`)):l(``,!0)]),p(`td`,Be,a(e.note),1),p(`td`,Ve,a(o[e.how]),1)],8,Z))),128))]))),128))])]),u[2]||=p(`h2`,{class:`mt-2 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Capabilities`,-1),u[3]||=p(`p`,{class:`-mt-3 text-sm text-muted`},[_(` What is on in this process. Each one is a `),p(`code`,null,`config.yaml`),_(` block plus what its environment needs; the commands, dashboard section and Worker of a capability appear together when it is on. `)],-1),p(`ul`,He,[(f(!0),r(v,null,i(e.installation.capabilities,e=>(f(),r(`li`,{key:e.key,class:`capability flex flex-wrap items-baseline gap-x-3 gap-y-0.5 border-b border-muted py-1.5 last:border-0`,"data-capability":e.key,"data-on":String(e.on)},[p(`span`,We,a(e.key),1),p(`span`,{class:s([`state rounded px-1.5 py-0.5 font-mono text-[0.6875rem]`,e.on===!1?`bg-accented text-dimmed`:`bg-ok/15 text-ok`])},a(c(e.on)),3),p(`span`,Ge,a(e.how),1)],8,Ue))),128))])]))}}),qe={class:`grid gap-5`},Je={class:`grid gap-1 text-sm text-muted`},Ye={class:`ml-1 inline-flex flex-wrap gap-x-3 gap-y-1`},Xe={key:0},Ze={key:1},Qe={key:0,class:`text-xs text-dimmed`},$e=[`title`],et={key:0,class:`unavailable rounded-md border border-warn/30 bg-warn/10 px-3 py-2 text-sm`},tt={key:1,class:`overflow-x-auto rounded-lg border border-default bg-elevated`},nt={class:`servers w-full min-w-[60rem] border-collapse text-[0.8125rem]`},rt={key:0},it=[`data-name`,`data-scope`,`data-shadowed-by`],at={class:`px-3 py-2.5 font-mono text-xs font-medium whitespace-nowrap text-highlighted`},ot={class:`px-3 py-2.5 whitespace-nowrap`},st={class:`tier rounded border border-accented px-1.5 py-0.5 font-mono text-[0.6875rem] text-toned`},ct=[`title`],lt=[`title`],ut={class:`px-3 py-2.5`},dt=[`title`],ft={class:`min-w-[11rem] px-3 py-2.5`},pt={class:`agents flex flex-wrap gap-1`},mt=[`data-agent-hue`],ht={class:`px-3 py-2.5 font-mono text-xs whitespace-nowrap`},gt={class:`px-3 py-2.5 whitespace-nowrap`},_t={class:`shadow ml-1 cursor-help rounded border border-dashed border-accented px-1.5 py-0.5 font-mono text-[0.6875rem] text-dimmed`},vt={key:1,class:`probe mt-1 text-xs text-dimmed`},yt=[`title`],bt={class:`block max-w-[8rem] truncate`},xt=[`title`],St={class:`px-3 py-1.5 text-right whitespace-nowrap`},Ct={class:`actions inline-flex items-center justify-end`},wt={class:`slot inline-flex w-[4.5rem] justify-center`},Tt={class:`slot inline-flex w-[4.5rem] justify-center`},Et={class:`slot inline-flex w-[4.5rem] justify-center`},Dt={class:`slot inline-flex w-[4.5rem] justify-center`},Ot={class:`grid gap-x-4 gap-y-3 sm:grid-cols-[5.5rem_minmax(0,1fr)] sm:items-start`},kt={class:`grid gap-1`},At=[`disabled`],jt={class:`text-xs text-dimmed`},Mt={class:`grid gap-1`},Nt=[`disabled`],Pt={class:`flex flex-wrap gap-x-4 gap-y-1.5 pt-1 text-sm`},Ft=[`name`,`checked`,`disabled`,`onChange`],It={class:`flex flex-wrap items-center gap-3`},Lt={key:0,class:`restricted text-xs text-muted`},Rt=[`href`],zt={key:1,class:`watching ml-1 text-xs text-dimmed`},Bt=4e3,Vt=o({__name:`McpServersPanel`,props:{mcps:{},vocabulary:{},viewer:{},asUser:{},fetch:{type:Function}},setup(e){let t=e,o=(e,n)=>(t.fetch??((e,t)=>globalThis.fetch(e,t)))(e,n),u=[`general`,`research`],y=w(()=>t.asUser!==void 0),E=te({name:``,url:``,scope:t.mcps.channel?`channel`:`me`,channel:``,agents:new Set(u),auth:``}),A=S(t.mcps.channel??``),j=w(()=>t.mcps.pickable?.channels??[]),oe=w(()=>[{label:`me — ${y.value?`your own runs, as ${t.asUser.name??t.asUser.id}`:`your own runs from this dashboard`}`,value:`me`},{label:`org — every run; may name coding, review, ship`,value:`org`},{label:`channel — ${t.mcps.channel?H.value:`one channel's runs; pick it below`}`,value:`channel`,disabled:!t.mcps.channel&&j.value.length===0}]),se=[{label:`detect from the server`,value:``},{label:`oauth — sign in on a one-time link`,value:`oauth`},{label:`bearer — paste a token on a one-time link`,value:`bearer`},{label:`none`,value:`none`}],M=S(!1),N=S(null),P=te({}),ce=6e5/Bt,F=S(!1),I,L=()=>{I!==void 0&&clearTimeout(I),I=void 0,F.value=!1};h(L);function R(e,n,r){L(),F.value=!0;let i=0,a=async()=>{i+=1;let s=await re(o,`mcp.list`,t.mcps.allTiers?{all:`true`}:{}),c=(s.ok?s.value.servers??[]:[]).find(t=>t.name===e&&t.scopeKey===n);if(c&&c.state!==r){L(),x.reload();return}if(i>=ce){L();return}I=setTimeout(()=>void a(),Bt)};I=setTimeout(()=>void a(),Bt)}let z=w(()=>E.scope===`org`?t.mcps.canWrite.org:E.scope===`channel`?t.mcps.channel?t.mcps.canWrite.channel:E.channel!==``:!0),le=e=>e.scope===`org`?t.mcps.canWrite.org:e.scope===`channel`?t.mcps.canWrite.channel:e.scopeKey===`user:${t.viewer}`||t.asUser!==void 0&&e.scopeKey===`user:${t.asUser.id}`,ue=e=>e.addedBy===t.viewer||t.asUser!==void 0&&e.addedBy===t.asUser.id,B=e=>e.scope===`user`?e.scopeKey.slice(5):``,V=e=>e.scope===`channel`?e.scopeKey.slice(8):``,H=w(()=>t.mcps.channel?t.mcps.channelName?`#${t.mcps.channelName}`:t.mcps.channel:``),de=e=>ue(e)?`you`:e.addedByName??e.addedBy??``,fe=e=>e.scope===`user`&&e.source===`runtime`&&t.mcps.canWrite.org&&!e.shadowedBy,pe={connected:`connected`,awaiting_credential:`awaiting credential`,static:`pinned in config.yaml`};function U(e){e!==(t.mcps.channel??``)&&x.navigate(e?`/settings/mcps?channel=${encodeURIComponent(e)}`:`/settings/mcps`)}function me(){U(A.value.trim())}function he(e,t){t?E.agents.add(e):E.agents.delete(e)}function W(e){return e===`channel`?{scope:`channel`,channel:E.channel||t.mcps.channel}:{scope:e}}let G=e=>e.scope===`user`?`me`:e.scope;async function ge(){M.value=!0,N.value=null;let e=await D(o,`mcp.add`,{name:E.name.trim(),url:E.url.trim(),...W(E.scope),agents:[...E.agents].join(`,`),...E.auth?{auth:E.auth}:{}});if(M.value=!1,!e.ok){N.value={kind:`error`,text:e.failure.message};return}let t=e.value;N.value=t.connectUrl?{kind:`ok`,text:`Added ${t.server?.name??E.name}. Open the one-time link to connect it (it expires in 10 minutes; only you can complete it).`,connectUrl:t.connectUrl}:{kind:`ok`,text:`Added ${t.server?.name??E.name}.`},t.connectUrl?t.server?.name&&t.server.scopeKey&&R(t.server.name,t.server.scopeKey,t.server.state):x.reload()}async function _e(e){M.value=!0,N.value=null;let t=await D(o,`mcp.connect`,{name:e.name,...W(G(e))});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}let n=t.value;N.value={kind:`ok`,text:`A fresh one-time link for ${e.name} (10 minutes; only you can complete it).`,...n.connectUrl?{connectUrl:n.connectUrl}:{}},n.connectUrl&&e.state===`awaiting_credential`&&R(e.name,e.scopeKey,e.state)}async function ve(e){if(!x.confirm(`Remove ${e.name} from the ${e.scope} tier and forget its stored credential?`))return;M.value=!0,N.value=null;let t=await D(o,`mcp.remove`,{name:e.name,...W(G(e))});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}x.reload()}async function ye(e){if(!x.confirm(`Promote ${e.name} to the org tier? The org gets its own copy under the same name — ${e.ownerName??B(e)}'s credential is never copied; a bearer or oauth server needs you to connect it. Their personal entry retires once the org copy works.`))return;M.value=!0,N.value=null;let t=await D(o,`mcp.promote`,{name:e.name,from:B(e)});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}let n=t.value;N.value=n.connectUrl?{kind:`ok`,text:`${e.name} is now an org server awaiting your credential. Open the one-time link to connect it (10 minutes; only you can complete it).`,connectUrl:n.connectUrl}:{kind:`ok`,text:`${e.name} is now an org server.`},n.connectUrl?R(e.name,`org`,`awaiting_credential`):x.reload()}async function be(e){P[e.name]=`probing…`;let n=await re(o,`mcp.show`,{name:e.name,scope:e.scope===`user`?`me`:e.scope,channel:e.scope===`channel`?t.mcps.channel:void 0});if(!n.ok){P[e.name]=n.failure.message;return}let{probe:r}=n.value;P[e.name]=r?.tools?`${r.tools.length} tool${r.tools.length===1?``:`s`}: ${r.tools.map(e=>e.name).join(`, `)}`:r?.error??`no tools listed`}return(t,o)=>{let h=ee,y=ne;return f(),r(`section`,qe,[p(`div`,Je,[p(`p`,null,[o[11]||=_(` External MCP servers a run's tools may call. `,-1),p(`span`,Ye,[o[9]||=p(`span`,null,[p(`strong`,{class:`text-toned`},`org`),_(` · every run`)],-1),o[10]||=p(`span`,null,[p(`strong`,{class:`text-toned`},`channel`),_(` · that channel's runs`)],-1),e.asUser?(f(),r(`span`,Xe,[o[7]||=p(`strong`,{class:`text-toned`},`me`,-1),_(` · the runs you ask for as `+a(e.asUser.name??e.asUser.id),1)])):(f(),r(`span`,Ze,[...o[8]||=[p(`strong`,{class:`text-toned`},`me`,-1),_(` · added in chat with `,-1),p(`code`,null,`mcp add`,-1)]]))])]),e.mcps.allTiers?(f(),r(`p`,Qe,[...o[12]||=[_(` You see every tier. `,-1),p(`strong`,{class:`font-medium text-muted`},`Promote`,-1),_(` gives the org its own copy of a person's server under the same name, connected by you — their credential is never copied, and their entry retires once the org copy works. `,-1)]])):l(``,!0)]),p(`form`,{class:`flex flex-wrap items-center gap-2 text-sm`,onSubmit:b(me,[`prevent`])},[o[15]||=p(`label`,{class:`text-muted`,for:`mcp-channel`},`Channel`,-1),j.value.length>0?(f(),C(ae,{key:0,id:`mcp-channel`,channels:j.value,"model-value":e.mcps.channel??``,extra:e.mcps.channel,placeholder:`Search channels…`,"aria-label":`channel whose MCP servers to list`,class:`w-72`,"onUpdate:modelValue":U},null,8,[`channels`,`model-value`,`extra`])):(f(),r(v,{key:1},[c(p(`input`,{id:`mcp-channel`,"onUpdate:modelValue":o[0]||=e=>A.value=e,class:s([g(O),`w-56 font-mono text-xs`]),placeholder:`slack:C0123…`,"aria-label":`channel whose MCP servers to list`},null,2),[[m,A.value]]),n(h,{type:`submit`,size:`xs`,color:`neutral`,variant:`outline`},{default:d(()=>[...o[13]||=[_(`Open`,-1)]]),_:1})],64)),e.mcps.channel?(f(),C(h,{key:2,size:`xs`,color:`neutral`,variant:`ghost`,title:`back to the org's and your own`,onClick:o[1]||=e=>U(``)},{default:d(()=>[...o[14]||=[_(`Clear`,-1)]]),_:1})):l(``,!0),p(`span`,{class:`text-xs text-dimmed`,title:e.mcps.channel},a(e.mcps.channel?`Listing the ${H.value} tier beside the rest.`:`Blank: the org's and your own.`),9,$e)],32),e.mcps.unavailable?(f(),r(`p`,et,a(e.mcps.unavailable),1)):(f(),r(`div`,tt,[p(`table`,nt,[o[21]||=p(`thead`,null,[p(`tr`,{class:`text-left font-mono text-[0.6875rem] uppercase tracking-widest text-dimmed`},[p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Name`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Tier`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`URL`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Agents`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Auth`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`State`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Added by`),p(`th`,{class:`px-3 py-2.5 font-medium`},[p(`span`,{class:`sr-only`},`Actions`)])])],-1),p(`tbody`,null,[e.mcps.servers.length===0?(f(),r(`tr`,rt,[...o[16]||=[p(`td`,{colspan:`8`,class:`empty px-4 py-6 text-center text-muted`},` No MCP server reaches runs here yet. Add one below. `,-1)]])):l(``,!0),(f(!0),r(v,null,i(e.mcps.servers,e=>(f(),r(`tr`,{key:`${e.scopeKey}/${e.name}`,class:s([`server border-t border-muted align-middle`,e.shadowedBy?`shadowed text-dimmed`:``]),"data-name":e.name,"data-scope":e.scope,"data-shadowed-by":e.shadowedBy},[p(`td`,at,a(e.name),1),p(`td`,ot,[p(`span`,st,a(e.scope),1),B(e)?(f(),r(`span`,{key:0,class:`owner mt-1 block text-[0.6875rem] text-dimmed`,title:B(e)},a(e.ownerName??B(e)),9,ct)):l(``,!0),V(e)?(f(),r(`span`,{key:1,class:`channel mt-1 block text-[0.6875rem] text-dimmed`,title:V(e)},a(e.channelName?`#${e.channelName}`:V(e)),9,lt)):l(``,!0)]),p(`td`,ut,[p(`span`,{class:`block max-w-[11rem] truncate font-mono text-xs text-muted`,title:e.url},a(e.url),9,dt)]),p(`td`,ft,[p(`span`,pt,[(f(!0),r(v,null,i(e.agents,e=>(f(),r(`span`,{key:e,class:s([`agent rounded border px-1.5 font-mono text-[0.68rem] font-medium uppercase tracking-wider`,g(ie)[g(k)(e)]]),"data-agent-hue":g(k)(e)},a(e),11,mt))),128))])]),p(`td`,ht,a(e.auth),1),p(`td`,gt,[p(`span`,{class:s([`state rounded px-1.5 py-0.5 font-mono text-[0.6875rem]`,e.state===`connected`?`bg-ok/15 text-ok`:e.state===`awaiting_credential`?`bg-warn/15 text-warn`:`bg-accented text-muted`])},a(pe[e.state]),3),e.shadowedBy?(f(),C(y,{key:0,text:`The ${e.shadowedBy} tier holds a server of this name, so runs use that one; this entry is idle until it is removed or renamed.`},{default:d(()=>[p(`span`,_t,`shadowed by `+a(e.shadowedBy),1)]),_:2},1032,[`text`])):l(``,!0),P[e.name]?(f(),r(`div`,vt,a(P[e.name]),1)):l(``,!0)]),p(`td`,{class:`addedby px-3 py-2.5 text-xs text-muted`,title:e.addedBy},[p(`span`,bt,a(de(e)),1),e.promotedFrom?(f(),r(`span`,{key:0,class:`block max-w-[8rem] truncate text-[0.6875rem] text-dimmed`,title:e.promotedFrom},`promoted from `+a(e.promotedFromName??e.promotedFrom),9,xt)):l(``,!0)],8,yt),p(`td`,St,[p(`span`,Ct,[p(`span`,wt,[n(h,{size:`xs`,color:`neutral`,variant:`ghost`,disabled:M.value,onClick:t=>be(e)},{default:d(()=>[...o[17]||=[_(`Probe`,-1)]]),_:1},8,[`disabled`,`onClick`])]),p(`span`,Tt,[fe(e)?(f(),C(h,{key:0,size:`xs`,color:`primary`,variant:`ghost`,disabled:M.value,onClick:t=>ye(e)},{default:d(()=>[...o[18]||=[_(`Promote`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)]),p(`span`,Et,[e.source===`runtime`&&e.auth!==`none`?(f(),C(h,{key:0,size:`xs`,color:`neutral`,variant:`ghost`,disabled:M.value||!le(e),onClick:t=>_e(e)},{default:d(()=>[...o[19]||=[_(`Connect`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)]),p(`span`,Dt,[e.source===`runtime`?(f(),C(h,{key:0,size:`xs`,color:`error`,variant:`ghost`,disabled:M.value||!le(e),onClick:t=>ve(e)},{default:d(()=>[...o[20]||=[_(`Remove`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)])])])],10,it))),128))])])])),e.mcps.unavailable?l(``,!0):(f(),r(`form`,{key:2,class:`add grid max-w-3xl gap-4 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(ge,[`prevent`])},[o[32]||=p(`h2`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Add a server`,-1),p(`div`,Ot,[o[26]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-name`},`Name`,-1),p(`div`,kt,[c(p(`input`,{id:`mcp-name`,"onUpdate:modelValue":o[2]||=e=>E.name=e,class:s([g(O),`font-mono text-xs sm:max-w-xs`]),required:``,pattern:`[a-z0-9][a-z0-9-]{0,31}`,placeholder:`notion`,disabled:!z.value},null,10,At),[[m,E.name]]),p(`span`,jt,[o[22]||=_(`A slug; its tools appear as `,-1),p(`code`,null,`mcp__`+a(E.name.trim()||`name`)+`__…`,1)])]),o[27]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-url`},`URL`,-1),p(`div`,Mt,[c(p(`input`,{id:`mcp-url`,"onUpdate:modelValue":o[3]||=e=>E.url=e,class:s([g(O),`font-mono text-xs`]),type:`url`,required:``,placeholder:`https://mcp.example.com/mcp`,disabled:!z.value},null,10,Nt),[[m,E.url]]),o[23]||=p(`span`,{class:`text-xs text-dimmed`},`The server's Streamable-HTTP endpoint.`,-1)]),o[28]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-scope`},`Tier`,-1),n(T,{id:`mcp-scope`,modelValue:E.scope,"onUpdate:modelValue":o[4]||=e=>E.scope=e,items:oe.value,class:`sm:max-w-md`},null,8,[`modelValue`,`items`]),E.scope===`channel`&&!e.mcps.channel?(f(),r(v,{key:0},[o[24]||=p(`span`,{class:`text-sm text-muted sm:pt-1`},`Channel`,-1),n(ae,{id:`mcp-add-channel`,modelValue:E.channel,"onUpdate:modelValue":o[5]||=e=>E.channel=e,channels:j.value,placeholder:`Search channels…`,"aria-label":`channel the server belongs to`,class:`sm:max-w-md`},null,8,[`modelValue`,`channels`])],64)):l(``,!0),o[29]||=p(`span`,{class:`text-sm text-muted sm:pt-1`},`Agents`,-1),p(`div`,Pt,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`inline-flex items-center gap-1.5 font-mono text-xs`},[p(`input`,{type:`checkbox`,name:`agent-${e}`,checked:E.agents.has(e),disabled:!z.value||E.scope===`channel`&&!u.includes(e),onChange:t=>he(e,t.target.checked)},null,40,Ft),_(` `+a(e),1)]))),128))]),o[30]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-auth`},`Auth`,-1),n(T,{id:`mcp-auth`,modelValue:E.auth,"onUpdate:modelValue":o[6]||=e=>E.auth=e,items:se,class:`sm:max-w-md`,disabled:!z.value},null,8,[`modelValue`,`disabled`]),o[31]||=p(`span`,{class:`hidden sm:block`},null,-1),p(`div`,It,[n(h,{type:`submit`,size:`sm`,color:`neutral`,disabled:!z.value||M.value},{default:d(()=>[...o[25]||=[_(`Add`,-1)]]),_:1},8,[`disabled`]),z.value?l(``,!0):(f(),r(`span`,Lt,a(E.scope===`org`?`Org-wide servers are managed by admins (repo-management rights).`:`This channel's servers need channel-config rights.`),1))])]),N.value?(f(),r(`p`,{key:0,class:s([`notice rounded-md px-3 py-2 text-sm`,N.value.kind===`error`?`border border-err/30 bg-err/10`:`border border-ok/30 bg-ok/10`])},[_(a(N.value.text)+` `,1),N.value.connectUrl?(f(),r(`a`,{key:0,class:`connect ml-1 font-mono text-xs underline`,href:N.value.connectUrl,target:`_blank`,rel:`noopener`},a(N.value.connectUrl),9,Rt)):l(``,!0),F.value?(f(),r(`span`,zt,`— this page refreshes itself when the link is used.`)):l(``,!0)],2)):l(``,!0)],32))])}}}),Ht=[{id:`mcps`,href:`/settings/mcps`,label:`MCPs`,on:e=>e.mcp},{id:`channels`,href:`/settings/channels`,label:`Channels`},{id:`installation`,href:`/settings/installation`,label:`Installation`}];function Ut(e,t){return Ht.filter(n=>n.id===t||n.on===void 0||e!==null&&n.on(e))}var Wt={class:`tabs mb-3.5 flex gap-5 border-b border-muted px-2 text-[0.8rem]`,"aria-label":`Settings sections`},Gt=o({__name:`SettingsTabs`,props:{current:{}},setup(t){let n=t,o=e(),s=w(()=>Ut(o,n.current));return(e,n)=>{let o=u(`RouterLink`);return f(),r(`nav`,Wt,[(f(!0),r(v,null,i(s.value,e=>(f(),C(o,{key:e.id,to:e.href,"aria-current":e.id===t.current?`page`:void 0,class:`-mb-px border-b border-transparent pb-2 pt-1.5 text-muted no-underline hover:text-highlighted aria-[current=page]:border-(--ui-text-highlighted) aria-[current=page]:font-medium aria-[current=page]:text-highlighted`},{default:d(()=>[_(a(e.label),1)]),_:2},1032,[`to`,`aria-current`]))),128))])}}}),Kt={class:`error mx-auto my-8 max-w-lg rounded-lg border border-err/30 bg-err/10 px-5 py-4 text-sm`,role:`alert`},qt=o({__name:`SettingsPage`,setup(e){let r=y(`settings`),i=w(()=>r?.tab??`channels`);return(e,a)=>{let o=ee;return g(r)?(f(),C(t,{key:0,title:`Settings`,nav:`settings`},{default:d(()=>[n(Gt,{current:i.value},null,8,[`current`]),i.value===`mcps`&&g(r).mcps?(f(),C(Vt,{key:0,mcps:g(r).mcps,vocabulary:g(r).vocabulary,viewer:g(r).viewer,"as-user":g(r).asUser},null,8,[`mcps`,`vocabulary`,`viewer`,`as-user`])):i.value===`channels`&&g(r).channels?(f(),C(K,{key:1,channels:g(r).channels,vocabulary:g(r).vocabulary},null,8,[`channels`,`vocabulary`])):i.value===`installation`&&g(r).installation?(f(),C(Ke,{key:2,installation:g(r).installation},null,8,[`installation`])):l(``,!0)]),_:1})):(f(),C(t,{key:1,title:`Settings`,nav:`settings`},{default:d(()=>[p(`div`,Kt,[a[2]||=p(`p`,{class:`font-medium text-highlighted`},`Settings could not be loaded.`,-1),a[3]||=p(`p`,{class:`mt-1 text-muted`},` The page arrived without its data. Reload to try again; if it keeps happening, the bot's log has the reason. `,-1),n(o,{class:`mt-3`,size:`xs`,color:`neutral`,variant:`outline`,onClick:a[0]||=e=>g(x).reload()},{default:d(()=>[...a[1]||=[_(`Reload`,-1)]]),_:1})])]),_:1}))}}});export{qt as default};
1
+ import{a as e,t}from"./AppShell-DPJVhUGP.js";import{An as n,Cn as r,Cr as i,Li as a,Mn as o,Pi as s,Qr as c,Sn as l,Tr as u,Xr as d,_r as f,bn as p,en as m,hr as h,ji as g,kn as _,l as ee,ln as v,o as y,rn as b,t as x,xi as S,xn as C,yi as te,yn as w}from"./browser-CCImen5O.js";import{t as T}from"./SettingSelect-CEeA4iuC.js";import{t as ne}from"./Tooltip-B4VIHkAI.js";import{t as E}from"./InputMenu-BRV35UWP.js";import{n as re,r as D,t as O}from"./settingsApi-Dm6eaQcu.js";import{a as k,t as ie}from"./indexRow-Dxg7C8s9.js";var A={key:0,class:`ml-2 text-[0.6875rem] text-dimmed`},ae=o({__name:`ChannelPicker`,props:{channels:{},modelValue:{},extra:{},placeholder:{},id:{},disabled:{type:Boolean},ariaLabel:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,i=t,o=w(()=>{let e=n.channels.map(e=>({label:e.channelName?`#${e.channelName}`:e.channelId,value:e.channelId,suffix:e.visibility===`private`?`private`:e.channelName?e.channelId:void 0}));return n.extra&&!e.some(e=>e.value===n.extra)&&e.push({label:n.extra,value:n.extra,suffix:`not in the list`}),e});function s(e){i(`update:modelValue`,typeof e==`string`?e:``)}return(t,n)=>{let i=E;return f(),C(i,{id:e.id,"model-value":e.modelValue,items:o.value,"value-key":`value`,"filter-fields":[`label`,`value`],placeholder:e.placeholder??`Search channels…`,disabled:e.disabled,"aria-label":e.ariaLabel,size:`sm`,class:`channel-picker font-mono text-xs`,"onUpdate:modelValue":s},{"item-trailing":d(({item:e})=>[e.suffix?(f(),r(`span`,A,a(e.suffix),1)):l(``,!0)]),_:1},8,[`id`,`model-value`,`items`,`placeholder`,`disabled`,`aria-label`])}}}),j={class:`grid gap-4`},oe={key:0,class:`mine grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4 text-sm sm:grid-cols-3`,"aria-labelledby":`mine-heading`},se={class:`grid content-start gap-1`},M={class:`effective font-mono text-xs text-highlighted`},N={class:`grid content-start gap-1`},P={class:`defaults font-mono text-xs text-muted`},ce={class:`grid content-start gap-1`},F={key:0,class:`yours font-mono text-xs text-muted`},I={key:0},L={key:1,class:`yours text-xs text-muted`},R={key:1,class:`unavailable rounded-md border border-warn/30 bg-warn/10 px-3 py-2 text-sm`},z={class:`grid gap-3 lg:grid-cols-[minmax(16rem,22rem)_1fr]`},le={class:`grid content-start gap-3`},ue={class:`overflow-hidden rounded-lg border border-default bg-elevated`},B={key:0,class:`unavailable px-4 py-3 text-sm text-warn`},V={key:1,class:`empty px-4 py-3 text-sm text-muted`},H={key:2,class:`index text-sm`},de=[`data-channel`],fe=[`title`],pe={class:`text-xs text-muted`},U={class:`picker grid gap-2`},me={key:2,class:`text-xs text-dimmed`},he={key:0,class:`placeholder rounded-lg border border-dashed border-default px-5 py-8 text-center text-sm text-muted`},W={key:1,class:`refused rounded-lg border border-warn/30 bg-warn/10 px-5 py-4 text-sm`},G=[`title`],ge={key:2,class:`scope grid gap-4`},_e={class:`flex flex-wrap items-baseline justify-between gap-2`},ve=[`title`],ye={key:0,class:`ml-2 text-xs font-normal text-dimmed`},be={class:`effective text-xs text-muted`},xe={key:0,class:`restricted text-xs text-muted`},Se={class:`grid gap-3 sm:grid-cols-[9rem_1fr]`},Ce=[`disabled`],we={class:`grid gap-1.5`},Te={class:`text-muted`},Ee=[`onUpdate:modelValue`,`name`,`placeholder`,`disabled`],De={class:`grid gap-1.5`},Oe={class:`text-muted`},ke={class:`grid gap-3 sm:grid-cols-[9rem_1fr]`},Ae=[`disabled`],je={class:`flex flex-wrap gap-x-4 gap-y-1`},Me=[`name`,`checked`,`disabled`,`onChange`],Ne={class:`flex flex-wrap items-center gap-3`},Pe=[`disabled`],Fe={class:`flex flex-wrap items-center gap-3`},Ie={class:`text-xs text-dimmed tabular-nums`},K=o({__name:`ChannelsPanel`,props:{channels:{},vocabulary:{},fetch:{type:Function}},setup(e){let t=e,o=(e,n)=>(t.fetch??((e,t)=>globalThis.fetch(e,t)))(e,n),h=w(()=>t.channels.selected??null),y=w(()=>t.channels.viewer??null),ne=w(()=>{let e=y.value?.user;if(!e)return[];let t=[];e.agent&&t.push(`agent ${e.agent}`),e.model&&t.push(`model ${e.model}`);for(let[n,r]of Object.entries(e.models??{}))t.push(`${n} → ${r}`);e.effort&&t.push(`effort ${e.effort}`);for(let[n,r]of Object.entries(e.efforts??{}))t.push(`${n} effort ${r}`);for(let[n,r]of Object.entries(e.harness??{}))t.push(`${n} on ${r}`);return e.boundary?.maxMinutes&&t.push(`at most ${e.boundary.maxMinutes} min`),e.boundary?.maxIdentity&&t.push(`identity ≤ ${e.boundary.maxIdentity}`),e.boundary?.machines&&t.push(`machines ${e.boundary.machines.join(`, `)}`),e.instructions&&t.push(`instructions (${e.instructions.length} chars)`),t}),E=w(()=>h.value?.scope?.channel??null),re=w(()=>[{label:`— the default (${h.value?.scope?.defaults.agent??`general`}), or the router —`,value:``},...t.vocabulary.agents.map(e=>{let t=h.value?.scope?.restrictedAgents.includes(e)??!1;return{label:t?`${e} (restricted)`:e,value:e,disabled:t}})]),k=w(()=>[{label:`— unset —`,value:``},...t.vocabulary.efforts.map(e=>({label:e,value:e}))]),ie=w(()=>[{label:`— uncapped —`,value:``},...t.vocabulary.identities.map(e=>({label:e,value:e}))]),A=e=>e.channelName?`#${e.channelName}`:e.channelId,K=w(()=>t.channels.pickable?.channels??[]);function q(e){e&&x.navigate(`/settings/channels/${encodeURIComponent(e)}`)}let J=S(``);function Le(){q(J.value.trim())}let Y=te({agent:E.value?.agent??``,model:E.value?.model??``,models:Object.fromEntries(t.vocabulary.agents.map(e=>[e,E.value?.models?.[e]??``])),effort:E.value?.effort??``,efforts:Object.fromEntries(t.vocabulary.agents.map(e=>[e,E.value?.efforts?.[e]??``])),maxMinutes:E.value?.boundary?.maxMinutes?.toString()??``,maxIdentity:E.value?.boundary?.maxIdentity??``,machines:new Set(E.value?.boundary?.machines??[]),instructions:E.value?.instructions??``}),X=S(!1),Z=S(null),Q=w(()=>h.value?.canWrite===!0);function Re(e,t){t?Y.machines.add(e):Y.machines.delete(e)}function ze(){let e={};Y.agent&&(e.agent=Y.agent),Y.model.trim()&&(e.model=Y.model.trim());let t=Object.fromEntries(Object.entries(Y.models).filter(([,e])=>e.trim()));Object.keys(t).length&&(e.models=t),Y.effort&&(e.effort=Y.effort);let n=Object.fromEntries(Object.entries(Y.efforts).filter(([,e])=>e));Object.keys(n).length&&(e.efforts=n);let r={};return Y.maxMinutes.trim()&&(r.maxMinutes=Number(Y.maxMinutes)),Y.maxIdentity&&(r.maxIdentity=Y.maxIdentity),Y.machines.size&&(r.machines=[...Y.machines].join(`,`)),Object.keys(r).length&&(e.boundary=r),e}async function $(e,t,n){if(!h.value)return;X.value=!0,Z.value=null;let r=await D(o,e,{scope:`channel`,channel:h.value.channelId,...t});if(X.value=!1,!r.ok){Z.value={kind:`error`,text:r.failure.message};return}Z.value={kind:`ok`,text:n},x.reload()}let Be=()=>$(`config.set`,ze(),`Saved.`),Ve=()=>$(`config.instructions`,{text:Y.instructions.trim()},`Instructions saved.`),He=()=>$(`config.instructions`,{text:``},`Instructions cleared.`);async function Ue(){h.value&&x.confirm(`Drop every runtime override of ${h.value.channelId}? Static config.yaml values show through again.`)&&await $(`config.clear`,{},`Cleared.`)}let We={config:`config.yaml`,runtime:`runtime`,both:`config.yaml + runtime`};return(t,o)=>{let x=u(`RouterLink`),S=ee;return f(),r(`section`,j,[o[33]||=p(`p`,{class:`text-sm text-muted`},[_(` What a run gets is layered: the installation defaults, then the channel's scope, then your own settings (`),p(`code`,null,`config set me`),_(`). This tab shows yours and lets you set a channel's. `)],-1),y.value?(f(),r(`section`,oe,[o[11]||=p(`h2`,{id:`mine-heading`,class:`font-mono text-xs font-medium uppercase tracking-wider text-muted sm:col-span-3`},` Your settings `,-1),p(`div`,se,[o[7]||=p(`span`,{class:`text-xs text-dimmed`},`A run you ask for outside any channel gets`,-1),p(`span`,M,[_(`agent `+a(y.value.effective.agent)+` · `+a(y.value.effective.model),1),y.value.effective.effort?(f(),r(v,{key:0},[_(` · effort `+a(y.value.effective.effort),1)],64)):l(``,!0)])]),p(`div`,N,[o[9]||=p(`span`,{class:`text-xs text-dimmed`},`Installation defaults`,-1),p(`span`,P,[_(` agent `+a(y.value.defaults.agent)+` `,1),(f(!0),r(v,null,i(y.value.defaults.models,(e,t)=>(f(),r(v,{key:t},[o[8]||=p(`br`,null,null,-1),_(a(t)+` → `+a(e),1)],64))),128))])]),p(`div`,ce,[o[10]||=p(`span`,{class:`text-xs text-dimmed`},[_(`Yours (`),p(`code`,null,`config set me`),_(`)`)],-1),ne.value.length>0?(f(),r(`span`,F,[(f(!0),r(v,null,i(ne.value,(e,t)=>(f(),r(v,{key:e},[t>0?(f(),r(`br`,I)):l(``,!0),_(a(e),1)],64))),128))])):(f(),r(`span`,L,`Nothing of your own yet — the defaults apply.`))])])):e.channels.viewerUnavailable?(f(),r(`p`,R,a(e.channels.viewerUnavailable),1)):l(``,!0),p(`div`,z,[p(`aside`,le,[p(`div`,ue,[o[12]||=p(`h2`,{class:`border-b border-muted px-4 py-2 font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},` Configured channels `,-1),e.channels.unavailable?(f(),r(`p`,B,a(e.channels.unavailable),1)):e.channels.index.length===0?(f(),r(`p`,V,` Every channel runs on the defaults. Open one below to give it settings of its own. `)):(f(),r(`ul`,H,[(f(!0),r(v,null,i(e.channels.index,e=>(f(),r(`li`,{key:e.channelId,class:`border-b border-muted last:border-0`,"data-channel":e.channelId},[n(x,{class:`grid gap-0.5 px-4 py-2 no-underline hover:bg-(--ui-bg-muted)`,to:`/settings/channels/${encodeURIComponent(e.channelId)}`,"aria-current":h.value?.channelId===e.channelId?`page`:void 0},{default:d(()=>[p(`span`,{class:`font-mono text-xs font-medium text-highlighted`,title:e.channelId},a(A(e)),9,fe),p(`span`,pe,a(e.settings.join(`, `))+` · `+a(We[e.source]),1)]),_:2},1032,[`to`,`aria-current`])],8,de))),128))]))]),p(`div`,U,[K.value.length>0?(f(),C(ae,{key:0,id:`channel-pick`,channels:K.value,"model-value":h.value?.channelId??``,extra:h.value?.channelId,placeholder:`Search channels…`,"aria-label":`channel to open`,"onUpdate:modelValue":q},null,8,[`channels`,`model-value`,`extra`])):(f(),r(`form`,{key:1,class:`flex items-center gap-2`,onSubmit:b(Le,[`prevent`])},[c(p(`input`,{id:`channel-open`,"onUpdate:modelValue":o[0]||=e=>J.value=e,class:s([g(O),`flex-1 font-mono text-xs`]),placeholder:`slack:C0123… — a channel id`,"aria-label":`channel id to open`},null,2),[[m,J.value]]),n(S,{type:`submit`,size:`xs`,color:`neutral`,variant:`outline`},{default:d(()=>[...o[13]||=[_(`Open`,-1)]]),_:1})],32)),K.value.length>0&&e.channels.pickable?.listed===!1?(f(),r(`p`,me,` The bot could not list its channels; only the channels that already carry settings are offered. `)):l(``,!0)])]),h.value?h.value.refused?(f(),r(`div`,W,[p(`span`,{class:`font-mono text-xs`,title:h.value.channelId},a(A(h.value)),9,G),_(` · `+a(h.value.refused),1)])):E.value&&h.value.scope?(f(),r(`div`,ge,[p(`div`,_e,[p(`h2`,{class:`font-mono text-sm font-medium text-highlighted`,title:h.value.channelId},[_(a(A(h.value)),1),h.value.channelName?(f(),r(`span`,ye,a(h.value.channelId),1)):l(``,!0)],8,ve),p(`p`,be,[o[15]||=_(` Runs here get agent `,-1),p(`code`,null,a(h.value.scope.effective.agent),1),o[16]||=_(`, model `,-1),p(`code`,null,a(h.value.scope.effective.model),1),h.value.scope.effective.effort?(f(),r(v,{key:0},[o[14]||=_(`, effort `,-1),p(`code`,null,a(h.value.scope.effective.effort),1)],64)):l(``,!0)])]),Q.value?l(``,!0):(f(),r(`p`,xe,` Read-only: channel config changes need the channel-config right. `+a(h.value.scope.adminsHint),1)),p(`form`,{class:`agent-form grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(Be,[`prevent`])},[o[28]||=p(`h3`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Agent, model, effort`,-1),p(`div`,Se,[o[17]||=p(`label`,{class:`text-sm text-muted`,for:`ch-agent`},`Agent`,-1),n(T,{id:`ch-agent`,modelValue:Y.agent,"onUpdate:modelValue":o[1]||=e=>Y.agent=e,items:re.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[18]||=p(`label`,{class:`text-sm text-muted`,for:`ch-model`},`Model, any agent`,-1),c(p(`input`,{id:`ch-model`,"onUpdate:modelValue":o[2]||=e=>Y.model=e,class:s([g(O),`font-mono text-xs`]),placeholder:`provider/model — forces every run's model`,disabled:!Q.value},null,10,Ce),[[m,Y.model]]),o[19]||=p(`span`,{class:`text-sm text-muted`},`Model per agent`,-1),p(`div`,we,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`grid grid-cols-[6rem_1fr] items-center gap-2 font-mono text-xs`},[p(`span`,Te,a(e),1),c(p(`input`,{"onUpdate:modelValue":t=>Y.models[e]=t,name:`models.${e}`,class:s([g(O),`font-mono text-xs`]),placeholder:h.value.scope.defaults.models[e]??`default`,disabled:!Q.value},null,10,Ee),[[m,Y.models[e]]])]))),128))]),o[20]||=p(`label`,{class:`text-sm text-muted`,for:`ch-effort`},`Effort, any agent`,-1),n(T,{id:`ch-effort`,modelValue:Y.effort,"onUpdate:modelValue":o[3]||=e=>Y.effort=e,items:k.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[21]||=p(`span`,{class:`text-sm text-muted`},`Effort per agent`,-1),p(`div`,De,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`grid grid-cols-[6rem_1fr] items-center gap-2 font-mono text-xs`},[p(`span`,Oe,a(e),1),n(T,{modelValue:Y.efforts[e],"onUpdate:modelValue":t=>Y.efforts[e]=t,name:`efforts.${e}`,items:k.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`onUpdate:modelValue`,`name`,`items`,`disabled`])]))),128))])]),o[29]||=p(`h3`,{class:`mt-2 font-mono text-xs font-medium uppercase tracking-wider text-muted`},` Boundary · caps every run here, never grants `,-1),p(`div`,ke,[o[22]||=p(`label`,{class:`text-sm text-muted`,for:`ch-minutes`},`Max minutes`,-1),c(p(`input`,{id:`ch-minutes`,"onUpdate:modelValue":o[4]||=e=>Y.maxMinutes=e,class:s([g(O),`w-28 font-mono text-xs tabular-nums`]),type:`number`,min:`2`,placeholder:`uncapped`,disabled:!Q.value},null,10,Ae),[[m,Y.maxMinutes]]),o[23]||=p(`label`,{class:`text-sm text-muted`,for:`ch-identity`},`Max identity`,-1),n(T,{id:`ch-identity`,modelValue:Y.maxIdentity,"onUpdate:modelValue":o[5]||=e=>Y.maxIdentity=e,items:ie.value,class:`w-full`,disabled:!Q.value},null,8,[`modelValue`,`items`,`disabled`]),o[24]||=p(`span`,{class:`text-sm text-muted`},`Machines`,-1),p(`div`,je,[(f(!0),r(v,null,i(e.vocabulary.machines,e=>(f(),r(`label`,{key:e,class:`inline-flex items-center gap-1.5 font-mono text-xs`},[p(`input`,{type:`checkbox`,name:`machine-${e}`,checked:Y.machines.has(e),disabled:!Q.value,onChange:t=>Re(e,t.target.checked)},null,40,Me),_(` `+a(e),1)]))),128))])]),p(`div`,Ne,[n(S,{type:`submit`,size:`sm`,color:`neutral`,disabled:!Q.value||X.value},{default:d(()=>[...o[25]||=[_(`Save`,-1)]]),_:1},8,[`disabled`]),n(S,{size:`sm`,color:`error`,variant:`ghost`,disabled:!Q.value||X.value,onClick:Ue},{default:d(()=>[...o[26]||=[_(`Clear every override`,-1)]]),_:1},8,[`disabled`]),o[27]||=p(`span`,{class:`text-xs text-dimmed`},`Save sets the filled fields and leaves the rest as they are.`,-1)])],32),p(`form`,{class:`instructions-form grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(Ve,[`prevent`])},[o[32]||=p(`h3`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},` Custom instructions · advisory, on every run here `,-1),c(p(`textarea`,{id:`ch-instructions`,"onUpdate:modelValue":o[6]||=e=>Y.instructions=e,class:s([g(O),`min-h-28 w-full`]),maxlength:`2000`,placeholder:`Always reply in bullet points.`,disabled:!Q.value},null,10,Pe),[[m,Y.instructions]]),p(`div`,Fe,[n(S,{type:`submit`,size:`sm`,color:`neutral`,disabled:!Q.value||X.value},{default:d(()=>[...o[30]||=[_(`Save instructions`,-1)]]),_:1},8,[`disabled`]),n(S,{size:`sm`,color:`neutral`,variant:`ghost`,disabled:!Q.value||X.value,onClick:He},{default:d(()=>[...o[31]||=[_(`Clear instructions`,-1)]]),_:1},8,[`disabled`]),p(`span`,Ie,a(Y.instructions.length)+` / 2000`,1)])],32),Z.value?(f(),r(`p`,{key:1,class:s([`notice rounded-md px-3 py-2 text-sm`,Z.value.kind===`error`?`border border-err/30 bg-err/10`:`border border-ok/30 bg-ok/10`])},a(Z.value.text),3)):l(``,!0)])):l(``,!0):(f(),r(`div`,he,` Pick a channel on the left to see and change its own settings. `))])])}}}),q={class:`grid gap-4`},J={class:`overflow-x-auto rounded-lg border border-default bg-elevated`},Le={class:`settings w-full min-w-[42rem] border-collapse text-[0.8125rem]`},Y={class:`border-t border-muted bg-muted/40`},X={colspan:`4`,class:`px-4 py-1.5 text-left font-mono text-xs font-medium text-toned`},Z=[`data-key`],Q={class:`px-4 py-2 font-mono text-xs text-highlighted`},Re={class:`px-4 py-2 font-mono text-xs tabular-nums`},ze={class:`value`},$={key:0,class:`ml-1.5 rounded bg-accented px-1.5 py-0.5 text-[0.625rem] text-muted`},Be={class:`px-4 py-2 text-muted`},Ve={class:`px-4 py-2 text-xs text-dimmed`},He={class:`capabilities grid gap-1.5 rounded-lg border border-default bg-elevated px-4 py-3 text-sm`},Ue=[`data-capability`,`data-on`],We={class:`w-40 font-mono text-xs text-highlighted`},Ge={class:`text-xs text-muted`},Ke=o({__name:`InstallationPanel`,props:{installation:{}},setup(e){let t=e,n=w(()=>{let e=[];for(let n of t.installation.settings){let t=n.key.split(`.`)[0],r=e[e.length-1];r&&r.block===t?r.rows.push(n):e.push({block:t,rows:[n]})}return e}),o={runtime:"config.yaml default · a channel overrides it at run time (Channels tab, `config set channel`)",config:"config.yaml · `deploy config`, then a restart"},c=e=>typeof e==`string`?e:e?`on`:`off`;return(t,u)=>(f(),r(`section`,q,[u[1]||=p(`p`,{class:`text-sm text-muted`},[_(` The behaviour knobs of this installation's `),p(`code`,null,`config.yaml`),_(`, with the value in force. A running process keeps the config it started with: a change here is `),p(`code`,null,`deploy config`),_(` and a restart. The `),p(`code`,null,`defaults.*`),_(` rows are what a channel overrides on the Channels tab. `)],-1),p(`div`,J,[p(`table`,Le,[u[0]||=p(`thead`,null,[p(`tr`,{class:`text-left font-mono text-[0.6875rem] uppercase tracking-widest text-dimmed`},[p(`th`,{class:`px-4 py-2.5 font-medium`},`Key`),p(`th`,{class:`px-4 py-2.5 font-medium`},`Value`),p(`th`,{class:`px-4 py-2.5 font-medium`},`What it does`),p(`th`,{class:`px-4 py-2.5 font-medium`},`Changes in`)])],-1),(f(!0),r(v,null,i(n.value,e=>(f(),r(`tbody`,{key:e.block},[p(`tr`,Y,[p(`th`,X,a(e.block),1)]),(f(!0),r(v,null,i(e.rows,e=>(f(),r(`tr`,{key:e.key,class:`setting border-t border-muted align-top`,"data-key":e.key},[p(`td`,Q,a(e.key),1),p(`td`,Re,[p(`span`,ze,a(e.value),1),e.isDefault?(f(),r(`span`,$,`default`)):l(``,!0)]),p(`td`,Be,a(e.note),1),p(`td`,Ve,a(o[e.how]),1)],8,Z))),128))]))),128))])]),u[2]||=p(`h2`,{class:`mt-2 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Capabilities`,-1),u[3]||=p(`p`,{class:`-mt-3 text-sm text-muted`},[_(` What is on in this process. Each one is a `),p(`code`,null,`config.yaml`),_(` block plus what its environment needs; the commands, dashboard section and Worker of a capability appear together when it is on. `)],-1),p(`ul`,He,[(f(!0),r(v,null,i(e.installation.capabilities,e=>(f(),r(`li`,{key:e.key,class:`capability flex flex-wrap items-baseline gap-x-3 gap-y-0.5 border-b border-muted py-1.5 last:border-0`,"data-capability":e.key,"data-on":String(e.on)},[p(`span`,We,a(e.key),1),p(`span`,{class:s([`state rounded px-1.5 py-0.5 font-mono text-[0.6875rem]`,e.on===!1?`bg-accented text-dimmed`:`bg-ok/15 text-ok`])},a(c(e.on)),3),p(`span`,Ge,a(e.how),1)],8,Ue))),128))])]))}}),qe={class:`grid gap-5`},Je={class:`grid gap-1 text-sm text-muted`},Ye={class:`ml-1 inline-flex flex-wrap gap-x-3 gap-y-1`},Xe={key:0},Ze={key:1},Qe={key:0,class:`text-xs text-dimmed`},$e=[`title`],et={key:0,class:`unavailable rounded-md border border-warn/30 bg-warn/10 px-3 py-2 text-sm`},tt={key:1,class:`overflow-x-auto rounded-lg border border-default bg-elevated`},nt={class:`servers w-full min-w-[60rem] border-collapse text-[0.8125rem]`},rt={key:0},it=[`data-name`,`data-scope`,`data-shadowed-by`],at={class:`px-3 py-2.5 font-mono text-xs font-medium whitespace-nowrap text-highlighted`},ot={class:`px-3 py-2.5 whitespace-nowrap`},st={class:`tier rounded border border-accented px-1.5 py-0.5 font-mono text-[0.6875rem] text-toned`},ct=[`title`],lt=[`title`],ut={class:`px-3 py-2.5`},dt=[`title`],ft={class:`min-w-[11rem] px-3 py-2.5`},pt={class:`agents flex flex-wrap gap-1`},mt=[`data-agent-hue`],ht={class:`px-3 py-2.5 font-mono text-xs whitespace-nowrap`},gt={class:`px-3 py-2.5 whitespace-nowrap`},_t={class:`shadow ml-1 cursor-help rounded border border-dashed border-accented px-1.5 py-0.5 font-mono text-[0.6875rem] text-dimmed`},vt={key:1,class:`probe mt-1 text-xs text-dimmed`},yt=[`title`],bt={class:`block max-w-[8rem] truncate`},xt=[`title`],St={class:`px-3 py-1.5 text-right whitespace-nowrap`},Ct={class:`actions inline-flex items-center justify-end`},wt={class:`slot inline-flex w-[4.5rem] justify-center`},Tt={class:`slot inline-flex w-[4.5rem] justify-center`},Et={class:`slot inline-flex w-[4.5rem] justify-center`},Dt={class:`slot inline-flex w-[4.5rem] justify-center`},Ot={class:`grid gap-x-4 gap-y-3 sm:grid-cols-[5.5rem_minmax(0,1fr)] sm:items-start`},kt={class:`grid gap-1`},At=[`disabled`],jt={class:`text-xs text-dimmed`},Mt={class:`grid gap-1`},Nt=[`disabled`],Pt={class:`flex flex-wrap gap-x-4 gap-y-1.5 pt-1 text-sm`},Ft=[`name`,`checked`,`disabled`,`onChange`],It={class:`flex flex-wrap items-center gap-3`},Lt={key:0,class:`restricted text-xs text-muted`},Rt=[`href`],zt={key:1,class:`watching ml-1 text-xs text-dimmed`},Bt=4e3,Vt=o({__name:`McpServersPanel`,props:{mcps:{},vocabulary:{},viewer:{},asUser:{},fetch:{type:Function}},setup(e){let t=e,o=(e,n)=>(t.fetch??((e,t)=>globalThis.fetch(e,t)))(e,n),u=[`general`,`research`],y=w(()=>t.asUser!==void 0),E=te({name:``,url:``,scope:t.mcps.channel?`channel`:`me`,channel:``,agents:new Set(u),auth:``}),A=S(t.mcps.channel??``),j=w(()=>t.mcps.pickable?.channels??[]),oe=w(()=>[{label:`me — ${y.value?`your own runs, as ${t.asUser.name??t.asUser.id}`:`your own runs from this dashboard`}`,value:`me`},{label:`org — every run; may name coding, review, ship`,value:`org`},{label:`channel — ${t.mcps.channel?H.value:`one channel's runs; pick it below`}`,value:`channel`,disabled:!t.mcps.channel&&j.value.length===0}]),se=[{label:`detect from the server`,value:``},{label:`oauth — sign in on a one-time link`,value:`oauth`},{label:`bearer — paste a token on a one-time link`,value:`bearer`},{label:`none`,value:`none`}],M=S(!1),N=S(null),P=te({}),ce=6e5/Bt,F=S(!1),I,L=()=>{I!==void 0&&clearTimeout(I),I=void 0,F.value=!1};h(L);function R(e,n,r){L(),F.value=!0;let i=0,a=async()=>{i+=1;let s=await re(o,`mcp.list`,t.mcps.allTiers?{all:`true`}:{}),c=(s.ok?s.value.servers??[]:[]).find(t=>t.name===e&&t.scopeKey===n);if(c&&c.state!==r){L(),x.reload();return}if(i>=ce){L();return}I=setTimeout(()=>void a(),Bt)};I=setTimeout(()=>void a(),Bt)}let z=w(()=>E.scope===`org`?t.mcps.canWrite.org:E.scope===`channel`?t.mcps.channel?t.mcps.canWrite.channel:E.channel!==``:!0),le=e=>e.scope===`org`?t.mcps.canWrite.org:e.scope===`channel`?t.mcps.canWrite.channel:e.scopeKey===`user:${t.viewer}`||t.asUser!==void 0&&e.scopeKey===`user:${t.asUser.id}`,ue=e=>e.addedBy===t.viewer||t.asUser!==void 0&&e.addedBy===t.asUser.id,B=e=>e.scope===`user`?e.scopeKey.slice(5):``,V=e=>e.scope===`channel`?e.scopeKey.slice(8):``,H=w(()=>t.mcps.channel?t.mcps.channelName?`#${t.mcps.channelName}`:t.mcps.channel:``),de=e=>ue(e)?`you`:e.addedByName??e.addedBy??``,fe=e=>e.scope===`user`&&e.source===`runtime`&&t.mcps.canWrite.org&&!e.shadowedBy,pe={connected:`connected`,awaiting_credential:`awaiting credential`,static:`pinned in config.yaml`};function U(e){e!==(t.mcps.channel??``)&&x.navigate(e?`/settings/mcps?channel=${encodeURIComponent(e)}`:`/settings/mcps`)}function me(){U(A.value.trim())}function he(e,t){t?E.agents.add(e):E.agents.delete(e)}function W(e){return e===`channel`?{scope:`channel`,channel:E.channel||t.mcps.channel}:{scope:e}}let G=e=>e.scope===`user`?`me`:e.scope;async function ge(){M.value=!0,N.value=null;let e=await D(o,`mcp.add`,{name:E.name.trim(),url:E.url.trim(),...W(E.scope),agents:[...E.agents].join(`,`),...E.auth?{auth:E.auth}:{}});if(M.value=!1,!e.ok){N.value={kind:`error`,text:e.failure.message};return}let t=e.value;N.value=t.connectUrl?{kind:`ok`,text:`Added ${t.server?.name??E.name}. Open the one-time link to connect it (it expires in 10 minutes; only you can complete it).`,connectUrl:t.connectUrl}:{kind:`ok`,text:`Added ${t.server?.name??E.name}.`},t.connectUrl?t.server?.name&&t.server.scopeKey&&R(t.server.name,t.server.scopeKey,t.server.state):x.reload()}async function _e(e){M.value=!0,N.value=null;let t=await D(o,`mcp.connect`,{name:e.name,...W(G(e))});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}let n=t.value;N.value={kind:`ok`,text:`A fresh one-time link for ${e.name} (10 minutes; only you can complete it).`,...n.connectUrl?{connectUrl:n.connectUrl}:{}},n.connectUrl&&e.state===`awaiting_credential`&&R(e.name,e.scopeKey,e.state)}async function ve(e){if(!x.confirm(`Remove ${e.name} from the ${e.scope} tier and forget its stored credential?`))return;M.value=!0,N.value=null;let t=await D(o,`mcp.remove`,{name:e.name,...W(G(e))});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}x.reload()}async function ye(e){if(!x.confirm(`Promote ${e.name} to the org tier? The org gets its own copy under the same name — ${e.ownerName??B(e)}'s credential is never copied; a bearer or oauth server needs you to connect it. Their personal entry retires once the org copy works.`))return;M.value=!0,N.value=null;let t=await D(o,`mcp.promote`,{name:e.name,from:B(e)});if(M.value=!1,!t.ok){N.value={kind:`error`,text:t.failure.message};return}let n=t.value;N.value=n.connectUrl?{kind:`ok`,text:`${e.name} is now an org server awaiting your credential. Open the one-time link to connect it (10 minutes; only you can complete it).`,connectUrl:n.connectUrl}:{kind:`ok`,text:`${e.name} is now an org server.`},n.connectUrl?R(e.name,`org`,`awaiting_credential`):x.reload()}async function be(e){P[e.name]=`probing…`;let n=await re(o,`mcp.show`,{name:e.name,scope:e.scope===`user`?`me`:e.scope,channel:e.scope===`channel`?t.mcps.channel:void 0});if(!n.ok){P[e.name]=n.failure.message;return}let{probe:r}=n.value;P[e.name]=r?.tools?`${r.tools.length} tool${r.tools.length===1?``:`s`}: ${r.tools.map(e=>e.name).join(`, `)}`:r?.error??`no tools listed`}return(t,o)=>{let h=ee,y=ne;return f(),r(`section`,qe,[p(`div`,Je,[p(`p`,null,[o[11]||=_(` External MCP servers a run's tools may call. `,-1),p(`span`,Ye,[o[9]||=p(`span`,null,[p(`strong`,{class:`text-toned`},`org`),_(` · every run`)],-1),o[10]||=p(`span`,null,[p(`strong`,{class:`text-toned`},`channel`),_(` · that channel's runs`)],-1),e.asUser?(f(),r(`span`,Xe,[o[7]||=p(`strong`,{class:`text-toned`},`me`,-1),_(` · the runs you ask for as `+a(e.asUser.name??e.asUser.id),1)])):(f(),r(`span`,Ze,[...o[8]||=[p(`strong`,{class:`text-toned`},`me`,-1),_(` · added in chat with `,-1),p(`code`,null,`mcp add`,-1)]]))])]),e.mcps.allTiers?(f(),r(`p`,Qe,[...o[12]||=[_(` You see every tier. `,-1),p(`strong`,{class:`font-medium text-muted`},`Promote`,-1),_(` gives the org its own copy of a person's server under the same name, connected by you — their credential is never copied, and their entry retires once the org copy works. `,-1)]])):l(``,!0)]),p(`form`,{class:`flex flex-wrap items-center gap-2 text-sm`,onSubmit:b(me,[`prevent`])},[o[15]||=p(`label`,{class:`text-muted`,for:`mcp-channel`},`Channel`,-1),j.value.length>0?(f(),C(ae,{key:0,id:`mcp-channel`,channels:j.value,"model-value":e.mcps.channel??``,extra:e.mcps.channel,placeholder:`Search channels…`,"aria-label":`channel whose MCP servers to list`,class:`w-72`,"onUpdate:modelValue":U},null,8,[`channels`,`model-value`,`extra`])):(f(),r(v,{key:1},[c(p(`input`,{id:`mcp-channel`,"onUpdate:modelValue":o[0]||=e=>A.value=e,class:s([g(O),`w-56 font-mono text-xs`]),placeholder:`slack:C0123…`,"aria-label":`channel whose MCP servers to list`},null,2),[[m,A.value]]),n(h,{type:`submit`,size:`xs`,color:`neutral`,variant:`outline`},{default:d(()=>[...o[13]||=[_(`Open`,-1)]]),_:1})],64)),e.mcps.channel?(f(),C(h,{key:2,size:`xs`,color:`neutral`,variant:`ghost`,title:`back to the org's and your own`,onClick:o[1]||=e=>U(``)},{default:d(()=>[...o[14]||=[_(`Clear`,-1)]]),_:1})):l(``,!0),p(`span`,{class:`text-xs text-dimmed`,title:e.mcps.channel},a(e.mcps.channel?`Listing the ${H.value} tier beside the rest.`:`Blank: the org's and your own.`),9,$e)],32),e.mcps.unavailable?(f(),r(`p`,et,a(e.mcps.unavailable),1)):(f(),r(`div`,tt,[p(`table`,nt,[o[21]||=p(`thead`,null,[p(`tr`,{class:`text-left font-mono text-[0.6875rem] uppercase tracking-widest text-dimmed`},[p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Name`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Tier`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`URL`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Agents`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Auth`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`State`),p(`th`,{class:`px-3 py-2.5 font-medium whitespace-nowrap`},`Added by`),p(`th`,{class:`px-3 py-2.5 font-medium`},[p(`span`,{class:`sr-only`},`Actions`)])])],-1),p(`tbody`,null,[e.mcps.servers.length===0?(f(),r(`tr`,rt,[...o[16]||=[p(`td`,{colspan:`8`,class:`empty px-4 py-6 text-center text-muted`},` No MCP server reaches runs here yet. Add one below. `,-1)]])):l(``,!0),(f(!0),r(v,null,i(e.mcps.servers,e=>(f(),r(`tr`,{key:`${e.scopeKey}/${e.name}`,class:s([`server border-t border-muted align-middle`,e.shadowedBy?`shadowed text-dimmed`:``]),"data-name":e.name,"data-scope":e.scope,"data-shadowed-by":e.shadowedBy},[p(`td`,at,a(e.name),1),p(`td`,ot,[p(`span`,st,a(e.scope),1),B(e)?(f(),r(`span`,{key:0,class:`owner mt-1 block text-[0.6875rem] text-dimmed`,title:B(e)},a(e.ownerName??B(e)),9,ct)):l(``,!0),V(e)?(f(),r(`span`,{key:1,class:`channel mt-1 block text-[0.6875rem] text-dimmed`,title:V(e)},a(e.channelName?`#${e.channelName}`:V(e)),9,lt)):l(``,!0)]),p(`td`,ut,[p(`span`,{class:`block max-w-[11rem] truncate font-mono text-xs text-muted`,title:e.url},a(e.url),9,dt)]),p(`td`,ft,[p(`span`,pt,[(f(!0),r(v,null,i(e.agents,e=>(f(),r(`span`,{key:e,class:s([`agent rounded border px-1.5 font-mono text-[0.68rem] font-medium uppercase tracking-wider`,g(ie)[g(k)(e)]]),"data-agent-hue":g(k)(e)},a(e),11,mt))),128))])]),p(`td`,ht,a(e.auth),1),p(`td`,gt,[p(`span`,{class:s([`state rounded px-1.5 py-0.5 font-mono text-[0.6875rem]`,e.state===`connected`?`bg-ok/15 text-ok`:e.state===`awaiting_credential`?`bg-warn/15 text-warn`:`bg-accented text-muted`])},a(pe[e.state]),3),e.shadowedBy?(f(),C(y,{key:0,text:`The ${e.shadowedBy} tier holds a server of this name, so runs use that one; this entry is idle until it is removed or renamed.`},{default:d(()=>[p(`span`,_t,`shadowed by `+a(e.shadowedBy),1)]),_:2},1032,[`text`])):l(``,!0),P[e.name]?(f(),r(`div`,vt,a(P[e.name]),1)):l(``,!0)]),p(`td`,{class:`addedby px-3 py-2.5 text-xs text-muted`,title:e.addedBy},[p(`span`,bt,a(de(e)),1),e.promotedFrom?(f(),r(`span`,{key:0,class:`block max-w-[8rem] truncate text-[0.6875rem] text-dimmed`,title:e.promotedFrom},`promoted from `+a(e.promotedFromName??e.promotedFrom),9,xt)):l(``,!0)],8,yt),p(`td`,St,[p(`span`,Ct,[p(`span`,wt,[n(h,{size:`xs`,color:`neutral`,variant:`ghost`,disabled:M.value,onClick:t=>be(e)},{default:d(()=>[...o[17]||=[_(`Probe`,-1)]]),_:1},8,[`disabled`,`onClick`])]),p(`span`,Tt,[fe(e)?(f(),C(h,{key:0,size:`xs`,color:`primary`,variant:`ghost`,disabled:M.value,onClick:t=>ye(e)},{default:d(()=>[...o[18]||=[_(`Promote`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)]),p(`span`,Et,[e.source===`runtime`&&e.auth!==`none`?(f(),C(h,{key:0,size:`xs`,color:`neutral`,variant:`ghost`,disabled:M.value||!le(e),onClick:t=>_e(e)},{default:d(()=>[...o[19]||=[_(`Connect`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)]),p(`span`,Dt,[e.source===`runtime`?(f(),C(h,{key:0,size:`xs`,color:`error`,variant:`ghost`,disabled:M.value||!le(e),onClick:t=>ve(e)},{default:d(()=>[...o[20]||=[_(`Remove`,-1)]]),_:1},8,[`disabled`,`onClick`])):l(``,!0)])])])],10,it))),128))])])])),e.mcps.unavailable?l(``,!0):(f(),r(`form`,{key:2,class:`add grid max-w-3xl gap-4 rounded-lg border border-default bg-elevated px-5 py-4`,onSubmit:b(ge,[`prevent`])},[o[32]||=p(`h2`,{class:`font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Add a server`,-1),p(`div`,Ot,[o[26]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-name`},`Name`,-1),p(`div`,kt,[c(p(`input`,{id:`mcp-name`,"onUpdate:modelValue":o[2]||=e=>E.name=e,class:s([g(O),`font-mono text-xs sm:max-w-xs`]),required:``,pattern:`[a-z0-9][a-z0-9-]{0,31}`,placeholder:`notion`,disabled:!z.value},null,10,At),[[m,E.name]]),p(`span`,jt,[o[22]||=_(`A slug; its tools appear as `,-1),p(`code`,null,`mcp__`+a(E.name.trim()||`name`)+`__…`,1)])]),o[27]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-url`},`URL`,-1),p(`div`,Mt,[c(p(`input`,{id:`mcp-url`,"onUpdate:modelValue":o[3]||=e=>E.url=e,class:s([g(O),`font-mono text-xs`]),type:`url`,required:``,placeholder:`https://mcp.example.com/mcp`,disabled:!z.value},null,10,Nt),[[m,E.url]]),o[23]||=p(`span`,{class:`text-xs text-dimmed`},`The server's Streamable-HTTP endpoint.`,-1)]),o[28]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-scope`},`Tier`,-1),n(T,{id:`mcp-scope`,modelValue:E.scope,"onUpdate:modelValue":o[4]||=e=>E.scope=e,items:oe.value,class:`sm:max-w-md`},null,8,[`modelValue`,`items`]),E.scope===`channel`&&!e.mcps.channel?(f(),r(v,{key:0},[o[24]||=p(`span`,{class:`text-sm text-muted sm:pt-1`},`Channel`,-1),n(ae,{id:`mcp-add-channel`,modelValue:E.channel,"onUpdate:modelValue":o[5]||=e=>E.channel=e,channels:j.value,placeholder:`Search channels…`,"aria-label":`channel the server belongs to`,class:`sm:max-w-md`},null,8,[`modelValue`,`channels`])],64)):l(``,!0),o[29]||=p(`span`,{class:`text-sm text-muted sm:pt-1`},`Agents`,-1),p(`div`,Pt,[(f(!0),r(v,null,i(e.vocabulary.agents,e=>(f(),r(`label`,{key:e,class:`inline-flex items-center gap-1.5 font-mono text-xs`},[p(`input`,{type:`checkbox`,name:`agent-${e}`,checked:E.agents.has(e),disabled:!z.value||E.scope===`channel`&&!u.includes(e),onChange:t=>he(e,t.target.checked)},null,40,Ft),_(` `+a(e),1)]))),128))]),o[30]||=p(`label`,{class:`text-sm text-muted sm:pt-1`,for:`mcp-auth`},`Auth`,-1),n(T,{id:`mcp-auth`,modelValue:E.auth,"onUpdate:modelValue":o[6]||=e=>E.auth=e,items:se,class:`sm:max-w-md`,disabled:!z.value},null,8,[`modelValue`,`disabled`]),o[31]||=p(`span`,{class:`hidden sm:block`},null,-1),p(`div`,It,[n(h,{type:`submit`,size:`sm`,color:`neutral`,disabled:!z.value||M.value},{default:d(()=>[...o[25]||=[_(`Add`,-1)]]),_:1},8,[`disabled`]),z.value?l(``,!0):(f(),r(`span`,Lt,a(E.scope===`org`?`Org-wide servers are managed by admins (repo-management rights).`:`This channel's servers need channel-config rights.`),1))])]),N.value?(f(),r(`p`,{key:0,class:s([`notice rounded-md px-3 py-2 text-sm`,N.value.kind===`error`?`border border-err/30 bg-err/10`:`border border-ok/30 bg-ok/10`])},[_(a(N.value.text)+` `,1),N.value.connectUrl?(f(),r(`a`,{key:0,class:`connect ml-1 font-mono text-xs underline`,href:N.value.connectUrl,target:`_blank`,rel:`noopener`},a(N.value.connectUrl),9,Rt)):l(``,!0),F.value?(f(),r(`span`,zt,`— this page refreshes itself when the link is used.`)):l(``,!0)],2)):l(``,!0)],32))])}}}),Ht=[{id:`mcps`,href:`/settings/mcps`,label:`MCPs`,on:e=>e.mcp},{id:`channels`,href:`/settings/channels`,label:`Channels`},{id:`installation`,href:`/settings/installation`,label:`Installation`}];function Ut(e,t){return Ht.filter(n=>n.id===t||n.on===void 0||e!==null&&n.on(e))}var Wt={class:`tabs mb-3.5 flex gap-5 border-b border-muted px-2 text-[0.8rem]`,"aria-label":`Settings sections`},Gt=o({__name:`SettingsTabs`,props:{current:{}},setup(t){let n=t,o=e(),s=w(()=>Ut(o,n.current));return(e,n)=>{let o=u(`RouterLink`);return f(),r(`nav`,Wt,[(f(!0),r(v,null,i(s.value,e=>(f(),C(o,{key:e.id,to:e.href,"aria-current":e.id===t.current?`page`:void 0,class:`-mb-px border-b border-transparent pb-2 pt-1.5 text-muted no-underline hover:text-highlighted aria-[current=page]:border-(--ui-text-highlighted) aria-[current=page]:font-medium aria-[current=page]:text-highlighted`},{default:d(()=>[_(a(e.label),1)]),_:2},1032,[`to`,`aria-current`]))),128))])}}}),Kt={class:`error mx-auto my-8 max-w-lg rounded-lg border border-err/30 bg-err/10 px-5 py-4 text-sm`,role:`alert`},qt=o({__name:`SettingsPage`,setup(e){let r=y(`settings`),i=w(()=>r?.tab??`channels`);return(e,a)=>{let o=ee;return g(r)?(f(),C(t,{key:0,title:`Settings`,nav:`settings`},{default:d(()=>[n(Gt,{current:i.value},null,8,[`current`]),i.value===`mcps`&&g(r).mcps?(f(),C(Vt,{key:0,mcps:g(r).mcps,vocabulary:g(r).vocabulary,viewer:g(r).viewer,"as-user":g(r).asUser},null,8,[`mcps`,`vocabulary`,`viewer`,`as-user`])):i.value===`channels`&&g(r).channels?(f(),C(K,{key:1,channels:g(r).channels,vocabulary:g(r).vocabulary},null,8,[`channels`,`vocabulary`])):i.value===`installation`&&g(r).installation?(f(),C(Ke,{key:2,installation:g(r).installation},null,8,[`installation`])):l(``,!0)]),_:1})):(f(),C(t,{key:1,title:`Settings`,nav:`settings`},{default:d(()=>[p(`div`,Kt,[a[2]||=p(`p`,{class:`font-medium text-highlighted`},`Settings could not be loaded.`,-1),a[3]||=p(`p`,{class:`mt-1 text-muted`},` This is a bug: the page arrived without its data and no automatic reload was scheduled. The bot's log has the reason. `,-1),n(o,{class:`mt-3`,size:`xs`,color:`neutral`,variant:`outline`,onClick:a[0]||=e=>g(x).reload()},{default:d(()=>[...a[1]||=[_(`Reload`,-1)]]),_:1})])]),_:1}))}}});export{qt as default};
@@ -1,2 +1,2 @@
1
- import{An as e,Cn as t,Cr as n,Ft as r,Gr as i,Ii as a,Li as o,Mn as s,Pi as c,Pt as l,Sn as u,Tr as d,Xr as f,_r as p,bn as m,dr as h,hr as g,ir as ee,ji as _,kn as v,l as y,ln as te,rn as b,xi as x,xn as S,y as C,yn as w,yr as T}from"./browser-B6T5hjfR.js";import{n as ne,r as re,t as E}from"./PendingTurnRow-CeTGOXUy.js";import{t as ie}from"./eventSource-Bj_dZf6M.js";import{n as D,t as O}from"./indexFormat-B-pd4r7Y.js";import{E as k,K as A,U as j,a as M,i as N,t as P}from"./indexRow-Dxg7C8s9.js";import{i as F}from"./format-BldUwl_R.js";import{T as ae,a as oe,c as se,d as I,i as L,n as R,o as z,s as ce,t as le,u as ue,v as de}from"./sseReplay-BqgOggyQ.js";import{n as fe,t as pe}from"./durationTone-CVpX_yIk.js";function me(e,t){return e?t.trim()===``?`stop`:`steer`:`send`}var B=`↪ Folded into`;function he(e){let t=e.trim();return t.startsWith(B)?{kind:`steerAck`,text:t}:{kind:`inline`,text:t}}function V(e){return{command:e.line,hint:e.question??(e.risk||`Enter runs it`)}}function ge(e){let t=/^\/runs\/([^/?#]+)(\?t=([^&#]+))?$/.exec(e);if(!t)return null;let n=decodeURIComponent(t[1]),r=t[3]?`?t=${t[3]}`:``;return{id:n,eventsUrl:`/runs/${t[1]}/events${r}`,stopUrl:`/runs/${t[1]}/stop${r}`}}function H(e,t=60){let n=e.split(/\r?\n/).find(e=>e.trim()!==``)?.trim()??``;return n.length<=t?n||`New conversation`:`${n.slice(0,t-1).trimEnd()}…`}function _e(e,t){let n=t-e;if(!(n>45e3))return`now`;let r=Math.floor(n/6e4);if(r<60)return`${Math.max(1,r)}m`;let i=Math.floor(r/60);if(i<24)return`${i}h`;let a=Math.floor(i/24);return a<7?`${a}d`:D(e,t)}function U(e,t){let n=e.surface??`web`,r=N[n]??n,i=e.channelName?`${r} #${e.channelName}`:r;return{title:e.excerpt||e.title,when:O(e.lastAt,t),source:n===`web`?r:`${i} · read-only here`,runs:`${e.runs} run${e.runs===1?``:`s`}`,live:e.live}}var W={min:224,default:288,max:448,step:16};function G(e){let t=typeof e==`string`?Number(e):e;return typeof t!=`number`||!Number.isFinite(t)?W.default:Math.min(W.max,Math.max(W.min,Math.round(t)))}var ve={width:`sb.rail.width`,collapsed:`sb.rail.collapsed`};function ye(e){return{width:G(e.width??void 0),collapsed:e.collapsed===`1`}}function be(e,t){let n=e<5?`Still up`:e<12?`Good morning`:e<18?`Good afternoon`:`Good evening`;return t?`${n}, ${t}.`:`${n}.`}function xe(e,t){let n=t.trim();for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r.folded&&r.text.trim()===n)return r}return null}function K(e,t=60){return e<=t}function q(e){return e.key===`Enter`&&!e.shiftKey&&!e.isComposing}function J(e,t){let n=e.trim().toLowerCase();if(n===``)return 0;let r=t.toLowerCase(),i=0,a=-1,o=-1;for(let e of n){if(e===` `)continue;let t=r.indexOf(e,i);if(t===-1)return null;a===-1&&(a=t),o=t,i=t+1}return a===-1?0:o-a}function Se(e,t){return t.trim()===``?[...e]:e.map((e,n)=>({row:e,i:n,score:J(t,e.title)})).filter(e=>e.score!==null).sort((e,t)=>e.score-t.score||e.i-t.i).map(e=>e.row)}function Y(e){if(!(e.metaKey||e.ctrlKey))return null;let t=e.key.toLowerCase();return t===`o`&&e.shiftKey?`newThread`:t===`k`&&!e.shiftKey?`search`:null}function Ce(e,t){return t?``:e===`steer`?`Say what to add — it folds into the run at its next step`:e===`stop`?`A run is working — type to steer it, or stop it`:`Review a pull request, ship a fix, investigate a run… or type / for a command`}function X(e){let t=new Map;for(let n of e){let[e,r]=n.chat.split(` `,2);if(!e)continue;let i=t.get(e)??{name:e,verbs:[]};r===void 0?i.bare=n:i.verbs.push({verb:r,command:n}),t.set(e,i)}return[...t.values()]}function Z(e,t,n){if(t===``)return[...e];let r=t.toLowerCase(),i=e.filter(e=>n(e)[0].toLowerCase().startsWith(r));return i.length>0?i:e.map((e,r)=>{let i=n(e).map(e=>J(t,e)).filter(e=>e!==null);return i.length===0?null:{item:e,i:r,score:Math.min(...i)}}).filter(e=>e!==null).sort((e,t)=>e.score-t.score||e.i-t.i).map(e=>e.item)}function Q(e,t=0,n=new Set){let r=(e.args??[]).slice(t),i=(e.options??[]).filter(e=>!n.has($(e.form))).map(e=>`[${e.form}]`);return[...r,...i].join(` `)}var $=e=>e.split(` `,1)[0];function we(e,t){let n=new Set,r=0;for(let i=0;i<t.length;i++){let a=t[i];if(a.startsWith(`-`)){n.add(a);let t=(e.options??[]).find(e=>$(e.form)===a);t&&t.form.includes(` `)&&i++}else r++}return{positionals:r,flags:n}}function Te(e,t){let n=/^\/([^\n]*)$/.exec(e);if(!n||t.length===0)return null;let r=n[1].split(` `),i=r[r.length-1],a=r.slice(0,-1).filter(e=>e!==``),o=e.slice(0,e.length-i.length),s=X(t);if(a.length===0)return{level:`group`,head:o,partial:i,rows:Z(s,i,e=>[e.name,...e.bare?[e.bare.describe]:[],...e.verbs.map(e=>e.command.describe)]).map(e=>({insert:e.name,label:`/${e.name}`,describe:e.bare?e.verbs.length>0?`${e.bare.describe} · also ${e.verbs.map(e=>e.verb).join(`, `)}`:e.bare.describe:e.verbs.map(e=>e.verb).join(` · `),kind:e.bare&&e.verbs.length===0?`command`:`group`,acceptable:!0}))};let c=s.find(e=>e.name===a[0]);if(!c)return null;if(a.length===1){let e=Z(c.verbs,i,e=>[e.verb,e.command.describe]);if(e.length===0&&c.bare&&i!==``)return De(c.bare,o,i,[]);if(e.length===0&&!c.bare)return{level:`verb`,head:o,partial:i,rows:[]};let t=e.map(e=>({insert:e.verb,label:`/${e.command.chat}`,describe:e.command.describe,kind:`command`,acceptable:!0}));return c.bare&&i===``&&t.unshift(Ee(c.bare,0,new Set)),{level:`verb`,head:o,partial:i,rows:t}}let l=c.verbs.find(e=>e.verb===a[1]);return l?De(l.command,o,i,a.slice(2)):c.bare?De(c.bare,o,i,a.slice(1)):null}function Ee(e,t,n){let r=Q(e,t,n);return{insert:``,label:`/${e.chat}`,describe:r?`${r} — ${e.describe}`:e.describe,kind:`usage`,acceptable:!1}}function De(e,t,n,r){let i=we(e,r);return n.startsWith(`-`)?{level:`tail`,head:t,partial:n,rows:Z((e.options??[]).filter(e=>!i.flags.has($(e.form))),n,e=>[$(e.form),e.describe]).map(e=>({insert:$(e.form),label:e.form,describe:e.describe,kind:`option`,acceptable:!0})),command:e}:{level:`tail`,head:t,partial:n,rows:[Ee(e,i.positionals,i.flags)],command:e}}function Oe(e,t){let n=e.rows[t];if(!n)return null;if(n.acceptable){if(!n.insert.toLowerCase().startsWith(e.partial.toLowerCase()))return null;let t=n.insert.slice(e.partial.length);return t===``?null:{text:t,acceptable:!0}}if(e.partial!==``||n.kind!==`usage`)return null;let[r,...i]=n.describe.split(` — `);return i.length===0?null:{text:r,acceptable:!1}}function ke(e,t){return`${e.head}${t.insert} `}function Ae(e,t){if(!e.startsWith(`/`))return e;let n=e.slice(1),[r,i]=n.split(/\s+/,2);return t.some(e=>e.chat===r||i!==void 0&&e.chat===`${r} ${i}`)?n:e}var je={class:`composer-wrap relative`},Me={key:0,class:`palette absolute bottom-full left-0 right-0 z-20 mb-2 max-h-72 overflow-y-auto rounded-xl border border-default bg-(--ui-bg-elevated) p-1 shadow-sm`,role:`listbox`,"aria-label":`Commands`,"data-testid":`palette`},Ne={key:0,class:`px-3 py-2 font-mono text-xs text-dimmed`},Pe=[`aria-selected`,`data-insert`,`data-kind`,`data-label`,`onClick`,`onMouseenter`],Fe={class:`chat shrink-0 font-mono text-[0.8rem] font-medium text-highlighted`},Ie={class:`describe min-w-0 flex-1 truncate text-[0.8rem] text-muted`},Le={key:0,class:`shrink-0 rounded border border-default px-1 font-mono text-[0.62rem] text-dimmed`,"aria-hidden":`true`},Re=[`data-mode`],ze={class:`relative min-w-0 flex-1`},Be=[`data-acceptable`],Ve={class:`invisible`},He={class:`text-dimmed`},Ue=[`rows`,`value`,`placeholder`,`autofocus`,`aria-expanded`],We=[`aria-hidden`,`data-hint`,`data-shown`],Ge=s({__name:`ChatComposer`,props:{modelValue:{},mode:{},hint:{},autofocus:{type:Boolean},sweepOnMount:{type:Boolean},commands:{}},emits:[`update:modelValue`,`submit`,`stop`],setup(r,{expose:a,emit:s}){let d=r,g=s,_=x(null),v=x(!1),T=x(!1),ne=w(()=>Math.min(8,Math.max(1,d.modelValue.split(`
1
+ import{An as e,Cn as t,Cr as n,Ft as r,Gr as i,Ii as a,Li as o,Mn as s,Pi as c,Pt as l,Sn as u,Tr as d,Xr as f,_r as p,bn as m,dr as h,hr as g,ir as ee,ji as _,kn as v,l as y,ln as te,rn as b,xi as x,xn as S,y as C,yn as w,yr as T}from"./browser-CCImen5O.js";import{n as ne,r as re,t as E}from"./PendingTurnRow-vuWiDzvz.js";import{t as ie}from"./eventSource-Cv0AFlMi.js";import{n as D,t as O}from"./indexFormat-B-pd4r7Y.js";import{E as k,K as A,U as j,a as M,i as N,t as P}from"./indexRow-Dxg7C8s9.js";import{i as F}from"./format-BldUwl_R.js";import{T as ae,a as oe,c as se,d as I,i as L,n as R,o as z,s as ce,t as le,u as ue,v as de}from"./sseReplay-BzoeVxZB.js";import{n as fe,t as pe}from"./durationTone-CVpX_yIk.js";function me(e,t){return e?t.trim()===``?`stop`:`steer`:`send`}var B=`↪ Folded into`;function he(e){let t=e.trim();return t.startsWith(B)?{kind:`steerAck`,text:t}:{kind:`inline`,text:t}}function V(e){return{command:e.line,hint:e.question??(e.risk||`Enter runs it`)}}function ge(e){let t=/^\/runs\/([^/?#]+)(\?t=([^&#]+))?$/.exec(e);if(!t)return null;let n=decodeURIComponent(t[1]),r=t[3]?`?t=${t[3]}`:``;return{id:n,eventsUrl:`/runs/${t[1]}/events${r}`,stopUrl:`/runs/${t[1]}/stop${r}`}}function H(e,t=60){let n=e.split(/\r?\n/).find(e=>e.trim()!==``)?.trim()??``;return n.length<=t?n||`New conversation`:`${n.slice(0,t-1).trimEnd()}…`}function _e(e,t){let n=t-e;if(!(n>45e3))return`now`;let r=Math.floor(n/6e4);if(r<60)return`${Math.max(1,r)}m`;let i=Math.floor(r/60);if(i<24)return`${i}h`;let a=Math.floor(i/24);return a<7?`${a}d`:D(e,t)}function U(e,t){let n=e.surface??`web`,r=N[n]??n,i=e.channelName?`${r} #${e.channelName}`:r;return{title:e.excerpt||e.title,when:O(e.lastAt,t),source:n===`web`?r:`${i} · read-only here`,runs:`${e.runs} run${e.runs===1?``:`s`}`,live:e.live}}var W={min:224,default:288,max:448,step:16};function G(e){let t=typeof e==`string`?Number(e):e;return typeof t!=`number`||!Number.isFinite(t)?W.default:Math.min(W.max,Math.max(W.min,Math.round(t)))}var ve={width:`sb.rail.width`,collapsed:`sb.rail.collapsed`};function ye(e){return{width:G(e.width??void 0),collapsed:e.collapsed===`1`}}function be(e,t){let n=e<5?`Still up`:e<12?`Good morning`:e<18?`Good afternoon`:`Good evening`;return t?`${n}, ${t}.`:`${n}.`}function xe(e,t){let n=t.trim();for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r.folded&&r.text.trim()===n)return r}return null}function K(e,t=60){return e<=t}function q(e){return e.key===`Enter`&&!e.shiftKey&&!e.isComposing}function J(e,t){let n=e.trim().toLowerCase();if(n===``)return 0;let r=t.toLowerCase(),i=0,a=-1,o=-1;for(let e of n){if(e===` `)continue;let t=r.indexOf(e,i);if(t===-1)return null;a===-1&&(a=t),o=t,i=t+1}return a===-1?0:o-a}function Se(e,t){return t.trim()===``?[...e]:e.map((e,n)=>({row:e,i:n,score:J(t,e.title)})).filter(e=>e.score!==null).sort((e,t)=>e.score-t.score||e.i-t.i).map(e=>e.row)}function Y(e){if(!(e.metaKey||e.ctrlKey))return null;let t=e.key.toLowerCase();return t===`o`&&e.shiftKey?`newThread`:t===`k`&&!e.shiftKey?`search`:null}function Ce(e,t){return t?``:e===`steer`?`Say what to add — it folds into the run at its next step`:e===`stop`?`A run is working — type to steer it, or stop it`:`Review a pull request, ship a fix, investigate a run… or type / for a command`}function X(e){let t=new Map;for(let n of e){let[e,r]=n.chat.split(` `,2);if(!e)continue;let i=t.get(e)??{name:e,verbs:[]};r===void 0?i.bare=n:i.verbs.push({verb:r,command:n}),t.set(e,i)}return[...t.values()]}function Z(e,t,n){if(t===``)return[...e];let r=t.toLowerCase(),i=e.filter(e=>n(e)[0].toLowerCase().startsWith(r));return i.length>0?i:e.map((e,r)=>{let i=n(e).map(e=>J(t,e)).filter(e=>e!==null);return i.length===0?null:{item:e,i:r,score:Math.min(...i)}}).filter(e=>e!==null).sort((e,t)=>e.score-t.score||e.i-t.i).map(e=>e.item)}function Q(e,t=0,n=new Set){let r=(e.args??[]).slice(t),i=(e.options??[]).filter(e=>!n.has($(e.form))).map(e=>`[${e.form}]`);return[...r,...i].join(` `)}var $=e=>e.split(` `,1)[0];function we(e,t){let n=new Set,r=0;for(let i=0;i<t.length;i++){let a=t[i];if(a.startsWith(`-`)){n.add(a);let t=(e.options??[]).find(e=>$(e.form)===a);t&&t.form.includes(` `)&&i++}else r++}return{positionals:r,flags:n}}function Te(e,t){let n=/^\/([^\n]*)$/.exec(e);if(!n||t.length===0)return null;let r=n[1].split(` `),i=r[r.length-1],a=r.slice(0,-1).filter(e=>e!==``),o=e.slice(0,e.length-i.length),s=X(t);if(a.length===0)return{level:`group`,head:o,partial:i,rows:Z(s,i,e=>[e.name,...e.bare?[e.bare.describe]:[],...e.verbs.map(e=>e.command.describe)]).map(e=>({insert:e.name,label:`/${e.name}`,describe:e.bare?e.verbs.length>0?`${e.bare.describe} · also ${e.verbs.map(e=>e.verb).join(`, `)}`:e.bare.describe:e.verbs.map(e=>e.verb).join(` · `),kind:e.bare&&e.verbs.length===0?`command`:`group`,acceptable:!0}))};let c=s.find(e=>e.name===a[0]);if(!c)return null;if(a.length===1){let e=Z(c.verbs,i,e=>[e.verb,e.command.describe]);if(e.length===0&&c.bare&&i!==``)return De(c.bare,o,i,[]);if(e.length===0&&!c.bare)return{level:`verb`,head:o,partial:i,rows:[]};let t=e.map(e=>({insert:e.verb,label:`/${e.command.chat}`,describe:e.command.describe,kind:`command`,acceptable:!0}));return c.bare&&i===``&&t.unshift(Ee(c.bare,0,new Set)),{level:`verb`,head:o,partial:i,rows:t}}let l=c.verbs.find(e=>e.verb===a[1]);return l?De(l.command,o,i,a.slice(2)):c.bare?De(c.bare,o,i,a.slice(1)):null}function Ee(e,t,n){let r=Q(e,t,n);return{insert:``,label:`/${e.chat}`,describe:r?`${r} — ${e.describe}`:e.describe,kind:`usage`,acceptable:!1}}function De(e,t,n,r){let i=we(e,r);return n.startsWith(`-`)?{level:`tail`,head:t,partial:n,rows:Z((e.options??[]).filter(e=>!i.flags.has($(e.form))),n,e=>[$(e.form),e.describe]).map(e=>({insert:$(e.form),label:e.form,describe:e.describe,kind:`option`,acceptable:!0})),command:e}:{level:`tail`,head:t,partial:n,rows:[Ee(e,i.positionals,i.flags)],command:e}}function Oe(e,t){let n=e.rows[t];if(!n)return null;if(n.acceptable){if(!n.insert.toLowerCase().startsWith(e.partial.toLowerCase()))return null;let t=n.insert.slice(e.partial.length);return t===``?null:{text:t,acceptable:!0}}if(e.partial!==``||n.kind!==`usage`)return null;let[r,...i]=n.describe.split(` — `);return i.length===0?null:{text:r,acceptable:!1}}function ke(e,t){return`${e.head}${t.insert} `}function Ae(e,t){if(!e.startsWith(`/`))return e;let n=e.slice(1),[r,i]=n.split(/\s+/,2);return t.some(e=>e.chat===r||i!==void 0&&e.chat===`${r} ${i}`)?n:e}var je={class:`composer-wrap relative`},Me={key:0,class:`palette absolute bottom-full left-0 right-0 z-20 mb-2 max-h-72 overflow-y-auto rounded-xl border border-default bg-(--ui-bg-elevated) p-1 shadow-sm`,role:`listbox`,"aria-label":`Commands`,"data-testid":`palette`},Ne={key:0,class:`px-3 py-2 font-mono text-xs text-dimmed`},Pe=[`aria-selected`,`data-insert`,`data-kind`,`data-label`,`onClick`,`onMouseenter`],Fe={class:`chat shrink-0 font-mono text-[0.8rem] font-medium text-highlighted`},Ie={class:`describe min-w-0 flex-1 truncate text-[0.8rem] text-muted`},Le={key:0,class:`shrink-0 rounded border border-default px-1 font-mono text-[0.62rem] text-dimmed`,"aria-hidden":`true`},Re=[`data-mode`],ze={class:`relative min-w-0 flex-1`},Be=[`data-acceptable`],Ve={class:`invisible`},He={class:`text-dimmed`},Ue=[`rows`,`value`,`placeholder`,`autofocus`,`aria-expanded`],We=[`aria-hidden`,`data-hint`,`data-shown`],Ge=s({__name:`ChatComposer`,props:{modelValue:{},mode:{},hint:{},autofocus:{type:Boolean},sweepOnMount:{type:Boolean},commands:{}},emits:[`update:modelValue`,`submit`,`stop`],setup(r,{expose:a,emit:s}){let d=r,g=s,_=x(null),v=x(!1),T=x(!1),ne=w(()=>Math.min(8,Math.max(1,d.modelValue.split(`
2
2
  `).length))),re={send:{icon:`i-lucide-arrow-up`,label:`Send`},steer:{icon:`i-lucide-corner-down-right`,label:`Steer the run`},stop:{icon:`i-lucide-square`,label:`Stop the run`}},E=w(()=>re[d.mode]),ie=w(()=>Ce(d.mode,d.hint)),D=w(()=>d.hint?d.hint:d.mode===`steer`?`Enter folds this into the run in flight`:d.mode===`stop`?`A run is in flight · type to steer it, or stop it`:`Enter to send · Shift+Enter for a new line · / for a command`),O=w(()=>v.value||d.hint!==void 0||d.mode!==`send`),k=w(()=>Te(d.modelValue,d.commands??[])),A=w(()=>k.value?.rows??[]),j=x(!1),M=x(0),N=w(()=>k.value!==null&&!j.value),P=w(()=>N.value&&k.value?Oe(k.value,M.value):null);i(()=>`${k.value?.level??``}|${k.value?.head??``}`,()=>{j.value=!1,M.value=0}),i(A,e=>{M.value>=e.length&&(M.value=Math.max(0,e.length-1))});function F(e){k.value&&e.acceptable&&(g(`update:modelValue`,ke(k.value,e)),z())}function ae(){let e=_.value;return!e||e.selectionStart===e.value.length&&e.selectionEnd===e.value.length}function oe(e){g(`update:modelValue`,e.target.value)}function se(e){if(N.value){if(e.key===`ArrowDown`){e.preventDefault(),A.value.length>0&&(M.value=(M.value+1)%A.value.length);return}if(e.key===`ArrowUp`){e.preventDefault(),A.value.length>0&&(M.value=(M.value-1+A.value.length)%A.value.length);return}if(e.key===`Escape`){e.preventDefault(),j.value=!0;return}let t=A.value[M.value];if(e.key===`Tab`&&t?.acceptable){e.preventDefault(),F(t);return}if(e.key===`ArrowRight`&&P.value?.acceptable&&t&&ae()){e.preventDefault(),F(t);return}if(e.key===`Enter`&&!e.shiftKey&&t?.acceptable){e.preventDefault(),F(t);return}}q(e)&&(e.preventDefault(),I())}function I(){d.mode===`stop`?g(`stop`):d.modelValue.trim()!==``&&g(`submit`)}function L(){T.value=!1,ee().then(()=>{T.value=!0})}function R(){v.value=!0,L()}function z(){ee().then(()=>{let e=_.value;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length),document.activeElement===e&&!v.value&&R())})}return i(()=>d.hint,e=>{e&&z()}),h(()=>{d.autofocus&&z(),d.sweepOnMount&&L()}),a({focus:z}),(i,a)=>{let s=C,d=y;return p(),t(`div`,je,[e(l,{name:`sb-rise`},{default:f(()=>[N.value?(p(),t(`div`,Me,[A.value.length===0?(p(),t(`p`,Ne,` No command matches "`+o(r.modelValue)+`". `,1)):u(``,!0),(p(!0),t(te,null,n(A.value,(e,n)=>(p(),t(`button`,{key:e.label,type:`button`,role:`option`,class:c([`item flex w-full items-baseline gap-3 rounded-lg px-3 py-1.5 text-left transition-colors duration-150 ease-out`,n===M.value?`bg-(--ui-bg-accented)`:`hover:bg-(--ui-bg-muted)`]),"aria-selected":n===M.value?`true`:`false`,"data-insert":e.insert,"data-kind":e.kind,"data-label":e.label,onMousedown:a[0]||=b(()=>{},[`prevent`]),onClick:t=>F(e),onMouseenter:e=>M.value=n},[m(`span`,Fe,o(e.label),1),m(`span`,Ie,o(e.describe),1),n===M.value&&e.acceptable?(p(),t(`kbd`,Le,`Tab`)):u(``,!0)],42,Pe))),128))])):u(``,!0)]),_:1}),m(`div`,{class:c([`ring relative rounded-2xl`,T.value?`ring-sweep`:``]),onAnimationend:a[2]||=e=>T.value=!1},[m(`form`,{class:c([`composer relative flex items-end gap-2 rounded-2xl border bg-default px-3 py-2 transition-colors duration-150 ease-out`,v.value?`border-primary`:`border-default hover:border-accented`]),"data-mode":r.mode,onSubmit:b(I,[`prevent`])},[m(`div`,ze,[P.value?(p(),t(`div`,{key:0,class:`ghost composer-text pointer-events-none absolute inset-0 overflow-hidden whitespace-pre-wrap break-words`,"aria-hidden":`true`,"data-testid":`ghost`,"data-acceptable":P.value.acceptable?`1`:`0`},[m(`span`,Ve,o(r.modelValue),1),m(`span`,He,o(P.value.text),1)],8,Be)):u(``,!0),m(`textarea`,{ref_key:`box`,ref:_,class:`box composer-text relative block min-h-6 w-full resize-none bg-transparent text-highlighted outline-none placeholder:text-dimmed`,rows:ne.value,value:r.modelValue,placeholder:ie.value,autofocus:r.autofocus,"aria-label":`Message`,"aria-expanded":N.value?`true`:void 0,autocomplete:`off`,spellcheck:`true`,onInput:oe,onKeydown:se,onFocus:R,onBlur:a[1]||=e=>v.value=!1},null,40,Ue)]),e(d,{type:`submit`,class:`control shrink-0 rounded-full transition-transform duration-150 ease-out active:scale-95`,color:r.mode===`stop`?`neutral`:`primary`,variant:r.mode===`stop`?`outline`:`solid`,size:`sm`,"aria-label":E.value.label,title:E.value.label,disabled:r.mode===`send`&&r.modelValue.trim()===``,"data-mode":r.mode},{default:f(()=>[e(l,{name:`sb-fade`,mode:`out-in`},{default:f(()=>[(p(),S(s,{key:E.value.icon,name:E.value.icon,class:`size-4`,"aria-hidden":`true`},null,8,[`name`]))]),_:1})]),_:1},8,[`color`,`variant`,`aria-label`,`title`,`disabled`,`data-mode`])],42,Re)],34),m(`p`,{class:c([`hint mt-1.5 min-h-[1.1rem] select-none px-3 font-mono text-[0.7rem] text-dimmed transition-opacity duration-150 ease-out`,O.value?`opacity-100`:`opacity-0`]),"aria-hidden":O.value?void 0:`true`,"data-hint":r.hint?`handback`:r.mode,"data-shown":O.value?`1`:`0`},o(D.value),11,We)])}}}),Ke=[`data-pending`],qe={class:`meta flex items-baseline gap-2 pr-1 font-mono text-[0.7rem] text-dimmed`},Je={key:0,class:`failed text-bad`},Ye={key:0,class:`folded text-muted`},Xe=[`title`],Ze=s({__name:`PersonTurn`,props:{text:{},at:{},now:{},pending:{type:Boolean},folded:{},failed:{}},setup(n){let r=n,i=w(()=>O(r.at,r.now));return(r,a)=>(p(),t(`div`,{class:`turn person flex flex-col items-end gap-1`,"data-pending":n.pending?`1`:void 0},[m(`div`,{class:c([`bubble max-w-[min(42rem,88%)] whitespace-pre-wrap break-words rounded-2xl rounded-br-md bg-(--ui-bg-accented) px-4 py-2.5 text-[0.875rem] leading-normal text-highlighted transition-opacity duration-150 ease-out`,n.pending?`opacity-70`:``])},o(n.text),3),m(`div`,qe,[n.failed?(p(),t(`span`,Je,o(n.failed),1)):u(``,!0),e(l,{name:`sb-fade`},{default:f(()=>[n.folded?(p(),t(`span`,Ye,`↪ folded in `+o(n.folded),1)):u(``,!0)]),_:1}),m(`span`,{class:`ts select-none`,title:_(F)(n.at)},o(i.value),9,Xe)])],8,Ke))}}),Qe=[`title`],$e={class:`preset font-medium`},et={class:`reason truncate font-normal opacity-80`},tt=s({__name:`ReceiptChip`,props:{route:{}},setup(e){let n=e,r=w(()=>P[M(n.route.preset)]);return(n,i)=>(p(),t(`span`,{class:c([`receipt inline-flex max-w-full items-baseline gap-1.5 rounded border px-1.5 py-px font-mono text-[0.7rem] leading-relaxed`,r.value]),title:`routed: ${e.route.reason}`,"data-testid":`receipt`},[m(`span`,$e,o(e.route.preset),1),m(`span`,et,`· `+o(e.route.reason),1)],10,Qe))}}),nt=[`data-phase`,`data-run-id`,`data-live`],rt={class:`head flex flex-wrap items-baseline gap-2 font-mono text-[0.7rem] text-dimmed`},it={key:0,class:`model`},at={key:1,class:`elapsed ml-auto tabular-nums`,"data-testid":`elapsed`},ot={key:0,class:`disconnected flex items-baseline gap-2 rounded-lg border border-dashed border-bad/40 px-3 py-2 font-mono text-xs text-bad`,"data-testid":`disconnected`},st=[`open`],ct={class:`flex min-h-6 cursor-pointer list-none items-baseline gap-2 font-mono text-[0.7rem] text-dimmed hover:text-toned [&::-webkit-details-marker]:hidden`},lt={class:`summary`},ut={class:`pl-1 pt-1`},dt={key:0,class:`py-2 font-mono text-xs text-dimmed`},ft={key:1,class:`py-2 font-mono text-xs text-warn`},pt={key:2,class:`m-0 list-none p-0`},mt={key:0,class:`reply`,"data-testid":`reply`},ht={key:1,class:`outcome font-mono text-xs text-warn`,"data-testid":`outcome`},gt={key:2,class:`facts flex flex-wrap items-baseline gap-x-3 font-mono text-[0.7rem] text-dimmed`},_t=s({__name:`AssistantTurn`,props:{turn:{},now:{},live:{},fetch:{}},emits:[`ended`,`input`,`stop`],setup(s,{emit:ee}){let y=s,b=ee,C=se();y.live?.serverNow&&C.seedClock(y.live.serverNow);let D=C.state,O=x(y.live?`connecting`:`ended`),N=x(y.turn.route??null),F=x(!0),me=w(()=>D.reply?.text??y.turn.answer??``),B=w(()=>D.meta?.agent??y.turn.agent??``),he=w(()=>{let e=D.meta?.model??y.turn.model;return e?I(e):``}),V=w(()=>y.live!==null&&y.live!==void 0&&O.value!==`ended`),ge=w(()=>O.value===`disconnected`),H=y.live?.serverNow?ce({startedAt:y.turn.startedAt,receivedAt:y.turn.receivedAt,serverNow:y.live.serverNow},y.now):null,_e=y.now,U=x(void 0),W=w(()=>y.turn.finished&&y.turn.finishedAt!==void 0?Math.max(0,y.turn.finishedAt-(y.turn.receivedAt??y.turn.startedAt)):U.value===void 0?H?H.elapsedMs(y.now):Math.max(0,y.now-_e):U.value),G=w(()=>A(W.value,`clock`)),ve=w(()=>pe(V.value?void 0:W.value,`run`)),ye=w(()=>fe(ve.value)),be=w(()=>V.value?de(D,y.now):null);T(z,be),T(L,null),T(oe,w(()=>D.reply!==null));let xe=w(()=>V.value?ue(D,C.pendingCall(),y.now):null),K=w(()=>{let e=xe.value;return ge.value||!e||e.kind===`call`?null:e.kind===`starting`?{verb:`Starting`,elapsedMs:W.value,slow:!1}:{verb:ne(e.elapsedMs),elapsedMs:e.elapsedMs,slow:e.slow}}),q=w(()=>D.log.filter(e=>e.kind===`step`)),J=w(()=>q.value.length>0?q.value.length:y.turn.stepCount??0),Se=w(()=>y.turn.finished&&y.turn.status&&y.turn.status!==`completed`?k(y.turn.status):``),Y=w(()=>`/runs/${encodeURIComponent(y.turn.id)}`),Ce=ie(),X=null;function Z(e){let t=e;t.type===`route`&&typeof t.preset==`string`&&(N.value={preset:t.preset,reason:typeof t.reason==`string`?t.reason:``}),t.type===`input`&&typeof t.text==`string`&&(F.value?F.value=!1:b(`input`,t.text,t.at)),C.handle(e)}h(()=>{y.live&&(b(`stop`,y.live.stopUrl),X=re({url:y.live.eventsUrl,factory:Ce,model:C,handle:Z,onFinished:e=>{U.value=H&&e?H.elapsedAt(e.finishedAt):W.value},onEnd:()=>{U.value??=W.value,b(`ended`)},onDisconnected:()=>{U.value??=W.value}}),i(X.phase,e=>O.value=e,{immediate:!0}))}),g(()=>X?.close());let Q=x(y.live!==null&&y.live!==void 0),$=x(y.live?`ready`:`none`);i(V,e=>{e||(Q.value=!1)});async function we(e){if(Q.value=e.target.open,!Q.value||$.value!==`none`)return;$.value=`loading`;let t=y.fetch??((...e)=>globalThis.fetch(...e));try{let e=await t(`/runs/${encodeURIComponent(y.turn.id)}/events`,{credentials:`same-origin`});if(!e.ok)throw Error(`HTTP ${e.status}`);let n=le(await e.text()).filter(e=>e.type!==`replay_note`);for(let e of(y.turn.schema??0)>=2?j(n):n)C.handle(e);C.closePhases(),$.value=`ready`}catch{$.value=`failed`}}let Te=w(()=>{let e=J.value;return e>0?`${e} step${e===1?``:`s`}`:V.value?`starting`:`no steps recorded`});return(i,h)=>{let g=d(`RouterLink`);return p(),t(`div`,{class:`turn assistant flex flex-col gap-2`,"data-phase":O.value,"data-run-id":s.turn.id,"data-live":V.value?`1`:void 0},[m(`div`,rt,[e(l,{name:`sb-rise`},{default:f(()=>[N.value?(p(),S(tt,{key:`receipt`,route:N.value},null,8,[`route`])):B.value?(p(),t(`span`,{key:`agent`,class:c([`agent rounded border px-1.5 py-px font-medium`,_(P)[_(M)(B.value)]])},o(B.value),3)):u(``,!0)]),_:1}),he.value?(p(),t(`span`,it,o(he.value),1)):u(``,!0),V.value?(p(),t(`span`,at,o(G.value),1)):u(``,!0)]),e(l,{name:`sb-fade`},{default:f(()=>[V.value&&K.value?(p(),S(E,{key:0,tag:`div`,verb:K.value.verb,"elapsed-ms":K.value.elapsedMs,slow:K.value.slow,model:_(D).meta?.model??s.turn.model??null},null,8,[`verb`,`elapsed-ms`,`slow`,`model`])):u(``,!0)]),_:1}),ge.value?(p(),t(`p`,ot,[h[1]||=m(`span`,null,`stream disconnected · the run may still be working`,-1),e(g,{class:`ml-auto text-primary no-underline hover:underline`,to:Y.value},{default:f(()=>[...h[0]||=[v(`open the run`,-1)]]),_:1},8,[`to`])])):u(``,!0),V.value||J.value>0||$.value!==`none`?(p(),t(`details`,{key:1,class:`work group`,open:Q.value,"data-testid":`work`,onToggle:we},[m(`summary`,ct,[h[2]||=m(`span`,{class:`chev select-none transition-transform duration-150 ease-out group-open:rotate-90 motion-reduce:transition-none`},`❯`,-1),m(`span`,lt,o(Te.value),1)]),m(`div`,ut,[$.value===`loading`?(p(),t(`p`,dt,`reading the run's record…`)):$.value===`failed`?(p(),t(`p`,ft,[h[4]||=v(` the run's record could not be read — `,-1),e(g,{class:`text-primary no-underline hover:underline`,to:Y.value},{default:f(()=>[...h[3]||=[v(`open the run`,-1)]]),_:1},8,[`to`])])):(p(),t(`ol`,pt,[e(r,{name:`sb-rise`},{default:f(()=>[(p(!0),t(te,null,n(q.value,e=>(p(),S(R,{key:e.key,step:e,class:`mt-3 first:mt-0`,onToggleGroup:t=>_(C).toggleGroup(e)},null,8,[`step`,`onToggleGroup`]))),128))]),_:1})]))])],40,st)):u(``,!0),e(l,{name:`sb-rise`},{default:f(()=>[me.value?(p(),t(`div`,mt,[e(ae,{text:me.value},null,8,[`text`])])):Se.value?(p(),t(`p`,ht,o(Se.value),1)):u(``,!0)]),_:1}),V.value?u(``,!0):(p(),t(`div`,gt,[m(`span`,{class:c([`dur tabular-nums`,ye.value?`heat`:``]),style:a(ye.value)},o(G.value),7),e(g,{class:`open text-dimmed no-underline hover:text-primary hover:underline`,to:Y.value},{default:f(()=>[...h[5]||=[v(`open run`,-1)]]),_:1},8,[`to`])]))],8,nt)}}}),vt={class:`turn parent flex flex-wrap items-baseline gap-x-2 gap-y-0.5 px-1 font-mono text-[0.7rem] text-dimmed`,"data-testid":`parent-word`},yt=[`href`],bt={class:`line text-muted`},xt={key:0,class:`pr text-muted`},St=[`title`],Ct=s({__name:`ParentTurn`,props:{turn:{},now:{}},setup(e){let n=e,r=w(()=>O(n.turn.at,n.now)),i=w(()=>`/runs/${encodeURIComponent(n.turn.runId)}`+(n.turn.token===void 0?``:`?t=${encodeURIComponent(n.turn.token)}`)),a=w(()=>n.turn.report??n.turn.lead??`unit ${n.turn.unit} — ${n.turn.state}`);return(n,s)=>(p(),t(`div`,vt,[s[0]||=m(`span`,{class:`glyph select-none`,"aria-hidden":`true`},`⇡`,-1),m(`a`,{href:i.value,class:`label text-toned underline decoration-dotted underline-offset-2`},`Pipeline`,8,yt),m(`span`,bt,`— `+o(a.value),1),e.turn.pr===void 0?u(``,!0):(p(),t(`span`,xt,`#`+o(e.turn.pr),1)),m(`span`,{class:`ts ml-auto select-none`,title:_(F)(e.turn.at)},o(r.value),9,St)]))}}),wt={class:`turn silent flex flex-wrap items-baseline gap-x-2 gap-y-0.5 px-1 font-mono text-[0.7rem] text-dimmed`,"data-testid":`silent-receipt`},Tt={class:`reason text-muted`},Et=[`title`],Dt=s({__name:`SilentTurn`,props:{reason:{},decidedAt:{},now:{}},setup(e){let n=e,r=w(()=>O(n.decidedAt,n.now));return(n,i)=>(p(),t(`div`,wt,[i[0]||=m(`span`,{class:`glyph select-none`,"aria-hidden":`true`},`◌`,-1),i[1]||=m(`span`,{class:`label`},`Read, not answered`,-1),m(`span`,Tt,`— `+o(e.reason),1),m(`span`,{class:`ts ml-auto select-none`,title:_(F)(e.decidedAt)},o(r.value),9,Et)]))}});export{U as S,xe as _,Ge as a,Y as b,W as c,_e as d,me as f,ge as g,be as h,Ze as i,G as l,Se as m,Ct as n,Ae as o,H as p,_t as r,ve as s,Dt as t,he as u,V as v,K as x,ye as y};
@@ -1 +1 @@
1
- import{Cn as e,_r as t,bn as n}from"./browser-B6T5hjfR.js";var r=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},i={},a={viewBox:`0 0 24 24`,class:`inline-block size-[1em] shrink-0 align-[-0.1em]`,"aria-label":`Slack`,role:`img`};function o(r,i){return t(),e(`svg`,a,[...i[0]||=[n(`rect`,{x:`2`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#e01e5a`},null,-1),n(`rect`,{x:`13`,y:`2`,width:`3`,height:`9`,rx:`1.5`,fill:`#36c5f0`},null,-1),n(`rect`,{x:`13`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#ecb22e`},null,-1),n(`rect`,{x:`9`,y:`13`,width:`3`,height:`9`,rx:`1.5`,fill:`#2eb67d`},null,-1)]])}var s=r(i,[[`render`,o]]);export{r as n,s as t};
1
+ import{Cn as e,_r as t,bn as n}from"./browser-CCImen5O.js";var r=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},i={},a={viewBox:`0 0 24 24`,class:`inline-block size-[1em] shrink-0 align-[-0.1em]`,"aria-label":`Slack`,role:`img`};function o(r,i){return t(),e(`svg`,a,[...i[0]||=[n(`rect`,{x:`2`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#e01e5a`},null,-1),n(`rect`,{x:`13`,y:`2`,width:`3`,height:`9`,rx:`1.5`,fill:`#36c5f0`},null,-1),n(`rect`,{x:`13`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#ecb22e`},null,-1),n(`rect`,{x:`9`,y:`13`,width:`3`,height:`9`,rx:`1.5`,fill:`#2eb67d`},null,-1)]])}var s=r(i,[[`render`,o]]);export{r as n,s as t};
@@ -1 +1 @@
1
- import{Cn as e,Mn as t,Pi as n,Xr as r,_r as i,bn as a,xn as o}from"./browser-B6T5hjfR.js";import{t as s}from"./Tooltip-wVXCWhMp.js";var c=[`aria-label`,`data-tone`],l=[`aria-label`,`data-tone`],u=t({__name:`StatusDot`,props:{tone:{},label:{},tip:{},pulse:{type:Boolean}},setup(t){let u={green:`bg-ok`,amber:`bg-warn`,red:`bg-bad`,grey:`bg-(--ui-text-dimmed)`};return(d,f)=>{let p=s;return t.tip?(i(),o(p,{key:0,text:t.tip},{default:r(()=>[a(`span`,{class:n([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[t.tone],t.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":t.label,"data-tone":t.tone},null,10,c)]),_:1},8,[`text`])):(i(),e(`span`,{key:1,class:n([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[t.tone],t.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":t.label,"data-tone":t.tone},null,10,l))}}});export{u as t};
1
+ import{Cn as e,Mn as t,Pi as n,Xr as r,_r as i,bn as a,xn as o}from"./browser-CCImen5O.js";import{t as s}from"./Tooltip-B4VIHkAI.js";var c=[`aria-label`,`data-tone`],l=[`aria-label`,`data-tone`],u=t({__name:`StatusDot`,props:{tone:{},label:{},tip:{},pulse:{type:Boolean}},setup(t){let u={green:`bg-ok`,amber:`bg-warn`,red:`bg-bad`,grey:`bg-(--ui-text-dimmed)`};return(d,f)=>{let p=s;return t.tip?(i(),o(p,{key:0,text:t.tip},{default:r(()=>[a(`span`,{class:n([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[t.tone],t.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":t.label,"data-tone":t.tone},null,10,c)]),_:1},8,[`text`])):(i(),e(`span`,{key:1,class:n([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[t.tone],t.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":t.label,"data-tone":t.tone},null,10,l))}}});export{u as t};
@@ -1 +1 @@
1
- import{D as e,T as t,_ as n,g as r,h as i,k as a,m as o,s}from"./AppShell-CSXDCV4x.js";import{An as c,Br as l,Cn as u,Cr as d,Ct as f,D as p,Di as m,Dr as h,Et as g,Fi as _,Gr as v,Hn as y,I as b,K as x,Kr as S,L as C,Li as w,Mn as T,Ot as ee,Pi as E,Pr as D,R as te,S as ne,Sn as O,T as k,Xr as A,_r as j,_t as M,b as N,dr as P,gt as re,ji as F,kn as ie,ln as ae,m as oe,nt as I,rn as L,rr as R,rt as z,ut as B,w as V,wr as H,wt as U,x as W,xi as G,xn as K,yn as q,z as J}from"./browser-B6T5hjfR.js";import{S as Y}from"./main-DAL--hyj.js";function se(e,t){let n=U(!1,300);g(()=>{n.value=!1});let r=G(null),i=M();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=le(a,ce(a,i.getBoundingClientRect()),1),s=ue(t.getBoundingClientRect()),c=fe([...o,...s]);r.value=c,n.value=!0}return S(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),S(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!de(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function ce(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function le(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ue(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function de(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function fe(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),pe(t)}function pe(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var me=T({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return J(),(e,n)=>(j(),K(F(o),_(y(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),X=`tooltip.open`,[Z,Q]=x(`TooltipRoot`),he=T({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let r=e,i=t;J();let a=Y(),o=q(()=>r.disableHoverableContent??a.disableHoverableContent.value),s=q(()=>r.disableClosingTrigger??a.disableClosingTrigger.value),c=q(()=>r.disabled??a.disabled.value),l=q(()=>r.delayDuration??a.delayDuration.value),u=q(()=>r.ignoreNonKeyboardFocus??a.ignoreNonKeyboardFocus.value),d=re(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});v(d,e=>{a.onClose&&(e?(a.onOpen(),document.dispatchEvent(new CustomEvent(X))):a.onClose())});let f=G(!1),p=G(),m=q(()=>d.value?f.value?`delayed-open`:`instant-open`:`closed`),{start:h,stop:g}=ee(()=>{f.value=!0,d.value=!0},l,{immediate:!1});function _(){g(),f.value=!1,d.value=!0}function y(){g(),d.value=!1}function b(){h()}return Q({contentId:``,open:d,stateAttribute:m,trigger:p,onTriggerChange(e){p.value=e},onTriggerEnter(){a.isOpenDelayed.value?b():_()},onTriggerLeave(){o.value?y():g()},onOpen:_,onClose:y,disableHoverableContent:o,disableClosingTrigger:s,disabled:c,ignoreNonKeyboardFocus:u}),(e,t)=>(j(),K(F(n),null,{default:A(()=>[H(e.$slots,`default`,{open:F(d)})]),_:3}))}}),$=T({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,a=n,o=Z(),s=Y(),{forwardRef:l,currentElement:u}=J(),d=q(()=>r.ariaLabel||u.value?.textContent),f=q(()=>{let{ariaLabel:e,...t}=r;return I(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return P(()=>{B(window,`scroll`,e=>{e.target?.contains(o.trigger.value)&&o.onClose()},{capture:!0}),B(document,X,o.onClose)}),(e,n)=>(j(),K(F(t),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>a(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{F(o).disableClosingTrigger.value&&F(o).trigger.value?.contains(e.target)&&e.preventDefault(),a(`pointerDownOutside`,e)},onFocusOutside:n[2]||=L(()=>{},[`prevent`]),onDismiss:n[3]||=e=>F(o).onClose()},{default:A(()=>[c(F(i),R({ref:F(l),"data-state":F(o).stateAttribute.value},{...e.$attrs,...f.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:A(()=>[H(e.$slots,`default`),c(F(k),{id:F(o).contentId,role:`tooltip`},{default:A(()=>[ie(w(d.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ge=T({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=te(e),{forwardRef:n,currentElement:r}=J(),{trigger:i,onClose:a}=Z(),o=Y(),{isPointerInTransit:s,onPointerExit:c}=se(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(j(),K($,R({ref:F(n)},F(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),_e=T({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Z(),o=a(n,r),{forwardRef:s}=J();return(e,t)=>(j(),K(F(C),{present:e.forceMount||F(i).open.value},{default:A(()=>[(j(),K(h(F(i).disableHoverableContent.value?$:ge),R({ref:F(s)},F(o)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ve=T({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(j(),K(F(p),_(y(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),ye=T({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t,i=Z(),a=Y();i.contentId||=e(void 0,`reka-tooltip-content`);let{forwardRef:o,currentElement:s}=J(),l=G(!1),u=G(!1),d=q(()=>i.disabled.value?{}:{click:v,focus:g,pointermove:m,pointerleave:h,pointerdown:p,blur:_});P(()=>{i.onTriggerChange(s.value)});function f(){setTimeout(()=>{l.value=!1},1)}function p(){i.open&&!i.disableClosingTrigger.value&&i.onClose(),l.value=!0,document.addEventListener(`pointerup`,f,{once:!0})}function m(e){e.pointerType!==`touch`&&!u.value&&!a.isPointerInTransitRef.value&&(i.onTriggerEnter(),u.value=!0)}function h(){i.onTriggerLeave(),u.value=!1}function g(e){l.value||(!i.ignoreNonKeyboardFocus.value||e.target.matches?.(`:focus-visible`))&&i.onOpen()}function _(){i.onClose()}function v(){i.disableClosingTrigger.value||i.onClose()}return(e,t)=>(j(),K(F(r),{"as-child":``,reference:e.reference},{default:A(()=>[c(F(b),R({ref:F(o),"aria-describedby":F(i).open.value?F(i).contentId:void 0,"data-state":F(i).stateAttribute.value,as:e.as,"as-child":n.asChild,"data-grace-area-trigger":``},D(d.value)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),be={slots:{content:`flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto`,arrow:`fill-bg stroke-default`,text:`truncate`,kbds:`hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5`,kbdsSize:`sm`}},xe={__name:`Tooltip`,props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,i=l(),a=ne(`tooltip`,n),o=z(),p=Y(),h=W(f(a,`defaultOpen`,`open`,`delayDuration`,`disableHoverableContent`,`disableClosingTrigger`,`ignoreNonKeyboardFocus`),r),g=V(m(()=>a.portal)),v=m(()=>I(a.content,p.content.value,{side:`bottom`,sideOffset:8,collisionPadding:8})),b=m(()=>I(a.arrow,{rounded:!0})),x=q(()=>N({extend:be,...o.ui?.tooltip||{}})({side:v.value.side}));return(e,t)=>(j(),K(F(he),R(F(h),{disabled:!(F(a).text||F(a).kbds?.length||i.content)||F(a).disabled}),{default:A(({open:t})=>[i.default||F(a).reference?(j(),K(F(ye),R({key:0},e.$attrs,{"as-child":``,reference:F(a).reference,class:F(a).class}),{default:A(()=>[H(e.$slots,`default`,{open:t})]),_:2},1040,[`reference`,`class`])):O(``,!0),c(F(ve),_(y(F(g))),{default:A(()=>[c(F(oe),null,{default:A(()=>[c(F(_e),R(v.value,{"data-slot":`content`,class:x.value.content({class:[!i.default&&F(a).class,F(a).ui?.content]})}),{default:A(()=>[H(e.$slots,`content`,{ui:x.value},()=>[F(a).text?(j(),u(`span`,{key:0,"data-slot":`text`,class:E(x.value.text({class:F(a).ui?.text}))},w(F(a).text),3)):O(``,!0),F(a).kbds?.length?(j(),u(`span`,{key:1,"data-slot":`kbds`,class:E(x.value.kbds({class:F(a).ui?.kbds}))},[(j(!0),u(ae,null,d(F(a).kbds,(e,t)=>(j(),K(s,R({key:t,size:F(a).ui?.kbdsSize||x.value.kbdsSize()},{ref_for:!0},typeof e==`string`?{value:e}:e),null,16,[`size`]))),128))],2)):O(``,!0)]),F(a).arrow?(j(),K(F(me),R({key:0},b.value,{"data-slot":`arrow`,class:x.value.arrow({class:F(a).ui?.arrow})}),null,16,[`class`])):O(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`disabled`]))}};export{xe as t};
1
+ import{D as e,T as t,_ as n,g as r,h as i,k as a,m as o,s}from"./AppShell-DPJVhUGP.js";import{An as c,Br as l,Cn as u,Cr as d,Ct as f,D as p,Di as m,Dr as h,Et as g,Fi as _,Gr as v,Hn as y,I as b,K as x,Kr as S,L as C,Li as w,Mn as T,Ot as ee,Pi as E,Pr as D,R as te,S as ne,Sn as O,T as k,Xr as A,_r as j,_t as M,b as N,dr as P,gt as re,ji as F,kn as ie,ln as ae,m as oe,nt as I,rn as L,rr as R,rt as z,ut as B,w as V,wr as H,wt as U,x as W,xi as G,xn as K,yn as q,z as J}from"./browser-CCImen5O.js";import{S as Y}from"./main-DxPqaFu9.js";function se(e,t){let n=U(!1,300);g(()=>{n.value=!1});let r=G(null),i=M();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=le(a,ce(a,i.getBoundingClientRect()),1),s=ue(t.getBoundingClientRect()),c=fe([...o,...s]);r.value=c,n.value=!0}return S(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),S(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!de(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function ce(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function le(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ue(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function de(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function fe(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),pe(t)}function pe(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var me=T({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return J(),(e,n)=>(j(),K(F(o),_(y(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),X=`tooltip.open`,[Z,Q]=x(`TooltipRoot`),he=T({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let r=e,i=t;J();let a=Y(),o=q(()=>r.disableHoverableContent??a.disableHoverableContent.value),s=q(()=>r.disableClosingTrigger??a.disableClosingTrigger.value),c=q(()=>r.disabled??a.disabled.value),l=q(()=>r.delayDuration??a.delayDuration.value),u=q(()=>r.ignoreNonKeyboardFocus??a.ignoreNonKeyboardFocus.value),d=re(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});v(d,e=>{a.onClose&&(e?(a.onOpen(),document.dispatchEvent(new CustomEvent(X))):a.onClose())});let f=G(!1),p=G(),m=q(()=>d.value?f.value?`delayed-open`:`instant-open`:`closed`),{start:h,stop:g}=ee(()=>{f.value=!0,d.value=!0},l,{immediate:!1});function _(){g(),f.value=!1,d.value=!0}function y(){g(),d.value=!1}function b(){h()}return Q({contentId:``,open:d,stateAttribute:m,trigger:p,onTriggerChange(e){p.value=e},onTriggerEnter(){a.isOpenDelayed.value?b():_()},onTriggerLeave(){o.value?y():g()},onOpen:_,onClose:y,disableHoverableContent:o,disableClosingTrigger:s,disabled:c,ignoreNonKeyboardFocus:u}),(e,t)=>(j(),K(F(n),null,{default:A(()=>[H(e.$slots,`default`,{open:F(d)})]),_:3}))}}),$=T({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,a=n,o=Z(),s=Y(),{forwardRef:l,currentElement:u}=J(),d=q(()=>r.ariaLabel||u.value?.textContent),f=q(()=>{let{ariaLabel:e,...t}=r;return I(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return P(()=>{B(window,`scroll`,e=>{e.target?.contains(o.trigger.value)&&o.onClose()},{capture:!0}),B(document,X,o.onClose)}),(e,n)=>(j(),K(F(t),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>a(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{F(o).disableClosingTrigger.value&&F(o).trigger.value?.contains(e.target)&&e.preventDefault(),a(`pointerDownOutside`,e)},onFocusOutside:n[2]||=L(()=>{},[`prevent`]),onDismiss:n[3]||=e=>F(o).onClose()},{default:A(()=>[c(F(i),R({ref:F(l),"data-state":F(o).stateAttribute.value},{...e.$attrs,...f.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:A(()=>[H(e.$slots,`default`),c(F(k),{id:F(o).contentId,role:`tooltip`},{default:A(()=>[ie(w(d.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ge=T({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=te(e),{forwardRef:n,currentElement:r}=J(),{trigger:i,onClose:a}=Z(),o=Y(),{isPointerInTransit:s,onPointerExit:c}=se(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(j(),K($,R({ref:F(n)},F(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),_e=T({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Z(),o=a(n,r),{forwardRef:s}=J();return(e,t)=>(j(),K(F(C),{present:e.forceMount||F(i).open.value},{default:A(()=>[(j(),K(h(F(i).disableHoverableContent.value?$:ge),R({ref:F(s)},F(o)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ve=T({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(j(),K(F(p),_(y(t)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16))}}),ye=T({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t,i=Z(),a=Y();i.contentId||=e(void 0,`reka-tooltip-content`);let{forwardRef:o,currentElement:s}=J(),l=G(!1),u=G(!1),d=q(()=>i.disabled.value?{}:{click:v,focus:g,pointermove:m,pointerleave:h,pointerdown:p,blur:_});P(()=>{i.onTriggerChange(s.value)});function f(){setTimeout(()=>{l.value=!1},1)}function p(){i.open&&!i.disableClosingTrigger.value&&i.onClose(),l.value=!0,document.addEventListener(`pointerup`,f,{once:!0})}function m(e){e.pointerType!==`touch`&&!u.value&&!a.isPointerInTransitRef.value&&(i.onTriggerEnter(),u.value=!0)}function h(){i.onTriggerLeave(),u.value=!1}function g(e){l.value||(!i.ignoreNonKeyboardFocus.value||e.target.matches?.(`:focus-visible`))&&i.onOpen()}function _(){i.onClose()}function v(){i.disableClosingTrigger.value||i.onClose()}return(e,t)=>(j(),K(F(r),{"as-child":``,reference:e.reference},{default:A(()=>[c(F(b),R({ref:F(o),"aria-describedby":F(i).open.value?F(i).contentId:void 0,"data-state":F(i).stateAttribute.value,as:e.as,"as-child":n.asChild,"data-grace-area-trigger":``},D(d.value)),{default:A(()=>[H(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),be={slots:{content:`flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto`,arrow:`fill-bg stroke-default`,text:`truncate`,kbds:`hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5`,kbdsSize:`sm`}},xe={__name:`Tooltip`,props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,i=l(),a=ne(`tooltip`,n),o=z(),p=Y(),h=W(f(a,`defaultOpen`,`open`,`delayDuration`,`disableHoverableContent`,`disableClosingTrigger`,`ignoreNonKeyboardFocus`),r),g=V(m(()=>a.portal)),v=m(()=>I(a.content,p.content.value,{side:`bottom`,sideOffset:8,collisionPadding:8})),b=m(()=>I(a.arrow,{rounded:!0})),x=q(()=>N({extend:be,...o.ui?.tooltip||{}})({side:v.value.side}));return(e,t)=>(j(),K(F(he),R(F(h),{disabled:!(F(a).text||F(a).kbds?.length||i.content)||F(a).disabled}),{default:A(({open:t})=>[i.default||F(a).reference?(j(),K(F(ye),R({key:0},e.$attrs,{"as-child":``,reference:F(a).reference,class:F(a).class}),{default:A(()=>[H(e.$slots,`default`,{open:t})]),_:2},1040,[`reference`,`class`])):O(``,!0),c(F(ve),_(y(F(g))),{default:A(()=>[c(F(oe),null,{default:A(()=>[c(F(_e),R(v.value,{"data-slot":`content`,class:x.value.content({class:[!i.default&&F(a).class,F(a).ui?.content]})}),{default:A(()=>[H(e.$slots,`content`,{ui:x.value},()=>[F(a).text?(j(),u(`span`,{key:0,"data-slot":`text`,class:E(x.value.text({class:F(a).ui?.text}))},w(F(a).text),3)):O(``,!0),F(a).kbds?.length?(j(),u(`span`,{key:1,"data-slot":`kbds`,class:E(x.value.kbds({class:F(a).ui?.kbds}))},[(j(!0),u(ae,null,d(F(a).kbds,(e,t)=>(j(),K(s,R({key:t,size:F(a).ui?.kbdsSize||x.value.kbdsSize()},{ref_for:!0},typeof e==`string`?{value:e}:e),null,16,[`size`]))),128))],2)):O(``,!0)]),F(a).arrow?(j(),K(F(me),R({key:0},b.value,{"data-slot":`arrow`,class:x.value.arrow({class:F(a).ui?.arrow})}),null,16,[`class`])):O(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`disabled`]))}};export{xe as t};