llm-simple-router 0.11.27 → 0.11.28
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/proxy/patch/deepseek/patch-orphan-tool-results.d.ts +1 -1
- package/dist/proxy/patch/deepseek/patch-orphan-tool-results.js +24 -37
- package/dist/proxy/patch/index.js +3 -1
- package/frontend-dist/assets/{CardContent-BLlnppsG.js → CardContent-BbiKtIeE.js} +1 -1
- package/frontend-dist/assets/{CardTitle-8HHCqwln.js → CardTitle-BKzqpj_c.js} +1 -1
- package/frontend-dist/assets/{CascadingModelSelect-CrtNasp8.js → CascadingModelSelect-B7lZ1mP0.js} +1 -1
- package/frontend-dist/assets/{Checkbox-B8Vw60jj.js → Checkbox-D1Y3kGGA.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-CvvkOB4a.js → CollapsibleContent-CoARuSxM.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-DeMItRLr.js → CollapsibleTrigger-D2zhWvtd.js} +1 -1
- package/frontend-dist/assets/{Dashboard-9dJqc_2w.js → Dashboard-CU8be5NR.js} +1 -1
- package/frontend-dist/assets/{Input-vc5GUwkU.js → Input-BOlb6Kuw.js} +1 -1
- package/frontend-dist/assets/{Label-FWcCWV4Q.js → Label-CCZ5BOi9.js} +1 -1
- package/frontend-dist/assets/{Login-9QkzUJm_.js → Login-Dux0E-6K.js} +1 -1
- package/frontend-dist/assets/{Logs-B2Ywp4Aj.js → Logs-BDoOY0hr.js} +1 -1
- package/frontend-dist/assets/{MappingEntryEditor-Cx85eUWy.js → MappingEntryEditor-BPqzjEiL.js} +1 -1
- package/frontend-dist/assets/{ModelMappings-rUvMpbjc.js → ModelMappings-BT_Cpt-a.js} +1 -1
- package/frontend-dist/assets/{Monitor-DCo3DSbc.js → Monitor-tOgUttQg.js} +1 -1
- package/frontend-dist/assets/{Providers-CwvTWI9Z.js → Providers-Dl1g9D6s.js} +1 -1
- package/frontend-dist/assets/{ProxyEnhancement-Cn1rEBFB.js → ProxyEnhancement-BbBy7nrm.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-CdpVo45V.js → QuickSetup-rGmuHGJq.js} +1 -1
- package/frontend-dist/assets/{RetryRules-DDJMY1IF.js → RetryRules-DfEaQ1YN.js} +1 -1
- package/frontend-dist/assets/{RouterKeys-DMyGtSxS.js → RouterKeys--rpRgKSn.js} +1 -1
- package/frontend-dist/assets/{RovingFocusItem-Bx5uXXN2.js → RovingFocusItem-CvIxVLbB.js} +1 -1
- package/frontend-dist/assets/{Schedules-CDDBsNpW.js → Schedules-B7EFQyXL.js} +1 -1
- package/frontend-dist/assets/{Settings-Cr9sYZKR.js → Settings-BvKMJ0Qa.js} +1 -1
- package/frontend-dist/assets/{Setup-LSmgyhc3.js → Setup-4vmVajOU.js} +1 -1
- package/frontend-dist/assets/{Switch-DyyEun5Q.js → Switch-D9H1FPsB.js} +1 -1
- package/frontend-dist/assets/{TooltipTrigger-DCldZMnb.js → TooltipTrigger-Btj1Vsxm.js} +1 -1
- package/frontend-dist/assets/{TransformRulesForm-Gfvlk0Xk.js → TransformRulesForm-BJ4caGDj.js} +1 -1
- package/frontend-dist/assets/{UnifiedRequestDialog-BnrOpRXA.js → UnifiedRequestDialog-BbQBSoU7.js} +1 -1
- package/frontend-dist/assets/{VisuallyHiddenInput-Bkpr-VfM.js → VisuallyHiddenInput-BoPTforN.js} +1 -1
- package/frontend-dist/assets/{button-CT60E_JD.js → button-wn0cCDld.js} +2 -2
- package/frontend-dist/assets/{copy-CVYlfrkY.js → copy-DBpQ3kDg.js} +1 -1
- package/frontend-dist/assets/{dialog-B4JCV9g7.js → dialog-DCaFnzS6.js} +1 -1
- package/frontend-dist/assets/{index-bGqHF9Js.js → index-Bp-3UWSJ.js} +2 -2
- package/frontend-dist/assets/{model-patches-C-_TDTXT.js → model-patches-BmLrUDyn.js} +1 -1
- package/frontend-dist/assets/plus-BcoVh92Q.js +1 -0
- package/frontend-dist/assets/{sparkles-CbfRkkI9.js → sparkles-b5zac545.js} +1 -1
- package/frontend-dist/assets/{trash-2-wGNSUXAY.js → trash-2-BgW_R7hP.js} +1 -1
- package/frontend-dist/assets/{useClipboard-Br_VVE9B.js → useClipboard-DWvZAkuV.js} +1 -1
- package/frontend-dist/assets/{useLogRetention-DOuufHTD.js → useLogRetention-DwWdAQWh.js} +1 -1
- package/frontend-dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend-dist/assets/plus-C0-OMLZ3.js +0 -1
|
@@ -19,7 +19,7 @@ export declare function patchOrphanToolResults(body: Record<string, unknown>): v
|
|
|
19
19
|
*
|
|
20
20
|
* 检测两种方向的不匹配:
|
|
21
21
|
* - 正向:role:"tool" 消息的 tool_call_id 无对应 assistant tool_calls[].id → 移除孤儿 tool 消息
|
|
22
|
-
* - 反向:非末尾 assistant 的 tool_calls[].id 无对应 tool 消息 →
|
|
22
|
+
* - 反向:非末尾 assistant 的 tool_calls[].id 无对应 tool 消息 → 补入合成 tool 消息
|
|
23
23
|
*
|
|
24
24
|
* 反向跳过最后一条 assistant:它可能是正常的工具调用中间状态(模型刚返回 tool_calls,
|
|
25
25
|
* 客户端还没来得及执行并回传 tool 消息)。
|
|
@@ -116,7 +116,7 @@ export function patchOrphanToolResults(body) {
|
|
|
116
116
|
*
|
|
117
117
|
* 检测两种方向的不匹配:
|
|
118
118
|
* - 正向:role:"tool" 消息的 tool_call_id 无对应 assistant tool_calls[].id → 移除孤儿 tool 消息
|
|
119
|
-
* - 反向:非末尾 assistant 的 tool_calls[].id 无对应 tool 消息 →
|
|
119
|
+
* - 反向:非末尾 assistant 的 tool_calls[].id 无对应 tool 消息 → 补入合成 tool 消息
|
|
120
120
|
*
|
|
121
121
|
* 反向跳过最后一条 assistant:它可能是正常的工具调用中间状态(模型刚返回 tool_calls,
|
|
122
122
|
* 客户端还没来得及执行并回传 tool 消息)。
|
|
@@ -129,7 +129,6 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
129
129
|
if (!messages || !Array.isArray(messages) || messages.length === 0)
|
|
130
130
|
return;
|
|
131
131
|
// ---- 正向:移除孤儿 tool 消息 ----
|
|
132
|
-
// 收集所有 assistant tool_calls IDs
|
|
133
132
|
const knownToolCallIds = new Set();
|
|
134
133
|
for (const msg of messages) {
|
|
135
134
|
if (msg.role !== "assistant")
|
|
@@ -142,7 +141,6 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
142
141
|
knownToolCallIds.add(tc.id);
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
|
-
// 移除无主 tool 消息(逆序遍历避免索引偏移)
|
|
146
144
|
let changed = false;
|
|
147
145
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
148
146
|
const msg = messages[i];
|
|
@@ -154,8 +152,7 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
154
152
|
changed = true;
|
|
155
153
|
}
|
|
156
154
|
}
|
|
157
|
-
// ----
|
|
158
|
-
// 收集所有 tool 消息的 ID
|
|
155
|
+
// ---- 反向:为孤儿 tool_call 补入合成 tool 消息 ----
|
|
159
156
|
const knownToolMsgIds = new Set();
|
|
160
157
|
for (const msg of messages) {
|
|
161
158
|
if (msg.role !== "tool")
|
|
@@ -164,46 +161,39 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
164
161
|
if (toolCallId)
|
|
165
162
|
knownToolMsgIds.add(toolCallId);
|
|
166
163
|
}
|
|
167
|
-
|
|
168
|
-
for (let i =
|
|
164
|
+
// 逆序遍历 assistant,这样 splice 插入不影响前面 assistant 的索引
|
|
165
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
169
166
|
const msg = messages[i];
|
|
170
167
|
if (msg.role !== "assistant")
|
|
171
168
|
continue;
|
|
172
169
|
// 跳过最后一条 assistant:它可能是正常的工具调用中间状态
|
|
173
|
-
if (i ===
|
|
174
|
-
|
|
170
|
+
if (i === messages.length - 1)
|
|
171
|
+
continue;
|
|
175
172
|
const toolCalls = msg.tool_calls;
|
|
176
173
|
if (!toolCalls || toolCalls.length === 0)
|
|
177
174
|
continue;
|
|
178
|
-
const
|
|
179
|
-
const
|
|
175
|
+
const orphans = [];
|
|
176
|
+
for (const tc of toolCalls) {
|
|
180
177
|
const id = tc.id;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
msg.tool_calls = filtered;
|
|
178
|
+
// 空 id 忽略:不补不删
|
|
179
|
+
if (!id)
|
|
180
|
+
continue;
|
|
181
|
+
if (!knownToolMsgIds.has(id)) {
|
|
182
|
+
orphans.push(id);
|
|
189
183
|
}
|
|
190
|
-
changed = true;
|
|
191
184
|
}
|
|
185
|
+
if (orphans.length === 0)
|
|
186
|
+
continue;
|
|
187
|
+
// 在该 assistant 后面插入合成 tool 消息
|
|
188
|
+
const syntheticMsgs = orphans.map(id => ({
|
|
189
|
+
role: "tool",
|
|
190
|
+
tool_call_id: id,
|
|
191
|
+
content: "[context truncated]",
|
|
192
|
+
}));
|
|
193
|
+
messages.splice(i + 1, 0, ...syntheticMsgs);
|
|
194
|
+
changed = true;
|
|
192
195
|
}
|
|
193
196
|
if (changed) {
|
|
194
|
-
// 移除空壳 assistant(content 无实质内容且无 tool_calls)
|
|
195
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
196
|
-
const m = messages[i];
|
|
197
|
-
if (m.role !== "assistant")
|
|
198
|
-
continue;
|
|
199
|
-
if (m.tool_calls)
|
|
200
|
-
continue;
|
|
201
|
-
const content = m.content;
|
|
202
|
-
if (content === null || content === undefined || content === ""
|
|
203
|
-
|| (Array.isArray(content) && content.length === 0)) {
|
|
204
|
-
messages.splice(i, 1);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
197
|
// 合并连续 user 消息
|
|
208
198
|
for (let i = 1; i < messages.length;) {
|
|
209
199
|
if (messages[i].role === "user" && messages[i - 1].role === "user") {
|
|
@@ -221,8 +211,6 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
221
211
|
}
|
|
222
212
|
// Step 4: 修复 tool_calls 消息顺序——将插在 assistant(tool_calls) 与 tool 之间的
|
|
223
213
|
// 非 tool 消息(如用户中断、系统提醒)挪到 tool 消息之后
|
|
224
|
-
// scanLimit 上限:每个 tool_call 最多对应 1 个 tool 消息 + 1 个可能穿插的非 tool 消息,
|
|
225
|
-
// 额外 +3 留出边界余量(额外的 user/system 消息)
|
|
226
214
|
const SCAN_LIMIT_EXTRA = 3;
|
|
227
215
|
for (let idx = 0; idx < messages.length; idx++) {
|
|
228
216
|
const msg = messages[idx];
|
|
@@ -232,7 +220,7 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
232
220
|
const expectedIds = new Set(toolCalls.map(tc => tc.id));
|
|
233
221
|
const intervening = [];
|
|
234
222
|
const toolMsgs = [];
|
|
235
|
-
const SCAN_SLOTS_PER_CALL = 2;
|
|
223
|
+
const SCAN_SLOTS_PER_CALL = 2;
|
|
236
224
|
const scanLimit = idx + 1 + expectedIds.size * SCAN_SLOTS_PER_CALL + SCAN_LIMIT_EXTRA;
|
|
237
225
|
let j = idx + 1;
|
|
238
226
|
for (; j < messages.length && j <= scanLimit; j++) {
|
|
@@ -250,7 +238,6 @@ export function patchOrphanToolResultsOA(body) {
|
|
|
250
238
|
if (intervening.length > 0 && toolMsgs.length > 0 && expectedIds.size === 0) {
|
|
251
239
|
const count = intervening.length + toolMsgs.length;
|
|
252
240
|
messages.splice(idx + 1, count, ...toolMsgs, ...intervening);
|
|
253
|
-
// splice 后跳过已重排的区域(toolMsgs + intervening),避免重复处理
|
|
254
241
|
idx += count;
|
|
255
242
|
}
|
|
256
243
|
}
|
|
@@ -89,7 +89,9 @@ function needsDeepSeekPatch(body, provider) {
|
|
|
89
89
|
if (provider.base_url.includes("deepseek"))
|
|
90
90
|
return true;
|
|
91
91
|
const model = body.model ?? "";
|
|
92
|
-
|
|
92
|
+
if (model.includes("deepseek"))
|
|
93
|
+
return true;
|
|
94
|
+
return false;
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
95
97
|
* 格式无关的 patch 匹配:将比较值与 modelPatches(已由 parseModels 归一化)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-
|
|
1
|
+
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-wn0cCDld.js";var s=[`data-size`],c=r({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(r){let c=r;return(l,u)=>(n(),t(`div`,{"data-slot":`card`,"data-size":r.size,class:i(e(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))},[o(l.$slots,`default`)],10,s))}}),l=r({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-content`,class:i(e(a)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[o(r.$slots,`default`)],2))}});export{c as n,l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-
|
|
1
|
+
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-wn0cCDld.js";var s=r({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-header`,class:i(e(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))},[o(r.$slots,`default`)],2))}}),c=r({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-title`,class:i(e(a)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[o(r.$slots,`default`)],2))}});export{s as n,c as t};
|
package/frontend-dist/assets/{CascadingModelSelect-CrtNasp8.js → CascadingModelSelect-B7lZ1mP0.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Gt as t,H as n,J as r,L as i,Lt as a,Q as o,X as s,Xt as c,Z as l,et as u,gt as d,it as f,kt as p,qt as m,rt as h,vt as g}from"./button-
|
|
1
|
+
import{$ as e,Gt as t,H as n,J as r,L as i,Lt as a,Q as o,X as s,Xt as c,Z as l,et as u,gt as d,it as f,kt as p,qt as m,rt as h,vt as g}from"./button-wn0cCDld.js";import{b as _,ft as v,ht as y,v as b,y as x}from"./index-Bp-3UWSJ.js";var S=i(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),C=[`onMouseenter`],w={class:`truncate max-w-40`},T={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},E=[`onMouseenter`],D=[`onClick`],O={class:`truncate`},k={key:0,class:`shrink-0 text-xs text-muted-foreground`},A={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},j=f({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(i,{emit:f}){let{t:y}=n(),j=i,M=s(()=>j.placeholder||y(`common.selectPlaceholder`)),N=f,P=a(!1),F=a(null),I=s(()=>{if(!j.modelValue)return``;let e=j.groups.find(e=>e.key===j.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===j.modelValue.value);return t?`${e.label} / ${t.label}`:``});function L(e,t){N(`update:modelValue`,{groupKey:e,value:t}),P.value=!1}function R(e){P.value=e,e||(F.value=null)}return(n,a)=>(d(),o(t(_),{open:P.value,"onUpdate:open":R},{default:p(()=>[h(t(b),{"as-child":``},{default:p(()=>[l(`div`,{class:m([`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[i.compact?`h-8 text-xs px-2.5 py-1`:`h-10 text-sm px-3 py-2`,{"ring-2 ring-ring ring-offset-2":P.value}]])},[l(`span`,{class:m([`truncate`,i.modelValue?`text-foreground`:`text-muted-foreground`])},c(I.value||M.value),3),h(t(v),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),h(t(x),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 overflow-visible p-1`},{default:p(()=>[(d(!0),u(r,null,g(i.groups,n=>(d(),u(`div`,{key:n.key,class:m([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":F.value===n.key}]),onMouseenter:e=>F.value=n.key},[l(`span`,w,c(n.label),1),n.badge?(d(),u(`span`,T,c(n.badge),1)):e(``,!0),h(t(S),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),F.value===n.key&&n.options.length>0?(d(),u(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 rounded-md border bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:e=>F.value=n.key},[(d(!0),u(r,null,g(n.options,t=>(d(),u(`div`,{key:t.value,class:m([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":i.modelValue?.groupKey===n.key&&i.modelValue?.value===t.value}]),onClick:e=>L(n.key,t.value)},[l(`span`,O,c(t.label),1),t.tag?(d(),u(`span`,k,c(t.tag),1)):e(``,!0)],10,D))),128))],40,E)):e(``,!0)],42,C))),128)),i.groups.length===0?(d(),u(`div`,A,c(t(y)(`common.noOptions`)),1)):e(``,!0)]),_:1})]),_:1},8,[`open`]))}}),M=f({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let{t:r}=n(),i=e,a=s(()=>i.placeholder||r(`mappings.selectProviderModel`)),c=t,l=s(()=>i.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?r(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:y(e.contextWindow)}))}))),u=s(()=>i.modelValue?{groupKey:i.modelValue.provider_id,value:i.modelValue.model}:void 0);function f(e){c(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(t,n)=>(d(),o(j,{groups:l.value,"model-value":u.value,placeholder:a.value,compact:e.compact,"onUpdate:modelValue":f},null,8,[`groups`,`model-value`,`placeholder`,`compact`]))}});export{M as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Gt as t,Jt as n,K as r,Q as i,X as a,dt as o,gt as s,i as c,it as l,kt as u,m as d,o as f,ot as p,q as m,r as h,rt as g,x as _,xt as v,yt as y}from"./button-
|
|
1
|
+
import{$ as e,Gt as t,Jt as n,K as r,Q as i,X as a,dt as o,gt as s,i as c,it as l,kt as u,m as d,o as f,ot as p,q as m,r as h,rt as g,x as _,xt as v,yt as y}from"./button-wn0cCDld.js";import{t as b}from"./VisuallyHiddenInput-BoPTforN.js";import{t as x}from"./RovingFocusItem-CvIxVLbB.js";import{J as S,K as C,R as w,U as T,V as E,X as D,pt as O}from"./index-Bp-3UWSJ.js";function k(e,t){return C(e)?!1:Array.isArray(e)?e.some(e=>D(e,t)):D(e,t)}var[A,j]=S(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=S(`CheckboxRoot`),I=l({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(n,{emit:l}){let p=n,h=l,{forwardRef:g,currentElement:_}=f(),S=A(null),w=d(p,`modelValue`,h,{defaultValue:p.defaultValue??p.falseValue,passive:p.modelValue===void 0}),E=a(()=>S?.disabled.value||p.disabled),O=a(()=>D(w.value,p.trueValue)),j=a(()=>C(S?.modelValue.value)?w.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,p.value));function P(){if(C(S?.modelValue.value))w.value===`indeterminate`?w.value=p.trueValue:w.value=O.value?p.falseValue:p.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,p.value)){let t=e.findIndex(e=>D(e,p.value));e.splice(t,1)}else e.push(p.value);S.modelValue.value=e}}let I=T(_),L=a(()=>p.id&&_.value?document.querySelector(`[for="${p.id}"]`)?.innerText:void 0);return F({disabled:E,state:j}),(n,a)=>(s(),i(v(t(S)?.rovingFocus.value?t(x):t(c)),o(n.$attrs,{id:n.id,ref:t(g),role:`checkbox`,"as-child":n.asChild,as:n.as,type:n.as===`button`?`button`:void 0,"aria-checked":t(M)(j.value)?`mixed`:j.value,"aria-required":n.required,"aria-label":n.$attrs[`aria-label`]||L.value,"data-state":t(N)(j.value),"data-disabled":E.value?``:void 0,disabled:E.value,focusable:t(S)?.rovingFocus.value?!E.value:void 0,onKeydown:r(m(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:u(()=>[y(n.$slots,`default`,{modelValue:t(w),state:j.value}),t(I)&&n.name&&!t(S)?(s(),i(t(b),{key:0,type:`checkbox`,checked:!!j.value,name:n.name,value:n.value,disabled:E.value,required:n.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):e(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=l({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:n}=f(),r=P();return(e,a)=>(s(),i(t(w),{present:e.forceMount||t(M)(t(r).state.value)||t(r).state.value===!0},{default:u(()=>[g(t(c),o({ref:t(n),"data-state":t(N)(t(r).state.value),"data-disabled":t(r).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:u(()=>[y(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=l({__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:r}){let a=e,c=r,l=E(_(a,`class`),c);return(e,r)=>(s(),i(t(I),o({"data-slot":`checkbox`},t(l),{class:t(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`,a.class)}),{default:u(r=>[g(t(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:u(()=>[y(e.$slots,`default`,n(p(r)),()=>[g(t(O))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
|
package/frontend-dist/assets/{CollapsibleContent-CvvkOB4a.js → CollapsibleContent-CoARuSxM.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Et as t,Gt as n,Ht as r,Jt as i,Lt as a,Q as o,X as s,d as c,dt as l,ft as u,gt as d,i as f,it as p,kt as m,m as h,mt as g,o as _,ot as v,rt as y,yt as b}from"./button-
|
|
1
|
+
import{$ as e,Et as t,Gt as n,Ht as r,Jt as i,Lt as a,Q as o,X as s,d as c,dt as l,ft as u,gt as d,i as f,it as p,kt as m,m as h,mt as g,o as _,ot as v,rt as y,yt as b}from"./button-wn0cCDld.js";import{B as x,J as S,R as C,V as w}from"./index-Bp-3UWSJ.js";var[T,E]=S(`CollapsibleRoot`),D=p({__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:i}){let a=e,s=h(a,`open`,i,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:c,unmountOnHide:l}=r(a);return E({contentId:``,disabled:c,open:s,unmountOnHide:l,onOpenToggle:()=>{c.value||(s.value=!s.value)}}),t({open:s}),_(),(e,t)=>(d(),o(n(f),{as:e.as,"as-child":a.asChild,"data-state":n(s)?`open`:`closed`,"data-disabled":n(c)?``:void 0},{default:m(()=>[b(e.$slots,`default`,{open:n(s)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=p({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(r,{emit:i}){let p=r,h=i,v=T();v.contentId||=x(void 0,`reka-collapsible-content`);let S=a(),{forwardRef:w,currentElement:E}=_(),D=a(0),O=a(0),k=s(()=>v.open.value),A=a(k.value),j=a();t(()=>[k.value,S.value?.present],async()=>{await u();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=s(()=>A.value&&v.open.value);return g(()=>{requestAnimationFrame(()=>{A.value=!1})}),c(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),h(`contentFound`)})}),(t,r)=>(d(),o(n(C),{ref_key:`presentRef`,ref:S,present:t.forceMount||n(v).open.value,"force-mount":!0},{default:m(({present:r})=>[y(n(f),l(t.$attrs,{id:n(v).contentId,ref:n(w),"as-child":p.asChild,as:t.as,hidden:r?void 0:n(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:n(v).open.value?`open`:`closed`,"data-disabled":n(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:m(()=>[!n(v).unmountOnHide.value||r?b(t.$slots,`default`,{key:0}):e(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=p({__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:t}){let r=w(e,t);return(e,t)=>(d(),o(n(D),l({"data-slot":`collapsible`},n(r)),{default:m(t=>[b(e.$slots,`default`,i(v(t)))]),_:3},16))}}),A=p({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,r)=>(d(),o(n(O),l({"data-slot":`collapsible-content`},t),{default:m(()=>[b(e.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
|
package/frontend-dist/assets/{CollapsibleTrigger-DeMItRLr.js → CollapsibleTrigger-D2zhWvtd.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,Ht as t,Jt as n,K as r,Lt as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y,zt as b}from"./button-
|
|
1
|
+
import{Gt as e,Ht as t,Jt as n,K as r,Lt as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y,zt as b}from"./button-wn0cCDld.js";import{r as x}from"./CollapsibleContent-CoARuSxM.js";import{n as S,t as C}from"./RovingFocusItem-CvIxVLbB.js";import{B as w,H as T,J as E,V as D,W as O}from"./index-Bp-3UWSJ.js";var k=u({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t;p();let r=x();return(t,i)=>(c(),a(e(l),{type:t.as===`button`?`button`:void 0,as:t.as,"as-child":n.asChild,"aria-controls":e(r).contentId,"aria-expanded":e(r).open.value,"data-state":e(r).open.value?`open`:`closed`,"data-disabled":e(r).disabled?.value?``:void 0,disabled:e(r).disabled?.value,onClick:e(r).onOpenToggle},{default:d(()=>[y(t.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),[A,j]=E(`TabsRoot`),M=u({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(n,{emit:r}){let o=n,s=r,{orientation:u,unmountOnHide:m,dir:h}=t(o),g=O(h);p();let _=f(o,`modelValue`,s,{defaultValue:o.defaultValue,passive:o.modelValue===void 0}),v=i(),x=b(new Set);return j({modelValue:_,changeModelValue:e=>{_.value=e},orientation:u,dir:g,unmountOnHide:m,activationMode:o.activationMode,baseId:w(void 0,`reka-tabs`),tabsList:v,contentIds:x,registerContent:e=>{x.value=new Set([...x.value,e])},unregisterContent:e=>{let t=new Set(x.value);t.delete(e),x.value=t}}),(t,n)=>(c(),a(e(l),{dir:e(g),"data-orientation":e(u),"as-child":t.asChild,as:t.as},{default:d(()=>[y(t.$slots,`default`,{modelValue:e(_)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function N(e,t){return`${e}-trigger-${t}`}function P(e,t){return`${e}-content-${t}`}var F=u({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){let{loop:r}=t(n),{forwardRef:i,currentElement:o}=p(),s=A();return s.tabsList=o,(t,n)=>(c(),a(e(S),{"as-child":``,orientation:e(s).orientation.value,dir:e(s).dir.value,loop:e(r)},{default:d(()=>[_(e(l),{ref:e(i),role:`tablist`,"as-child":t.asChild,as:t.as,"aria-orientation":e(s).orientation.value},{default:d(()=>[y(t.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),I=u({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t,{forwardRef:i}=p(),s=A(),u=o(()=>N(s.baseId,n.value)),f=o(()=>s.contentIds.value.has(n.value)?P(s.baseId,n.value):void 0),m=o(()=>n.value===s.modelValue.value);return(t,n)=>(c(),a(e(C),{"as-child":``,focusable:!t.disabled,active:m.value},{default:d(()=>[_(e(l),{id:u.value,ref:e(i),role:`tab`,type:t.as===`button`?`button`:void 0,as:t.as,"as-child":t.asChild,"aria-selected":m.value?`true`:`false`,"aria-controls":f.value,"data-state":m.value?`active`:`inactive`,disabled:t.disabled,"data-disabled":t.disabled?``:void 0,"data-orientation":e(s).orientation.value,onMousedown:n[0]||=h(n=>{!t.disabled&&n.ctrlKey===!1?e(s).changeModelValue(t.value):n.preventDefault()},[`left`]),onKeydown:n[1]||=r(n=>e(s).changeModelValue(t.value),[`enter`,`space`]),onFocus:n[2]||=()=>{let n=e(s).activationMode!==`manual`;!m.value&&!t.disabled&&n&&e(s).changeModelValue(t.value)}},{default:d(()=>[y(t.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),L=u({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(t,{emit:r}){let i=t,o=r,l=D(v(i,`class`),o);return(t,r)=>(c(),a(e(M),s({"data-slot":`tabs`,"data-orientation":e(l).orientation||`horizontal`},e(l),{class:e(g)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,i.class)}),{default:d(e=>[y(t.$slots,`default`,n(m(e)))]),_:3},16,[`data-orientation`,`class`]))}}),R=u({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(t){let n=t,r=v(n,`class`,`variant`);return(i,o)=>(c(),a(e(F),s({"data-slot":`tabs-list`,"data-variant":t.variant},e(r),{class:e(g)(`rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col`,t.variant===`default`&&`bg-muted`,t.variant===`line`&&`gap-1 bg-transparent`,n.class)}),{default:d(()=>[y(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),z=u({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=T(v(n,`class`));return(t,i)=>(c(),a(e(I),s({"data-slot":`tabs-trigger`,class:e(g)(`gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg:not([class*=size-])]:size-4 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,n.class)},e(r)),{default:d(()=>[y(t.$slots,`default`)]),_:3},16,[`class`]))}}),B=u({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(c(),a(e(k),s({"data-slot":`collapsible-trigger`},n),{default:d(()=>[y(t.$slots,`default`)]),_:3},16))}});export{P as a,L as i,z as n,N as o,R as r,A as s,B as t};
|