cross-seed 7.0.0-1 → 7.0.0-11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Result.d.ts +27 -0
- package/dist/Result.js +64 -0
- package/dist/Result.js.map +1 -0
- package/dist/action.d.ts +34 -0
- package/dist/action.js +694 -0
- package/dist/action.js.map +1 -0
- package/dist/arr.d.ts +31 -0
- package/dist/arr.js +267 -0
- package/dist/arr.js.map +1 -0
- package/dist/auth.d.ts +3 -0
- package/dist/auth.js +28 -0
- package/dist/auth.js.map +1 -0
- package/dist/clients/Deluge.d.ts +153 -0
- package/dist/clients/Deluge.js +699 -0
- package/dist/clients/Deluge.js.map +1 -0
- package/dist/clients/QBittorrent.d.ts +218 -0
- package/dist/clients/QBittorrent.js +786 -0
- package/dist/clients/QBittorrent.js.map +1 -0
- package/dist/clients/RTorrent.d.ts +43 -0
- package/dist/clients/RTorrent.js +658 -0
- package/dist/clients/RTorrent.js.map +1 -0
- package/dist/clients/TorrentClient.d.ts +108 -0
- package/dist/clients/TorrentClient.js +342 -0
- package/dist/clients/TorrentClient.js.map +1 -0
- package/dist/clients/Transmission.d.ts +43 -0
- package/dist/clients/Transmission.js +405 -0
- package/dist/clients/Transmission.js.map +1 -0
- package/dist/cmd.d.ts +2 -0
- package/dist/cmd.js +128 -0
- package/dist/cmd.js.map +1 -0
- package/dist/configSchema.d.ts +1 -0
- package/dist/configSchema.js +2 -0
- package/dist/configSchema.js.map +1 -0
- package/dist/configuration.d.ts +63 -0
- package/dist/configuration.js +321 -0
- package/dist/configuration.js.map +1 -0
- package/dist/constants.d.ts +108 -0
- package/dist/constants.js +251 -0
- package/dist/constants.js.map +1 -0
- package/dist/dataFiles.d.ts +8 -0
- package/dist/dataFiles.js +223 -0
- package/dist/dataFiles.js.map +1 -0
- package/dist/db.d.ts +14 -0
- package/dist/db.js +287 -0
- package/dist/db.js.map +1 -0
- package/dist/dbConfig.d.ts +4 -0
- package/dist/dbConfig.js +67 -0
- package/dist/dbConfig.js.map +1 -0
- package/dist/decide.d.ts +25 -0
- package/dist/decide.js +553 -0
- package/dist/decide.js.map +1 -0
- package/dist/diagnostics/db.d.ts +21 -0
- package/dist/diagnostics/db.js +107 -0
- package/dist/diagnostics/db.js.map +1 -0
- package/dist/diff.d.ts +1 -0
- package/dist/diff.js +24 -0
- package/dist/diff.js.map +1 -0
- package/dist/errors.d.ts +3 -0
- package/dist/errors.js +7 -0
- package/dist/errors.js.map +1 -0
- package/dist/indexers.d.ts +105 -0
- package/dist/indexers.js +248 -0
- package/dist/indexers.js.map +1 -0
- package/dist/inject.d.ts +2 -0
- package/dist/inject.js +594 -0
- package/dist/inject.js.map +1 -0
- package/dist/jobs.d.ts +29 -0
- package/dist/jobs.js +151 -0
- package/dist/jobs.js.map +1 -0
- package/dist/logger.d.ts +29 -0
- package/dist/logger.js +157 -0
- package/dist/logger.js.map +1 -0
- package/dist/migrations/00-initialSchema.d.ts +9 -0
- package/dist/migrations/00-initialSchema.js +30 -0
- package/dist/migrations/00-initialSchema.js.map +1 -0
- package/dist/migrations/01-jobs.d.ts +9 -0
- package/dist/migrations/01-jobs.js +12 -0
- package/dist/migrations/01-jobs.js.map +1 -0
- package/dist/migrations/02-timestamps.d.ts +9 -0
- package/dist/migrations/02-timestamps.js +21 -0
- package/dist/migrations/02-timestamps.js.map +1 -0
- package/dist/migrations/03-rateLimits.d.ts +9 -0
- package/dist/migrations/03-rateLimits.js +14 -0
- package/dist/migrations/03-rateLimits.js.map +1 -0
- package/dist/migrations/04-auth.d.ts +9 -0
- package/dist/migrations/04-auth.js +13 -0
- package/dist/migrations/04-auth.js.map +1 -0
- package/dist/migrations/05-caps.d.ts +9 -0
- package/dist/migrations/05-caps.js +16 -0
- package/dist/migrations/05-caps.js.map +1 -0
- package/dist/migrations/06-uniqueDecisions.d.ts +9 -0
- package/dist/migrations/06-uniqueDecisions.js +29 -0
- package/dist/migrations/06-uniqueDecisions.js.map +1 -0
- package/dist/migrations/07-limits.d.ts +9 -0
- package/dist/migrations/07-limits.js +12 -0
- package/dist/migrations/07-limits.js.map +1 -0
- package/dist/migrations/08-rss.d.ts +9 -0
- package/dist/migrations/08-rss.js +15 -0
- package/dist/migrations/08-rss.js.map +1 -0
- package/dist/migrations/09-clientAndDataSearchees.d.ts +9 -0
- package/dist/migrations/09-clientAndDataSearchees.js +34 -0
- package/dist/migrations/09-clientAndDataSearchees.js.map +1 -0
- package/dist/migrations/10-indexerNameAudioBookCaps.d.ts +9 -0
- package/dist/migrations/10-indexerNameAudioBookCaps.js +18 -0
- package/dist/migrations/10-indexerNameAudioBookCaps.js.map +1 -0
- package/dist/migrations/11-trackers.d.ts +9 -0
- package/dist/migrations/11-trackers.js +38 -0
- package/dist/migrations/11-trackers.js.map +1 -0
- package/dist/migrations/12-user-auth.d.ts +9 -0
- package/dist/migrations/12-user-auth.js +22 -0
- package/dist/migrations/12-user-auth.js.map +1 -0
- package/dist/migrations/13-settings.d.ts +9 -0
- package/dist/migrations/13-settings.js +23 -0
- package/dist/migrations/13-settings.js.map +1 -0
- package/dist/migrations/14-indexer-enabled-flag.d.ts +9 -0
- package/dist/migrations/14-indexer-enabled-flag.js +12 -0
- package/dist/migrations/14-indexer-enabled-flag.js.map +1 -0
- package/dist/migrations/15-remove-url-unique-constraint.d.ts +9 -0
- package/dist/migrations/15-remove-url-unique-constraint.js +14 -0
- package/dist/migrations/15-remove-url-unique-constraint.js.map +1 -0
- package/dist/migrations/16-prune-inactive-indexers.d.ts +9 -0
- package/dist/migrations/16-prune-inactive-indexers.js +17 -0
- package/dist/migrations/16-prune-inactive-indexers.js.map +1 -0
- package/dist/migrations/migrations.d.ts +13 -0
- package/dist/migrations/migrations.js +41 -0
- package/dist/migrations/migrations.js.map +1 -0
- package/dist/parseTorrent.d.ts +53 -0
- package/dist/parseTorrent.js +128 -0
- package/dist/parseTorrent.js.map +1 -0
- package/dist/pipeline.d.ts +41 -0
- package/dist/pipeline.js +578 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/preFilter.d.ts +25 -0
- package/dist/preFilter.js +250 -0
- package/dist/preFilter.js.map +1 -0
- package/dist/problems/linking.d.ts +2 -0
- package/dist/problems/linking.js +80 -0
- package/dist/problems/linking.js.map +1 -0
- package/dist/problems/path.d.ts +22 -0
- package/dist/problems/path.js +96 -0
- package/dist/problems/path.js.map +1 -0
- package/dist/problems.d.ts +13 -0
- package/dist/problems.js +48 -0
- package/dist/problems.js.map +1 -0
- package/dist/pushNotifier.d.ts +19 -0
- package/dist/pushNotifier.js +137 -0
- package/dist/pushNotifier.js.map +1 -0
- package/dist/routes/baseApi.d.ts +2 -0
- package/dist/routes/baseApi.js +354 -0
- package/dist/routes/baseApi.js.map +1 -0
- package/dist/routes/indexerApi.d.ts +6 -0
- package/dist/routes/indexerApi.js +165 -0
- package/dist/routes/indexerApi.js.map +1 -0
- package/dist/routes/staticFrontendPlugin.d.ts +4 -0
- package/dist/routes/staticFrontendPlugin.js +61 -0
- package/dist/routes/staticFrontendPlugin.js.map +1 -0
- package/dist/runtimeConfig.d.ts +6 -0
- package/dist/runtimeConfig.js +27 -0
- package/dist/runtimeConfig.js.map +1 -0
- package/dist/searchee.d.ts +108 -0
- package/dist/searchee.js +690 -0
- package/dist/searchee.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.js +65 -0
- package/dist/server.js.map +1 -0
- package/dist/services/indexerService.d.ts +96 -0
- package/dist/services/indexerService.js +287 -0
- package/dist/services/indexerService.js.map +1 -0
- package/dist/sessionCookies.d.ts +5 -0
- package/dist/sessionCookies.js +27 -0
- package/dist/sessionCookies.js.map +1 -0
- package/dist/startup.d.ts +25 -0
- package/dist/startup.js +157 -0
- package/dist/startup.js.map +1 -0
- package/dist/torrent.d.ts +69 -0
- package/dist/torrent.js +665 -0
- package/dist/torrent.js.map +1 -0
- package/dist/torznab.d.ts +60 -0
- package/dist/torznab.js +711 -0
- package/dist/torznab.js.map +1 -0
- package/dist/trpc/fastifyAdapter.d.ts +2 -0
- package/dist/trpc/fastifyAdapter.js +9 -0
- package/dist/trpc/fastifyAdapter.js.map +1 -0
- package/dist/trpc/index.d.ts +49 -0
- package/dist/trpc/index.js +53 -0
- package/dist/trpc/index.js.map +1 -0
- package/dist/trpc/routers/auth.d.ts +43 -0
- package/dist/trpc/routers/auth.js +116 -0
- package/dist/trpc/routers/auth.js.map +1 -0
- package/dist/trpc/routers/clients.d.ts +21 -0
- package/dist/trpc/routers/clients.js +65 -0
- package/dist/trpc/routers/clients.js.map +1 -0
- package/dist/trpc/routers/health.d.ts +17 -0
- package/dist/trpc/routers/health.js +24 -0
- package/dist/trpc/routers/health.js.map +1 -0
- package/dist/trpc/routers/index.d.ts +394 -0
- package/dist/trpc/routers/index.js +23 -0
- package/dist/trpc/routers/index.js.map +1 -0
- package/dist/trpc/routers/indexers.d.ts +75 -0
- package/dist/trpc/routers/indexers.js +79 -0
- package/dist/trpc/routers/indexers.js.map +1 -0
- package/dist/trpc/routers/jobs.d.ts +33 -0
- package/dist/trpc/routers/jobs.js +84 -0
- package/dist/trpc/routers/jobs.js.map +1 -0
- package/dist/trpc/routers/logs.d.ts +27 -0
- package/dist/trpc/routers/logs.js +91 -0
- package/dist/trpc/routers/logs.js.map +1 -0
- package/dist/trpc/routers/searchees.d.ts +51 -0
- package/dist/trpc/routers/searchees.js +156 -0
- package/dist/trpc/routers/searchees.js.map +1 -0
- package/dist/trpc/routers/settings.d.ts +83 -0
- package/dist/trpc/routers/settings.js +92 -0
- package/dist/trpc/routers/settings.js.map +1 -0
- package/dist/trpc/routers/stats.d.ts +42 -0
- package/dist/trpc/routers/stats.js +102 -0
- package/dist/trpc/routers/stats.js.map +1 -0
- package/dist/userAuth.d.ts +21 -0
- package/dist/userAuth.js +86 -0
- package/dist/userAuth.js.map +1 -0
- package/dist/utils/authUtils.d.ts +10 -0
- package/dist/utils/authUtils.js +24 -0
- package/dist/utils/authUtils.js.map +1 -0
- package/dist/utils/logWatcher.d.ts +28 -0
- package/dist/utils/logWatcher.js +229 -0
- package/dist/utils/logWatcher.js.map +1 -0
- package/dist/utils/object.d.ts +1 -0
- package/dist/utils/object.js +4 -0
- package/dist/utils/object.js.map +1 -0
- package/dist/utils.d.ts +172 -0
- package/dist/utils.js +648 -0
- package/dist/utils.js.map +1 -0
- package/dist/webui/assets/{FieldInfo-Bxj_j8SJ.js → FieldInfo-sRlPRNSK.js} +1 -1
- package/dist/webui/assets/{Page-C3rteCZt.js → Page-B68mlTwU.js} +1 -1
- package/dist/webui/assets/{array-field-DVSC6nHP.js → array-field-BCFMrvoU.js} +1 -1
- package/dist/webui/assets/{badge-DTZMtS0e.js → badge-C5YCxEzP.js} +1 -1
- package/dist/webui/assets/check-NQsw6yBl.js +1 -0
- package/dist/webui/assets/{chevron-down-CRy8M0kJ.js → chevron-down-8PGvFYxV.js} +1 -1
- package/dist/webui/assets/{clients-CW8oEZoQ.js → clients-DnVpwApe.js} +1 -1
- package/dist/webui/assets/{connect-YBNsnjWT.js → connect-wMg2zyz6.js} +1 -1
- package/dist/webui/assets/debug-BrjwiEi2.js +1 -0
- package/dist/webui/assets/{directories-BSK28RgR.js → directories-CHpJCWNR.js} +1 -1
- package/dist/webui/assets/{duration-field-C6xoSlJg.js → duration-field-DIkKt3iw.js} +1 -1
- package/dist/webui/assets/{general-lJJxZhH7.js → general-uZrUIxbI.js} +1 -1
- package/dist/webui/assets/health-_MuvAyjo.js +1 -0
- package/dist/webui/assets/index-B41DM2T5.css +1 -0
- package/dist/webui/assets/{index-C2cH1Gst.js → index-BBzHsn7u.js} +1 -1
- package/dist/webui/assets/{index-Bi48hI2z.js → index-Ncy0-Qo7.js} +3 -3
- package/dist/webui/assets/index-pKWy6v1P.js +1 -0
- package/dist/webui/assets/{jobs-CxmNab9w.js → jobs-B8eat0YU.js} +1 -1
- package/dist/webui/assets/{library-vaj2W8sE.js → library-BB0jQ8zn.js} +1 -1
- package/dist/webui/assets/{loader-circle-M0gu1gZ-.js → loader-circle-Bz67bJa3.js} +1 -1
- package/dist/webui/assets/logs-CeP28848.js +1 -0
- package/dist/webui/assets/{search-2R5sIdT8.js → search-BRBIrqaX.js} +1 -1
- package/dist/webui/assets/{select-zHgqMzLj.js → select-GZr6C6eZ.js} +1 -1
- package/dist/webui/assets/{select-field-BCqNLDrJ.js → select-field-CvT0SYk8.js} +1 -1
- package/dist/webui/assets/settings-0ZdYY8g_.js +1 -0
- package/dist/webui/assets/{submit-button-BtcnyggQ.js → submit-button-D7DKHqAq.js} +1 -1
- package/dist/webui/assets/{switch-G0W3uJVN.js → switch-BeMrf8sh.js} +1 -1
- package/dist/webui/assets/{switch-field-IBd9ORNq.js → switch-field-qMXHRKhx.js} +1 -1
- package/dist/webui/assets/{table-DvgJU7Gh.js → table-qEFWauuw.js} +1 -1
- package/dist/webui/assets/{test-tube-BIwmoM45.js → test-tube-DhD6uWdp.js} +1 -1
- package/dist/webui/assets/{text-field-DruSbGhy.js → text-field-ZnKHDUks.js} +1 -1
- package/dist/webui/assets/{time-BSMZjmyW.js → time-BM9K_Fbp.js} +1 -1
- package/dist/webui/assets/{trackers-D-OpAe63.js → trackers-BjJuAdX3.js} +1 -1
- package/dist/webui/assets/{use-form-validation-context-BkAfWAh0.js → use-form-validation-context-D2oA54L_.js} +1 -1
- package/dist/webui/assets/{use-settings-form-submit-CDRh-E9U.js → use-settings-form-submit-CXwtE1sI.js} +2 -2
- package/dist/webui/assets/useQuery-DD10sbzn.js +1 -0
- package/dist/webui/index.html +2 -2
- package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -1
- package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -1
- package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@cross-seed/shared/dist/utils.d.ts +3 -0
- package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -1
- package/node_modules/@cross-seed/shared/dist/utils.js +11 -0
- package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -1
- package/node_modules/@cross-seed/shared/package.json +3 -1
- package/package.json +18 -59
- package/LICENSE +0 -201
- package/README.md +0 -33
- package/dist/webui/assets/check-Bu3ldi63.js +0 -1
- package/dist/webui/assets/debug-mz8-WYZj.js +0 -1
- package/dist/webui/assets/health-CXbsVrie.js +0 -1
- package/dist/webui/assets/index-C-Ul7GNg.css +0 -1
- package/dist/webui/assets/index-Cc5bDmJr.js +0 -1
- package/dist/webui/assets/logs-Cu9RyKS0.js +0 -1
- package/dist/webui/assets/settings-CMYjpTbZ.js +0 -1
- package/dist/webui/assets/useQuery-A4Hv_4uX.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s}from"./index-
|
|
1
|
+
import{j as s}from"./index-Ncy0-Qo7.js";const l=({fieldMeta:r})=>r&&r.errors&&r.errors.length>0?s.jsx(s.Fragment,{children:s.jsx("span",{className:"text-sm text-red-600",children:r.errors.map((n,t)=>typeof n=="object"&&n!==null?s.jsx("span",{children:n?.message||JSON.stringify(n)},t):s.jsx("span",{children:n},t))})}):null;export{l as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as Ct,c as xe,r as s,j as a,Z as re,b as ae,$ as L,f as j,a0 as ve,d as A,g as h,e as Ne,a1 as Me,a2 as Te,a3 as _t,a4 as Rt,P as se,a5 as bt,a6 as It,a7 as yt,a8 as St,a9 as Et,aa as Pt,ab as Dt,ac as Nt,ad as Tt,i as O,ae as jt,B as At,af as Ot,S as kt}from"./index-Bi48hI2z.js";function Ft(e){return Ct({select:t=>t.location})}const Lt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Gt=xe("ChevronRight",Lt);const Kt=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],$t=xe("Moon",Kt);const Bt=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Ut=xe("Sun",Bt);function Pe(e){const t=Vt(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(Yt);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function Vt(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=Ht(r),u=zt(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Wt=Symbol("radix.slottable");function Yt(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Wt}function zt(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function Ht(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function je(e){const t=e+"CollectionProvider",[n,o]=ae(t),[r,c]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=_=>{const{scope:g,children:M}=_,y=L.useRef(null),w=L.useRef(new Map).current;return a.jsx(r,{scope:g,itemMap:w,collectionRef:y,children:M})};i.displayName=t;const u=e+"CollectionSlot",p=Pe(u),f=L.forwardRef((_,g)=>{const{scope:M,children:y}=_,w=c(u,M),R=j(g,w.collectionRef);return a.jsx(p,{ref:R,children:y})});f.displayName=u;const d=e+"CollectionItemSlot",l="data-radix-collection-item",v=Pe(d),C=L.forwardRef((_,g)=>{const{scope:M,children:y,...w}=_,R=L.useRef(null),T=j(g,R),P=c(d,M);return L.useEffect(()=>(P.itemMap.set(R,{ref:R,...w}),()=>void P.itemMap.delete(R))),a.jsx(v,{[l]:"",ref:T,children:y})});C.displayName=d;function x(_){const g=c(e+"CollectionConsumer",_);return L.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const w=Array.from(y.querySelectorAll(`[${l}]`));return Array.from(g.itemMap.values()).sort((P,D)=>w.indexOf(P.ref.current)-w.indexOf(D.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:f,ItemSlot:C},x,o]}var Xt=s.createContext(void 0);function Ae(e){const t=s.useContext(Xt);return e||t||"ltr"}var pe="rovingFocusGroup.onEntryFocus",Zt={bubbles:!1,cancelable:!0},q="RovingFocusGroup",[ge,Oe,qt]=je(q),[Jt,ke]=ae(q,[qt]),[Qt,en]=Jt(q),Fe=s.forwardRef((e,t)=>a.jsx(ge.Provider,{scope:e.__scopeRovingFocusGroup,children:a.jsx(ge.Slot,{scope:e.__scopeRovingFocusGroup,children:a.jsx(tn,{...e,ref:t})})}));Fe.displayName=q;var tn=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:c,currentTabStopId:i,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:p,onEntryFocus:f,preventScrollOnEntryFocus:d=!1,...l}=e,v=s.useRef(null),C=j(t,v),x=Ae(c),[_,g]=Ne({prop:i,defaultProp:u??null,onChange:p,caller:q}),[M,y]=s.useState(!1),w=Me(f),R=Oe(n),T=s.useRef(!1),[P,D]=s.useState(0);return s.useEffect(()=>{const b=v.current;if(b)return b.addEventListener(pe,w),()=>b.removeEventListener(pe,w)},[w]),a.jsx(Qt,{scope:n,orientation:o,dir:x,loop:r,currentTabStopId:_,onItemFocus:s.useCallback(b=>g(b),[g]),onItemShiftTab:s.useCallback(()=>y(!0),[]),onFocusableItemAdd:s.useCallback(()=>D(b=>b+1),[]),onFocusableItemRemove:s.useCallback(()=>D(b=>b-1),[]),children:a.jsx(A.div,{tabIndex:M||P===0?-1:0,"data-orientation":o,...l,ref:C,style:{outline:"none",...e.style},onMouseDown:h(e.onMouseDown,()=>{T.current=!0}),onFocus:h(e.onFocus,b=>{const $=!T.current;if(b.target===b.currentTarget&&$&&!M){const k=new CustomEvent(pe,Zt);if(b.currentTarget.dispatchEvent(k),!k.defaultPrevented){const V=R().filter(N=>N.focusable),W=V.find(N=>N.active),ee=V.find(N=>N.id===_),le=[W,ee,...V].filter(Boolean).map(N=>N.ref.current);Ke(le,d)}}T.current=!1}),onBlur:h(e.onBlur,()=>y(!1))})})}),Le="RovingFocusGroupItem",Ge=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:c,children:i,...u}=e,p=ve(),f=c||p,d=en(Le,n),l=d.currentTabStopId===f,v=Oe(n),{onFocusableItemAdd:C,onFocusableItemRemove:x,currentTabStopId:_}=d;return s.useEffect(()=>{if(o)return C(),()=>x()},[o,C,x]),a.jsx(ge.ItemSlot,{scope:n,id:f,focusable:o,active:r,children:a.jsx(A.span,{tabIndex:l?0:-1,"data-orientation":d.orientation,...u,ref:t,onMouseDown:h(e.onMouseDown,g=>{o?d.onItemFocus(f):g.preventDefault()}),onFocus:h(e.onFocus,()=>d.onItemFocus(f)),onKeyDown:h(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){d.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const M=rn(g,d.orientation,d.dir);if(M!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let w=v().filter(R=>R.focusable).map(R=>R.ref.current);if(M==="last")w.reverse();else if(M==="prev"||M==="next"){M==="prev"&&w.reverse();const R=w.indexOf(g.currentTarget);w=d.loop?an(w,R+1):w.slice(R+1)}setTimeout(()=>Ke(w))}}),children:typeof i=="function"?i({isCurrentTabStop:l,hasTabStop:_!=null}):i})})});Ge.displayName=Le;var nn={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function on(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function rn(e,t,n){const o=on(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return nn[o]}function Ke(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function an(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var sn=Fe,cn=Ge;function un(e){const t=ln(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(fn);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function ln(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=mn(r),u=pn(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dn=Symbol("radix.slottable");function fn(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dn}function pn(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function mn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var he=["Enter"," "],vn=["ArrowDown","PageUp","Home"],$e=["ArrowUp","PageDown","End"],gn=[...vn,...$e],hn={ltr:[...he,"ArrowRight"],rtl:[...he,"ArrowLeft"]},xn={ltr:["ArrowLeft"],rtl:["ArrowRight"]},J="Menu",[X,Mn,wn]=je(J),[G,Be]=ae(J,[wn,Te,ke]),ce=Te(),Ue=ke(),[Cn,K]=G(J),[_n,Q]=G(J),Ve=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:r,onOpenChange:c,modal:i=!0}=e,u=ce(t),[p,f]=s.useState(null),d=s.useRef(!1),l=Me(c),v=Ae(r);return s.useEffect(()=>{const C=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),a.jsx(_t,{...u,children:a.jsx(Cn,{scope:t,open:n,onOpenChange:l,content:p,onContentChange:f,children:a.jsx(_n,{scope:t,onClose:s.useCallback(()=>l(!1),[l]),isUsingKeyboardRef:d,dir:v,modal:i,children:o})})})};Ve.displayName=J;var Rn="MenuAnchor",we=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Rt,{...r,...o,ref:t})});we.displayName=Rn;var Ce="MenuPortal",[bn,We]=G(Ce,{forceMount:void 0}),Ye=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,c=K(Ce,t);return a.jsx(bn,{scope:t,forceMount:n,children:a.jsx(se,{present:n||c.open,children:a.jsx(bt,{asChild:!0,container:r,children:o})})})};Ye.displayName=Ce;var E="MenuContent",[In,_e]=G(E),ze=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:i.modal?a.jsx(yn,{...r,ref:t}):a.jsx(Sn,{...r,ref:t})})})})}),yn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu),o=s.useRef(null),r=j(t,o);return s.useEffect(()=>{const c=o.current;if(c)return It(c)},[]),a.jsx(Re,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:h(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Sn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu);return a.jsx(Re,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),En=un("MenuContent.ScrollLock"),Re=s.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:c,onCloseAutoFocus:i,disableOutsidePointerEvents:u,onEntryFocus:p,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,disableOutsideScroll:x,..._}=e,g=K(E,n),M=Q(E,n),y=ce(n),w=Ue(n),R=Mn(n),[T,P]=s.useState(null),D=s.useRef(null),b=j(t,D,g.onContentChange),$=s.useRef(0),k=s.useRef(""),V=s.useRef(0),W=s.useRef(null),ee=s.useRef("right"),te=s.useRef(0),le=x?Et:s.Fragment,N=x?{as:En,allowPinchZoom:!0}:void 0,wt=m=>{const U=k.current+m,F=R().filter(S=>!S.disabled),Y=document.activeElement,de=F.find(S=>S.ref.current===Y)?.textValue,fe=F.map(S=>S.textValue),Se=Kn(fe,U,de),z=F.find(S=>S.textValue===Se)?.ref.current;(function S(Ee){k.current=Ee,window.clearTimeout($.current),Ee!==""&&($.current=window.setTimeout(()=>S(""),1e3))})(U),z&&setTimeout(()=>z.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),St();const B=s.useCallback(m=>ee.current===W.current?.side&&Bn(m,W.current?.area),[]);return a.jsx(In,{scope:n,searchRef:k,onItemEnter:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),onItemLeave:s.useCallback(m=>{B(m)||(D.current?.focus(),P(null))},[B]),onTriggerLeave:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),pointerGraceTimerRef:V,onPointerGraceIntentChange:s.useCallback(m=>{W.current=m},[]),children:a.jsx(le,{...N,children:a.jsx(Pt,{asChild:!0,trapped:r,onMountAutoFocus:h(c,m=>{m.preventDefault(),D.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:a.jsx(Dt,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,children:a.jsx(sn,{asChild:!0,...w,dir:M.dir,orientation:"vertical",loop:o,currentTabStopId:T,onCurrentTabStopIdChange:P,onEntryFocus:h(p,m=>{M.isUsingKeyboardRef.current||m.preventDefault()}),preventScrollOnEntryFocus:!0,children:a.jsx(Nt,{role:"menu","aria-orientation":"vertical","data-state":ut(g.open),"data-radix-menu-content":"",dir:M.dir,...y,..._,ref:b,style:{outline:"none",..._.style},onKeyDown:h(_.onKeyDown,m=>{const F=m.target.closest("[data-radix-menu-content]")===m.currentTarget,Y=m.ctrlKey||m.altKey||m.metaKey,de=m.key.length===1;F&&(m.key==="Tab"&&m.preventDefault(),!Y&&de&&wt(m.key));const fe=D.current;if(m.target!==fe||!gn.includes(m.key))return;m.preventDefault();const z=R().filter(S=>!S.disabled).map(S=>S.ref.current);$e.includes(m.key)&&z.reverse(),Ln(z)}),onBlur:h(e.onBlur,m=>{m.currentTarget.contains(m.target)||(window.clearTimeout($.current),k.current="")}),onPointerMove:h(e.onPointerMove,Z(m=>{const U=m.target,F=te.current!==m.clientX;if(m.currentTarget.contains(U)&&F){const Y=m.clientX>te.current?"right":"left";ee.current=Y,te.current=m.clientX}}))})})})})})})});ze.displayName=E;var Pn="MenuGroup",be=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"group",...o,ref:t})});be.displayName=Pn;var Dn="MenuLabel",He=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{...o,ref:t})});He.displayName=Dn;var ne="MenuItem",De="menu.itemSelect",ie=s.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,c=s.useRef(null),i=Q(ne,e.__scopeMenu),u=_e(ne,e.__scopeMenu),p=j(t,c),f=s.useRef(!1),d=()=>{const l=c.current;if(!n&&l){const v=new CustomEvent(De,{bubbles:!0,cancelable:!0});l.addEventListener(De,C=>o?.(C),{once:!0}),yt(l,v),v.defaultPrevented?f.current=!1:i.onClose()}};return a.jsx(Xe,{...r,ref:p,disabled:n,onClick:h(e.onClick,d),onPointerDown:l=>{e.onPointerDown?.(l),f.current=!0},onPointerUp:h(e.onPointerUp,l=>{f.current||l.currentTarget?.click()}),onKeyDown:h(e.onKeyDown,l=>{const v=u.searchRef.current!=="";n||v&&l.key===" "||he.includes(l.key)&&(l.currentTarget.click(),l.preventDefault())})})});ie.displayName=ne;var Xe=s.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...c}=e,i=_e(ne,n),u=Ue(n),p=s.useRef(null),f=j(t,p),[d,l]=s.useState(!1),[v,C]=s.useState("");return s.useEffect(()=>{const x=p.current;x&&C((x.textContent??"").trim())},[c.children]),a.jsx(X.ItemSlot,{scope:n,disabled:o,textValue:r??v,children:a.jsx(cn,{asChild:!0,...u,focusable:!o,children:a.jsx(A.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...c,ref:f,onPointerMove:h(e.onPointerMove,Z(x=>{o?i.onItemLeave(x):(i.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:h(e.onPointerLeave,Z(x=>i.onItemLeave(x))),onFocus:h(e.onFocus,()=>l(!0)),onBlur:h(e.onBlur,()=>l(!1))})})})}),Nn="MenuCheckboxItem",Ze=s.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return a.jsx(tt,{scope:e.__scopeMenu,checked:n,children:a.jsx(ie,{role:"menuitemcheckbox","aria-checked":oe(n)?"mixed":n,...r,ref:t,"data-state":ye(n),onSelect:h(r.onSelect,()=>o?.(oe(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ze.displayName=Nn;var qe="MenuRadioGroup",[Tn,jn]=G(qe,{value:void 0,onValueChange:()=>{}}),Je=s.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,c=Me(o);return a.jsx(Tn,{scope:e.__scopeMenu,value:n,onValueChange:c,children:a.jsx(be,{...r,ref:t})})});Je.displayName=qe;var Qe="MenuRadioItem",et=s.forwardRef((e,t)=>{const{value:n,...o}=e,r=jn(Qe,e.__scopeMenu),c=n===r.value;return a.jsx(tt,{scope:e.__scopeMenu,checked:c,children:a.jsx(ie,{role:"menuitemradio","aria-checked":c,...o,ref:t,"data-state":ye(c),onSelect:h(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});et.displayName=Qe;var Ie="MenuItemIndicator",[tt,An]=G(Ie,{checked:!1}),nt=s.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,c=An(Ie,n);return a.jsx(se,{present:o||oe(c.checked)||c.checked===!0,children:a.jsx(A.span,{...r,ref:t,"data-state":ye(c.checked)})})});nt.displayName=Ie;var On="MenuSeparator",ot=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});ot.displayName=On;var kn="MenuArrow",rt=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Tt,{...r,...o,ref:t})});rt.displayName=kn;var Fn="MenuSub",[Vo,at]=G(Fn),H="MenuSubTrigger",st=s.forwardRef((e,t)=>{const n=K(H,e.__scopeMenu),o=Q(H,e.__scopeMenu),r=at(H,e.__scopeMenu),c=_e(H,e.__scopeMenu),i=s.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:p}=c,f={__scopeMenu:e.__scopeMenu},d=s.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return s.useEffect(()=>d,[d]),s.useEffect(()=>{const l=u.current;return()=>{window.clearTimeout(l),p(null)}},[u,p]),a.jsx(we,{asChild:!0,...f,children:a.jsx(Xe,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":ut(n.open),...e,ref:re(t,r.onTriggerChange),onClick:l=>{e.onClick?.(l),!(e.disabled||l.defaultPrevented)&&(l.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:h(e.onPointerMove,Z(l=>{c.onItemEnter(l),!l.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(c.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:h(e.onPointerLeave,Z(l=>{d();const v=n.content?.getBoundingClientRect();if(v){const C=n.content?.dataset.side,x=C==="right",_=x?-5:5,g=v[x?"left":"right"],M=v[x?"right":"left"];c.onPointerGraceIntentChange({area:[{x:l.clientX+_,y:l.clientY},{x:g,y:v.top},{x:M,y:v.top},{x:M,y:v.bottom},{x:g,y:v.bottom}],side:C}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(l),l.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:h(e.onKeyDown,l=>{const v=c.searchRef.current!=="";e.disabled||v&&l.key===" "||hn[o.dir].includes(l.key)&&(n.onOpenChange(!0),n.content?.focus(),l.preventDefault())})})})});st.displayName=H;var ct="MenuSubContent",it=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu),u=at(ct,e.__scopeMenu),p=s.useRef(null),f=j(t,p);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:a.jsx(Re,{id:u.contentId,"aria-labelledby":u.triggerId,...r,ref:f,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{i.isUsingKeyboardRef.current&&p.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:h(e.onFocusOutside,d=>{d.target!==u.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:h(e.onEscapeKeyDown,d=>{i.onClose(),d.preventDefault()}),onKeyDown:h(e.onKeyDown,d=>{const l=d.currentTarget.contains(d.target),v=xn[i.dir].includes(d.key);l&&v&&(c.onOpenChange(!1),u.trigger?.focus(),d.preventDefault())})})})})})});it.displayName=ct;function ut(e){return e?"open":"closed"}function oe(e){return e==="indeterminate"}function ye(e){return oe(e)?"indeterminate":e?"checked":"unchecked"}function Ln(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Gn(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function Kn(e,t,n){const r=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,c=n?e.indexOf(n):-1;let i=Gn(e,Math.max(c,0));r.length===1&&(i=i.filter(f=>f!==n));const p=i.find(f=>f.toLowerCase().startsWith(r.toLowerCase()));return p!==n?p:void 0}function $n(e,t){const{x:n,y:o}=e;let r=!1;for(let c=0,i=t.length-1;c<t.length;i=c++){const u=t[c],p=t[i],f=u.x,d=u.y,l=p.x,v=p.y;d>o!=v>o&&n<(l-f)*(o-d)/(v-d)+f&&(r=!r)}return r}function Bn(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return $n(n,t)}function Z(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Un=Ve,Vn=we,Wn=Ye,Yn=ze,zn=be,Hn=He,Xn=ie,Zn=Ze,qn=Je,Jn=et,Qn=nt,eo=ot,to=rt,no=st,oo=it,ue="DropdownMenu",[ro]=ae(ue,[Be]),I=Be(),[ao,lt]=ro(ue),dt=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:r,defaultOpen:c,onOpenChange:i,modal:u=!0}=e,p=I(t),f=s.useRef(null),[d,l]=Ne({prop:r,defaultProp:c??!1,onChange:i,caller:ue});return a.jsx(ao,{scope:t,triggerId:ve(),triggerRef:f,contentId:ve(),open:d,onOpenChange:l,onOpenToggle:s.useCallback(()=>l(v=>!v),[l]),modal:u,children:a.jsx(Un,{...p,open:d,onOpenChange:l,dir:o,modal:u,children:n})})};dt.displayName=ue;var ft="DropdownMenuTrigger",pt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,c=lt(ft,n),i=I(n);return a.jsx(Vn,{asChild:!0,...i,children:a.jsx(A.button,{type:"button",id:c.triggerId,"aria-haspopup":"menu","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":c.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:re(t,c.triggerRef),onPointerDown:h(e.onPointerDown,u=>{!o&&u.button===0&&u.ctrlKey===!1&&(c.onOpenToggle(),c.open||u.preventDefault())}),onKeyDown:h(e.onKeyDown,u=>{o||(["Enter"," "].includes(u.key)&&c.onOpenToggle(),u.key==="ArrowDown"&&c.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(u.key)&&u.preventDefault())})})})});pt.displayName=ft;var so="DropdownMenuPortal",mt=e=>{const{__scopeDropdownMenu:t,...n}=e,o=I(t);return a.jsx(Wn,{...o,...n})};mt.displayName=so;var vt="DropdownMenuContent",gt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=lt(vt,n),c=I(n),i=s.useRef(!1);return a.jsx(Yn,{id:r.contentId,"aria-labelledby":r.triggerId,...c,...o,ref:t,onCloseAutoFocus:h(e.onCloseAutoFocus,u=>{i.current||r.triggerRef.current?.focus(),i.current=!1,u.preventDefault()}),onInteractOutside:h(e.onInteractOutside,u=>{const p=u.detail.originalEvent,f=p.button===0&&p.ctrlKey===!0,d=p.button===2||f;(!r.modal||d)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gt.displayName=vt;var co="DropdownMenuGroup",io=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(zn,{...r,...o,ref:t})});io.displayName=co;var uo="DropdownMenuLabel",ht=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Hn,{...r,...o,ref:t})});ht.displayName=uo;var lo="DropdownMenuItem",xt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Xn,{...r,...o,ref:t})});xt.displayName=lo;var fo="DropdownMenuCheckboxItem",po=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Zn,{...r,...o,ref:t})});po.displayName=fo;var mo="DropdownMenuRadioGroup",vo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(qn,{...r,...o,ref:t})});vo.displayName=mo;var go="DropdownMenuRadioItem",ho=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Jn,{...r,...o,ref:t})});ho.displayName=go;var xo="DropdownMenuItemIndicator",Mo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Qn,{...r,...o,ref:t})});Mo.displayName=xo;var wo="DropdownMenuSeparator",Mt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(eo,{...r,...o,ref:t})});Mt.displayName=wo;var Co="DropdownMenuArrow",_o=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(to,{...r,...o,ref:t})});_o.displayName=Co;var Ro="DropdownMenuSubTrigger",bo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(no,{...r,...o,ref:t})});bo.displayName=Ro;var Io="DropdownMenuSubContent",yo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(oo,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yo.displayName=Io;var So=dt,Eo=pt,Po=mt,Do=gt,No=ht,To=xt,jo=Mt;function Ao({...e}){return a.jsx(So,{"data-slot":"dropdown-menu",...e})}function Oo({...e}){return a.jsx(Eo,{"data-slot":"dropdown-menu-trigger",...e})}function ko({className:e,sideOffset:t=4,...n}){return a.jsx(Po,{children:a.jsx(Do,{"data-slot":"dropdown-menu-content",sideOffset:t,className:O("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...n})})}function me({className:e,inset:t,variant:n="default",...o}){return a.jsx(To,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:O("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...o})}function Wo({className:e,inset:t,...n}){return a.jsx(No,{"data-slot":"dropdown-menu-label","data-inset":t,className:O("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...n})}function Yo({className:e,...t}){return a.jsx(jo,{"data-slot":"dropdown-menu-separator",className:O("bg-border -mx-1 my-1 h-px",e),...t})}const Fo=({className:e})=>{const{setTheme:t}=jt();return a.jsxs(Ao,{children:[a.jsx(Oo,{asChild:!0,children:a.jsxs(At,{variant:"ghost",size:"icon",className:e,children:[a.jsx(Ut,{className:"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),a.jsx($t,{className:"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),a.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}),a.jsxs(ko,{children:[a.jsx(me,{onClick:()=>t("light"),children:"Light"}),a.jsx(me,{onClick:()=>t("dark"),children:"Dark"}),a.jsx(me,{onClick:()=>t("system"),children:"System"})]})]})};function Lo({...e}){return a.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Go({className:e,...t}){return a.jsx("ol",{"data-slot":"breadcrumb-list",className:O("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",e),...t})}function Ko({className:e,...t}){return a.jsx("li",{"data-slot":"breadcrumb-item",className:O("inline-flex items-center gap-1.5",e),...t})}function $o({className:e,...t}){return a.jsx("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:O("text-foreground font-normal",e),...t})}function Bo({children:e,className:t,...n}){return a.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:O("[&>svg]:size-3.5",t),...n,children:e??a.jsx(Gt,{})})}function zo({breadcrumbs:e,actions:t,children:n}){const o=Ft(),r=s.useMemo(()=>e||o.pathname.split("/").filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)),[o.pathname,e]);return a.jsxs(a.Fragment,{children:[a.jsxs("header",{className:"flex h-12 shrink-0 items-center gap-2 border-b px-4",children:[a.jsx(Ot,{className:"-ml-1"}),a.jsx(kt,{orientation:"vertical",className:"mr-2 h-4"}),a.jsx(Lo,{children:a.jsx(Go,{children:r.map((c,i)=>a.jsxs(s.Fragment,{children:[a.jsx(Ko,{children:i===r.length-1?a.jsx($o,{children:c}):c}),i<r.length-1&&a.jsx(Bo,{})]},i))})}),a.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[t,a.jsx(Fo,{})]})]}),a.jsx("div",{className:"flex flex-1 flex-col",children:a.jsx("div",{className:"@container/main",children:a.jsx("div",{className:"flex flex-col gap-4 p-4",children:n})})})]})}export{Gt as C,Ao as D,zo as P,Oo as a,ko as b,me as c,Wo as d,Yo as e,je as f,Ae as u};
|
|
1
|
+
import{Y as Ct,c as xe,r as s,j as a,Z as re,b as ae,$ as L,f as j,a0 as ve,d as A,g as h,e as Ne,a1 as Me,a2 as Te,a3 as _t,a4 as Rt,P as se,a5 as bt,a6 as It,a7 as yt,a8 as St,a9 as Et,aa as Pt,ab as Dt,ac as Nt,ad as Tt,i as O,ae as jt,B as At,af as Ot,S as kt}from"./index-Ncy0-Qo7.js";function Ft(e){return Ct({select:t=>t.location})}const Lt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Gt=xe("ChevronRight",Lt);const Kt=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],$t=xe("Moon",Kt);const Bt=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Ut=xe("Sun",Bt);function Pe(e){const t=Vt(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(Yt);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function Vt(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=Ht(r),u=zt(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Wt=Symbol("radix.slottable");function Yt(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Wt}function zt(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function Ht(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function je(e){const t=e+"CollectionProvider",[n,o]=ae(t),[r,c]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=_=>{const{scope:g,children:M}=_,y=L.useRef(null),w=L.useRef(new Map).current;return a.jsx(r,{scope:g,itemMap:w,collectionRef:y,children:M})};i.displayName=t;const u=e+"CollectionSlot",p=Pe(u),f=L.forwardRef((_,g)=>{const{scope:M,children:y}=_,w=c(u,M),R=j(g,w.collectionRef);return a.jsx(p,{ref:R,children:y})});f.displayName=u;const d=e+"CollectionItemSlot",l="data-radix-collection-item",v=Pe(d),C=L.forwardRef((_,g)=>{const{scope:M,children:y,...w}=_,R=L.useRef(null),T=j(g,R),P=c(d,M);return L.useEffect(()=>(P.itemMap.set(R,{ref:R,...w}),()=>void P.itemMap.delete(R))),a.jsx(v,{[l]:"",ref:T,children:y})});C.displayName=d;function x(_){const g=c(e+"CollectionConsumer",_);return L.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const w=Array.from(y.querySelectorAll(`[${l}]`));return Array.from(g.itemMap.values()).sort((P,D)=>w.indexOf(P.ref.current)-w.indexOf(D.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:f,ItemSlot:C},x,o]}var Xt=s.createContext(void 0);function Ae(e){const t=s.useContext(Xt);return e||t||"ltr"}var pe="rovingFocusGroup.onEntryFocus",Zt={bubbles:!1,cancelable:!0},q="RovingFocusGroup",[ge,Oe,qt]=je(q),[Jt,ke]=ae(q,[qt]),[Qt,en]=Jt(q),Fe=s.forwardRef((e,t)=>a.jsx(ge.Provider,{scope:e.__scopeRovingFocusGroup,children:a.jsx(ge.Slot,{scope:e.__scopeRovingFocusGroup,children:a.jsx(tn,{...e,ref:t})})}));Fe.displayName=q;var tn=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:c,currentTabStopId:i,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:p,onEntryFocus:f,preventScrollOnEntryFocus:d=!1,...l}=e,v=s.useRef(null),C=j(t,v),x=Ae(c),[_,g]=Ne({prop:i,defaultProp:u??null,onChange:p,caller:q}),[M,y]=s.useState(!1),w=Me(f),R=Oe(n),T=s.useRef(!1),[P,D]=s.useState(0);return s.useEffect(()=>{const b=v.current;if(b)return b.addEventListener(pe,w),()=>b.removeEventListener(pe,w)},[w]),a.jsx(Qt,{scope:n,orientation:o,dir:x,loop:r,currentTabStopId:_,onItemFocus:s.useCallback(b=>g(b),[g]),onItemShiftTab:s.useCallback(()=>y(!0),[]),onFocusableItemAdd:s.useCallback(()=>D(b=>b+1),[]),onFocusableItemRemove:s.useCallback(()=>D(b=>b-1),[]),children:a.jsx(A.div,{tabIndex:M||P===0?-1:0,"data-orientation":o,...l,ref:C,style:{outline:"none",...e.style},onMouseDown:h(e.onMouseDown,()=>{T.current=!0}),onFocus:h(e.onFocus,b=>{const $=!T.current;if(b.target===b.currentTarget&&$&&!M){const k=new CustomEvent(pe,Zt);if(b.currentTarget.dispatchEvent(k),!k.defaultPrevented){const V=R().filter(N=>N.focusable),W=V.find(N=>N.active),ee=V.find(N=>N.id===_),le=[W,ee,...V].filter(Boolean).map(N=>N.ref.current);Ke(le,d)}}T.current=!1}),onBlur:h(e.onBlur,()=>y(!1))})})}),Le="RovingFocusGroupItem",Ge=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:c,children:i,...u}=e,p=ve(),f=c||p,d=en(Le,n),l=d.currentTabStopId===f,v=Oe(n),{onFocusableItemAdd:C,onFocusableItemRemove:x,currentTabStopId:_}=d;return s.useEffect(()=>{if(o)return C(),()=>x()},[o,C,x]),a.jsx(ge.ItemSlot,{scope:n,id:f,focusable:o,active:r,children:a.jsx(A.span,{tabIndex:l?0:-1,"data-orientation":d.orientation,...u,ref:t,onMouseDown:h(e.onMouseDown,g=>{o?d.onItemFocus(f):g.preventDefault()}),onFocus:h(e.onFocus,()=>d.onItemFocus(f)),onKeyDown:h(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){d.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const M=rn(g,d.orientation,d.dir);if(M!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let w=v().filter(R=>R.focusable).map(R=>R.ref.current);if(M==="last")w.reverse();else if(M==="prev"||M==="next"){M==="prev"&&w.reverse();const R=w.indexOf(g.currentTarget);w=d.loop?an(w,R+1):w.slice(R+1)}setTimeout(()=>Ke(w))}}),children:typeof i=="function"?i({isCurrentTabStop:l,hasTabStop:_!=null}):i})})});Ge.displayName=Le;var nn={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function on(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function rn(e,t,n){const o=on(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return nn[o]}function Ke(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function an(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var sn=Fe,cn=Ge;function un(e){const t=ln(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(fn);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function ln(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=mn(r),u=pn(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dn=Symbol("radix.slottable");function fn(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dn}function pn(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function mn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var he=["Enter"," "],vn=["ArrowDown","PageUp","Home"],$e=["ArrowUp","PageDown","End"],gn=[...vn,...$e],hn={ltr:[...he,"ArrowRight"],rtl:[...he,"ArrowLeft"]},xn={ltr:["ArrowLeft"],rtl:["ArrowRight"]},J="Menu",[X,Mn,wn]=je(J),[G,Be]=ae(J,[wn,Te,ke]),ce=Te(),Ue=ke(),[Cn,K]=G(J),[_n,Q]=G(J),Ve=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:r,onOpenChange:c,modal:i=!0}=e,u=ce(t),[p,f]=s.useState(null),d=s.useRef(!1),l=Me(c),v=Ae(r);return s.useEffect(()=>{const C=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),a.jsx(_t,{...u,children:a.jsx(Cn,{scope:t,open:n,onOpenChange:l,content:p,onContentChange:f,children:a.jsx(_n,{scope:t,onClose:s.useCallback(()=>l(!1),[l]),isUsingKeyboardRef:d,dir:v,modal:i,children:o})})})};Ve.displayName=J;var Rn="MenuAnchor",we=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Rt,{...r,...o,ref:t})});we.displayName=Rn;var Ce="MenuPortal",[bn,We]=G(Ce,{forceMount:void 0}),Ye=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,c=K(Ce,t);return a.jsx(bn,{scope:t,forceMount:n,children:a.jsx(se,{present:n||c.open,children:a.jsx(bt,{asChild:!0,container:r,children:o})})})};Ye.displayName=Ce;var E="MenuContent",[In,_e]=G(E),ze=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:i.modal?a.jsx(yn,{...r,ref:t}):a.jsx(Sn,{...r,ref:t})})})})}),yn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu),o=s.useRef(null),r=j(t,o);return s.useEffect(()=>{const c=o.current;if(c)return It(c)},[]),a.jsx(Re,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:h(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Sn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu);return a.jsx(Re,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),En=un("MenuContent.ScrollLock"),Re=s.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:c,onCloseAutoFocus:i,disableOutsidePointerEvents:u,onEntryFocus:p,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,disableOutsideScroll:x,..._}=e,g=K(E,n),M=Q(E,n),y=ce(n),w=Ue(n),R=Mn(n),[T,P]=s.useState(null),D=s.useRef(null),b=j(t,D,g.onContentChange),$=s.useRef(0),k=s.useRef(""),V=s.useRef(0),W=s.useRef(null),ee=s.useRef("right"),te=s.useRef(0),le=x?Et:s.Fragment,N=x?{as:En,allowPinchZoom:!0}:void 0,wt=m=>{const U=k.current+m,F=R().filter(S=>!S.disabled),Y=document.activeElement,de=F.find(S=>S.ref.current===Y)?.textValue,fe=F.map(S=>S.textValue),Se=Kn(fe,U,de),z=F.find(S=>S.textValue===Se)?.ref.current;(function S(Ee){k.current=Ee,window.clearTimeout($.current),Ee!==""&&($.current=window.setTimeout(()=>S(""),1e3))})(U),z&&setTimeout(()=>z.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),St();const B=s.useCallback(m=>ee.current===W.current?.side&&Bn(m,W.current?.area),[]);return a.jsx(In,{scope:n,searchRef:k,onItemEnter:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),onItemLeave:s.useCallback(m=>{B(m)||(D.current?.focus(),P(null))},[B]),onTriggerLeave:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),pointerGraceTimerRef:V,onPointerGraceIntentChange:s.useCallback(m=>{W.current=m},[]),children:a.jsx(le,{...N,children:a.jsx(Pt,{asChild:!0,trapped:r,onMountAutoFocus:h(c,m=>{m.preventDefault(),D.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:a.jsx(Dt,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,children:a.jsx(sn,{asChild:!0,...w,dir:M.dir,orientation:"vertical",loop:o,currentTabStopId:T,onCurrentTabStopIdChange:P,onEntryFocus:h(p,m=>{M.isUsingKeyboardRef.current||m.preventDefault()}),preventScrollOnEntryFocus:!0,children:a.jsx(Nt,{role:"menu","aria-orientation":"vertical","data-state":ut(g.open),"data-radix-menu-content":"",dir:M.dir,...y,..._,ref:b,style:{outline:"none",..._.style},onKeyDown:h(_.onKeyDown,m=>{const F=m.target.closest("[data-radix-menu-content]")===m.currentTarget,Y=m.ctrlKey||m.altKey||m.metaKey,de=m.key.length===1;F&&(m.key==="Tab"&&m.preventDefault(),!Y&&de&&wt(m.key));const fe=D.current;if(m.target!==fe||!gn.includes(m.key))return;m.preventDefault();const z=R().filter(S=>!S.disabled).map(S=>S.ref.current);$e.includes(m.key)&&z.reverse(),Ln(z)}),onBlur:h(e.onBlur,m=>{m.currentTarget.contains(m.target)||(window.clearTimeout($.current),k.current="")}),onPointerMove:h(e.onPointerMove,Z(m=>{const U=m.target,F=te.current!==m.clientX;if(m.currentTarget.contains(U)&&F){const Y=m.clientX>te.current?"right":"left";ee.current=Y,te.current=m.clientX}}))})})})})})})});ze.displayName=E;var Pn="MenuGroup",be=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"group",...o,ref:t})});be.displayName=Pn;var Dn="MenuLabel",He=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{...o,ref:t})});He.displayName=Dn;var ne="MenuItem",De="menu.itemSelect",ie=s.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,c=s.useRef(null),i=Q(ne,e.__scopeMenu),u=_e(ne,e.__scopeMenu),p=j(t,c),f=s.useRef(!1),d=()=>{const l=c.current;if(!n&&l){const v=new CustomEvent(De,{bubbles:!0,cancelable:!0});l.addEventListener(De,C=>o?.(C),{once:!0}),yt(l,v),v.defaultPrevented?f.current=!1:i.onClose()}};return a.jsx(Xe,{...r,ref:p,disabled:n,onClick:h(e.onClick,d),onPointerDown:l=>{e.onPointerDown?.(l),f.current=!0},onPointerUp:h(e.onPointerUp,l=>{f.current||l.currentTarget?.click()}),onKeyDown:h(e.onKeyDown,l=>{const v=u.searchRef.current!=="";n||v&&l.key===" "||he.includes(l.key)&&(l.currentTarget.click(),l.preventDefault())})})});ie.displayName=ne;var Xe=s.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...c}=e,i=_e(ne,n),u=Ue(n),p=s.useRef(null),f=j(t,p),[d,l]=s.useState(!1),[v,C]=s.useState("");return s.useEffect(()=>{const x=p.current;x&&C((x.textContent??"").trim())},[c.children]),a.jsx(X.ItemSlot,{scope:n,disabled:o,textValue:r??v,children:a.jsx(cn,{asChild:!0,...u,focusable:!o,children:a.jsx(A.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...c,ref:f,onPointerMove:h(e.onPointerMove,Z(x=>{o?i.onItemLeave(x):(i.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:h(e.onPointerLeave,Z(x=>i.onItemLeave(x))),onFocus:h(e.onFocus,()=>l(!0)),onBlur:h(e.onBlur,()=>l(!1))})})})}),Nn="MenuCheckboxItem",Ze=s.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return a.jsx(tt,{scope:e.__scopeMenu,checked:n,children:a.jsx(ie,{role:"menuitemcheckbox","aria-checked":oe(n)?"mixed":n,...r,ref:t,"data-state":ye(n),onSelect:h(r.onSelect,()=>o?.(oe(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ze.displayName=Nn;var qe="MenuRadioGroup",[Tn,jn]=G(qe,{value:void 0,onValueChange:()=>{}}),Je=s.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,c=Me(o);return a.jsx(Tn,{scope:e.__scopeMenu,value:n,onValueChange:c,children:a.jsx(be,{...r,ref:t})})});Je.displayName=qe;var Qe="MenuRadioItem",et=s.forwardRef((e,t)=>{const{value:n,...o}=e,r=jn(Qe,e.__scopeMenu),c=n===r.value;return a.jsx(tt,{scope:e.__scopeMenu,checked:c,children:a.jsx(ie,{role:"menuitemradio","aria-checked":c,...o,ref:t,"data-state":ye(c),onSelect:h(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});et.displayName=Qe;var Ie="MenuItemIndicator",[tt,An]=G(Ie,{checked:!1}),nt=s.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,c=An(Ie,n);return a.jsx(se,{present:o||oe(c.checked)||c.checked===!0,children:a.jsx(A.span,{...r,ref:t,"data-state":ye(c.checked)})})});nt.displayName=Ie;var On="MenuSeparator",ot=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});ot.displayName=On;var kn="MenuArrow",rt=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Tt,{...r,...o,ref:t})});rt.displayName=kn;var Fn="MenuSub",[Vo,at]=G(Fn),H="MenuSubTrigger",st=s.forwardRef((e,t)=>{const n=K(H,e.__scopeMenu),o=Q(H,e.__scopeMenu),r=at(H,e.__scopeMenu),c=_e(H,e.__scopeMenu),i=s.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:p}=c,f={__scopeMenu:e.__scopeMenu},d=s.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return s.useEffect(()=>d,[d]),s.useEffect(()=>{const l=u.current;return()=>{window.clearTimeout(l),p(null)}},[u,p]),a.jsx(we,{asChild:!0,...f,children:a.jsx(Xe,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":ut(n.open),...e,ref:re(t,r.onTriggerChange),onClick:l=>{e.onClick?.(l),!(e.disabled||l.defaultPrevented)&&(l.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:h(e.onPointerMove,Z(l=>{c.onItemEnter(l),!l.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(c.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:h(e.onPointerLeave,Z(l=>{d();const v=n.content?.getBoundingClientRect();if(v){const C=n.content?.dataset.side,x=C==="right",_=x?-5:5,g=v[x?"left":"right"],M=v[x?"right":"left"];c.onPointerGraceIntentChange({area:[{x:l.clientX+_,y:l.clientY},{x:g,y:v.top},{x:M,y:v.top},{x:M,y:v.bottom},{x:g,y:v.bottom}],side:C}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(l),l.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:h(e.onKeyDown,l=>{const v=c.searchRef.current!=="";e.disabled||v&&l.key===" "||hn[o.dir].includes(l.key)&&(n.onOpenChange(!0),n.content?.focus(),l.preventDefault())})})})});st.displayName=H;var ct="MenuSubContent",it=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu),u=at(ct,e.__scopeMenu),p=s.useRef(null),f=j(t,p);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:a.jsx(Re,{id:u.contentId,"aria-labelledby":u.triggerId,...r,ref:f,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{i.isUsingKeyboardRef.current&&p.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:h(e.onFocusOutside,d=>{d.target!==u.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:h(e.onEscapeKeyDown,d=>{i.onClose(),d.preventDefault()}),onKeyDown:h(e.onKeyDown,d=>{const l=d.currentTarget.contains(d.target),v=xn[i.dir].includes(d.key);l&&v&&(c.onOpenChange(!1),u.trigger?.focus(),d.preventDefault())})})})})})});it.displayName=ct;function ut(e){return e?"open":"closed"}function oe(e){return e==="indeterminate"}function ye(e){return oe(e)?"indeterminate":e?"checked":"unchecked"}function Ln(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Gn(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function Kn(e,t,n){const r=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,c=n?e.indexOf(n):-1;let i=Gn(e,Math.max(c,0));r.length===1&&(i=i.filter(f=>f!==n));const p=i.find(f=>f.toLowerCase().startsWith(r.toLowerCase()));return p!==n?p:void 0}function $n(e,t){const{x:n,y:o}=e;let r=!1;for(let c=0,i=t.length-1;c<t.length;i=c++){const u=t[c],p=t[i],f=u.x,d=u.y,l=p.x,v=p.y;d>o!=v>o&&n<(l-f)*(o-d)/(v-d)+f&&(r=!r)}return r}function Bn(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return $n(n,t)}function Z(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Un=Ve,Vn=we,Wn=Ye,Yn=ze,zn=be,Hn=He,Xn=ie,Zn=Ze,qn=Je,Jn=et,Qn=nt,eo=ot,to=rt,no=st,oo=it,ue="DropdownMenu",[ro]=ae(ue,[Be]),I=Be(),[ao,lt]=ro(ue),dt=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:r,defaultOpen:c,onOpenChange:i,modal:u=!0}=e,p=I(t),f=s.useRef(null),[d,l]=Ne({prop:r,defaultProp:c??!1,onChange:i,caller:ue});return a.jsx(ao,{scope:t,triggerId:ve(),triggerRef:f,contentId:ve(),open:d,onOpenChange:l,onOpenToggle:s.useCallback(()=>l(v=>!v),[l]),modal:u,children:a.jsx(Un,{...p,open:d,onOpenChange:l,dir:o,modal:u,children:n})})};dt.displayName=ue;var ft="DropdownMenuTrigger",pt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,c=lt(ft,n),i=I(n);return a.jsx(Vn,{asChild:!0,...i,children:a.jsx(A.button,{type:"button",id:c.triggerId,"aria-haspopup":"menu","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":c.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:re(t,c.triggerRef),onPointerDown:h(e.onPointerDown,u=>{!o&&u.button===0&&u.ctrlKey===!1&&(c.onOpenToggle(),c.open||u.preventDefault())}),onKeyDown:h(e.onKeyDown,u=>{o||(["Enter"," "].includes(u.key)&&c.onOpenToggle(),u.key==="ArrowDown"&&c.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(u.key)&&u.preventDefault())})})})});pt.displayName=ft;var so="DropdownMenuPortal",mt=e=>{const{__scopeDropdownMenu:t,...n}=e,o=I(t);return a.jsx(Wn,{...o,...n})};mt.displayName=so;var vt="DropdownMenuContent",gt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=lt(vt,n),c=I(n),i=s.useRef(!1);return a.jsx(Yn,{id:r.contentId,"aria-labelledby":r.triggerId,...c,...o,ref:t,onCloseAutoFocus:h(e.onCloseAutoFocus,u=>{i.current||r.triggerRef.current?.focus(),i.current=!1,u.preventDefault()}),onInteractOutside:h(e.onInteractOutside,u=>{const p=u.detail.originalEvent,f=p.button===0&&p.ctrlKey===!0,d=p.button===2||f;(!r.modal||d)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gt.displayName=vt;var co="DropdownMenuGroup",io=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(zn,{...r,...o,ref:t})});io.displayName=co;var uo="DropdownMenuLabel",ht=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Hn,{...r,...o,ref:t})});ht.displayName=uo;var lo="DropdownMenuItem",xt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Xn,{...r,...o,ref:t})});xt.displayName=lo;var fo="DropdownMenuCheckboxItem",po=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Zn,{...r,...o,ref:t})});po.displayName=fo;var mo="DropdownMenuRadioGroup",vo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(qn,{...r,...o,ref:t})});vo.displayName=mo;var go="DropdownMenuRadioItem",ho=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Jn,{...r,...o,ref:t})});ho.displayName=go;var xo="DropdownMenuItemIndicator",Mo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Qn,{...r,...o,ref:t})});Mo.displayName=xo;var wo="DropdownMenuSeparator",Mt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(eo,{...r,...o,ref:t})});Mt.displayName=wo;var Co="DropdownMenuArrow",_o=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(to,{...r,...o,ref:t})});_o.displayName=Co;var Ro="DropdownMenuSubTrigger",bo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(no,{...r,...o,ref:t})});bo.displayName=Ro;var Io="DropdownMenuSubContent",yo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(oo,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yo.displayName=Io;var So=dt,Eo=pt,Po=mt,Do=gt,No=ht,To=xt,jo=Mt;function Ao({...e}){return a.jsx(So,{"data-slot":"dropdown-menu",...e})}function Oo({...e}){return a.jsx(Eo,{"data-slot":"dropdown-menu-trigger",...e})}function ko({className:e,sideOffset:t=4,...n}){return a.jsx(Po,{children:a.jsx(Do,{"data-slot":"dropdown-menu-content",sideOffset:t,className:O("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...n})})}function me({className:e,inset:t,variant:n="default",...o}){return a.jsx(To,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:O("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...o})}function Wo({className:e,inset:t,...n}){return a.jsx(No,{"data-slot":"dropdown-menu-label","data-inset":t,className:O("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...n})}function Yo({className:e,...t}){return a.jsx(jo,{"data-slot":"dropdown-menu-separator",className:O("bg-border -mx-1 my-1 h-px",e),...t})}const Fo=({className:e})=>{const{setTheme:t}=jt();return a.jsxs(Ao,{children:[a.jsx(Oo,{asChild:!0,children:a.jsxs(At,{variant:"ghost",size:"icon",className:e,children:[a.jsx(Ut,{className:"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),a.jsx($t,{className:"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),a.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}),a.jsxs(ko,{children:[a.jsx(me,{onClick:()=>t("light"),children:"Light"}),a.jsx(me,{onClick:()=>t("dark"),children:"Dark"}),a.jsx(me,{onClick:()=>t("system"),children:"System"})]})]})};function Lo({...e}){return a.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Go({className:e,...t}){return a.jsx("ol",{"data-slot":"breadcrumb-list",className:O("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",e),...t})}function Ko({className:e,...t}){return a.jsx("li",{"data-slot":"breadcrumb-item",className:O("inline-flex items-center gap-1.5",e),...t})}function $o({className:e,...t}){return a.jsx("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:O("text-foreground font-normal",e),...t})}function Bo({children:e,className:t,...n}){return a.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:O("[&>svg]:size-3.5",t),...n,children:e??a.jsx(Gt,{})})}function zo({breadcrumbs:e,actions:t,children:n}){const o=Ft(),r=s.useMemo(()=>e||o.pathname.split("/").filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)),[o.pathname,e]);return a.jsxs(a.Fragment,{children:[a.jsxs("header",{className:"flex h-12 shrink-0 items-center gap-2 border-b px-4",children:[a.jsx(Ot,{className:"-ml-1"}),a.jsx(kt,{orientation:"vertical",className:"mr-2 h-4"}),a.jsx(Lo,{children:a.jsx(Go,{children:r.map((c,i)=>a.jsxs(s.Fragment,{children:[a.jsx(Ko,{children:i===r.length-1?a.jsx($o,{children:c}):c}),i<r.length-1&&a.jsx(Bo,{})]},i))})}),a.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[t,a.jsx(Fo,{})]})]}),a.jsx("div",{className:"flex flex-1 flex-col",children:a.jsx("div",{className:"@container/main",children:a.jsx("div",{className:"flex flex-col gap-4 p-4",children:n})})})]})}export{Gt as C,Ao as D,zo as P,Oo as a,ko as b,me as c,Wo as d,Yo as e,je as f,Ae as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as i,j as t,B as o,i as n,J as c}from"./index-
|
|
1
|
+
import{c as i,j as t,B as o,i as n,J as c}from"./index-Ncy0-Qo7.js";import{m as d}from"./use-settings-form-submit-CXwtE1sI.js";const u=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],x=i("Trash2",u),m=({className:a,onClick:s})=>t.jsxs(o,{type:"button",variant:"destructive",className:n("",a),onClick:s,children:[t.jsx("span",{className:"sr-only",children:"Delete option"}),t.jsx(x,{className:"size-4"})]}),y=({className:a,showDelete:s=!1,onDelete:r})=>{const e=d();return t.jsxs("div",{className:n("flex items-center gap-2",a),children:[t.jsx(c,{type:"text",id:`${e.name}`,className:"form-input",value:e.state.value?String(e.state.value):"","aria-invalid":!!(e.state.meta.isTouched&&e.state.meta.errorMap.onBlur?.length>0),onBlur:e.handleBlur,onChange:l=>e.handleChange(l.target.value)}),s&&t.jsx(m,{onClick:r})]})};export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as n,K as s,i as o,M as d}from"./index-
|
|
1
|
+
import{j as n,K as s,i as o,M as d}from"./index-Ncy0-Qo7.js";const c=d("focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",destructive:"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 border-transparent text-white",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function u({className:e,variant:r,asChild:t=!1,...a}){const i=t?s:"span";return n.jsx(i,{"data-slot":"badge",className:o(c({variant:r}),e),...a})}export{u as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./index-Ncy0-Qo7.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("Check",e);export{t as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./index-
|
|
1
|
+
import{c as o}from"./index-Ncy0-Qo7.js";const n=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],c=o("ChevronDown",n);export{c as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as ge,j as e,y as W,z as X,A as Z,E as ee,F as se,L as O,G as te,B as v,H as ne,Q as je,r as g,u as re,t as J}from"./index-Bi48hI2z.js";import{u as le,i as q,j as ie,b as ae,c as z,F as oe,k as B,f as Ce,p as be,a as we,A as Ne}from"./use-settings-form-submit-CDRh-E9U.js";import{u as de}from"./useQuery-A4Hv_4uX.js";import{P as Se,D as ve,a as Fe,b as ye,d as Te,c as I}from"./Page-C3rteCZt.js";import{T as Ae,a as De,b as H,c as V,d as Ue,e as F}from"./table-DvgJU7Gh.js";import{P as ce,T as Le,E as Oe,a as Ve,b as ke}from"./test-tube-BIwmoM45.js";import{L as Pe}from"./loader-circle-M0gu1gZ-.js";const Ee=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]],Re=ge("Trash",Ee);function Me({open:l,onOpenChange:a,client:r,onEdit:d}){return e.jsx(W,{open:l,onOpenChange:a,children:e.jsxs(X,{className:"sm:max-w-md",children:[e.jsxs(Z,{children:[e.jsx(ee,{children:"View Torrent Client"}),e.jsx(se,{children:"View torrent client details."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"URL"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.url||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Username"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.user||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Password"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.password?"********":"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Read only"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.readOnly?"Yes":"No"})]})]}),e.jsxs(te,{children:[d&&e.jsxs(v,{type:"button",onClick:()=>d(r),className:"flex-1",children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsx(ne,{asChild:!0,className:"flex-1",children:e.jsx(v,{type:"button",variant:"outline",className:"flex-1",children:"Close"})})]})]})})}function _(l){return new URL(l).protocol}function Q(l){return new URL(l).host}const $e=l=>{try{const a=_(l),r=Q(l);return`${a}//${r}`}catch(a){return console.warn("Unable to strip credentials from client URL",a),l}};function qe({client:l,protocol:a,host:r,username:d="",password:h}){let o="";l!=="deluge"&&d&&(o=d),h&&(o+=`:${h}`),o+="@";const C=ue(l,!1);return`${a}//${o}${r}${C}`}function Be({client:l,protocol:a,host:r,username:d="",password:h="",readonly:o=!1,usePlugin:C=!1}){let m="";d&&(m+=d),h&&(m+=`:${h}`),m+="@";const w=ue(l,C);return`${l.toLowerCase()}:${o?"readonly:":""}${a}//${m}${r}${w}`}function ue(l,a){switch(l.toLowerCase()){case"qbittorrent":return"";case"transmission":return"/transmission/rpc";case"deluge":return"/json";case"rtorrent":return a?"/rutorrent/plugins/httprpc/action.php":"/RPC2";default:return""}}const Ie=async({client:l,url:a,username:r="",password:d,plugin:h=!1})=>{try{return{success:(await je.clients.testConnection.mutate({client:l.toLowerCase(),url:a,username:r,password:d,readonly:!1,plugin:h})).success}}catch(o){return console.error("Error testing connection:",o),{success:!1}}},K={qbittorrent:"qBittorrent",rtorrent:"rTorrent",transmission:"Transmission",deluge:"Deluge"};function He({open:l,onOpenChange:a,mode:r,client:d}){const[h,o]=g.useState(!1),{isFieldRequired:C}=le(q),m=re(),{data:w}=de(m.settings.get.queryOptions(void 0,{select:t=>t.config.torrentClients||[]})),{saveConfig:N,isLoading:k}=ie(),c=ae({...z,defaultValues:d??{},onSubmit:async({value:t})=>{try{const p={...t,readOnly:t?.readOnly??!1},x=q.safeParse(p);if(x.success){const i=x.data,f=_(i.url),S=Q(i.url),j=Be({client:i.client,protocol:f,host:S,username:i.user??"",password:i.password??"",readonly:i.readOnly});let b;r==="edit"&&d&&d.index!==void 0?(b=[...w||[]],b[d.index]=j):b=[...w||[],j],N({torrentClients:b}),a(!1)}else throw console.error("FULL VALIDATION FAILED:",x.error.format()),new Error("Validation failed")}catch(p){return console.error("Exception during full validation:",p),{status:"error",error:{_form:"An unexpected error occurred during validation"}}}},validators:{onSubmit:q}}),P=async()=>{o(!0);const t=String(c.getFieldValue("client")),p=String(c.getFieldValue("url")),x=String(c.getFieldValue("user")||""),i=String(c.getFieldValue("password")||""),f=qe({client:t,protocol:_(p),host:Q(p),username:x,password:i});(await Ie({client:t,url:f,username:x,password:i,plugin:!1})).success?(J.success("Connection successful!",{description:"The torrent client connection was successful."}),o(!1)):(J.error("Connection failed",{description:"Failed to connect to the torrent client."}),o(!1))},y=k||h;return e.jsx(W,{open:l,onOpenChange:a,children:e.jsx(X,{className:"sm:max-w-md",children:e.jsx(oe,{isFieldRequired:C,children:e.jsxs("form",{onSubmit:t=>{t.preventDefault(),t.stopPropagation(),c.handleSubmit()},children:[e.jsxs(Z,{children:[e.jsx(ee,{children:r==="edit"?"Edit Client":"Create Client"}),e.jsx(se,{children:r==="edit"?"Edit the details of the torrent client.":"Create a new torrent client."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"client",children:t=>e.jsxs(e.Fragment,{children:[e.jsx(t.SelectField,{label:"Client",options:K}),t.state.value===K.rtorrent.toLowerCase()&&e.jsx(c.AppField,{name:"plugin",children:p=>e.jsx(p.SwitchField,{label:"Use Plugin URL"})})]})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"url",children:t=>e.jsx(t.TextField,{label:"Client URL"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"user",children:t=>e.jsx(t.TextField,{label:"User"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"password",children:t=>e.jsx(t.TextField,{label:"Password",type:"password"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"readOnly",children:t=>e.jsx(t.SwitchField,{label:"Read only"})})}),e.jsx(c.Subscribe,{selector:t=>({urlValue:t.values.url,urlMeta:t.fieldMeta.url,userValue:t.values.user,userMeta:t.fieldMeta.user,passwordValue:t.values.password,passwordMeta:t.fieldMeta.password,clientValue:t.values.client}),children:({urlValue:t,urlMeta:p,userValue:x,userMeta:i,passwordValue:f,passwordMeta:S,clientValue:j})=>{const b=t&&!p?.errors?.length,E=j==="transmission"&&f===void 0?!0:f&&!S?.errors?.length,R=j==="deluge"||j==="transmission"?!0:x&&!i?.errors?.length,T=b&&E&&R;return e.jsxs(e.Fragment,{children:[e.jsx(v,{type:"button",variant:"outline",onClick:P,disabled:!T,className:"w-full",children:h?e.jsxs(e.Fragment,{children:[e.jsx(Pe,{className:"animate-spin"}),"Testing connection..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"mr-2"}),"Test Connection"]})}),j==="qbittorrent"&&e.jsxs("p",{className:"text-muted-foreground -mt-4 px-2 text-sm italic",children:["Note: Testing connections can return false positives if"," ",e.jsx("code",{className:"bg-yellow-100 px-1",children:"Bypass auth on localhost"})," ","is enabled in qBittorrent."]})]})}})]}),e.jsxs(te,{className:"mt-6",children:[e.jsx(c.AppForm,{children:e.jsx(c.SubmitButton,{label:r==="edit"?"Update":"Create",actionLabel:r==="edit"?"Updating...":"Creating..."})}),e.jsx(ne,{asChild:!0,children:e.jsx(v,{type:"button",variant:"outline",disabled:y,children:"Cancel"})})]})]})})})})}function We(){const l=re(),{saveConfig:a}=ie(),[r,d]=g.useState(void 0),[h,o]=g.useState(null),[C,m]=g.useState(null),[w,N]=g.useState(!1),[k,c]=g.useState(!1),[P,y]=g.useState("create"),{isFieldRequired:t}=le(B),{data:p}=de(l.settings.get.queryOptions(void 0,{select:s=>{const n=Ce(s.config);return be(B,n,{includeUndefined:!0})}})),x=we(),i=ae({...z,defaultValues:p??z.defaultValues,onSubmit:x,validators:{onSubmit:B}}),[f,S]=g.useState(null);g.useEffect(()=>{f&&(document.getElementById(f)?.focus(),S(null))},[f]),g.useEffect(()=>{const s=p?.torrentClients??[];if(!s.length){d([]);return}const n=s.map((u,xe)=>{if(!u)return null;let A="",D="",U=!1,M="",$="";if(typeof u=="object")A=u.client,U=u.readOnly||!1,D=u.url,M=u.user||"",$=u.password||"";else if(typeof u=="string"){A=String(u).split(":")[0],U=String(u).includes("readonly");const fe=String(u).indexOf(":"),L=U?String(u).substring(String(u).indexOf(":",fe+1)+1):String(u).substring(String(u).indexOf(":")+1);if(!L)return null;const G=$e(L);if(!G)return null;D=G,M=j(L),$=b(L)}return!A||!D?null:{index:xe,client:A,url:D,user:M,password:$,readOnly:U}}).filter(Boolean);d(n)},[p]);const j=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];return n.includes(":")?n.split(":")[0]:n.replace(":","")}return""},b=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];if(n.includes(":"))return n.split(":")[1]}return""},E=s=>{s.preventDefault(),s.stopPropagation(),m(null),y("create"),c(!0)},R=s=>{N(s),s||o(null)},T=(s,n)=>{s.preventDefault(),s.stopPropagation(),o(null),m(n),N(!0)},Y=s=>{o(null),m(s),y("edit"),N(!1),c(!0)},pe=s=>{o(null);const n=r?.filter(u=>u.url!==s.url);d(n),a({torrentClients:n||[]})},he=s=>{c(s),s||o(null)},me=e.jsxs(v,{onClick:E,type:"button",size:"sm",children:[e.jsx(ke,{className:"mr-2 h-4 w-4"}),"Add Torrent Client"]});return e.jsxs(Se,{breadcrumbs:["Settings","Torrent Clients"],actions:me,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Torrent Clients"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage your torrent clients"})]}),r?e.jsx("div",{className:"mt-4 mb-7 overflow-x-auto rounded-lg border",children:e.jsxs(Ae,{children:[e.jsx(De,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(H,{className:"border-b",children:[e.jsx(V,{children:"Client"}),e.jsx(V,{children:"RPC URL"}),e.jsx(V,{children:"Read only"}),e.jsx(V,{className:"text-right",children:"Actions"})]})}),e.jsxs(Ue,{children:[r?.length===0&&e.jsx(H,{children:e.jsx(F,{colSpan:6,className:"text-center",children:e.jsx("p",{className:"text-muted-foreground",children:"No torrent clients configured. Add a client to start downloading."})})}),r?.map(s=>e.jsxs(H,{className:"hover:bg-muted/50 cursor-pointer",onClick:n=>T(n,s),children:[e.jsx(F,{className:"font-medium",children:s.client}),e.jsx(F,{className:"font-mono text-sm",children:s.url}),e.jsx(F,{children:s.readOnly?"Yes":"No"}),e.jsx(F,{className:"text-right",children:e.jsxs(ve,{open:h===s.url,onOpenChange:n=>o(n?s.url:null),children:[e.jsx(Fe,{asChild:!0,children:e.jsxs(v,{variant:"ghost",className:"h-8 w-8 p-0",type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation()},children:[e.jsx("span",{className:"sr-only",children:"Actions"}),e.jsx(Oe,{className:"h-4 w-4"})]})}),e.jsxs(ye,{align:"end",children:[e.jsx(Te,{children:"Actions"}),e.jsxs(I,{onClick:n=>{T(n,s)},children:[e.jsx(Ve,{className:"mr-2 h-4 w-4"}),"View Details"]}),e.jsxs(I,{onClick:n=>{n.stopPropagation(),Y(s)},children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsxs(I,{variant:"destructive",onClick:n=>{n.stopPropagation(),pe(s)},children:[e.jsx(Re,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]})})]},s.url))]})]})}):e.jsx("p",{className:"mb-4 text-lg",children:"No torrent clients configured. Add a client"}),e.jsx(oe,{isFieldRequired:t,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:s=>{s.preventDefault(),s.stopPropagation(),i.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("h2",{className:"text-xl font-bold",children:"Torrent Client Options"}),e.jsxs("fieldset",{className:"form-fieldset w-full gap-6 rounded-md",children:[e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"action",children:s=>e.jsx(s.SelectField,{label:"Action",options:Ne})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"linkCategory",validators:{},children:s=>e.jsx(s.TextField,{label:"Link Category",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"torrentDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Torrent Directory",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"outputDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Output Directory",required:!1})})}),e.jsxs("div",{className:"form-field-switches col-span-2 gap-x-12",children:[e.jsx(i.AppField,{name:"skipRecheck",children:s=>e.jsx(s.SwitchField,{label:"Skip Recheck"})}),e.jsx(i.AppField,{name:"useClientTorrents",children:s=>e.jsx(s.SwitchField,{label:"Use Client Torrents"})}),e.jsx(i.AppField,{name:"duplicateCategories",children:s=>e.jsx(s.SwitchField,{label:"Duplicate Categories"})})]})]}),e.jsx(i.AppForm,{children:e.jsx(i.SubmitButton,{})})]})})})]}),e.jsx(Me,{open:w,onOpenChange:R,client:C,onEdit:Y}),e.jsx(He,{open:k,onOpenChange:he,client:C,mode:P})]})}export{We as component};
|
|
1
|
+
import{c as ge,j as e,y as W,z as X,A as Z,E as ee,F as se,L as O,G as te,B as v,H as ne,Q as je,r as g,u as re,t as J}from"./index-Ncy0-Qo7.js";import{u as le,i as q,j as ie,b as ae,c as z,F as oe,k as B,f as Ce,p as be,a as we,A as Ne}from"./use-settings-form-submit-CXwtE1sI.js";import{u as de}from"./useQuery-DD10sbzn.js";import{P as Se,D as ve,a as Fe,b as ye,d as Te,c as I}from"./Page-B68mlTwU.js";import{T as Ae,a as De,b as H,c as V,d as Ue,e as F}from"./table-qEFWauuw.js";import{P as ce,T as Le,E as Oe,a as Ve,b as ke}from"./test-tube-DhD6uWdp.js";import{L as Pe}from"./loader-circle-Bz67bJa3.js";const Ee=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]],Re=ge("Trash",Ee);function Me({open:l,onOpenChange:a,client:r,onEdit:d}){return e.jsx(W,{open:l,onOpenChange:a,children:e.jsxs(X,{className:"sm:max-w-md",children:[e.jsxs(Z,{children:[e.jsx(ee,{children:"View Torrent Client"}),e.jsx(se,{children:"View torrent client details."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"URL"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.url||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Username"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.user||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Password"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.password?"********":"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Read only"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.readOnly?"Yes":"No"})]})]}),e.jsxs(te,{children:[d&&e.jsxs(v,{type:"button",onClick:()=>d(r),className:"flex-1",children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsx(ne,{asChild:!0,className:"flex-1",children:e.jsx(v,{type:"button",variant:"outline",className:"flex-1",children:"Close"})})]})]})})}function _(l){return new URL(l).protocol}function Q(l){return new URL(l).host}const $e=l=>{try{const a=_(l),r=Q(l);return`${a}//${r}`}catch(a){return console.warn("Unable to strip credentials from client URL",a),l}};function qe({client:l,protocol:a,host:r,username:d="",password:h}){let o="";l!=="deluge"&&d&&(o=d),h&&(o+=`:${h}`),o+="@";const C=ue(l,!1);return`${a}//${o}${r}${C}`}function Be({client:l,protocol:a,host:r,username:d="",password:h="",readonly:o=!1,usePlugin:C=!1}){let m="";d&&(m+=d),h&&(m+=`:${h}`),m+="@";const w=ue(l,C);return`${l.toLowerCase()}:${o?"readonly:":""}${a}//${m}${r}${w}`}function ue(l,a){switch(l.toLowerCase()){case"qbittorrent":return"";case"transmission":return"/transmission/rpc";case"deluge":return"/json";case"rtorrent":return a?"/rutorrent/plugins/httprpc/action.php":"/RPC2";default:return""}}const Ie=async({client:l,url:a,username:r="",password:d,plugin:h=!1})=>{try{return{success:(await je.clients.testConnection.mutate({client:l.toLowerCase(),url:a,username:r,password:d,readonly:!1,plugin:h})).success}}catch(o){return console.error("Error testing connection:",o),{success:!1}}},K={qbittorrent:"qBittorrent",rtorrent:"rTorrent",transmission:"Transmission",deluge:"Deluge"};function He({open:l,onOpenChange:a,mode:r,client:d}){const[h,o]=g.useState(!1),{isFieldRequired:C}=le(q),m=re(),{data:w}=de(m.settings.get.queryOptions(void 0,{select:t=>t.config.torrentClients||[]})),{saveConfig:N,isLoading:k}=ie(),c=ae({...z,defaultValues:d??{},onSubmit:async({value:t})=>{try{const p={...t,readOnly:t?.readOnly??!1},x=q.safeParse(p);if(x.success){const i=x.data,f=_(i.url),S=Q(i.url),j=Be({client:i.client,protocol:f,host:S,username:i.user??"",password:i.password??"",readonly:i.readOnly});let b;r==="edit"&&d&&d.index!==void 0?(b=[...w||[]],b[d.index]=j):b=[...w||[],j],N({torrentClients:b}),a(!1)}else throw console.error("FULL VALIDATION FAILED:",x.error.format()),new Error("Validation failed")}catch(p){return console.error("Exception during full validation:",p),{status:"error",error:{_form:"An unexpected error occurred during validation"}}}},validators:{onSubmit:q}}),P=async()=>{o(!0);const t=String(c.getFieldValue("client")),p=String(c.getFieldValue("url")),x=String(c.getFieldValue("user")||""),i=String(c.getFieldValue("password")||""),f=qe({client:t,protocol:_(p),host:Q(p),username:x,password:i});(await Ie({client:t,url:f,username:x,password:i,plugin:!1})).success?(J.success("Connection successful!",{description:"The torrent client connection was successful."}),o(!1)):(J.error("Connection failed",{description:"Failed to connect to the torrent client."}),o(!1))},y=k||h;return e.jsx(W,{open:l,onOpenChange:a,children:e.jsx(X,{className:"sm:max-w-md",children:e.jsx(oe,{isFieldRequired:C,children:e.jsxs("form",{onSubmit:t=>{t.preventDefault(),t.stopPropagation(),c.handleSubmit()},children:[e.jsxs(Z,{children:[e.jsx(ee,{children:r==="edit"?"Edit Client":"Create Client"}),e.jsx(se,{children:r==="edit"?"Edit the details of the torrent client.":"Create a new torrent client."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"client",children:t=>e.jsxs(e.Fragment,{children:[e.jsx(t.SelectField,{label:"Client",options:K}),t.state.value===K.rtorrent.toLowerCase()&&e.jsx(c.AppField,{name:"plugin",children:p=>e.jsx(p.SwitchField,{label:"Use Plugin URL"})})]})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"url",children:t=>e.jsx(t.TextField,{label:"Client URL"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"user",children:t=>e.jsx(t.TextField,{label:"User"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"password",children:t=>e.jsx(t.TextField,{label:"Password",type:"password"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"readOnly",children:t=>e.jsx(t.SwitchField,{label:"Read only"})})}),e.jsx(c.Subscribe,{selector:t=>({urlValue:t.values.url,urlMeta:t.fieldMeta.url,userValue:t.values.user,userMeta:t.fieldMeta.user,passwordValue:t.values.password,passwordMeta:t.fieldMeta.password,clientValue:t.values.client}),children:({urlValue:t,urlMeta:p,userValue:x,userMeta:i,passwordValue:f,passwordMeta:S,clientValue:j})=>{const b=t&&!p?.errors?.length,E=j==="transmission"&&f===void 0?!0:f&&!S?.errors?.length,R=j==="deluge"||j==="transmission"?!0:x&&!i?.errors?.length,T=b&&E&&R;return e.jsxs(e.Fragment,{children:[e.jsx(v,{type:"button",variant:"outline",onClick:P,disabled:!T,className:"w-full",children:h?e.jsxs(e.Fragment,{children:[e.jsx(Pe,{className:"animate-spin"}),"Testing connection..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"mr-2"}),"Test Connection"]})}),j==="qbittorrent"&&e.jsxs("p",{className:"text-muted-foreground -mt-4 px-2 text-sm italic",children:["Note: Testing connections can return false positives if"," ",e.jsx("code",{className:"bg-yellow-100 px-1",children:"Bypass auth on localhost"})," ","is enabled in qBittorrent."]})]})}})]}),e.jsxs(te,{className:"mt-6",children:[e.jsx(c.AppForm,{children:e.jsx(c.SubmitButton,{label:r==="edit"?"Update":"Create",actionLabel:r==="edit"?"Updating...":"Creating..."})}),e.jsx(ne,{asChild:!0,children:e.jsx(v,{type:"button",variant:"outline",disabled:y,children:"Cancel"})})]})]})})})})}function We(){const l=re(),{saveConfig:a}=ie(),[r,d]=g.useState(void 0),[h,o]=g.useState(null),[C,m]=g.useState(null),[w,N]=g.useState(!1),[k,c]=g.useState(!1),[P,y]=g.useState("create"),{isFieldRequired:t}=le(B),{data:p}=de(l.settings.get.queryOptions(void 0,{select:s=>{const n=Ce(s.config);return be(B,n,{includeUndefined:!0})}})),x=we(),i=ae({...z,defaultValues:p??z.defaultValues,onSubmit:x,validators:{onSubmit:B}}),[f,S]=g.useState(null);g.useEffect(()=>{f&&(document.getElementById(f)?.focus(),S(null))},[f]),g.useEffect(()=>{const s=p?.torrentClients??[];if(!s.length){d([]);return}const n=s.map((u,xe)=>{if(!u)return null;let A="",D="",U=!1,M="",$="";if(typeof u=="object")A=u.client,U=u.readOnly||!1,D=u.url,M=u.user||"",$=u.password||"";else if(typeof u=="string"){A=String(u).split(":")[0],U=String(u).includes("readonly");const fe=String(u).indexOf(":"),L=U?String(u).substring(String(u).indexOf(":",fe+1)+1):String(u).substring(String(u).indexOf(":")+1);if(!L)return null;const G=$e(L);if(!G)return null;D=G,M=j(L),$=b(L)}return!A||!D?null:{index:xe,client:A,url:D,user:M,password:$,readOnly:U}}).filter(Boolean);d(n)},[p]);const j=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];return n.includes(":")?n.split(":")[0]:n.replace(":","")}return""},b=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];if(n.includes(":"))return n.split(":")[1]}return""},E=s=>{s.preventDefault(),s.stopPropagation(),m(null),y("create"),c(!0)},R=s=>{N(s),s||o(null)},T=(s,n)=>{s.preventDefault(),s.stopPropagation(),o(null),m(n),N(!0)},Y=s=>{o(null),m(s),y("edit"),N(!1),c(!0)},pe=s=>{o(null);const n=r?.filter(u=>u.url!==s.url);d(n),a({torrentClients:n||[]})},he=s=>{c(s),s||o(null)},me=e.jsxs(v,{onClick:E,type:"button",size:"sm",children:[e.jsx(ke,{className:"mr-2 h-4 w-4"}),"Add Torrent Client"]});return e.jsxs(Se,{breadcrumbs:["Settings","Torrent Clients"],actions:me,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Torrent Clients"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage your torrent clients"})]}),r?e.jsx("div",{className:"mt-4 mb-7 overflow-x-auto rounded-lg border",children:e.jsxs(Ae,{children:[e.jsx(De,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(H,{className:"border-b",children:[e.jsx(V,{children:"Client"}),e.jsx(V,{children:"RPC URL"}),e.jsx(V,{children:"Read only"}),e.jsx(V,{className:"text-right",children:"Actions"})]})}),e.jsxs(Ue,{children:[r?.length===0&&e.jsx(H,{children:e.jsx(F,{colSpan:6,className:"text-center",children:e.jsx("p",{className:"text-muted-foreground",children:"No torrent clients configured. Add a client to start downloading."})})}),r?.map(s=>e.jsxs(H,{className:"hover:bg-muted/50 cursor-pointer",onClick:n=>T(n,s),children:[e.jsx(F,{className:"font-medium",children:s.client}),e.jsx(F,{className:"font-mono text-sm",children:s.url}),e.jsx(F,{children:s.readOnly?"Yes":"No"}),e.jsx(F,{className:"text-right",children:e.jsxs(ve,{open:h===s.url,onOpenChange:n=>o(n?s.url:null),children:[e.jsx(Fe,{asChild:!0,children:e.jsxs(v,{variant:"ghost",className:"h-8 w-8 p-0",type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation()},children:[e.jsx("span",{className:"sr-only",children:"Actions"}),e.jsx(Oe,{className:"h-4 w-4"})]})}),e.jsxs(ye,{align:"end",children:[e.jsx(Te,{children:"Actions"}),e.jsxs(I,{onClick:n=>{T(n,s)},children:[e.jsx(Ve,{className:"mr-2 h-4 w-4"}),"View Details"]}),e.jsxs(I,{onClick:n=>{n.stopPropagation(),Y(s)},children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsxs(I,{variant:"destructive",onClick:n=>{n.stopPropagation(),pe(s)},children:[e.jsx(Re,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]})})]},s.url))]})]})}):e.jsx("p",{className:"mb-4 text-lg",children:"No torrent clients configured. Add a client"}),e.jsx(oe,{isFieldRequired:t,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:s=>{s.preventDefault(),s.stopPropagation(),i.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("h2",{className:"text-xl font-bold",children:"Torrent Client Options"}),e.jsxs("fieldset",{className:"form-fieldset w-full gap-6 rounded-md",children:[e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"action",children:s=>e.jsx(s.SelectField,{label:"Action",options:Ne})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"linkCategory",validators:{},children:s=>e.jsx(s.TextField,{label:"Link Category",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"torrentDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Torrent Directory",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"outputDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Output Directory",required:!1})})}),e.jsxs("div",{className:"form-field-switches col-span-2 gap-x-12",children:[e.jsx(i.AppField,{name:"skipRecheck",children:s=>e.jsx(s.SwitchField,{label:"Skip Recheck"})}),e.jsx(i.AppField,{name:"useClientTorrents",children:s=>e.jsx(s.SwitchField,{label:"Use Client Torrents"})}),e.jsx(i.AppField,{name:"duplicateCategories",children:s=>e.jsx(s.SwitchField,{label:"Duplicate Categories"})})]})]}),e.jsx(i.AppForm,{children:e.jsx(i.SubmitButton,{})})]})})})]}),e.jsx(Me,{open:w,onOpenChange:R,client:C,onEdit:Y}),e.jsx(He,{open:k,onOpenChange:he,client:C,mode:P})]})}export{We as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as g,r as x,j as e,L as d,B as i}from"./index-
|
|
1
|
+
import{u as g,r as x,j as e,L as d,B as i}from"./index-Ncy0-Qo7.js";import{F as m}from"./FieldInfo-sRlPRNSK.js";import{u as y,h as u,f as N,p as f,a as A,b as $,c as j,F as S,d as h,l as p}from"./use-settings-form-submit-CXwtE1sI.js";import{u as w}from"./useQuery-DD10sbzn.js";import{P as D}from"./Page-B68mlTwU.js";function R(){const{isFieldRequired:n}=y(u),v=g(),{data:b}=w(v.settings.get.queryOptions(void 0,{select:a=>{const r=N(a.config);return f(u,r,{includeUndefined:!0})}})),F=A(),l=$({...j,defaultValues:b??j.defaultValues,onSubmit:F,validators:{onSubmit:u}}),[c,o]=x.useState(null);return x.useEffect(()=>{c&&(document.getElementById(c)?.focus(),o(null))},[c]),e.jsx(D,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Connected App Settings"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage apps connected to Cross-seed."})]}),e.jsx(S,{isFieldRequired:n,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:a=>{a.preventDefault(),a.stopPropagation(),l.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx("div",{children:e.jsx(l.AppField,{name:"host",validators:{},children:a=>e.jsx(a.TextField,{label:"Host"})})}),e.jsx("div",{className:"",children:e.jsx(l.AppField,{name:"port",validators:{},children:a=>e.jsx(a.TextField,{label:"Port",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(l.AppField,{name:"apiKey",validators:{},children:a=>e.jsx(a.TextField,{label:"API Key"})})})]}),e.jsxs("fieldset",{className:"form-fieldset border-border w-full gap-6 rounded-md border",children:[e.jsx("legend",{children:"Connect to Other Apps"}),e.jsx("div",{className:"",children:e.jsx(l.Field,{name:"sonarr",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Sonarr URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`sonarr[${s}]`,validators:{onBlur:h().url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{children:e.jsx(l.Field,{name:"radarr",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Radarr URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`radarr[${s}]`,validators:{onBlur:h().url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{className:"",children:e.jsx(l.Field,{name:"notificationWebhookUrls",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Notification Webhook URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value?.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`notificationWebhookUrls[${s}]`,validators:{onBlur:h().min(3).url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})})]}),e.jsx(l.AppForm,{children:e.jsx(l.SubmitButton,{})})]})})})]})})}export{R as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,u as O,I as k,l as E,t as o,j as s,B as x}from"./index-Ncy0-Qo7.js";import{u as w}from"./useQuery-DD10sbzn.js";import{P as h}from"./Page-B68mlTwU.js";function P(){const[c,d]=r.useState(""),[a,l]=r.useState(!0),[p,u]=r.useState(""),f=r.useRef(null),m=O(),v=k(),{data:n,isLoading:b}=w(m.settings.get.queryOptions()),i=E(m.settings.replace.mutationOptions({onSuccess:()=>{o.success("Settings saved successfully!",{description:"Your changes will take effect on the next restart."}),v.invalidateQueries({queryKey:["settings.get"]})},onError:e=>{const t=e instanceof Error?e.message:"An unknown error occurred";o.error("Failed to save settings",{description:t})}})),g=()=>{const e=f.current;if(e){const t=window.pageYOffset||document.documentElement.scrollTop;e.style.height="auto",e.style.height=`${e.scrollHeight}px`,requestAnimationFrame(()=>{window.scrollTo(0,t)})}};r.useEffect(()=>{n?.config&&d(JSON.stringify(n.config,null,2))},[n]),r.useEffect(()=>{g()},[c]);const y=e=>{try{return JSON.parse(e),l(!0),u(""),!0}catch(t){return l(!1),u(t instanceof Error?t.message:"Invalid JSON"),!1}},j=e=>{d(e),y(e),setTimeout(g,0)},S=()=>{if(!a){o.error("Cannot save invalid JSON");return}try{const e=JSON.parse(c);i.mutate(e)}catch{o.error("Failed to parse JSON")}},N=()=>{n?.config&&(d(JSON.stringify(n.config,null,2)),l(!0),u(""),setTimeout(g,0))};if(b)return s.jsx(h,{breadcrumbs:["Diagnostics","Debug"],children:s.jsx("div",{className:"flex items-center justify-center p-8",children:s.jsx("div",{children:"Loading settings..."})})});const J=s.jsxs("div",{className:"flex gap-2",children:[s.jsx(x,{variant:"outline",onClick:N,disabled:i.isPending,children:"Reset"}),s.jsx(x,{onClick:S,disabled:!a||i.isPending,children:i.isPending?"Saving...":"Save"})]});return s.jsx(h,{breadcrumbs:["Diagnostics","Debug"],actions:J,children:s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Debug Settings"}),s.jsx("p",{className:"text-muted-foreground",children:"Raw JSON editor for debugging configuration issues"})]}),s.jsx("div",{className:"relative",children:s.jsx("textarea",{ref:f,value:c,onChange:e=>j(e.target.value),className:`min-h-96 w-full resize-none overflow-hidden rounded-md border p-3 font-mono text-sm ${a?"border-gray-300 dark:border-gray-600":"border-red-500 dark:border-red-400"} bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100`,spellCheck:!1,placeholder:"Loading settings..."})}),!a&&s.jsxs("div",{className:"rounded-md bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-400",children:[s.jsx("strong",{children:"JSON Error:"})," ",p]})]})})}export{P as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as f,r as d,j as e,L as m,B as u}from"./index-
|
|
1
|
+
import{u as f,r as d,j as e,L as m,B as u}from"./index-Ncy0-Qo7.js";import{u as g,e as c,f as b,p as y,a as D,b as N,c as p,F as S,d as h,L as A}from"./use-settings-form-submit-CXwtE1sI.js";import{F as x}from"./FieldInfo-sRlPRNSK.js";import{u as k}from"./useQuery-DD10sbzn.js";import{P as $}from"./Page-B68mlTwU.js";function T(){const{isFieldRequired:n}=g(c),j=f(),{data:v}=k(j.settings.get.queryOptions(void 0,{select:a=>{const r=b(a.config);return y(c,r,{includeUndefined:!0})}})),F=D(),s=N({...p,defaultValues:v??p.defaultValues,onSubmit:F,validators:{onSubmit:c}}),[i,o]=d.useState(null);return d.useEffect(()=>{i&&(document.getElementById(i)?.focus(),o(null))},[i]),e.jsx($,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Directory & Path Settings"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage the directories and paths used by cross-seed."})]}),e.jsx(S,{isFieldRequired:n,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:a=>{a.preventDefault(),a.stopPropagation(),s.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx("div",{className:"",children:e.jsx(s.Field,{name:"dataDirs",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(m,{htmlFor:a.name,className:"block w-full",children:["Data Directories",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,t)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(s.AppField,{name:`dataDirs[${t}]`,validators:{onBlur:h()},children:l=>e.jsx(l.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:t,onDelete:()=>{a.removeValue(t)}})}),e.jsx(s.Subscribe,{selector:l=>l.fieldMeta[`${a.name}[${t}]`],children:l=>e.jsx(x,{fieldMeta:l})})]},t)),e.jsx(u,{variant:"secondary",type:"button",onClick:()=>{a.pushValue(""),a.state.value?.length&&o(`${a.name}-${a.state.value.length-1}`)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx(s.AppField,{name:"flatLinking",validators:{},children:a=>e.jsx(a.SwitchField,{label:"Flat Linking",className:"form-field__switch flex flex-col items-start gap-5"})}),e.jsx("div",{className:"",children:e.jsx(s.AppField,{name:"linkType",children:a=>e.jsx(a.SelectField,{label:"Link Type",options:A})})}),e.jsx("div",{className:"",children:e.jsx(s.Field,{name:"linkDirs",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(m,{htmlFor:a.name,className:"block w-full",children:["Link Directories",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value?.map((r,t)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(s.AppField,{name:`linkDirs[${t}]`,validators:{onBlur:h()},children:l=>e.jsx(l.ArrayField,{showDelete:(a.state.value&&a.state.value?.length>1)??void 0,index:t,onDelete:()=>{a.removeValue(t)}})}),e.jsx(s.Subscribe,{selector:l=>l.fieldMeta[`${a.name}[${t}]`],children:l=>e.jsx(x,{fieldMeta:l})})]},t)),e.jsx(u,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{className:"",children:e.jsx(s.AppField,{name:"maxDataDepth",validators:{},children:a=>e.jsx(a.TextField,{label:"Max Data Depth",type:"number"})})})]}),e.jsx(s.AppForm,{children:e.jsx(s.SubmitButton,{})})]})})})]})})}export{T as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,j as r,i as S,J as D,L as C}from"./index-
|
|
1
|
+
import{r as i,j as r,i as S,J as D,L as C}from"./index-Ncy0-Qo7.js";import{S as L,a as M,b as P,c as y,d as E}from"./select-GZr6C6eZ.js";import{m as R}from"./use-settings-form-submit-CXwtE1sI.js";import{u as T,R as k}from"./use-form-validation-context-D2oA54L_.js";import{F as w}from"./FieldInfo-sRlPRNSK.js";import"./Page-B68mlTwU.js";import"./index-BBzHsn7u.js";import"./chevron-down-8PGvFYxV.js";import"./check-NQsw6yBl.js";const B=[{label:"Millisecond",labelPlural:"Milliseconds",value:"milliseconds",ms:1},{label:"Second",labelPlural:"Seconds",value:"seconds",ms:1e3},{label:"Minute",labelPlural:"Minutes",value:"minutes",ms:60*1e3},{label:"Hour",labelPlural:"Hours",value:"hours",ms:3600*1e3},{label:"Day",labelPlural:"Days",value:"days",ms:1440*60*1e3}];function H({id:e,className:l,value:a,onChange:t,onBlur:d,units:c=B,disabled:p=!1}){const s=i.useMemo(()=>c,[c]),u=i.useMemo(()=>A(a),[a]),[o,h]=i.useState(()=>u!=null?v(u,s).value:s[2]?.value??s[0].value),[x,f]=i.useState(""),[g,U]=i.useState(!1),b=s.find(n=>n.value===o)??s[0],F=N(x),j=_(b,F);i.useEffect(()=>{if(!g&&u!=null){const n=v(u,s);n.value!==o&&h(n.value)}},[g,u,o,s]),i.useEffect(()=>{if(u==null){f("");return}const n=s.find(m=>m.value===o)??s[0];f($(u,n.ms))},[u,o,s]);const I=n=>{U(!0),f(n);const m=N(n);if(m==null){t(null);return}t(m*b.ms)},V=n=>{U(!0),h(n)};return r.jsxs("div",{className:S("flex items-center gap-3",l),children:[r.jsx(D,{id:e,name:e,type:"number",min:0,step:"any",className:"flex-1 shadow-none",value:x,onBlur:d,inputMode:"decimal",disabled:p,onChange:n=>I(n.target.value)}),r.jsxs(L,{value:b.value,onValueChange:V,disabled:p,children:[r.jsx(M,{className:"w-32 shadow-none",children:r.jsx(P,{"aria-label":j,children:j})}),r.jsx(y,{children:s.map(n=>r.jsx(E,{value:n.value,children:n.labelPlural??`${n.label}s`},n.value))})]})]})}function v(e,l){if(!Number.isFinite(e)||e<=0)return l[0];for(let a=l.length-1;a>=0;a-=1){const t=l[a];if(e>=t.ms)return t}return l[0]}function N(e){if(!e||e.trim()==="")return null;const l=Number(e);return!Number.isFinite(l)||l<0?null:l}function $(e,l){if(l===0)return"";const a=e/l;return Number.isInteger(a)?a.toString():z(a.toFixed(6))}function z(e){return e.includes(".")?e.replace(/\.?0+$/,""):e}function A(e){if(e==null)return null;if(typeof e=="number")return Number.isFinite(e)?e:null;const l=Number(e);return Number.isFinite(l)?l:null}function _(e,l){return l==null||l!==1?e.labelPlural??`${e.label}s`:e.label}const Y=({label:e,className:l,hideLabel:a=!1})=>{const t=R(),{isFieldRequired:d}=T();return r.jsxs("div",{className:S("space-y-3",l),children:[!a&&r.jsxs(C,{htmlFor:t.name,className:"block w-full",children:[e,d(t.name)&&r.jsx(k,{})]}),r.jsx(H,{id:t.name,value:t.state.value??null,onBlur:t.handleBlur,onChange:c=>t.handleChange(c)}),r.jsx(w,{fieldMeta:t.state.meta})]})};export{Y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as h,r as c,j as e,L as j,B as F}from"./index-
|
|
1
|
+
import{u as h,r as c,j as e,L as j,B as F}from"./index-Ncy0-Qo7.js";import{F as f}from"./FieldInfo-sRlPRNSK.js";import{u as v,g as r,f as b,p as g,a as S,b as y,c as m,F as N,d as A}from"./use-settings-form-submit-CXwtE1sI.js";import{u as D}from"./useQuery-DD10sbzn.js";import{P as w}from"./Page-B68mlTwU.js";function B(){const{isFieldRequired:o}=v(r),u=h(),{data:p}=D(u.settings.get.queryOptions(void 0,{select:s=>{const n=b(s.config);return g(r,n,{includeUndefined:!0})}})),x=S(),a=y({...m,defaultValues:p??m.defaultValues,onSubmit:x,validators:{onSubmit:r}}),[i,d]=c.useState(null);return c.useEffect(()=>{i&&(document.getElementById(i)?.focus(),d(null))},[i]),e.jsx(w,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{children:e.jsx("h1",{className:"text-2xl font-bold",children:"General Settings"})}),e.jsx(N,{isFieldRequired:o,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:s=>{s.preventDefault(),s.stopPropagation(),a.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx(a.AppField,{name:"includeNonVideos",children:s=>e.jsx(s.SwitchField,{label:"Include Non-Videos"})}),e.jsx(a.AppField,{name:"includeSingleEpisodes",children:s=>e.jsx(s.SwitchField,{label:"Include Single Episodes"})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"snatchTimeout",validators:{},children:s=>e.jsx(s.DurationField,{label:"Snatch Timeout"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"fuzzySizeThreshold",validators:{},children:s=>e.jsx(s.TextField,{label:"Fuzzy Size Threshold",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"seasonFromEpisodes",validators:{},children:s=>e.jsx(s.TextField,{label:"Season from Episodes",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"autoResumeMaxDownload",validators:{},children:s=>e.jsx(s.TextField,{label:"Auto-resume Max Download",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.Field,{name:"blockList",mode:"array",validators:{},children:s=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(j,{htmlFor:s.name,className:"block w-full",children:["Block List",o(s.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),s.state.value&&(s.state.value.length?s.state.value:[""]).map((n,l)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(a.AppField,{name:`blockList[${l}]`,validators:{onBlur:A()},children:t=>e.jsx(t.ArrayField,{showDelete:s.state.value&&s.state.value?.length>1,index:l,onDelete:()=>{s.removeValue(l)}})}),e.jsx(a.Subscribe,{selector:t=>t.fieldMeta[`${s.name}[${l}]`],children:t=>e.jsx(f,{fieldMeta:t})})]},l)),e.jsx(F,{variant:"secondary",type:"button",onClick:()=>{s.pushValue("");const n=`${s.name}-${s.state.value?.length?s.state.value.length-1:0}`;d(n)},title:`Add ${s.name}`,children:"Add"})]})})})]}),e.jsx(a.AppForm,{children:e.jsx(a.SubmitButton,{})})]})})})]})})}export{B as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c,u as f,k as N,j as e,N as y,i as p,B as v}from"./index-Ncy0-Qo7.js";import{T as k,a as M,b as u,c as m,d as T,e as x}from"./table-qEFWauuw.js";import{P as z}from"./Page-B68mlTwU.js";const w=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],C=c("CircleCheck",w);const B=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],P=c("Info",B);const S=[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]],A=c("OctagonAlert",S);const H=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],_=c("RefreshCw",H);function L(r,h){if(r===0)return"0 B";const n=1024,l=["B","KiB","MiB","GiB","TiB"],d=Math.floor(Math.log(Math.abs(r))/Math.log(n)),i=r/Math.pow(n,d);return`${parseFloat(i.toFixed(2))} ${l[d]}`}const b={error:0,warning:1,info:2},R={error:"border-red-500/60 bg-red-500/10",warning:"border-amber-500/60 bg-amber-500/10",info:"border-sky-500/60 bg-sky-500/10"},I={error:A,warning:y,info:P};function O(){const r=f(),{data:{problems:h,diagnostics:n},refetch:l,isFetching:d}=N(r.health.get.queryOptions()),i=[...h].sort((s,o)=>b[s.severity]-b[o.severity]),t=n?.db,g=s=>s==null?"Unknown":s.toLocaleString(),j=s=>s==null?"Unknown":`${s.toFixed(1)}%`,a=s=>s==null?"Unknown":L(s);return e.jsx(z,{breadcrumbs:["Diagnostics","Health"],actions:e.jsxs(v,{variant:"outline",size:"sm",onClick:()=>l(),disabled:d,children:[e.jsx(_,{className:p("mr-2 h-4 w-4",d&&"text-primary animate-spin")}),"Refresh"]}),children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"Health"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"A quick snapshot of anything that needs attention. Issues are ordered by severity."})]}),i.length===0?e.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-500/30 bg-emerald-500/10 p-4 text-sm text-emerald-700",children:[e.jsx(C,{className:"h-5 w-5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"All clear"}),e.jsx("p",{className:"text-muted-foreground",children:"No health issues detected. Everything looks good."})]})]}):e.jsx("div",{className:"space-y-3",children:i.map(s=>{const o=I[s.severity];return e.jsxs("div",{className:p("flex items-start gap-3 rounded-lg border p-4 text-sm",R[s.severity]),children:[e.jsx(o,{className:"mt-0.5 h-5 w-5 flex-shrink-0"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-medium",children:s.summary}),s.details&&e.jsx("p",{className:"text-muted-foreground",children:s.details})]})]},s.id)})}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Database diagnostics"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Disk usage and SQLite stats for your cross-seed database."})]}),t?e.jsxs("div",{className:"space-y-4",children:[t.error&&e.jsxs("div",{className:"rounded-lg border border-amber-500/40 bg-amber-500/10 p-4 text-sm text-amber-700",children:[e.jsx("p",{className:"font-medium",children:"Diagnostics error"}),e.jsx("p",{className:"text-muted-foreground",children:t.error})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"Database file"}),e.jsx("p",{className:"text-base font-semibold",children:a(t.sizes.db)}),e.jsx("p",{className:"text-muted-foreground mt-1 font-mono text-xs break-all",children:t.path})]}),e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"WAL file"}),e.jsx("p",{className:"text-base font-semibold",children:a(t.sizes.wal)})]}),e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"SHM file"}),e.jsx("p",{className:"text-base font-semibold",children:a(t.sizes.shm)})]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"Page size"}),e.jsx("p",{className:"text-base font-semibold",children:a(t.pageSize)})]}),e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"Page count"}),e.jsx("p",{className:"text-base font-semibold",children:g(t.pageCount)})]}),e.jsxs("div",{className:"rounded-lg border p-4 text-sm",children:[e.jsx("p",{className:"text-muted-foreground",children:"Freelist pages"}),e.jsx("p",{className:"text-base font-semibold",children:g(t.freelistCount)}),e.jsxs("p",{className:"text-muted-foreground mt-1 text-xs",children:[a(t.freeBytes)," free (",j(t.freePercent),")"]})]})]}),t.dbstatError&&e.jsxs("p",{className:"text-muted-foreground text-sm",children:["Table size breakdown unavailable: ",t.dbstatError]}),t.dbstatTop&&t.dbstatTop.length>0&&e.jsx("div",{className:"rounded-lg border",children:e.jsxs(k,{children:[e.jsx(M,{children:e.jsxs(u,{className:"border-b",children:[e.jsx(m,{children:"Object"}),e.jsx(m,{className:"text-right",children:"Size"}),e.jsx(m,{className:"text-right",children:"Pages"})]})}),e.jsx(T,{children:t.dbstatTop.map(s=>e.jsxs(u,{children:[e.jsx(x,{className:"font-medium",children:s.name}),e.jsx(x,{className:"text-right",children:a(s.bytes)}),e.jsx(x,{className:"text-right",children:s.pages.toLocaleString()})]},s.name))})]})})]}):e.jsx("p",{className:"text-muted-foreground text-sm",children:"No database diagnostics available."})]})]})})}export{O as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.form-fieldset{grid-template-columns:repeat(2,1fr);grid-template-areas:"col1 col2";margin-block-end:1.25rem;padding-block:1rem;display:grid}.form-fieldset legend{padding-inline:.75rem;font-size:1.125rem;font-weight:600}.form-fieldset:nth-child(odd){grid-area:col1}.form-fieldset:nth-child(2n){grid-area:col2}.form-field-switches{flex-direction:row;grid-column:span 2;display:flex}.form-field-switches .form-field__switch{width:color-mix(in oklab,.25rem 600%,transparent)}.form-input{box-shadow:none;padding-block:.25rem;padding-inline:.5rem}.form-input[aria-invalid=true]{border-color:var(--color-destructive);box-shadow:0 0 0 2px var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.form-input[aria-invalid=true]{box-shadow:0 0 0 2px color-mix(in oklab,var(--color-destructive)40%,transparent)}}.form__submit{box-shadow:0 -25px 25px var(--color-background)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--radius-xs:.125rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-destructive:var(--destructive)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(61% .156 146.9);--primary-foreground:oklch(100% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(61% .156 146.9);--primary-foreground:oklch(100% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\@container\/main{container:main/inline-size}.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.my-1{margin-block:calc(var(--spacing)*1)}.-mt-4{margin-top:calc(var(--spacing)*-4)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-7{margin-bottom:calc(var(--spacing)*7)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-32{height:calc(var(--spacing)*32)}.h-48{height:calc(var(--spacing)*48)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1\.15rem\]{height:1.15rem}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[25vh\]{max-height:25vh}.max-h-\[40vh\]{max-height:40vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-96{min-height:calc(var(--spacing)*96)}.min-h-\[3rem\]{min-height:3rem}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-lg{width:var(--container-lg)}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-\[25vw\]{max-width:25vw}.max-w-\[40vw\]{max-width:40vw}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.list-disc{list-style-type:disc}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-12{column-gap:calc(var(--spacing)*12)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)}}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/60{border-color:color-mix(in oklab,var(--color-amber-500)60%,transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-border{border-color:var(--border)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-input{border-color:var(--input)}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500)60%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-sky-500\/60{border-color:#00a5ef99}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/60{border-color:color-mix(in oklab,var(--color-sky-500)60%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-700{background-color:var(--color-green-700)}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-700{background-color:var(--color-red-700)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3\.5{padding-top:calc(var(--spacing)*3.5)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--foreground)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-500{color:var(--color-purple-500)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-800{color:var(--color-yellow-800)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[animation-duration\:1\.5s\]{animation-duration:1.5s}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-\[-0px\]:before{content:var(--tw-content);inset:0}.before\:animate-pulse:before{content:var(--tw-content);animation:var(--animate-pulse)}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:text-amber-200:before{content:var(--tw-content);color:var(--color-amber-200)}.before\:text-destructive\/20:before{content:var(--tw-content);color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.before\:text-destructive\/20:before{color:color-mix(in oklab,var(--destructive)20%,transparent)}}.before\:text-emerald-200:before{content:var(--tw-content);color:var(--color-emerald-200)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}@media(hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-yellow-100:hover{background-color:var(--color-yellow-100)}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:gap-4{gap:calc(var(--spacing)*4)}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-red-400:is(.dark *){border-color:var(--color-red-400)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-red-900\/20:is(.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:text-gray-100:is(.dark *){color:var(--color-gray-100)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as u}from"./index-
|
|
1
|
+
import{r as u}from"./index-Ncy0-Qo7.js";function o(r){const e=u.useRef({value:r,previous:r});return u.useMemo(()=>(e.current.value!==r&&(e.current.previous=e.current.value,e.current.value=r),e.current.previous),[r])}export{o as u};
|