llm-simple-router 0.3.5 → 0.3.7

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 (55) hide show
  1. package/README.md +11 -0
  2. package/dist/admin/services.d.ts +7 -0
  3. package/dist/admin/services.js +63 -0
  4. package/dist/cli.js +0 -0
  5. package/dist/index.js +0 -0
  6. package/frontend-dist/assets/{CardContent-B40ArIqh.js → CardContent-CucI6u41.js} +1 -1
  7. package/frontend-dist/assets/{CardHeader-BjkSQf27.js → CardHeader-d-DYsWxe.js} +1 -1
  8. package/frontend-dist/assets/{CardTitle-DjG2kSF3.js → CardTitle-CIDEQkWB.js} +1 -1
  9. package/frontend-dist/assets/{Checkbox-Cw0rq2D9.js → Checkbox-CybCw3zS.js} +1 -1
  10. package/frontend-dist/assets/{CollapsibleTrigger-BvYqNbGA.js → CollapsibleTrigger-BFNhb19_.js} +1 -1
  11. package/frontend-dist/assets/{Collection-CQ4pV54w.js → Collection-DUBb4r6h.js} +1 -1
  12. package/frontend-dist/assets/{Dashboard-CsOTBnSa.js → Dashboard-DLB6iqH1.js} +1 -1
  13. package/frontend-dist/assets/{DialogTitle-PS2W-IfG.js → DialogTitle-Dq-5o7nJ.js} +1 -1
  14. package/frontend-dist/assets/{Input-toxjzsir.js → Input-HN3Il0-c.js} +1 -1
  15. package/frontend-dist/assets/{Label-fZNDEQjf.js → Label-CXAeFn-r.js} +1 -1
  16. package/frontend-dist/assets/{LogResponseViewer-B9kSncNr.js → LogResponseViewer-CyBzv02a.js} +1 -1
  17. package/frontend-dist/assets/{Login-DRm9DHq1.js → Login-Br3qsdxf.js} +1 -1
  18. package/frontend-dist/assets/{Logs-NHxebwmP.js → Logs-Cu_IftdS.js} +1 -1
  19. package/frontend-dist/assets/ModelMappings-DXC0sNH5.js +1 -0
  20. package/frontend-dist/assets/{Monitor-B5TYWb2n.js → Monitor-CKlid1sC.js} +1 -1
  21. package/frontend-dist/assets/{PopperContent-BvKlcZEO.js → PopperContent-CnZejY31.js} +1 -1
  22. package/frontend-dist/assets/Providers-8CHhW4uH.js +1 -0
  23. package/frontend-dist/assets/{ProxyEnhancement-B2OliarO.js → ProxyEnhancement-CkYeXwgH.js} +1 -1
  24. package/frontend-dist/assets/RetryRules-Csb7u9W4.js +1 -0
  25. package/frontend-dist/assets/RouterKeys-C6YIufmj.js +1 -0
  26. package/frontend-dist/assets/{RovingFocusItem-DHfpgdA0.js → RovingFocusItem-B7ZIkplZ.js} +1 -1
  27. package/frontend-dist/assets/{SelectValue-CFf_mD9E.js → SelectValue-B32pgmTJ.js} +1 -1
  28. package/frontend-dist/assets/{Setup-BMjCT-Tl.js → Setup-Df9IQo2x.js} +1 -1
  29. package/frontend-dist/assets/{Switch-BGCQ7puL.js → Switch-CLeo7H6d.js} +1 -1
  30. package/frontend-dist/assets/{TableHeader-DAOs6nSA.js → TableHeader-BpscAtT3.js} +1 -1
  31. package/frontend-dist/assets/{TabsTrigger-DBAYM66g.js → TabsTrigger-DErAbTuM.js} +1 -1
  32. package/frontend-dist/assets/{VisuallyHidden-Dh7svQf3.js → VisuallyHidden-CJBR3YB3.js} +1 -1
  33. package/frontend-dist/assets/{VisuallyHiddenInput-BOaRSEmd.js → VisuallyHiddenInput-Cy0VuE1l.js} +1 -1
  34. package/frontend-dist/assets/{alert-dialog-CUNSZqpB.js → alert-dialog-BAR1JRmT.js} +1 -1
  35. package/frontend-dist/assets/{button-CfQs66fX.js → button-D54q76GQ.js} +1 -1
  36. package/frontend-dist/assets/{client-DvdghFBq.js → client-Mb8fy_bC.js} +2 -2
  37. package/frontend-dist/assets/{createLucideIcon-DCD7INQf.js → createLucideIcon-CCmQ9QKM.js} +1 -1
  38. package/frontend-dist/assets/{dialog-DQFRGKR6.js → dialog-DSH5k5Kj.js} +1 -1
  39. package/frontend-dist/assets/{index--5JhZIwi.js → index-BQBtSfem.js} +1 -1
  40. package/frontend-dist/assets/index-H-lnTkMr.css +1 -0
  41. package/frontend-dist/assets/{lib-BJNsNHLO.js → lib-BgOqOzXI.js} +1 -1
  42. package/frontend-dist/assets/{ohash.D__AXeF1-CNudYmrX.js → ohash.D__AXeF1-p4vp6Svt.js} +1 -1
  43. package/frontend-dist/assets/{useClipboard-aPMKfK25.js → useClipboard-DO-38TXr.js} +1 -1
  44. package/frontend-dist/assets/{useForwardExpose-u2vjohek.js → useForwardExpose-CzQFheaD.js} +1 -1
  45. package/frontend-dist/assets/useNonce-CU-NirfM.js +1 -0
  46. package/frontend-dist/assets/x-DEJ1xpi5.js +1 -0
  47. package/frontend-dist/index.html +7 -7
  48. package/package.json +1 -1
  49. package/frontend-dist/assets/ModelMappings-DV0RPnO2.js +0 -1
  50. package/frontend-dist/assets/Providers-D1Rauu-D.js +0 -1
  51. package/frontend-dist/assets/RetryRules-BWu2gicT.js +0 -1
  52. package/frontend-dist/assets/RouterKeys-BP6XJCVa.js +0 -1
  53. package/frontend-dist/assets/index-Bx15k8FA.css +0 -1
  54. package/frontend-dist/assets/useNonce-ClXGIm-8.js +0 -1
  55. package/frontend-dist/assets/x-ILQhskuj.js +0 -1
