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.
Files changed (44) hide show
  1. package/dist/proxy/patch/deepseek/patch-orphan-tool-results.d.ts +1 -1
  2. package/dist/proxy/patch/deepseek/patch-orphan-tool-results.js +24 -37
  3. package/dist/proxy/patch/index.js +3 -1
  4. package/frontend-dist/assets/{CardContent-BLlnppsG.js → CardContent-BbiKtIeE.js} +1 -1
  5. package/frontend-dist/assets/{CardTitle-8HHCqwln.js → CardTitle-BKzqpj_c.js} +1 -1
  6. package/frontend-dist/assets/{CascadingModelSelect-CrtNasp8.js → CascadingModelSelect-B7lZ1mP0.js} +1 -1
  7. package/frontend-dist/assets/{Checkbox-B8Vw60jj.js → Checkbox-D1Y3kGGA.js} +1 -1
  8. package/frontend-dist/assets/{CollapsibleContent-CvvkOB4a.js → CollapsibleContent-CoARuSxM.js} +1 -1
  9. package/frontend-dist/assets/{CollapsibleTrigger-DeMItRLr.js → CollapsibleTrigger-D2zhWvtd.js} +1 -1
  10. package/frontend-dist/assets/{Dashboard-9dJqc_2w.js → Dashboard-CU8be5NR.js} +1 -1
  11. package/frontend-dist/assets/{Input-vc5GUwkU.js → Input-BOlb6Kuw.js} +1 -1
  12. package/frontend-dist/assets/{Label-FWcCWV4Q.js → Label-CCZ5BOi9.js} +1 -1
  13. package/frontend-dist/assets/{Login-9QkzUJm_.js → Login-Dux0E-6K.js} +1 -1
  14. package/frontend-dist/assets/{Logs-B2Ywp4Aj.js → Logs-BDoOY0hr.js} +1 -1
  15. package/frontend-dist/assets/{MappingEntryEditor-Cx85eUWy.js → MappingEntryEditor-BPqzjEiL.js} +1 -1
  16. package/frontend-dist/assets/{ModelMappings-rUvMpbjc.js → ModelMappings-BT_Cpt-a.js} +1 -1
  17. package/frontend-dist/assets/{Monitor-DCo3DSbc.js → Monitor-tOgUttQg.js} +1 -1
  18. package/frontend-dist/assets/{Providers-CwvTWI9Z.js → Providers-Dl1g9D6s.js} +1 -1
  19. package/frontend-dist/assets/{ProxyEnhancement-Cn1rEBFB.js → ProxyEnhancement-BbBy7nrm.js} +1 -1
  20. package/frontend-dist/assets/{QuickSetup-CdpVo45V.js → QuickSetup-rGmuHGJq.js} +1 -1
  21. package/frontend-dist/assets/{RetryRules-DDJMY1IF.js → RetryRules-DfEaQ1YN.js} +1 -1
  22. package/frontend-dist/assets/{RouterKeys-DMyGtSxS.js → RouterKeys--rpRgKSn.js} +1 -1
  23. package/frontend-dist/assets/{RovingFocusItem-Bx5uXXN2.js → RovingFocusItem-CvIxVLbB.js} +1 -1
  24. package/frontend-dist/assets/{Schedules-CDDBsNpW.js → Schedules-B7EFQyXL.js} +1 -1
  25. package/frontend-dist/assets/{Settings-Cr9sYZKR.js → Settings-BvKMJ0Qa.js} +1 -1
  26. package/frontend-dist/assets/{Setup-LSmgyhc3.js → Setup-4vmVajOU.js} +1 -1
  27. package/frontend-dist/assets/{Switch-DyyEun5Q.js → Switch-D9H1FPsB.js} +1 -1
  28. package/frontend-dist/assets/{TooltipTrigger-DCldZMnb.js → TooltipTrigger-Btj1Vsxm.js} +1 -1
  29. package/frontend-dist/assets/{TransformRulesForm-Gfvlk0Xk.js → TransformRulesForm-BJ4caGDj.js} +1 -1
  30. package/frontend-dist/assets/{UnifiedRequestDialog-BnrOpRXA.js → UnifiedRequestDialog-BbQBSoU7.js} +1 -1
  31. package/frontend-dist/assets/{VisuallyHiddenInput-Bkpr-VfM.js → VisuallyHiddenInput-BoPTforN.js} +1 -1
  32. package/frontend-dist/assets/{button-CT60E_JD.js → button-wn0cCDld.js} +2 -2
  33. package/frontend-dist/assets/{copy-CVYlfrkY.js → copy-DBpQ3kDg.js} +1 -1
  34. package/frontend-dist/assets/{dialog-B4JCV9g7.js → dialog-DCaFnzS6.js} +1 -1
  35. package/frontend-dist/assets/{index-bGqHF9Js.js → index-Bp-3UWSJ.js} +2 -2
  36. package/frontend-dist/assets/{model-patches-C-_TDTXT.js → model-patches-BmLrUDyn.js} +1 -1
  37. package/frontend-dist/assets/plus-BcoVh92Q.js +1 -0
  38. package/frontend-dist/assets/{sparkles-CbfRkkI9.js → sparkles-b5zac545.js} +1 -1
  39. package/frontend-dist/assets/{trash-2-wGNSUXAY.js → trash-2-BgW_R7hP.js} +1 -1
  40. package/frontend-dist/assets/{useClipboard-Br_VVE9B.js → useClipboard-DWvZAkuV.js} +1 -1
  41. package/frontend-dist/assets/{useLogRetention-DOuufHTD.js → useLogRetention-DwWdAQWh.js} +1 -1
  42. package/frontend-dist/index.html +2 -2
  43. package/package.json +1 -1
  44. 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 消息 → 移除该 tool_call 条目
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 消息 → 移除该 tool_call 条目
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
- // ---- 反向:移除孤儿 tool_calls 条目(非末尾 assistant)----
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
- const lastMsgIdx = messages.length - 1;
168
- for (let i = 0; i <= lastMsgIdx; 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 === lastMsgIdx)
174
- break;
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 before = toolCalls.length;
179
- const filtered = toolCalls.filter(tc => {
175
+ const orphans = [];
176
+ for (const tc of toolCalls) {
180
177
  const id = tc.id;
181
- return !id || knownToolMsgIds.has(id);
182
- });
183
- if (filtered.length < before) {
184
- if (filtered.length === 0) {
185
- delete msg.tool_calls;
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; // 每个 tool_call: 1 个 tool 消息 + 1 个可能穿插的消息
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
- return model.includes("deepseek");
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-CT60E_JD.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
+ 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-CT60E_JD.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};
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};
@@ -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-CT60E_JD.js";import{b as _,ft as v,ht as y,v as b,y as x}from"./index-bGqHF9Js.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
+ 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-CT60E_JD.js";import{t as b}from"./VisuallyHiddenInput-Bkpr-VfM.js";import{t as x}from"./RovingFocusItem-Bx5uXXN2.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-bGqHF9Js.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};
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};
@@ -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-CT60E_JD.js";import{B as x,J as S,R as C,V as w}from"./index-bGqHF9Js.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};
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};
@@ -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-CT60E_JD.js";import{r as x}from"./CollapsibleContent-CvvkOB4a.js";import{n as S,t as C}from"./RovingFocusItem-Bx5uXXN2.js";import{B as w,H as T,J as E,V as D,W as O}from"./index-bGqHF9Js.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};
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};