llm-simple-router 0.9.31 → 0.9.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/upgrade.js +23 -10
- package/frontend-dist/assets/{CardContent-Rx3Yzr25.js → CardContent-D3x1v1V9.js} +1 -1
- package/frontend-dist/assets/{CardTitle-BfXABzCk.js → CardTitle-DIgY93n2.js} +1 -1
- package/frontend-dist/assets/{Checkbox-CaCKbLQP.js → Checkbox-BBj7YMSz.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-C3p4dMa-.js → CollapsibleContent-Cy8Zj7F7.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-DRGRANMT.js → CollapsibleTrigger-Vdxg8CPQ.js} +1 -1
- package/frontend-dist/assets/{Dashboard-DKeQ9jnE.js → Dashboard-BvUBgYaB.js} +1 -1
- package/frontend-dist/assets/{Input-Zqewz_Ci.js → Input-yOkodP1n.js} +1 -1
- package/frontend-dist/assets/{Label-B1wEVeX4.js → Label-XqpkYcVi.js} +1 -1
- package/frontend-dist/assets/{Login-BWDT9nph.js → Login-BGagonui.js} +1 -1
- package/frontend-dist/assets/{Logs-hyd2jEMr.js → Logs-bfeOLJad.js} +1 -1
- package/frontend-dist/assets/{MappingEntryEditor-By30pZoC.js → MappingEntryEditor-CMTbBK_d.js} +1 -1
- package/frontend-dist/assets/{ModelCard-C3DD_FZd.js → ModelCard-C81l2a_5.js} +1 -1
- package/frontend-dist/assets/{ModelMappings-CrWlSNu8.js → ModelMappings-CvDWSsDP.js} +1 -1
- package/frontend-dist/assets/{Monitor-BN7oLW1v.js → Monitor-BGH6sjdr.js} +1 -1
- package/frontend-dist/assets/{Providers-Drx7U5Sq.js → Providers-UK6LN6DF.js} +1 -1
- package/frontend-dist/assets/{ProxyEnhancement-CYVFvqyn.js → ProxyEnhancement-MX0PRADd.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-Oom1ygGi.js → QuickSetup-CajStS5C.js} +1 -1
- package/frontend-dist/assets/{RetryRules-CpL1bYTq.js → RetryRules-gpvpTTSc.js} +1 -1
- package/frontend-dist/assets/{RouterKeys-_AlXAmum.js → RouterKeys-Dc8D6cEV.js} +1 -1
- package/frontend-dist/assets/{RovingFocusItem-BcFr0scT.js → RovingFocusItem-B3BLvyzD.js} +1 -1
- package/frontend-dist/assets/{Schedules-DU8r-48b.js → Schedules-Criu9-NO.js} +1 -1
- package/frontend-dist/assets/{Settings-CqsVr0kd.js → Settings-BiYdwrHf.js} +1 -1
- package/frontend-dist/assets/{Setup-fotCrfUW.js → Setup-BVqlQCjs.js} +1 -1
- package/frontend-dist/assets/{Switch-BQas2Rql.js → Switch-B7QaMMlY.js} +1 -1
- package/frontend-dist/assets/{TooltipTrigger-BPsVa_Tw.js → TooltipTrigger-Bz3pu02g.js} +1 -1
- package/frontend-dist/assets/{TransformRulesForm-O68V-z_P.js → TransformRulesForm-DXB1ChZ2.js} +1 -1
- package/frontend-dist/assets/{UnifiedRequestDialog-hVtwPhdB.js → UnifiedRequestDialog-BbGcsFXP.js} +1 -1
- package/frontend-dist/assets/{VisuallyHiddenInput-5jJ6xPkS.js → VisuallyHiddenInput-MTmHNjqA.js} +1 -1
- package/frontend-dist/assets/{button-CRqhqXwT.js → button-lv9v_6nd.js} +2 -2
- package/frontend-dist/assets/{copy-CBD-G6GC.js → copy-Dwbg7SpV.js} +1 -1
- package/frontend-dist/assets/{dialog-DKAgYLQJ.js → dialog-ZNKLyaHg.js} +1 -1
- package/frontend-dist/assets/{index-CwvbWlRW.js → index-CDEwS862.js} +2 -2
- package/frontend-dist/assets/sidebar-3c8D7l60.js +1 -0
- package/frontend-dist/assets/sidebar-vj4kQ6t1.js +1 -0
- package/frontend-dist/assets/{trash-2-C88b94t5.js → trash-2-UQ53WECI.js} +1 -1
- package/frontend-dist/assets/{useClipboard-BJc6Gpft.js → useClipboard-CmrKRWL_.js} +1 -1
- package/frontend-dist/assets/{useLogRetention-ed_dDakq.js → useLogRetention-C59RXKSz.js} +1 -1
- package/frontend-dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend-dist/assets/sidebar-BLkzG956.js +0 -1
- package/frontend-dist/assets/sidebar-Bw1Xt0-q.js +0 -1
package/dist/admin/upgrade.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getConfigSyncSource, setConfigSyncSource } from '../db/settings.js';
|
|
2
|
-
import { detectDeployment, hasProcessManager, getRestartMethod } from '../upgrade/deployment.js';
|
|
2
|
+
import { detectDeployment, hasProcessManager, resolveRestartBinPath, getRestartMethod } from '../upgrade/deployment.js';
|
|
3
3
|
import { createUpgradeChecker, fetchJson } from '../upgrade/checker.js';
|
|
4
4
|
import { reloadConfig } from '../config/recommended.js';
|
|
5
|
-
import { execSync } from 'node:child_process';
|
|
5
|
+
import { execSync, spawn } from 'node:child_process';
|
|
6
6
|
import fs from 'node:fs';
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import { HTTP_BAD_REQUEST, HTTP_INTERNAL_ERROR } from '../core/constants.js';
|
|
@@ -11,8 +11,22 @@ const GITHUB_CONFIG_BASE = 'https://raw.githubusercontent.com/zhushanwen321/llm-
|
|
|
11
11
|
const GITEE_CONFIG_BASE = 'https://gitee.com/zzzzswszzzz/llm-simple-router/raw/main/router/config';
|
|
12
12
|
const CHECK_INTERVAL_MS = 60 * 60 * 1000; // eslint-disable-line no-magic-numbers
|
|
13
13
|
const JSON_INDENT = 2;
|
|
14
|
-
const RESTART_FORCE_EXIT_MS =
|
|
14
|
+
const RESTART_FORCE_EXIT_MS = 5_000;
|
|
15
15
|
const RESTART_RESPONSE_FLUSH_MS = 300;
|
|
16
|
+
function spawnDetached(req) {
|
|
17
|
+
const binPath = resolveRestartBinPath();
|
|
18
|
+
const args = process.argv.slice(2); // eslint-disable-line no-magic-numbers
|
|
19
|
+
req.log.info({ binPath, args }, 'Spawning new process');
|
|
20
|
+
const child = spawn(binPath, args, {
|
|
21
|
+
detached: true,
|
|
22
|
+
stdio: 'ignore',
|
|
23
|
+
env: { ...process.env },
|
|
24
|
+
});
|
|
25
|
+
child.on('error', (err) => {
|
|
26
|
+
req.log.error({ err, binPath }, 'Failed to spawn new process');
|
|
27
|
+
});
|
|
28
|
+
child.unref();
|
|
29
|
+
}
|
|
16
30
|
// 模块级单例:checker、configDir 和定时器
|
|
17
31
|
let checker = null;
|
|
18
32
|
let configDir = '';
|
|
@@ -86,13 +100,6 @@ export const adminUpgradeRoutes = (app, options, done) => {
|
|
|
86
100
|
app.post('/admin/api/upgrade/restart', async (req, reply) => {
|
|
87
101
|
const managed = hasProcessManager();
|
|
88
102
|
const method = getRestartMethod();
|
|
89
|
-
if (!managed) {
|
|
90
|
-
// 无进程管理器(npx / 手动 node)时无法安全自动重启:
|
|
91
|
-
// 1. spawn 路径不可靠(npx 不注册全局 bin)
|
|
92
|
-
// 2. 新旧进程端口竞态(EADDRINUSE)
|
|
93
|
-
// 3. 原始启动参数无法复现
|
|
94
|
-
return reply.code(HTTP_BAD_REQUEST).send(apiError(API_CODE.BAD_REQUEST, 'No process manager detected (PM2/systemd/Docker). Please restart manually.'));
|
|
95
|
-
}
|
|
96
103
|
// 先回复客户端,再执行重启(否则客户端收不到响应)
|
|
97
104
|
reply.send({ ok: true, method });
|
|
98
105
|
// 给响应发送窗口
|
|
@@ -102,12 +109,18 @@ export const adminUpgradeRoutes = (app, options, done) => {
|
|
|
102
109
|
// 强制退出兜底:即使 closeFn 卡住(如活跃代理 SSE 流),也能确保进程退出。
|
|
103
110
|
const forceExitTimer = setTimeout(() => {
|
|
104
111
|
req.log.warn('Graceful shutdown timed out during restart, forcing exit');
|
|
112
|
+
// 超时强制退出前仍尝试 spawn(无进程管理器时)
|
|
113
|
+
if (!managed)
|
|
114
|
+
spawnDetached(req);
|
|
105
115
|
process.exit(0);
|
|
106
116
|
}, RESTART_FORCE_EXIT_MS);
|
|
107
117
|
forceExitTimer.unref();
|
|
108
118
|
// 尝试优雅关闭(closeFn 内部有 2s 优雅等待 + closeAllConnections 兜底)
|
|
109
119
|
await options.closeFn();
|
|
110
120
|
clearTimeout(forceExitTimer);
|
|
121
|
+
// 无进程管理器时,先 closeFn 释放端口,再 spawn 新进程,避免 EADDRINUSE 竞态
|
|
122
|
+
if (!managed)
|
|
123
|
+
spawnDetached(req);
|
|
111
124
|
req.log.info('Exiting current process');
|
|
112
125
|
process.exit(0);
|
|
113
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Vt as t,X as n,dt as r,mt as i,r as a,zt as o}from"./button-
|
|
1
|
+
import{$ as e,Vt as t,X as n,dt as r,mt as i,r as a,zt as o}from"./button-lv9v_6nd.js";var s=[`data-size`],c=e({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(e){let c=e;return(l,u)=>(r(),n(`div`,{"data-slot":`card`,"data-size":e.size,class:t(o(a)(`ring-foreground/10 bg-card text-card-foreground gap-4 overflow-hidden rounded-lg py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg group/card flex flex-col`,c.class))},[i(l.$slots,`default`)],10,s))}}),l=e({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),n(`div`,{"data-slot":`card-content`,class:t(o(a)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[i(e.$slots,`default`)],2))}});export{c as n,l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Vt as t,X as n,dt as r,mt as i,r as a,zt as o}from"./button-
|
|
1
|
+
import{$ as e,Vt as t,X as n,dt as r,mt as i,r as a,zt as o}from"./button-lv9v_6nd.js";var s=e({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),n(`div`,{"data-slot":`card-header`,class:t(o(a)(`gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,s.class))},[i(e.$slots,`default`)],2))}}),c=e({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),n(`div`,{"data-slot":`card-title`,class:t(o(a)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[i(e.$slots,`default`)],2))}});export{s as n,c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,H as t,Ht as n,J as r,K as i,Q as a,U as o,Y as s,dt as c,gt as l,i as u,m as d,mt as f,o as p,ot as m,r as h,tt as g,wt as _,x as v,zt as y}from"./button-
|
|
1
|
+
import{$ as e,H as t,Ht as n,J as r,K as i,Q as a,U as o,Y as s,dt as c,gt as l,i as u,m as d,mt as f,o as p,ot as m,r as h,tt as g,wt as _,x as v,zt as y}from"./button-lv9v_6nd.js";import{t as b}from"./VisuallyHiddenInput-MTmHNjqA.js";import{t as x}from"./RovingFocusItem-B3BLvyzD.js";import{B as S,G as C,H as w,L as T,Y as E,nt as D,q as O}from"./index-CDEwS862.js";function k(e,t){return C(e)?!1:Array.isArray(e)?e.some(e=>E(e,t)):E(e,t)}var[A,j]=O(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=O(`CheckboxRoot`),I=e({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{emit:n}){let a=e,h=n,{forwardRef:g,currentElement:v}=p(),S=A(null),T=d(a,`modelValue`,h,{defaultValue:a.defaultValue??a.falseValue,passive:a.modelValue===void 0}),D=i(()=>S?.disabled.value||a.disabled),O=i(()=>E(T.value,a.trueValue)),j=i(()=>C(S?.modelValue.value)?T.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,a.value));function P(){if(C(S?.modelValue.value))T.value===`indeterminate`?T.value=a.trueValue:T.value=O.value?a.falseValue:a.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,a.value)){let t=e.findIndex(e=>E(e,a.value));e.splice(t,1)}else e.push(a.value);S.modelValue.value=e}}let I=w(v),L=i(()=>a.id&&v.value?document.querySelector(`[for="${a.id}"]`)?.innerText:void 0);return F({disabled:D,state:j}),(e,n)=>(c(),r(l(y(S)?.rovingFocus.value?y(x):y(u)),m(e.$attrs,{id:e.id,ref:y(g),role:`checkbox`,"as-child":e.asChild,as:e.as,type:e.as===`button`?`button`:void 0,"aria-checked":y(M)(j.value)?`mixed`:j.value,"aria-required":e.required,"aria-label":e.$attrs[`aria-label`]||L.value,"data-state":y(N)(j.value),"data-disabled":D.value?``:void 0,disabled:D.value,focusable:y(S)?.rovingFocus.value?!D.value:void 0,onKeydown:t(o(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:_(()=>[f(e.$slots,`default`,{modelValue:y(T),state:j.value}),y(I)&&e.name&&!y(S)?(c(),r(y(b),{key:0,type:`checkbox`,checked:!!j.value,name:e.name,value:e.value,disabled:D.value,required:e.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):s(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=e({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:t}=p(),n=P();return(e,i)=>(c(),r(y(T),{present:e.forceMount||y(M)(y(n).state.value)||y(n).state.value===!0},{default:_(()=>[a(y(u),m({ref:y(t),"data-state":y(N)(y(n).state.value),"data-disabled":y(n).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:_(()=>[f(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=e({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let i=e,o=t,s=S(v(i,`class`),o);return(e,t)=>(c(),r(y(I),m({"data-slot":`checkbox`},y(s),{class:y(h)(`border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-md border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,i.class)}),{default:_(t=>[a(y(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:_(()=>[f(e.$slots,`default`,n(g(t)),()=>[a(y(D))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
|
package/frontend-dist/assets/{CollapsibleContent-C3p4dMa-.js → CollapsibleContent-Cy8Zj7F7.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Ht as t,J as n,K as r,Lt as i,Mt as a,Q as o,Y as s,d as c,dt as l,i as u,lt as d,m as f,mt as p,o as m,ot as h,st as g,tt as _,wt as v,xt as y,zt as b}from"./button-
|
|
1
|
+
import{$ as e,Ht as t,J as n,K as r,Lt as i,Mt as a,Q as o,Y as s,d as c,dt as l,i as u,lt as d,m as f,mt as p,o as m,ot as h,st as g,tt as _,wt as v,xt as y,zt as b}from"./button-lv9v_6nd.js";import{B as x,L as S,q as C,z as w}from"./index-CDEwS862.js";var[T,E]=C(`CollapsibleRoot`),D=e({__name:`CollapsibleRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:open`],setup(e,{expose:t,emit:r}){let a=e,o=f(a,`open`,r,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:s,unmountOnHide:c}=i(a);return E({contentId:``,disabled:s,open:o,unmountOnHide:c,onOpenToggle:()=>{s.value||(o.value=!o.value)}}),t({open:o}),m(),(e,t)=>(l(),n(b(u),{as:e.as,"as-child":a.asChild,"data-state":b(o)?`open`:`closed`,"data-disabled":b(s)?``:void 0},{default:v(()=>[p(e.$slots,`default`,{open:b(o)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=e({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(e,{emit:t}){let i=e,f=t,_=T();_.contentId||=w(void 0,`reka-collapsible-content`);let x=a(),{forwardRef:C,currentElement:E}=m(),D=a(0),O=a(0),k=r(()=>_.open.value),A=a(k.value),j=a();y(()=>[k.value,x.value?.present],async()=>{await g();let e=E.value;if(!e)return;j.value=j.value||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();O.value=t.height,D.value=t.width,A.value||(e.style.transitionDuration=j.value.transitionDuration,e.style.animationName=j.value.animationName)},{immediate:!0});let M=r(()=>A.value&&_.open.value);return d(()=>{requestAnimationFrame(()=>{A.value=!1})}),c(E,`beforematch`,e=>{requestAnimationFrame(()=>{_.onOpenToggle(),f(`contentFound`)})}),(e,t)=>(l(),n(b(S),{ref_key:`presentRef`,ref:x,present:e.forceMount||b(_).open.value,"force-mount":!0},{default:v(({present:t})=>[o(b(u),h(e.$attrs,{id:b(_).contentId,ref:b(C),"as-child":i.asChild,as:e.as,hidden:t?void 0:b(_).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:b(_).open.value?`open`:`closed`,"data-disabled":b(_).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:v(()=>[!b(_).unmountOnHide.value||t?p(e.$slots,`default`,{key:0}):s(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=e({__name:`Collapsible`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(e,{emit:r}){let i=x(e,r);return(e,r)=>(l(),n(b(D),h({"data-slot":`collapsible`},b(i)),{default:v(n=>[p(e.$slots,`default`,t(_(n)))]),_:3},16))}}),A=e({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,r)=>(l(),n(b(O),h({"data-slot":`collapsible-content`},t),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
|
package/frontend-dist/assets/{CollapsibleTrigger-DRGRANMT.js → CollapsibleTrigger-Vdxg8CPQ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,J as t,dt as n,i as r,mt as i,o as a,ot as o,wt as s,zt as c}from"./button-
|
|
1
|
+
import{$ as e,J as t,dt as n,i as r,mt as i,o as a,ot as o,wt as s,zt as c}from"./button-lv9v_6nd.js";import{r as l}from"./CollapsibleContent-Cy8Zj7F7.js";var u=e({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let o=e;a();let u=l();return(e,a)=>(n(),t(c(r),{type:e.as===`button`?`button`:void 0,as:e.as,"as-child":o.asChild,"aria-controls":c(u).contentId,"aria-expanded":c(u).open.value,"data-state":c(u).open.value?`open`:`closed`,"data-disabled":c(u).disabled?.value?``:void 0,disabled:c(u).disabled?.value,onClick:c(u).onOpenToggle},{default:s(()=>[i(e.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),d=e({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let r=e;return(e,a)=>(n(),t(c(u),o({"data-slot":`collapsible-trigger`},r),{default:s(()=>[i(e.$slots,`default`)]),_:3},16))}});export{d as t};
|