package/README.md CHANGED
@@ -22,6 +22,9 @@
22
22
  | 多供应商 | 配置多个后端供应商,按模型映射路由 |
23
23
  | 多密钥 (Router Keys) | 为不同使用方创建独立密钥,支持模型白名单 |
24
24
  | 流式代理 | 完整支持 SSE 流式和非流式请求 |
25
+ | 供应商并发控制 | 按 Provider 维度限制并发数、队列长度和超时,防止单一供应商过载 |
26
+ | 实时监控 | SSE 推送活跃请求、延迟热力图、Token 吞吐、运行时资源指标 |
27
+ | 代理增强 (实验性) | 注入系统指令、会话记忆、模型锁定等增强功能 |
25
28
  | 管理后台 | Vue 3 + shadcn-vue Web UI,管理供应商、映射、密钥 |
26
29
  | 请求日志 | 结构化展示完整四阶段链路(客户端请求/上游请求/上游响应/客户端响应),适配 Claude Code 请求格式 |
27
30
  | 性能指标 | TTFT、吞吐量、Token 用量、缓存命中率,支持按模型/密钥筛选 |
@@ -34,6 +37,14 @@
34
37
  |-----------|-------------|
35
38
  | ![Dashboard](docs/screenshot/dashboard.png) | ![Provider](docs/screenshot/provider.png) |
36
39
 
40
+ | 供应商并发控制 | 实时监控 |
41
+ |--------------|---------|
42
+ | ![Provider Concurrency](docs/screenshot/provider_concurrency.png) | ![Monitor](docs/screenshot/monitor.png) |
43
+
44
+ | 代理增强 (实验性) |
45
+ |-----------------|
46
+ | ![Proxy Enhancement](docs/screenshot/proxy_enhance.png) |
47
+
37
48
  | 模型映射 | 重试规则 |
38
49
  |---------|--------|
39
50
  | ![Model Mapping](docs/screenshot/model_mapping.png) | ![Retry](docs/screenshot/retry.png) |
@@ -0,0 +1,7 @@
1
+ import { FastifyPluginCallback } from "fastify";
2
+ interface ServiceRoutesOptions {
3
+ db: any;
4
+ encryptionKey: string;
5
+ }
6
+ export declare const adminServiceRoutes: FastifyPluginCallback<ServiceRoutesOptions>;
7
+ export {};
@@ -0,0 +1,63 @@
1
+ import { getAllBackendServices, getBackendServiceById, createBackendService, updateBackendService, deleteBackendService } from "../db/index.js";
2
+ import { decrypt, encrypt } from "../utils/crypto.js";
3
+ function maskApiKey(encrypted, key) {
4
+ const decrypted = decrypt(encrypted, key);
5
+ if (decrypted.length <= 8)
6
+ return "****";
7
+ return `${decrypted.slice(0, 4)}...${decrypted.slice(-4)}`;
8
+ }
9
+ export const adminServiceRoutes = (app, options, done) => {
10
+ const { db, encryptionKey } = options;
11
+ app.get("/admin/api/services", async (_request, reply) => {
12
+ const services = getAllBackendServices(db);
13
+ return reply.send(services.map((s) => ({
14
+ ...s,
15
+ api_key: maskApiKey(s.api_key, encryptionKey),
16
+ })));
17
+ });
18
+ app.post("/admin/api/services", async (request, reply) => {
19
+ const body = request.body;
20
+ if (!body.name || !body.api_type || !body.base_url || !body.api_key) {
21
+ return reply.code(400).send({ error: { message: "Missing required fields: name, api_type, base_url, api_key" } });
22
+ }
23
+ if (!["openai", "anthropic"].includes(body.api_type)) {
24
+ return reply.code(400).send({ error: { message: "api_type must be 'openai' or 'anthropic'" } });
25
+ }
26
+ const encryptedKey = encrypt(body.api_key, encryptionKey);
27
+ const id = createBackendService(db, {
28
+ name: body.name,
29
+ api_type: body.api_type,
30
+ base_url: body.base_url,
31
+ api_key: encryptedKey,
32
+ is_active: body.is_active ?? 1,
33
+ });
34
+ return reply.code(201).send({ id });
35
+ });
36
+ app.put("/admin/api/services/:id", async (request, reply) => {
37
+ const { id } = request.params;
38
+ const existing = getBackendServiceById(db, id);
39
+ if (!existing) {
40
+ return reply.code(404).send({ error: { message: "Service not found" } });
41
+ }
42
+ const body = request.body;
43
+ const fields = {};
44
+ if (body.name !== undefined)
45
+ fields.name = body.name;
46
+ if (body.api_type !== undefined)
47
+ fields.api_type = body.api_type;
48
+ if (body.base_url !== undefined)
49
+ fields.base_url = body.base_url;
50
+ if (body.is_active !== undefined)
51
+ fields.is_active = body.is_active;
52
+ if (body.api_key)
53
+ fields.api_key = encrypt(body.api_key, encryptionKey);
54
+ updateBackendService(db, id, fields);
55
+ return reply.send({ success: true });
56
+ });
57
+ app.delete("/admin/api/services/:id", async (request, reply) => {
58
+ const { id } = request.params;
59
+ deleteBackendService(db, id);
60
+ return reply.send({ success: true });
61
+ });
62
+ done();
63
+ };
package/dist/cli.js CHANGED
File without changes
package/dist/index.js CHANGED
File without changes
@@ -1 +1 @@
1
- import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-DvdghFBq.js";import{r as o}from"./button-CfQs66fX.js";var s=[`data-size`],c=n({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(n){let c=n;return(l,u)=>(e(),a(`div`,{"data-slot":`card`,"data-size":n.size,class:r(i(o)(`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))},[t(l.$slots,`default`)],10,s))}}),l=n({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-content`,class:r(i(o)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[t(n.$slots,`default`)],2))}});export{c as n,l as t};
1
+ import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-Mb8fy_bC.js";import{r as o}from"./button-D54q76GQ.js";var s=[`data-size`],c=n({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(n){let c=n;return(l,u)=>(e(),a(`div`,{"data-slot":`card`,"data-size":n.size,class:r(i(o)(`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))},[t(l.$slots,`default`)],10,s))}}),l=n({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-content`,class:r(i(o)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[t(n.$slots,`default`)],2))}});export{c as n,l as t};
@@ -1 +1 @@
1
- import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-DvdghFBq.js";import{r as o}from"./button-CfQs66fX.js";var s=n({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-header`,class:r(i(o)(`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))},[t(n.$slots,`default`)],2))}});export{s as t};
1
+ import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-Mb8fy_bC.js";import{r as o}from"./button-D54q76GQ.js";var s=n({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-header`,class:r(i(o)(`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))},[t(n.$slots,`default`)],2))}});export{s as t};
@@ -1 +1 @@
1
- import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-DvdghFBq.js";import{r as o}from"./button-CfQs66fX.js";var s=n({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-title`,class:r(i(o)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[t(n.$slots,`default`)],2))}});export{s as t};
1
+ import{F as e,R as t,S as n,gt as r,mt as i,y as a}from"./client-Mb8fy_bC.js";import{r as o}from"./button-D54q76GQ.js";var s=n({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let s=n;return(n,c)=>(e(),a(`div`,{"data-slot":`card-title`,class:r(i(o)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[t(n.$slots,`default`)],2))}});export{s as t};
@@ -1 +1 @@
1
- import{B as e,F as t,R as n,S as r,Y as i,_ as a,_t as o,h as s,k as c,l,mt as u,u as d,v as f,w as p,x as m}from"./client-DvdghFBq.js";import{n as h,t as g}from"./ohash.D__AXeF1-CNudYmrX.js";import{b as _,i as v,p as y,r as b}from"./button-CfQs66fX.js";import{S as x,c as S,f as C,y as w}from"./Collection-CQ4pV54w.js";import{n as T}from"./VisuallyHidden-Dh7svQf3.js";import{t as E}from"./useForwardExpose-u2vjohek.js";import{t as D}from"./VisuallyHiddenInput-BOaRSEmd.js";import{t as O}from"./RovingFocusItem-DHfpgdA0.js";function k(e,t){return w(e)?!1:Array.isArray(e)?e.some(e=>g(e,t)):g(e,t)}var[A,j]=x(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=x(`CheckboxRoot`),I=r({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(r,{emit:o}){let p=r,m=o,{forwardRef:h,currentElement:_}=E(),b=A(null),x=y(p,`modelValue`,m,{defaultValue:p.defaultValue??p.falseValue,passive:p.modelValue===void 0}),S=s(()=>b?.disabled.value||p.disabled),C=s(()=>g(x.value,p.trueValue)),j=s(()=>w(b?.modelValue.value)?x.value===`indeterminate`?`indeterminate`:C.value:k(b.modelValue.value,p.value));function P(){if(w(b?.modelValue.value))x.value===`indeterminate`?x.value=p.trueValue:x.value=C.value?p.falseValue:p.trueValue;else{let e=[...b.modelValue.value||[]];if(k(e,p.value)){let t=e.findIndex(e=>g(e,p.value));e.splice(t,1)}else e.push(p.value);b.modelValue.value=e}}let I=T(_),L=s(()=>p.id&&_.value?document.querySelector(`[for="${p.id}"]`)?.innerText:void 0);return F({disabled:S,state:j}),(r,o)=>(t(),a(e(u(b)?.rovingFocus.value?u(O):u(v)),c(r.$attrs,{id:r.id,ref:u(h),role:`checkbox`,"as-child":r.asChild,as:r.as,type:r.as===`button`?`button`:void 0,"aria-checked":u(M)(j.value)?`mixed`:j.value,"aria-required":r.required,"aria-label":r.$attrs[`aria-label`]||L.value,"data-state":u(N)(j.value),"data-disabled":S.value?``:void 0,disabled:S.value,focusable:u(b)?.rovingFocus.value?!S.value:void 0,onKeydown:l(d(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:i(()=>[n(r.$slots,`default`,{modelValue:u(x),state:j.value}),u(I)&&r.name&&!u(b)?(t(),a(u(D),{key:0,type:`checkbox`,checked:!!j.value,name:r.name,value:r.value,disabled:S.value,required:r.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):f(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=r({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:r}=E(),o=P();return(e,s)=>(t(),a(u(S),{present:e.forceMount||u(M)(u(o).state.value)||u(o).state.value===!0},{default:i(()=>[m(u(v),c({ref:u(r),"data-state":u(N)(u(o).state.value),"data-disabled":u(o).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:i(()=>[n(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=r({__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 s=e,l=r,d=C(_(s,`class`),l);return(e,r)=>(t(),a(u(I),c({"data-slot":`checkbox`},u(d),{class:u(b)(`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`,s.class)}),{default:i(t=>[m(u(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:i(()=>[n(e.$slots,`default`,o(p(t)),()=>[m(u(h))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
1
+ import{B as e,F as t,R as n,S as r,Y as i,_ as a,_t as o,h as s,k as c,l,mt as u,u as d,v as f,w as p,x as m}from"./client-Mb8fy_bC.js";import{n as h,t as g}from"./ohash.D__AXeF1-p4vp6Svt.js";import{b as _,i as v,p as y,r as b}from"./button-D54q76GQ.js";import{S as x,c as S,f as C,y as w}from"./Collection-DUBb4r6h.js";import{n as T}from"./VisuallyHidden-CJBR3YB3.js";import{t as E}from"./useForwardExpose-CzQFheaD.js";import{t as D}from"./VisuallyHiddenInput-Cy0VuE1l.js";import{t as O}from"./RovingFocusItem-B7ZIkplZ.js";function k(e,t){return w(e)?!1:Array.isArray(e)?e.some(e=>g(e,t)):g(e,t)}var[A,j]=x(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=x(`CheckboxRoot`),I=r({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(r,{emit:o}){let p=r,m=o,{forwardRef:h,currentElement:_}=E(),b=A(null),x=y(p,`modelValue`,m,{defaultValue:p.defaultValue??p.falseValue,passive:p.modelValue===void 0}),S=s(()=>b?.disabled.value||p.disabled),C=s(()=>g(x.value,p.trueValue)),j=s(()=>w(b?.modelValue.value)?x.value===`indeterminate`?`indeterminate`:C.value:k(b.modelValue.value,p.value));function P(){if(w(b?.modelValue.value))x.value===`indeterminate`?x.value=p.trueValue:x.value=C.value?p.falseValue:p.trueValue;else{let e=[...b.modelValue.value||[]];if(k(e,p.value)){let t=e.findIndex(e=>g(e,p.value));e.splice(t,1)}else e.push(p.value);b.modelValue.value=e}}let I=T(_),L=s(()=>p.id&&_.value?document.querySelector(`[for="${p.id}"]`)?.innerText:void 0);return F({disabled:S,state:j}),(r,o)=>(t(),a(e(u(b)?.rovingFocus.value?u(O):u(v)),c(r.$attrs,{id:r.id,ref:u(h),role:`checkbox`,"as-child":r.asChild,as:r.as,type:r.as===`button`?`button`:void 0,"aria-checked":u(M)(j.value)?`mixed`:j.value,"aria-required":r.required,"aria-label":r.$attrs[`aria-label`]||L.value,"data-state":u(N)(j.value),"data-disabled":S.value?``:void 0,disabled:S.value,focusable:u(b)?.rovingFocus.value?!S.value:void 0,onKeydown:l(d(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:i(()=>[n(r.$slots,`default`,{modelValue:u(x),state:j.value}),u(I)&&r.name&&!u(b)?(t(),a(u(D),{key:0,type:`checkbox`,checked:!!j.value,name:r.name,value:r.value,disabled:S.value,required:r.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):f(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=r({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:r}=E(),o=P();return(e,s)=>(t(),a(u(S),{present:e.forceMount||u(M)(u(o).state.value)||u(o).state.value===!0},{default:i(()=>[m(u(v),c({ref:u(r),"data-state":u(N)(u(o).state.value),"data-disabled":u(o).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:i(()=>[n(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=r({__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 s=e,l=r,d=C(_(s,`class`),l);return(e,r)=>(t(),a(u(I),c({"data-slot":`checkbox`},u(d),{class:u(b)(`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`,s.class)}),{default:i(t=>[m(u(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:i(()=>[n(e.$slots,`default`,o(p(t)),()=>[m(u(h))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
@@ -1 +1 @@
1
- import{A as e,F as t,K as n,M as r,R as i,S as a,Y as o,_ as s,_t as c,dt as l,h as u,k as d,mt as f,ot as p,v as m,w as h,x as g}from"./client-DvdghFBq.js";import{i as _,p as v,u as y}from"./button-CfQs66fX.js";import{S as b,c as x,f as S,u as C}from"./Collection-CQ4pV54w.js";import{t as w}from"./useForwardExpose-u2vjohek.js";var[T,E]=b(`CollapsibleRoot`),D=a({__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:n,emit:r}){let a=e,c=v(a,`open`,r,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:u,unmountOnHide:d}=l(a);return E({contentId:``,disabled:u,open:c,unmountOnHide:d,onOpenToggle:()=>{u.value||(c.value=!c.value)}}),n({open:c}),w(),(e,n)=>(t(),s(f(_),{as:e.as,"as-child":a.asChild,"data-state":f(c)?`open`:`closed`,"data-disabled":f(u)?``:void 0},{default:o(()=>[i(e.$slots,`default`,{open:f(c)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=a({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(a,{emit:c}){let l=a,h=c,v=T();v.contentId||=C(void 0,`reka-collapsible-content`);let b=p(),{forwardRef:S,currentElement:E}=w(),D=p(0),O=p(0),k=u(()=>v.open.value),A=p(k.value),j=p();n(()=>[k.value,b.value?.present],async()=>{await e();let t=E.value;if(!t)return;j.value=j.value||{transitionDuration:t.style.transitionDuration,animationName:t.style.animationName},t.style.transitionDuration=`0s`,t.style.animationName=`none`;let n=t.getBoundingClientRect();O.value=n.height,D.value=n.width,A.value||(t.style.transitionDuration=j.value.transitionDuration,t.style.animationName=j.value.animationName)},{immediate:!0});let M=u(()=>A.value&&v.open.value);return r(()=>{requestAnimationFrame(()=>{A.value=!1})}),y(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),h(`contentFound`)})}),(e,n)=>(t(),s(f(x),{ref_key:`presentRef`,ref:b,present:e.forceMount||f(v).open.value,"force-mount":!0},{default:o(({present:t})=>[g(f(_),d(e.$attrs,{id:f(v).contentId,ref:f(S),"as-child":l.asChild,as:e.as,hidden:t?void 0:f(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:f(v).open.value?`open`:`closed`,"data-disabled":f(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:o(()=>[!f(v).unmountOnHide.value||t?i(e.$slots,`default`,{key:0}):m(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e;w();let r=T();return(e,a)=>(t(),s(f(_),{type:e.as===`button`?`button`:void 0,as:e.as,"as-child":n.asChild,"aria-controls":f(r).contentId,"aria-expanded":f(r).open.value,"data-state":f(r).open.value?`open`:`closed`,"data-disabled":f(r).disabled?.value?``:void 0,disabled:f(r).disabled?.value,onClick:f(r).onOpenToggle},{default:o(()=>[i(e.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),A=a({__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:n}){let r=S(e,n);return(e,n)=>(t(),s(f(D),d({"data-slot":`collapsible`},f(r)),{default:o(t=>[i(e.$slots,`default`,c(h(t)))]),_:3},16))}}),j=a({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>(t(),s(f(O),d({"data-slot":`collapsible-content`},n),{default:o(()=>[i(e.$slots,`default`)]),_:3},16))}}),M=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>(t(),s(f(k),d({"data-slot":`collapsible-trigger`},n),{default:o(()=>[i(e.$slots,`default`)]),_:3},16))}});export{j as n,A as r,M as t};
1
+ import{A as e,F as t,K as n,M as r,R as i,S as a,Y as o,_ as s,_t as c,dt as l,h as u,k as d,mt as f,ot as p,v as m,w as h,x as g}from"./client-Mb8fy_bC.js";import{i as _,p as v,u as y}from"./button-D54q76GQ.js";import{S as b,c as x,f as S,u as C}from"./Collection-DUBb4r6h.js";import{t as w}from"./useForwardExpose-CzQFheaD.js";var[T,E]=b(`CollapsibleRoot`),D=a({__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:n,emit:r}){let a=e,c=v(a,`open`,r,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:u,unmountOnHide:d}=l(a);return E({contentId:``,disabled:u,open:c,unmountOnHide:d,onOpenToggle:()=>{u.value||(c.value=!c.value)}}),n({open:c}),w(),(e,n)=>(t(),s(f(_),{as:e.as,"as-child":a.asChild,"data-state":f(c)?`open`:`closed`,"data-disabled":f(u)?``:void 0},{default:o(()=>[i(e.$slots,`default`,{open:f(c)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=a({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(a,{emit:c}){let l=a,h=c,v=T();v.contentId||=C(void 0,`reka-collapsible-content`);let b=p(),{forwardRef:S,currentElement:E}=w(),D=p(0),O=p(0),k=u(()=>v.open.value),A=p(k.value),j=p();n(()=>[k.value,b.value?.present],async()=>{await e();let t=E.value;if(!t)return;j.value=j.value||{transitionDuration:t.style.transitionDuration,animationName:t.style.animationName},t.style.transitionDuration=`0s`,t.style.animationName=`none`;let n=t.getBoundingClientRect();O.value=n.height,D.value=n.width,A.value||(t.style.transitionDuration=j.value.transitionDuration,t.style.animationName=j.value.animationName)},{immediate:!0});let M=u(()=>A.value&&v.open.value);return r(()=>{requestAnimationFrame(()=>{A.value=!1})}),y(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),h(`contentFound`)})}),(e,n)=>(t(),s(f(x),{ref_key:`presentRef`,ref:b,present:e.forceMount||f(v).open.value,"force-mount":!0},{default:o(({present:t})=>[g(f(_),d(e.$attrs,{id:f(v).contentId,ref:f(S),"as-child":l.asChild,as:e.as,hidden:t?void 0:f(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:f(v).open.value?`open`:`closed`,"data-disabled":f(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:o(()=>[!f(v).unmountOnHide.value||t?i(e.$slots,`default`,{key:0}):m(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e;w();let r=T();return(e,a)=>(t(),s(f(_),{type:e.as===`button`?`button`:void 0,as:e.as,"as-child":n.asChild,"aria-controls":f(r).contentId,"aria-expanded":f(r).open.value,"data-state":f(r).open.value?`open`:`closed`,"data-disabled":f(r).disabled?.value?``:void 0,disabled:f(r).disabled?.value,onClick:f(r).onOpenToggle},{default:o(()=>[i(e.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),A=a({__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:n}){let r=S(e,n);return(e,n)=>(t(),s(f(D),d({"data-slot":`collapsible`},f(r)),{default:o(t=>[i(e.$slots,`default`,c(h(t)))]),_:3},16))}}),j=a({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>(t(),s(f(O),d({"data-slot":`collapsible-content`},n),{default:o(()=>[i(e.$slots,`default`)]),_:3},16))}}),M=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>(t(),s(f(k),d({"data-slot":`collapsible-trigger`},n),{default:o(()=>[i(e.$slots,`default`)]),_:3},16))}});export{j as n,A as r,M as t};
@@ -1,3 +1,3 @@
1
- import{A as e,C as t,E as n,F as r,I as i,K as a,N as o,R as s,S as c,T as l,U as u,Y as d,_ as f,bt as p,dt as m,ft as h,h as g,ht as _,it as v,mt as y,nt as ee,o as te,ot as b,p as ne,q as x,ut as re,v as ie,vt as ae}from"./client-DvdghFBq.js";import{S as oe,_ as se,a as ce,c as le,d as ue,g as de,i as fe,l as S,o as pe,s as me,u as he,v as C,y as w}from"./button-CfQs66fX.js";import{t as T}from"./useForwardExpose-u2vjohek.js";function E(e,t){let r=typeof e==`string`&&!t?`${e}Context`:t,a=Symbol(r);return[t=>{let r=n(a,t);if(r||r===null)return r;throw Error(`Injection \`${a.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>(i(a,e),e)]}function D(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function O(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function k(e){return e==null}var[A,ge]=E(`ConfigProvider`);function j(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function M(e,t,n=`.`,r){if(!j(t))return M(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:j(a)&&j(i[t])?i[t]=M(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function _e(e){return(...t)=>t.reduce((t,n)=>M(t,n,``,e),{})}var N=_e(),ve=se(()=>{let t=b(new Map),n=b(),r=g(()=>{for(let e of t.value.values())if(e)return!0;return!1}),i=A({scrollBody:b(!0)}),o=null,s=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=n.value??``,w&&o?.(),n.value=void 0};return a(r,(t,a)=>{if(!C)return;if(!t){a&&s();return}n.value===void 0&&(n.value=document.body.style.overflow);let c=window.innerWidth-document.documentElement.clientWidth,l={padding:c,margin:0},u=i.scrollBody?.value?typeof i.scrollBody.value==`object`?N({padding:i.scrollBody.value.padding===!0?c:i.scrollBody.value.padding,margin:i.scrollBody.value.margin===!0?c:i.scrollBody.value.margin},l):l:{padding:0,margin:0};c>0&&(document.body.style.paddingRight=typeof u.padding==`number`?`${u.padding}px`:String(u.padding),document.body.style.marginRight=typeof u.margin==`number`?`${u.margin}px`:String(u.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${c}px`),document.body.style.overflow=`hidden`),w&&(o=he(document,`touchmove`,e=>be(e),{passive:!1})),e(()=>{r.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),t});function ye(e){let t=Math.random().toString(36).substring(2,7),n=ve();n.value.set(t,e??!1);let r=g({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return oe(()=>{n.value.delete(t)}),r}function P(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:P(t)}}function be(e){let t=e||window.event,n=t.target;return n instanceof Element&&P(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function xe(e){let t=A({dir:b(`ltr`)});return g(()=>e?.value||t.dir?.value||`ltr`)}function F(e){let n=t(),r=n?.type.emits,i={};return r?.length||console.warn(`No emitted event found. Please check component: ${n?.type.__name}`),r?.forEach(t=>{i[p(_(t))]=(...n)=>e(t,...n)}),i}function I(e){let n=t(),r=Object.keys(n?.type.props??{}).reduce((e,t)=>{let r=(n?.type.props[t]).default;return r!==void 0&&(e[t]=r),e},{}),i=re(e);return g(()=>{let e={},t=n?.vnode.props??{};return Object.keys(t).forEach(n=>{e[_(n)]=t[n]}),Object.keys({...r,...e}).reduce((e,t)=>(i.value[t]!==void 0&&(e[t]=i.value[t]),e),{})})}function Se(e,t){let n=I(e),r=t?F(t):{};return g(()=>({...n.value,...r}))}var Ce=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},L=new WeakMap,R=new WeakMap,z={},B=0,V=function(e){return e&&(e.host||V(e.parentNode))},we=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=V(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Te=function(e,t,n,r){var i=we(t,Array.isArray(e)?e:[e]);z[n]||(z[n]=new WeakMap);var a=z[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(L.get(e)||0)+1,l=(a.get(e)||0)+1;L.set(e,c),a.set(e,l),o.push(e),c===1&&i&&R.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),B++,function(){o.forEach(function(e){var t=L.get(e)-1,i=a.get(e)-1;L.set(e,t),a.set(e,i),t||(R.has(e)||e.removeAttribute(r),R.delete(e)),i||e.removeAttribute(n)}),B--,B||(L=new WeakMap,L=new WeakMap,R=new WeakMap,z={})}},Ee=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ce(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Te(r,i,n,`aria-hidden`)):function(){return null}};function De(e){let t;a(()=>S(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=Ee(e):t&&t()}),o(()=>{t&&t()})}var Oe=0;function ke(e,t=`reka`){if(e)return e;let n;return n=`useId`in te?u?.():A({useId:void 0}).useId?.()??`${++Oe}`,t?`${t}-${n}`:n}function H(e,t){let n=b(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function Ae(t,n){let r=b({}),i=b(`none`),s=b(t),c=t.value?`mounted`:`unmounted`,l,u=n.value?.ownerDocument.defaultView??me,{state:d,dispatch:f}=H(c,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),p=e=>{if(C){let t=new CustomEvent(e,{bubbles:!1,cancelable:!1});n.value?.dispatchEvent(t)}};a(t,async(t,a)=>{let o=a!==t;if(await e(),o){let e=i.value,o=U(n.value);t?(f(`MOUNT`),p(`enter`),o===`none`&&p(`after-enter`)):o===`none`||o===`undefined`||r.value?.display===`none`?(f(`UNMOUNT`),p(`leave`),p(`after-leave`)):a&&e!==o?(f(`ANIMATION_OUT`),p(`leave`)):(f(`UNMOUNT`),p(`after-leave`))}},{immediate:!0});let m=e=>{let t=U(n.value),r=t.includes(CSS.escape(e.animationName)),i=d.value===`mounted`?`enter`:`leave`;if(e.target===n.value&&r&&(p(`after-${i}`),f(`ANIMATION_END`),!s.value)){let e=n.value.style.animationFillMode;n.value.style.animationFillMode=`forwards`,l=u?.setTimeout(()=>{n.value?.style.animationFillMode===`forwards`&&(n.value.style.animationFillMode=e)})}e.target===n.value&&t===`none`&&f(`ANIMATION_END`)},h=e=>{e.target===n.value&&(i.value=U(n.value))},_=a(n,(e,t)=>{e?(r.value=getComputedStyle(e),e.addEventListener(`animationstart`,h),e.addEventListener(`animationcancel`,m),e.addEventListener(`animationend`,m)):(f(`ANIMATION_END`),l!==void 0&&u?.clearTimeout(l),t?.removeEventListener(`animationstart`,h),t?.removeEventListener(`animationcancel`,m),t?.removeEventListener(`animationend`,m))},{immediate:!0}),v=a(d,()=>{let e=U(n.value);i.value=d.value===`mounted`?e:`none`});return o(()=>{_(),v()}),{isPresent:g(()=>[`mounted`,`unmountSuspended`].includes(d.value))}}function U(e){return e&&getComputedStyle(e).animationName||`none`}var je=c({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:n,expose:r}){let{present:i,forceMount:a}=m(e),o=b(),{isPresent:s}=Ae(i,o);r({present:s});let c=n.default({present:s.value});c=pe(c||[]);let u=t();if(c&&c?.length>1){let e=u?.parent?.type.name?`<${u.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
1
+ import{A as e,C as t,E as n,F as r,I as i,K as a,N as o,R as s,S as c,T as l,U as u,Y as d,_ as f,bt as p,dt as m,ft as h,h as g,ht as _,it as v,mt as y,nt as ee,o as te,ot as b,p as ne,q as x,ut as re,v as ie,vt as ae}from"./client-Mb8fy_bC.js";import{S as oe,_ as se,a as ce,c as le,d as ue,g as de,i as fe,l as S,o as pe,s as me,u as he,v as C,y as w}from"./button-D54q76GQ.js";import{t as T}from"./useForwardExpose-CzQFheaD.js";function E(e,t){let r=typeof e==`string`&&!t?`${e}Context`:t,a=Symbol(r);return[t=>{let r=n(a,t);if(r||r===null)return r;throw Error(`Injection \`${a.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>(i(a,e),e)]}function D(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function O(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function k(e){return e==null}var[A,ge]=E(`ConfigProvider`);function j(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function M(e,t,n=`.`,r){if(!j(t))return M(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:j(a)&&j(i[t])?i[t]=M(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function _e(e){return(...t)=>t.reduce((t,n)=>M(t,n,``,e),{})}var N=_e(),ve=se(()=>{let t=b(new Map),n=b(),r=g(()=>{for(let e of t.value.values())if(e)return!0;return!1}),i=A({scrollBody:b(!0)}),o=null,s=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=n.value??``,w&&o?.(),n.value=void 0};return a(r,(t,a)=>{if(!C)return;if(!t){a&&s();return}n.value===void 0&&(n.value=document.body.style.overflow);let c=window.innerWidth-document.documentElement.clientWidth,l={padding:c,margin:0},u=i.scrollBody?.value?typeof i.scrollBody.value==`object`?N({padding:i.scrollBody.value.padding===!0?c:i.scrollBody.value.padding,margin:i.scrollBody.value.margin===!0?c:i.scrollBody.value.margin},l):l:{padding:0,margin:0};c>0&&(document.body.style.paddingRight=typeof u.padding==`number`?`${u.padding}px`:String(u.padding),document.body.style.marginRight=typeof u.margin==`number`?`${u.margin}px`:String(u.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${c}px`),document.body.style.overflow=`hidden`),w&&(o=he(document,`touchmove`,e=>be(e),{passive:!1})),e(()=>{r.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),t});function ye(e){let t=Math.random().toString(36).substring(2,7),n=ve();n.value.set(t,e??!1);let r=g({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return oe(()=>{n.value.delete(t)}),r}function P(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:P(t)}}function be(e){let t=e||window.event,n=t.target;return n instanceof Element&&P(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function xe(e){let t=A({dir:b(`ltr`)});return g(()=>e?.value||t.dir?.value||`ltr`)}function F(e){let n=t(),r=n?.type.emits,i={};return r?.length||console.warn(`No emitted event found. Please check component: ${n?.type.__name}`),r?.forEach(t=>{i[p(_(t))]=(...n)=>e(t,...n)}),i}function I(e){let n=t(),r=Object.keys(n?.type.props??{}).reduce((e,t)=>{let r=(n?.type.props[t]).default;return r!==void 0&&(e[t]=r),e},{}),i=re(e);return g(()=>{let e={},t=n?.vnode.props??{};return Object.keys(t).forEach(n=>{e[_(n)]=t[n]}),Object.keys({...r,...e}).reduce((e,t)=>(i.value[t]!==void 0&&(e[t]=i.value[t]),e),{})})}function Se(e,t){let n=I(e),r=t?F(t):{};return g(()=>({...n.value,...r}))}var Ce=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},L=new WeakMap,R=new WeakMap,z={},B=0,V=function(e){return e&&(e.host||V(e.parentNode))},we=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=V(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Te=function(e,t,n,r){var i=we(t,Array.isArray(e)?e:[e]);z[n]||(z[n]=new WeakMap);var a=z[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(L.get(e)||0)+1,l=(a.get(e)||0)+1;L.set(e,c),a.set(e,l),o.push(e),c===1&&i&&R.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),B++,function(){o.forEach(function(e){var t=L.get(e)-1,i=a.get(e)-1;L.set(e,t),a.set(e,i),t||(R.has(e)||e.removeAttribute(r),R.delete(e)),i||e.removeAttribute(n)}),B--,B||(L=new WeakMap,L=new WeakMap,R=new WeakMap,z={})}},Ee=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ce(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Te(r,i,n,`aria-hidden`)):function(){return null}};function De(e){let t;a(()=>S(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=Ee(e):t&&t()}),o(()=>{t&&t()})}var Oe=0;function ke(e,t=`reka`){if(e)return e;let n;return n=`useId`in te?u?.():A({useId:void 0}).useId?.()??`${++Oe}`,t?`${t}-${n}`:n}function H(e,t){let n=b(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function Ae(t,n){let r=b({}),i=b(`none`),s=b(t),c=t.value?`mounted`:`unmounted`,l,u=n.value?.ownerDocument.defaultView??me,{state:d,dispatch:f}=H(c,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),p=e=>{if(C){let t=new CustomEvent(e,{bubbles:!1,cancelable:!1});n.value?.dispatchEvent(t)}};a(t,async(t,a)=>{let o=a!==t;if(await e(),o){let e=i.value,o=U(n.value);t?(f(`MOUNT`),p(`enter`),o===`none`&&p(`after-enter`)):o===`none`||o===`undefined`||r.value?.display===`none`?(f(`UNMOUNT`),p(`leave`),p(`after-leave`)):a&&e!==o?(f(`ANIMATION_OUT`),p(`leave`)):(f(`UNMOUNT`),p(`after-leave`))}},{immediate:!0});let m=e=>{let t=U(n.value),r=t.includes(CSS.escape(e.animationName)),i=d.value===`mounted`?`enter`:`leave`;if(e.target===n.value&&r&&(p(`after-${i}`),f(`ANIMATION_END`),!s.value)){let e=n.value.style.animationFillMode;n.value.style.animationFillMode=`forwards`,l=u?.setTimeout(()=>{n.value?.style.animationFillMode===`forwards`&&(n.value.style.animationFillMode=e)})}e.target===n.value&&t===`none`&&f(`ANIMATION_END`)},h=e=>{e.target===n.value&&(i.value=U(n.value))},_=a(n,(e,t)=>{e?(r.value=getComputedStyle(e),e.addEventListener(`animationstart`,h),e.addEventListener(`animationcancel`,m),e.addEventListener(`animationend`,m)):(f(`ANIMATION_END`),l!==void 0&&u?.clearTimeout(l),t?.removeEventListener(`animationstart`,h),t?.removeEventListener(`animationcancel`,m),t?.removeEventListener(`animationend`,m))},{immediate:!0}),v=a(d,()=>{let e=U(n.value);i.value=d.value===`mounted`?e:`none`});return o(()=>{_(),v()}),{isPresent:g(()=>[`mounted`,`unmountSuspended`].includes(d.value))}}function U(e){return e&&getComputedStyle(e).animationName||`none`}var je=c({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:n,expose:r}){let{present:i,forceMount:a}=m(e),o=b(),{isPresent:s}=Ae(i,o);r({present:s});let c=n.default({present:s.value});c=pe(c||[]);let u=t();if(c&&c?.length>1){let e=u?.parent?.type.name?`<${u.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
2
2
  `)].join(`
3
3
  `))}return()=>a.value||i.value||s.value?l(n.default({present:s.value})[0],{ref:e=>{let t=S(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?o.value=t.firstElementChild:o.value=t),t}}):null}});function W(){let e=b();return{primitiveElement:e,currentElement:g(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:S(e))}}var Me=`dismissableLayer.pointerDownOutside`,Ne=`dismissableLayer.focusOutside`;function G(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function Pe(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=b(!1),a=b(()=>{});return x(o=>{if(!C||!h(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(G(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){O(Me,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{h(n)&&(i.value=!0)}}}function Fe(t,n,r=!0){let i=n?.value?.ownerDocument??globalThis?.document,a=b(!1);return x(o=>{if(!C||!h(r))return;let s=async r=>{if(!n?.value)return;await e(),await e();let i=r.target;!n.value||!i||G(n.value,i)||r.target&&!a.value&&O(Ne,t,{originalEvent:r})};i.addEventListener(`focusin`,s),o(()=>i.removeEventListener(`focusin`,s))}),{onFocusCapture:()=>{h(r)&&(a.value=!0)},onBlurCapture:()=>{h(r)&&(a.value=!1)}}}var K=v({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),Ie=c({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(t,{emit:n}){let i=t,a=n,{forwardRef:o,currentElement:c}=T(),l=g(()=>c.value?.ownerDocument??globalThis.document),u=g(()=>K.layersRoot),p=g(()=>c.value?Array.from(u.value).indexOf(c.value):-1),m=g(()=>K.layersWithOutsidePointerEventsDisabled.size>0),h=g(()=>{let e=Array.from(u.value),[t]=[...K.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return p.value>=n}),_=Pe(async t=>{let n=[...K.branches].some(e=>e?.contains(t.target));!h.value||n||(a(`pointerDownOutside`,t),a(`interactOutside`,t),await e(),t.defaultPrevented||a(`dismiss`))},c),v=Fe(e=>{[...K.branches].some(t=>t?.contains(e.target))||(a(`focusOutside`,e),a(`interactOutside`,e),e.defaultPrevented||a(`dismiss`))},c);return le(`Escape`,e=>{p.value===u.value.size-1&&(a(`escapeKeyDown`,e),e.defaultPrevented||a(`dismiss`))}),x(e=>{c.value&&(i.disableOutsidePointerEvents&&(K.layersWithOutsidePointerEventsDisabled.size===0&&(K.originalBodyPointerEvents=l.value.body.style.pointerEvents,l.value.body.style.pointerEvents=`none`),K.layersWithOutsidePointerEventsDisabled.add(c.value)),u.value.add(c.value),e(()=>{i.disableOutsidePointerEvents&&K.layersWithOutsidePointerEventsDisabled.size===1&&!k(K.originalBodyPointerEvents)&&(l.value.body.style.pointerEvents=K.originalBodyPointerEvents)}))}),x(e=>{e(()=>{c.value&&(u.value.delete(c.value),K.layersWithOutsidePointerEventsDisabled.delete(c.value))})}),(e,t)=>(r(),f(y(fe),{ref:y(o),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:ae({pointerEvents:m.value?h.value?`auto`:`none`:void 0}),onFocusCapture:y(v).onFocusCapture,onBlurCapture:y(v).onBlurCapture,onPointerdownCapture:y(_).onPointerDownCapture},{default:d(()=>[s(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),Le=de(()=>b([]));function Re(){let e=Le();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=q(e.value,t),e.value.unshift(t)},remove(t){e.value=q(e.value,t),e.value[0]?.resume()}}}function q(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var J=`focusScope.autoFocusOnMount`,Y=`focusScope.autoFocusOnUnmount`,X={bubbles:!1,cancelable:!0};function ze(e,{select:t=!1}={}){let n=D();for(let r of e)if($(r,{select:t}),D()!==n)return!0}function Be(e){let t=Z(e);return[Q(t,e),Q(t.reverse(),e)]}function Z(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Q(e,t){for(let n of e)if(!Ve(n,{upTo:t}))return n}function Ve(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function He(e){return e instanceof HTMLInputElement&&`select`in e}function $(e,{select:t=!1}={}){if(e&&e.focus){let n=D();e.focus({preventScroll:!0}),e!==n&&He(e)&&t&&e.select()}}var Ue=c({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(t,{emit:n}){let i=t,a=n,{currentRef:o,currentElement:c}=T(),l=b(null),u=Re(),p=v({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});x(e=>{if(!C)return;let t=c.value;if(!i.trapped)return;function n(e){if(p.paused||!t)return;let n=e.target;t.contains(n)?l.value=n:$(l.value,{select:!0})}function r(e){if(p.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||$(l.value,{select:!0}))}function a(e){let n=l.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||$(t))}document.addEventListener(`focusin`,n),document.addEventListener(`focusout`,r);let o=new MutationObserver(a);t&&o.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,n),document.removeEventListener(`focusout`,r),o.disconnect()})}),x(async t=>{let n=c.value;if(await e(),!n)return;u.add(p);let r=D();if(!n.contains(r)){let e=new CustomEvent(J,X);n.addEventListener(J,e=>a(`mountAutoFocus`,e)),n.dispatchEvent(e),e.defaultPrevented||(ze(Z(n),{select:!0}),D()===r&&$(n))}t(()=>{n.removeEventListener(J,e=>a(`mountAutoFocus`,e));let e=new CustomEvent(Y,X),t=e=>{a(`unmountAutoFocus`,e)};n.addEventListener(Y,t),n.dispatchEvent(e),setTimeout(()=>{e.defaultPrevented||$(r??document.body,{select:!0}),n.removeEventListener(Y,t),u.remove(p)},0)})});function m(e){if(!i.loop&&!i.trapped||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=D();if(t&&n){let t=e.currentTarget,[r,a]=Be(t);r&&a?!e.shiftKey&&n===a?(e.preventDefault(),i.loop&&$(r,{select:!0})):e.shiftKey&&n===r&&(e.preventDefault(),i.loop&&$(a,{select:!0})):n===t&&e.preventDefault()}}return(e,t)=>(r(),f(y(fe),{ref_key:`currentRef`,ref:o,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:m},{default:d(()=>[s(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),We=[`Enter`,` `],Ge=[`ArrowDown`,`PageUp`,`Home`],Ke=[`ArrowUp`,`PageDown`,`End`];[...Ge,...Ke],[...We],[...We];function qe(e){return e?`open`:`closed`}function Je(e){let t=D();for(let n of e)if(n===t||(n.focus(),D()!==t))return}var Ye=c({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=ue();return(e,n)=>y(t)||e.forceMount?(r(),f(ne,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[s(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):ie(`v-if`,!0)}}),Xe=`data-reka-collection-item`;function Ze(e={}){let{key:t=``,isProvider:r=!1}=e,o=`${t}CollectionProvider`,s;if(r){let e=b(new Map);s={collectionRef:b(),itemMap:e},i(o,s)}else s=n(o);let u=(e=!1)=>{let t=s.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${Xe}]`)),r=Array.from(s.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},d=c({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:i}=W();return a(i,()=>{s.collectionRef.value=i.value}),()=>l(ce,{ref:r,...n},t)}}),f=c({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:i}=W();return x(t=>{if(i.value){let n=ee(i.value);s.itemMap.value.set(n,{ref:i.value,value:e.value}),t(()=>s.itemMap.value.delete(n))}}),()=>l(ce,{...n,[Xe]:``,ref:r},t)}});return{getItems:u,reactiveItems:g(()=>Array.from(s.itemMap.value.values())),itemMapSize:g(()=>s.itemMap.value.size),CollectionSlot:d,CollectionItem:f}}export{E as S,N as _,Ue as a,O as b,je as c,De as d,Se as f,ye as g,xe as h,qe as i,H as l,F as m,Ye as n,Ie as o,I as p,Je as r,W as s,Ze as t,ke as u,A as v,D as x,k as y};