tokentracker-cli 0.95.2 → 0.96.1
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/README.md +2 -0
- package/README.zh-CN.md +1 -1
- package/dashboard/dist/assets/{AchievementBadge-DtB1MwFe.js → AchievementBadge-DKyElm0T.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage--vddu0dC.js → AchievementsPage-BvCx3wND.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-CDl9hsbj.js → AchievementsSection-DN69LzXX.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal-C7WsIRy9.js → BadgeDetailModal-DGiKdZfz.js} +1 -1
- package/dashboard/dist/assets/{BotAnimated-CmXyzIhX.js → BotAnimated-zN8rH7_K.js} +1 -1
- package/dashboard/dist/assets/{Card-SUbC3VNS.js → Card-COWo-ClV.js} +1 -1
- package/dashboard/dist/assets/{ClawdAnimated-BdEbs8Me.js → ClawdAnimated-BWsB7Eat.js} +2 -2
- package/dashboard/dist/assets/{CommandPalette-D1RLLeHB.js → CommandPalette-BfvIwuoJ.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-5ESGJgZQ.js → CommunityStatsModal-BQWg7R_y.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-DsCd51b2.js → ConfirmModal-C7ABSI-O.js} +1 -1
- package/dashboard/dist/assets/{Controls-BVrLC_QD.js → Controls-vMzEZzej.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-QBhbCMZF.js +1 -0
- package/dashboard/dist/assets/{DevicePage-zYjj-m5V.js → DevicePage-3ejUBLWM.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-D66yBqkd.js → DialogClose-D_dvtfGV.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-ryGYdQjX.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-C4ia00lc.js → DialogTitle-_ahf0z8b.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-DF2c8XaR.js → FadeIn-D7Jcfz1N.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-Cnr3aqcX.js → HeaderGithubStar-D--Rx5BS.js} +1 -1
- package/dashboard/dist/assets/{HoverTooltip-DBOpxlH7.js → HoverTooltip-n1W0z3Wr.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-CUY6KBaV.js → IpCheckPage-D202tl9B.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-DKL8hZEq.js → LandingPage-D6yL2EZo.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardAvatar-DRYeMNlq.js → LeaderboardAvatar-ChFg2mtA.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-DpD9Az3k.js → LeaderboardPage-BXHwGs8r.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProfileModal-Dfg0V13F.js → LeaderboardProfileModal-B5LoOpCk.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-DH-jcVDu.js → LeaderboardProfilePage-jsukhRz8.js} +1 -1
- package/dashboard/dist/assets/LimitsPage-PvqkOOwp.js +6 -0
- package/dashboard/dist/assets/{LocalOnlyNotice-Bj_m0hw7.js → LocalOnlyNotice-Du0lz657.js} +1 -1
- package/dashboard/dist/assets/{LoginCard-BVKvtx60.js → LoginCard-BFEX9x7-.js} +1 -1
- package/dashboard/dist/assets/{LoginModal-mUGiSIJN.js → LoginModal-DqC7_d35.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-BORCuCUt.js → LoginPage-Dzx8N7HE.js} +1 -1
- package/dashboard/dist/assets/{PetPage-D1JfEOVA.js → PetPage-CNlWHF4z.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-DK3et-HG.js → PopoverPopup-D9jadD3j.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-By8FAjxR.js → ProviderIcon-Caz5PuAm.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-DPa81jqa.js → ResetPasswordPage-x_GR79sR.js} +1 -1
- package/dashboard/dist/assets/{SegmentedControl-DLzS-2eZ.js → SegmentedControl-BxDiDV4R.js} +1 -1
- package/dashboard/dist/assets/{Select-C05W6XEM.js → Select-B5o-1sEl.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-CcfB3blP.js → SelectItemText-CiA6L7Wk.js} +1 -1
- package/dashboard/dist/assets/{ServiceStatusPage-ByqLbHv1.js → ServiceStatusPage-BVQuVdjg.js} +1 -1
- package/dashboard/dist/assets/SessionsPage-DE39wNIO.js +2 -0
- package/dashboard/dist/assets/SettingsPage-DJrb_fsK.js +2 -0
- package/dashboard/dist/assets/{SkillsPage-BuuqQuNU.js → SkillsPage-COk-YQQ5.js} +1 -1
- package/dashboard/dist/assets/{TokenGalaxy-DzccxkXW.js → TokenGalaxy-BPM779Wb.js} +1 -1
- package/dashboard/dist/assets/{ToolbarRootContext-XUDMp5uy.js → ToolbarRootContext-CozJT6Vs.js} +1 -1
- package/dashboard/dist/assets/{TrendMonitor-B-yYabbz.js → TrendMonitor-BkNy-o1D.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-CwUDjEFo.js → WidgetsPage-Bpg6H-ZB.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-Dr9ow3gH.js → WrappedPage-C6-NM-RO.js} +1 -1
- package/dashboard/dist/assets/__vite-browser-external-BGnq8Ebm.js +45 -0
- package/dashboard/dist/assets/__vite-browser-external-CvMMIjhi.css +1 -0
- package/dashboard/dist/assets/{agent-logos-Cqc_suYk.js → agent-logos-DpbkRqXT.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-DSsR3Ntr.js → arrow-up-right-BjOtWUVs.js} +1 -1
- package/dashboard/dist/assets/{check-Cy35lAKh.js → check-BlxnX5jZ.js} +1 -1
- package/dashboard/dist/assets/{composite-BDwOlhhX.js → composite-Dxmivlk4.js} +1 -1
- package/dashboard/dist/assets/{copy-4szu5cYh.js → copy-CIsWjLY5.js} +1 -1
- package/dashboard/dist/assets/{download-DdGW6Krz.js → download-QDaQbQdd.js} +1 -1
- package/dashboard/dist/assets/{external-link-DwSt83cq.js → external-link-DPV4VU3m.js} +1 -1
- package/dashboard/dist/assets/{flame-DubukWqK.js → flame-B_X-7VNp.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-B70EdQcN.js → format-tokens-DEx2TJj8.js} +1 -1
- package/dashboard/dist/assets/{icons-B86TLdAj.js → icons-983RyGSl.js} +1 -1
- package/dashboard/dist/assets/{index-B_KMoBeK.js → index-BONYA8HZ.js} +1 -1
- package/dashboard/dist/assets/{index-DI-W-pun.js → index-Cjs5stC0.js} +1 -1
- package/dashboard/dist/assets/{index-DzEMcUwI.js → index-qtonw_x4.js} +1 -1
- package/dashboard/dist/assets/{info-BzFpLbl6.js → info-DpVOhXZI.js} +1 -1
- package/dashboard/dist/assets/limits-providers-BUoquSA-.js +1 -0
- package/dashboard/dist/assets/{link-2-BQp7-3T7.js → link-2-CBro-upz.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-lrDmbIg5.js → loader-circle-wYFdSyOd.js} +1 -1
- package/dashboard/dist/assets/{maximize-2-Cnd_Oth8.js → maximize-2-DhTyQ4ly.js} +1 -1
- package/dashboard/dist/assets/{modifiers.esm-CPTpZdHU.js → modifiers.esm-CPljwVhN.js} +1 -1
- package/dashboard/dist/assets/{monitor-smartphone-C7UY1zRx.js → monitor-smartphone-D_wr-HOR.js} +1 -1
- package/dashboard/dist/assets/{plus-Bglp9N_7.js → plus-BNjfkBEF.js} +1 -1
- package/dashboard/dist/assets/{provider-display-CGsFySs6.js → provider-display-BOBtUyFi.js} +1 -1
- package/dashboard/dist/assets/{react-DKXriBSF.js → react-yHv9MTUA.js} +1 -1
- package/dashboard/dist/assets/{search-D_LLDRdU.js → search-Dfak92ZA.js} +1 -1
- package/dashboard/dist/assets/{skills-api-CJWjKIco.js → skills-api-By2PdNa1.js} +1 -1
- package/dashboard/dist/assets/{sortable.esm-zlY09tye.js → sortable.esm-B9xy66_v.js} +1 -1
- package/dashboard/dist/assets/{store-8e16Ac2h.js → store-oQZR4d9M.js} +1 -1
- package/dashboard/dist/assets/{terminal-CR228ekj.js → terminal-pbXWBmZM.js} +1 -1
- package/dashboard/dist/assets/{trash-2-BjLWewOp.js → trash-2-CboDPwbW.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-DhOJPaVg.js → use-community-stats-D6HTdnHq.js} +1 -1
- package/dashboard/dist/assets/{use-latest-request-guard-lcGhb-NC.js → use-latest-request-guard-hwSr9Cam.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-DJIImtLN.js → use-limits-display-prefs-B-pbwUS8.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-BJZfZuoJ.js → use-ordered-list-OtfOqrNb.js} +1 -1
- package/dashboard/dist/assets/use-reduced-motion-DGXcZBX3.js +1 -0
- package/dashboard/dist/assets/{use-session-efficiency-pref-C-l4b1cD.js → use-session-efficiency-pref-BScvtS8F.js} +1 -1
- package/dashboard/dist/assets/{use-transform-UjIt477N.js → use-transform-Cy1ykjEs.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-DqoTZrqT.js → use-usage-limits-CSMb2zYW.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-CnM8aB4v.js → useCurrency-VqF3cy1C.js} +1 -1
- package/dashboard/dist/assets/{useTokenFormat-D4pAK2ld.js → useTokenFormat-Cgub4MXu.js} +1 -1
- package/dashboard/dist/assets/{zap-Du1IyEtj.js → zap-DStzvQJI.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/ip-check.html +2 -2
- package/dashboard/dist/leaderboard.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +1 -1
- package/src/commands/status.js +4 -4
- package/src/commands/sync.js +5 -3
- package/src/lib/ark-agent-plan-limits.js +438 -0
- package/src/lib/ark-coding-plan-limits.js +103 -28
- package/src/lib/codex-model-attribution.js +128 -0
- package/src/lib/codex-rollout-parser.js +98 -4
- package/src/lib/command-runner.js +13 -0
- package/src/lib/local-api.js +3 -0
- package/src/lib/pricing/curated-overrides.json +6 -6
- package/src/lib/pricing/index.js +38 -1
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +67 -14
- package/src/lib/session-analytics.js +374 -110
- package/src/lib/usage-limits.js +130 -18
- package/dashboard/dist/assets/DashboardPage-DtUOG6og.js +0 -1
- package/dashboard/dist/assets/DialogDescription-BVlaoajd.js +0 -1
- package/dashboard/dist/assets/LimitsPage-CVCKPScf.js +0 -5
- package/dashboard/dist/assets/SessionsPage-CEDv1thj.js +0 -2
- package/dashboard/dist/assets/SettingsPage-DAcndJZQ.js +0 -2
- package/dashboard/dist/assets/__vite-browser-external-CCMdjCX2.css +0 -1
- package/dashboard/dist/assets/__vite-browser-external-DPOlUkcY.js +0 -45
- package/dashboard/dist/assets/limits-providers-DxZOjiXQ.js +0 -1
- package/dashboard/dist/assets/use-reduced-motion-DdpxZQoh.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as re,M as ce,a as ge,r as o,c as a,j as e,e as h}from"./__vite-browser-external-DPOlUkcY.js";const ue=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],me=re("arrow-left",ue);const xe=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],he=re("mail",xe),be=e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1Z",fill:"#4285F4"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23Z",fill:"#34A853"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.44 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53Z",fill:"#EA4335"})]}),fe=e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor",children:e.jsx("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12Z"})}),pe={google:be,github:fe},ye={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",apple:"Apple"};function we(i){return ye[i]||String(i||"").replace(/-/g," ")}function ke(i){if(typeof i=="string"&&i.trim())return i.trim();if(i&&typeof i=="object"){if(typeof i.token=="string"&&i.token.trim())return i.token.trim();if(typeof i.otp=="string"&&i.otp.trim())return i.otp.trim()}return""}function je({title:i,subtitle:H,className:ae="",onSuccess:S,hideLogo:D=!1,initialMode:p="signin",tokenFromUrl:P="",initialEmail:y="",initialCode:v=""}){ce();const{enabled:w,signedIn:j,refreshUser:E,signInWithPassword:G,signUp:Z,signInWithOAuth:T,getPublicAuthConfig:V,sendResetPasswordEmail:$,exchangeResetPasswordToken:U,resetPassword:W}=ge(),[n,u]=o.useState(p),[c,k]=o.useState(y),[m,N]=o.useState(""),[A,L]=o.useState(""),[M,te]=o.useState(""),[q,z]=o.useState(v),[_,x]=o.useState(!1),[J,s]=o.useState(null),[C,b]=o.useState(null),[F,O]=o.useState(!1),[oe,se]=o.useState(!!(p!=="signin"||y)),[R,K]=o.useState(!0),[I,Q]=o.useState([]),[X,ie]=o.useState(8);o.useEffect(()=>{p&&u(p)},[p]),o.useEffect(()=>{y&&k(y)},[y]),o.useEffect(()=>{v&&z(v)},[v]),o.useEffect(()=>{if(!w)return;let r=!0;return K(!0),(async()=>{const{data:t,error:l}=await V();if(r){if(l||!t)Q(["google","github"]);else{const d=Array.isArray(t.oAuthProviders)?t.oAuthProviders:[],f=Array.isArray(t.customOAuthProviders)?t.customOAuthProviders:[];Q([...d,...f]),typeof t.passwordMinLength=="number"&&t.passwordMinLength>0&&ie(t.passwordMinLength)}K(!1)}})(),()=>{r=!1}},[w,V]),o.useEffect(()=>{j&&S&&S()},[j,S]);const Y=o.useMemo(()=>typeof window>"u"?"":!!window.webkit?.messageHandlers?.nativeOAuth?`${window.location.origin}/auth/callback`:`${window.location.origin}/`,[]),ee=o.useMemo(()=>typeof window>"u"?"/reset-password":`${window.location.origin}/reset-password`,[]),B=o.useCallback(async r=>{s(null),x(!0);try{const{error:t}=await T(r,Y);t&&s(t.message||String(t))}finally{x(!1)}},[T,Y]);o.useEffect(()=>{if(!w||R||j||typeof window>"u")return;const r=window.location.search;if(!r)return;const t=new URLSearchParams(r),l=t.get("native")==="1",d=t.get("provider");l&&d&&[...I].includes(d)&&B(d)},[w,R,j,I,B]);const ne=o.useCallback(async r=>{r.preventDefault(),s(null),x(!0);try{if(n==="signup"){const{data:l,error:d}=await Z({email:c.trim(),password:m,name:M.trim()||void 0});if(d){s(d.message||String(d));return}if(l?.requireEmailVerification){b(a("login.verify_email_pending")),u("signin");return}await E();return}const{error:t}=await G({email:c.trim(),password:m});if(t){s(t.message||String(t));return}await E()}finally{x(!1)}},[n,c,m,M,Z,G,E]),le=o.useCallback(async r=>{r.preventDefault(),s(null),x(!0);try{const t=c.trim(),{error:l}=await $({email:t,redirectTo:ee});if(l){s(l.message||String(l));return}k(t),b(a("reset_password.request.sent")),u("reset_confirm")}finally{x(!1)}},[c,ee,$]),de=o.useCallback(async r=>{if(r.preventDefault(),s(null),m!==A){s(a("reset_password.error.password_mismatch"));return}x(!0);try{let t=P;if(!t){const{data:d,error:f}=await U({email:c.trim(),code:q.trim()});if(f){s(f.message||String(f));return}if(t=ke(d),!t){s(a("reset_password.error.missing_token"));return}}const{error:l}=await W({newPassword:m,otp:t});if(l){s(l.message||String(l));return}O(!0),b(a("reset_password.success"))}finally{x(!1)}},[q,A,c,U,m,W,P]);if(!w)return null;const g=n==="reset_email"||n==="reset_confirm";return e.jsxs("div",{className:h("w-full bg-white dark:bg-oai-gray-950 p-6 transition-colors duration-200",ae),children:[g&&e.jsxs("button",{type:"button",onClick:()=>{u("signin"),b(null),s(null),O(!1),N(""),L("")},className:"flex items-center gap-1.5 text-xs font-medium text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors mb-4 focus:outline-none",children:[e.jsx(me,{className:"h-3.5 w-3.5"}),a("reset_password.back_to_sign_in")]}),e.jsxs("div",{className:h("mb-6",g?"text-left":"text-center"),children:[!D&&!g&&e.jsxs("div",{className:"flex items-center justify-center gap-2 mb-2",children:[e.jsx("img",{src:"/app-icon.png",alt:"",width:28,height:28,className:"rounded-md"}),e.jsx("span",{className:"text-lg font-semibold text-oai-black dark:text-white font-oai tracking-tight",children:a("shared.app_name")})]}),e.jsx("h2",{className:h("text-sm font-semibold text-oai-black dark:text-white tracking-tight mb-1",(D||g)&&"text-base font-bold md:text-lg"),children:g?a("reset_password.title"):i||a("login_modal.subtitle")}),!g&&H&&e.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1.5 leading-relaxed max-w-[320px] mx-auto",children:H}),g&&e.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1.5 leading-relaxed max-w-[320px]",children:C&&n==="reset_confirm"&&!F?C:a("reset_password.subtitle")})]}),C&&(!g||F)&&e.jsx("div",{className:"mb-4 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900/50 px-3 py-2 text-xs text-oai-gray-700 dark:text-oai-gray-300",children:C}),J&&e.jsx("p",{className:"mb-4 text-sm text-red-500 dark:text-red-400 text-center",role:"alert",children:J}),n==="reset_email"&&e.jsxs("form",{onSubmit:le,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-reset-email",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:a("reset_password.request.submit")})]}),n==="reset_confirm"&&(F?e.jsx("button",{type:"button",onClick:()=>{u("signin"),O(!1),b(null),s(null),N(""),L("")},className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors text-center shadow-sm",children:a("reset_password.success_cta")}):e.jsxs("form",{onSubmit:de,className:"space-y-3",children:[!P&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-email-confirm",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-reset-email-confirm",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-code",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.code")}),e.jsx("input",{id:"card-reset-code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",required:!0,value:q,onChange:r=>z(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.new_password")}),e.jsx("input",{id:"card-reset-password",type:"password",autoComplete:"new-password",required:!0,minLength:8,value:m,onChange:r=>N(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-password-confirm",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.confirm_password")}),e.jsx("input",{id:"card-reset-password-confirm",type:"password",autoComplete:"new-password",required:!0,minLength:8,value:A,onChange:r=>L(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:a("reset_password.reset.submit")})]})),!g&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"space-y-2.5 mb-5",children:R?e.jsxs("div",{className:"space-y-2.5",children:[e.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"}),e.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"})]}):I.map(r=>e.jsxs("button",{type:"button",disabled:_,onClick:()=>B(r),className:h("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors disabled:opacity-50","flex items-center justify-center gap-2.5"),children:[pe[r]||null,a("login.oauth.continue",{provider:we(r)})]},r))}),oe?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative mb-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:e.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:a("login_modal.divider_email")})})]}),e.jsxs("div",{className:"flex rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 bg-oai-gray-50 dark:bg-oai-gray-900/50 mb-4",children:[e.jsx("button",{type:"button",className:h("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",n==="signin"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{u("signin"),s(null)},children:a("login.tab.sign_in")}),e.jsx("button",{type:"button",className:h("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",n==="signup"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{u("signup"),s(null)},children:a("login.tab.sign_up")})]}),e.jsxs("form",{onSubmit:ne,className:"space-y-3",children:[n==="signup"&&e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.name")}),e.jsx("input",{id:"card-name",type:"text",autoComplete:"name",value:M,onChange:r=>te(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:a("login.field.name_placeholder")})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-email",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.password")}),e.jsx("input",{id:"card-password",type:"password",autoComplete:n==="signup"?"new-password":"current-password",required:!0,minLength:n==="signup"?X:void 0,value:m,onChange:r=>N(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),n==="signup"&&e.jsx("p",{className:"mt-1 text-xs text-oai-gray-400 dark:text-oai-gray-600",children:a("login.password_hint",{min:String(X)})}),n==="signin"&&e.jsx("div",{className:"mt-1 text-right",children:e.jsx("button",{type:"button",onClick:()=>{u("reset_email"),s(null),b(null)},className:"text-xs font-medium text-oai-gray-500 hover:text-oai-black dark:hover:text-white no-underline bg-transparent border-0 p-0 cursor-pointer focus:outline-none",children:a("login.forgot_password")})})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:n==="signup"?a("login.submit.sign_up"):a("login.submit.sign_in")})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative mb-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:e.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:a("login.divider")})})]}),e.jsxs("button",{type:"button",onClick:()=>se(!0),className:h("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors","flex items-center justify-center gap-2.5"),children:[e.jsx(he,{className:"h-[18px] w-[18px] text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75}),a("login_modal.continue_email")]})]})]})]})}export{je as L};
|
|
1
|
+
import{m as re,M as ce,a as ge,r as o,c as a,j as e,e as h}from"./__vite-browser-external-BGnq8Ebm.js";const ue=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],me=re("arrow-left",ue);const xe=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],he=re("mail",xe),be=e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1Z",fill:"#4285F4"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23Z",fill:"#34A853"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.44 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53Z",fill:"#EA4335"})]}),fe=e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor",children:e.jsx("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12Z"})}),pe={google:be,github:fe},ye={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",apple:"Apple"};function we(i){return ye[i]||String(i||"").replace(/-/g," ")}function ke(i){if(typeof i=="string"&&i.trim())return i.trim();if(i&&typeof i=="object"){if(typeof i.token=="string"&&i.token.trim())return i.token.trim();if(typeof i.otp=="string"&&i.otp.trim())return i.otp.trim()}return""}function je({title:i,subtitle:H,className:ae="",onSuccess:S,hideLogo:D=!1,initialMode:p="signin",tokenFromUrl:P="",initialEmail:y="",initialCode:v=""}){ce();const{enabled:w,signedIn:j,refreshUser:E,signInWithPassword:G,signUp:Z,signInWithOAuth:T,getPublicAuthConfig:V,sendResetPasswordEmail:$,exchangeResetPasswordToken:U,resetPassword:W}=ge(),[n,u]=o.useState(p),[c,k]=o.useState(y),[m,N]=o.useState(""),[A,L]=o.useState(""),[M,te]=o.useState(""),[q,z]=o.useState(v),[_,x]=o.useState(!1),[J,s]=o.useState(null),[C,b]=o.useState(null),[F,O]=o.useState(!1),[oe,se]=o.useState(!!(p!=="signin"||y)),[R,K]=o.useState(!0),[I,Q]=o.useState([]),[X,ie]=o.useState(8);o.useEffect(()=>{p&&u(p)},[p]),o.useEffect(()=>{y&&k(y)},[y]),o.useEffect(()=>{v&&z(v)},[v]),o.useEffect(()=>{if(!w)return;let r=!0;return K(!0),(async()=>{const{data:t,error:l}=await V();if(r){if(l||!t)Q(["google","github"]);else{const d=Array.isArray(t.oAuthProviders)?t.oAuthProviders:[],f=Array.isArray(t.customOAuthProviders)?t.customOAuthProviders:[];Q([...d,...f]),typeof t.passwordMinLength=="number"&&t.passwordMinLength>0&&ie(t.passwordMinLength)}K(!1)}})(),()=>{r=!1}},[w,V]),o.useEffect(()=>{j&&S&&S()},[j,S]);const Y=o.useMemo(()=>typeof window>"u"?"":!!window.webkit?.messageHandlers?.nativeOAuth?`${window.location.origin}/auth/callback`:`${window.location.origin}/`,[]),ee=o.useMemo(()=>typeof window>"u"?"/reset-password":`${window.location.origin}/reset-password`,[]),B=o.useCallback(async r=>{s(null),x(!0);try{const{error:t}=await T(r,Y);t&&s(t.message||String(t))}finally{x(!1)}},[T,Y]);o.useEffect(()=>{if(!w||R||j||typeof window>"u")return;const r=window.location.search;if(!r)return;const t=new URLSearchParams(r),l=t.get("native")==="1",d=t.get("provider");l&&d&&[...I].includes(d)&&B(d)},[w,R,j,I,B]);const ne=o.useCallback(async r=>{r.preventDefault(),s(null),x(!0);try{if(n==="signup"){const{data:l,error:d}=await Z({email:c.trim(),password:m,name:M.trim()||void 0});if(d){s(d.message||String(d));return}if(l?.requireEmailVerification){b(a("login.verify_email_pending")),u("signin");return}await E();return}const{error:t}=await G({email:c.trim(),password:m});if(t){s(t.message||String(t));return}await E()}finally{x(!1)}},[n,c,m,M,Z,G,E]),le=o.useCallback(async r=>{r.preventDefault(),s(null),x(!0);try{const t=c.trim(),{error:l}=await $({email:t,redirectTo:ee});if(l){s(l.message||String(l));return}k(t),b(a("reset_password.request.sent")),u("reset_confirm")}finally{x(!1)}},[c,ee,$]),de=o.useCallback(async r=>{if(r.preventDefault(),s(null),m!==A){s(a("reset_password.error.password_mismatch"));return}x(!0);try{let t=P;if(!t){const{data:d,error:f}=await U({email:c.trim(),code:q.trim()});if(f){s(f.message||String(f));return}if(t=ke(d),!t){s(a("reset_password.error.missing_token"));return}}const{error:l}=await W({newPassword:m,otp:t});if(l){s(l.message||String(l));return}O(!0),b(a("reset_password.success"))}finally{x(!1)}},[q,A,c,U,m,W,P]);if(!w)return null;const g=n==="reset_email"||n==="reset_confirm";return e.jsxs("div",{className:h("w-full bg-white dark:bg-oai-gray-950 p-6 transition-colors duration-200",ae),children:[g&&e.jsxs("button",{type:"button",onClick:()=>{u("signin"),b(null),s(null),O(!1),N(""),L("")},className:"flex items-center gap-1.5 text-xs font-medium text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors mb-4 focus:outline-none",children:[e.jsx(me,{className:"h-3.5 w-3.5"}),a("reset_password.back_to_sign_in")]}),e.jsxs("div",{className:h("mb-6",g?"text-left":"text-center"),children:[!D&&!g&&e.jsxs("div",{className:"flex items-center justify-center gap-2 mb-2",children:[e.jsx("img",{src:"/app-icon.png",alt:"",width:28,height:28,className:"rounded-md"}),e.jsx("span",{className:"text-lg font-semibold text-oai-black dark:text-white font-oai tracking-tight",children:a("shared.app_name")})]}),e.jsx("h2",{className:h("text-sm font-semibold text-oai-black dark:text-white tracking-tight mb-1",(D||g)&&"text-base font-bold md:text-lg"),children:g?a("reset_password.title"):i||a("login_modal.subtitle")}),!g&&H&&e.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1.5 leading-relaxed max-w-[320px] mx-auto",children:H}),g&&e.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1.5 leading-relaxed max-w-[320px]",children:C&&n==="reset_confirm"&&!F?C:a("reset_password.subtitle")})]}),C&&(!g||F)&&e.jsx("div",{className:"mb-4 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900/50 px-3 py-2 text-xs text-oai-gray-700 dark:text-oai-gray-300",children:C}),J&&e.jsx("p",{className:"mb-4 text-sm text-red-500 dark:text-red-400 text-center",role:"alert",children:J}),n==="reset_email"&&e.jsxs("form",{onSubmit:le,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-reset-email",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:a("reset_password.request.submit")})]}),n==="reset_confirm"&&(F?e.jsx("button",{type:"button",onClick:()=>{u("signin"),O(!1),b(null),s(null),N(""),L("")},className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors text-center shadow-sm",children:a("reset_password.success_cta")}):e.jsxs("form",{onSubmit:de,className:"space-y-3",children:[!P&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-email-confirm",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-reset-email-confirm",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-code",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.code")}),e.jsx("input",{id:"card-reset-code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",required:!0,value:q,onChange:r=>z(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.new_password")}),e.jsx("input",{id:"card-reset-password",type:"password",autoComplete:"new-password",required:!0,minLength:8,value:m,onChange:r=>N(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-reset-password-confirm",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("reset_password.field.confirm_password")}),e.jsx("input",{id:"card-reset-password-confirm",type:"password",autoComplete:"new-password",required:!0,minLength:8,value:A,onChange:r=>L(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:a("reset_password.reset.submit")})]})),!g&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"space-y-2.5 mb-5",children:R?e.jsxs("div",{className:"space-y-2.5",children:[e.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"}),e.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"})]}):I.map(r=>e.jsxs("button",{type:"button",disabled:_,onClick:()=>B(r),className:h("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors disabled:opacity-50","flex items-center justify-center gap-2.5"),children:[pe[r]||null,a("login.oauth.continue",{provider:we(r)})]},r))}),oe?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative mb-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:e.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:a("login_modal.divider_email")})})]}),e.jsxs("div",{className:"flex rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 bg-oai-gray-50 dark:bg-oai-gray-900/50 mb-4",children:[e.jsx("button",{type:"button",className:h("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",n==="signin"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{u("signin"),s(null)},children:a("login.tab.sign_in")}),e.jsx("button",{type:"button",className:h("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",n==="signup"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{u("signup"),s(null)},children:a("login.tab.sign_up")})]}),e.jsxs("form",{onSubmit:ne,className:"space-y-3",children:[n==="signup"&&e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.name")}),e.jsx("input",{id:"card-name",type:"text",autoComplete:"name",value:M,onChange:r=>te(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:a("login.field.name_placeholder")})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.email")}),e.jsx("input",{id:"card-email",type:"email",autoComplete:"email",required:!0,value:c,onChange:r=>k(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"card-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:a("login.field.password")}),e.jsx("input",{id:"card-password",type:"password",autoComplete:n==="signup"?"new-password":"current-password",required:!0,minLength:n==="signup"?X:void 0,value:m,onChange:r=>N(r.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),n==="signup"&&e.jsx("p",{className:"mt-1 text-xs text-oai-gray-400 dark:text-oai-gray-600",children:a("login.password_hint",{min:String(X)})}),n==="signin"&&e.jsx("div",{className:"mt-1 text-right",children:e.jsx("button",{type:"button",onClick:()=>{u("reset_email"),s(null),b(null)},className:"text-xs font-medium text-oai-gray-500 hover:text-oai-black dark:hover:text-white no-underline bg-transparent border-0 p-0 cursor-pointer focus:outline-none",children:a("login.forgot_password")})})]}),e.jsx("button",{type:"submit",disabled:_,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:n==="signup"?a("login.submit.sign_up"):a("login.submit.sign_in")})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative mb-5",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:e.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:a("login.divider")})})]}),e.jsxs("button",{type:"button",onClick:()=>se(!0),className:h("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors","flex items-center justify-center gap-2.5"),children:[e.jsx(he,{className:"h-[18px] w-[18px] text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75}),a("login_modal.continue_email")]})]})]})]})}export{je as L};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as s,a as c,r as l,j as e,X as d}from"./__vite-browser-external-
|
|
1
|
+
import{u as s,a as c,r as l,j as e,X as d}from"./__vite-browser-external-BGnq8Ebm.js";import{m as o}from"./react-yHv9MTUA.js";import{L as m}from"./LoginCard-BFEX9x7-.js";import{A as p}from"./index-Cjs5stC0.js";function b(){const{isOpen:i,closeLoginModal:a}=s(),{enabled:r}=c();return l.useEffect(()=>{if(!i)return;const t=n=>{n.key==="Escape"&&a()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i,a]),r?e.jsx(p,{children:i&&e.jsxs(o.div,{className:"fixed inset-0 z-[100] flex items-center justify-center p-4",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[e.jsx(o.div,{className:"absolute inset-0 bg-black/40 dark:bg-black/60",onClick:a,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}}),e.jsxs(o.div,{className:"relative w-full max-w-[420px] rounded-2xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-950 shadow-2xl overflow-hidden",initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},transition:{duration:.2},onClick:t=>t.stopPropagation(),children:[e.jsx("button",{type:"button",onClick:a,className:"absolute right-4 top-4 z-10 text-oai-gray-400 dark:text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors",children:e.jsx(d,{className:"h-5 w-5"})}),e.jsx(m,{onSuccess:a,className:"p-6 bg-transparent"})]})]})}):null}export{b as LoginModal};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as p,h as w,a as v,r,c as s,j as e,L as y}from"./__vite-browser-external-
|
|
1
|
+
import{f as p,h as w,a as v,r,c as s,j as e,L as y}from"./__vite-browser-external-BGnq8Ebm.js";import{L as j}from"./LoginCard-BFEX9x7-.js";function N(i){const t=new URLSearchParams(i).get("next");return typeof t!="string"||t.length===0||!t.startsWith("/")||t.startsWith("//")?"/dashboard":t}function L(){const i=p(),[t,f]=w(),{enabled:n,loading:u,signedIn:x,refreshUser:g}=v(),c=r.useMemo(()=>N(t.toString()),[t]),[h,d]=r.useState(null);r.useEffect(()=>{const l=t.get("insforge_status"),a=t.get("insforge_type"),m=t.get("insforge_error");l==="success"&&a==="verify_email"?d(s("login.verify_email_success")):l==="error"&&a==="verify_email"&&m&&d(s("shared.error.prefix",{error:m}))},[t]);const o=r.useMemo(()=>t.get("native")==="1",[t]);r.useEffect(()=>{if(!(!n||u)&&x){if(o){window.location.href="/auth/native-callback";return}i(c,{replace:!0})}},[n,u,x,i,c,o]),r.useEffect(()=>{n&&g()},[n,g]),r.useEffect(()=>{if(o&&typeof window<"u")try{window.sessionStorage.setItem("tokentracker_native_login","1")}catch{}},[o]);const b=r.useCallback(()=>{f(l=>{const a=new URLSearchParams(l);return a.delete("insforge_status"),a.delete("insforge_type"),a.delete("insforge_error"),a},{replace:!0}),d(null)},[f]);return n?e.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[e.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 h-16 flex items-center justify-between",children:e.jsx(y,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 rounded",children:s("login.back_home")})}),e.jsx("main",{className:"flex-1 flex items-center justify-center px-4 py-12",children:e.jsxs("div",{className:"w-full max-w-md space-y-6",children:[h?e.jsxs("div",{className:"rounded-lg border border-oai-gray-800 bg-oai-gray-900/50 px-4 py-3 text-sm text-oai-gray-300 flex justify-between gap-3 items-start",role:"status",children:[e.jsx("span",{children:h}),e.jsx("button",{type:"button",onClick:b,className:"shrink-0 text-oai-gray-500 hover:text-white text-xs",children:s("login.dismiss")})]}):null,e.jsx("div",{className:"border border-oai-gray-900 bg-oai-gray-950 rounded-2xl overflow-hidden shadow-2xl",children:e.jsx(j,{hideLogo:!0,title:s("login.title"),subtitle:s("login.subtitle"),className:"p-8 bg-transparent",onSuccess:()=>{o?window.location.href="/auth/native-callback":i(c,{replace:!0})}})})]})})]}):e.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[e.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 py-4",children:e.jsx(y,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline",children:s("login.back_home")})}),e.jsx("main",{className:"flex-1 flex items-center justify-center px-4",children:e.jsx("p",{className:"text-oai-gray-400 text-center max-w-md",children:s("login.cloud_only")})})]})}export{L as LoginPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as L,W as se,ag as oe,r as n,ah as le,ai as ne,aj as de,Q as q,c as r,j as e,e as g,ak as ce,a5 as V,X as pe}from"./__vite-browser-external-DPOlUkcY.js";import{u as me,T as F,S as xe}from"./Controls-BVrLC_QD.js";import{P as be}from"./ProviderIcon-By8FAjxR.js";import{B as W,C as _,a as ue,b as ge}from"./skins-C8EyB85e.js";import{n as he,p as fe,C as X}from"./ClawdAnimated-BdEbs8Me.js";import{F as $}from"./FadeIn-DF2c8XaR.js";import{L as ye}from"./link-2-BQp7-3T7.js";import{L as Y}from"./loader-circle-lrDmbIg5.js";import{Z as ke}from"./zap-Du1IyEtj.js";import{T as ve}from"./trash-2-BjLWewOp.js";import{D as je,a as we,b as Ne,c as Ce,d as Se,e as Pe}from"./DialogTitle-C4ia00lc.js";import{D as Ie}from"./DialogDescription-BVlaoajd.js";import{D as ze}from"./DialogClose-D66yBqkd.js";import"./Card-SUbC3VNS.js";import"./react-DKXriBSF.js";import"./use-reduced-motion-DdpxZQoh.js";import"./composite-BDwOlhhX.js";import"./store-8e16Ac2h.js";const Ae=[["path",{d:"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",key:"4pqfef"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 12v-1",key:"1ej8lb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M8 7V6",key:"1nbb54"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]],De=L("file-archive",Ae);const Te=[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]],_e=L("monitor-up",Te);const Be=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Le=L("upload",Be),Ee={visible:!1,character:"clawd",size:"medium",botColor:"auto"};function Oe(){const t=se()&&oe(),[a,o]=n.useState(Ee);n.useEffect(()=>{if(!t)return;const c=le(l=>{o({visible:!!l.visible,character:he(l.character),size:["small","medium","large"].includes(l.size)?l.size:"medium",botColor:W.includes(l.botColor)?l.botColor:"auto"})});return ne(),c},[t]);const s=n.useCallback((c,l)=>{o(x=>({...x,[c]:l})),t&&de(c,l)},[t]);return{available:t,settings:a,setSetting:s}}const v=[{id:"clawd",displayName:"Clawd",nameKey:"pet.character.clawd",spriteVersionNumber:1,custom:!1},{id:"bot",displayName:"Bot",nameKey:"pet.character.bot",spriteVersionNumber:1,custom:!1},{id:"sprout",displayName:"Sprout",nameKey:"pet.character.sprout",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/sprout/spritesheet.webp"},{id:"byte",displayName:"Byte",nameKey:"pet.character.byte",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/byte/spritesheet.webp"},{id:"ember",displayName:"Ember",nameKey:"pet.character.ember",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/ember/spritesheet.webp"}];async function I(t){const a=await t.json().catch(()=>null);if(!t.ok||a?.ok===!1)throw new Error(a?.error||`Pet request failed with HTTP ${t.status}`);return a}async function Me(){const t=await fetch("/functions/tokentracker-pets",{headers:{Accept:"application/json"},cache:"no-store"}),a=await I(t),o=new Set(Array.isArray(a.hiddenBuiltinIds)?a.hiddenBuiltinIds:[]);return[...v.filter(s=>!s.assetUrl||!o.has(s.id)),...Array.isArray(a.pets)?a.pets:[]]}async function E(t){const a=await q();return I(await fetch("/functions/tokentracker-pets",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",...a},cache:"no-store",body:JSON.stringify(t)}))}function Ke(t){return E({action:"install_url",url:t})}async function H(t){const a=await q();return I(await fetch("/api/pets/import",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/zip",...a},cache:"no-store",body:t}))}function Re(t){return E({action:"remove",id:t})}async function Ue(){const t=await fetch("/functions/tokentracker-pets?scope=codex",{headers:{Accept:"application/json"},cache:"no-store"}),a=await I(t);return{importable:Array.isArray(a.importable)?a.importable:[],codexDetected:a.codexDetected===!0}}function Ve(t){return E({action:"import_codex",ids:t})}let B=v;function Fe(){const[t,a]=n.useState(B),[o,s]=n.useState(!0),[c,l]=n.useState(!1),x=n.useCallback(async()=>{s(!0);try{const b=await Me();return B=b,a(b),l(!0),b}catch{return B=v,a(v),l(!1),v}finally{s(!1)}},[]);return n.useEffect(()=>{x()},[x]),{pets:t,loading:o,available:c,refresh:x}}const $e={clawd:"from-oai-amber-50 dark:from-orange-950/70",bot:"from-oai-brand-50 dark:from-teal-950/70",sprout:"from-oai-brand-100 dark:from-emerald-950/70",byte:"from-oai-gray-200 dark:from-slate-800/70",ember:"from-orange-100 dark:from-orange-950/80"};function He(){const t=r("pet.import.subtitle"),a="codex-pets.net",o=t.indexOf(a);return o<0?t:e.jsxs(e.Fragment,{children:[t.slice(0,o),e.jsx("a",{href:"https://codex-pets.net",target:"_blank",rel:"noreferrer",className:"underline decoration-oai-gray-400 underline-offset-2 transition-colors hover:text-oai-black dark:decoration-oai-gray-500 dark:hover:text-white",children:a}),t.slice(o+a.length)]})}const j=[{id:"idle-living",labelKey:"pet.state.calm"},{id:"working-thinking",labelKey:"pet.state.focus"},{id:"working-juggling",labelKey:"pet.state.multitask"},{id:"working-wizard",labelKey:"pet.state.streak"},{id:"happy",labelKey:"pet.state.celebrate"},{id:"sleeping",labelKey:"pet.state.rest"}];function Z({character:t,selected:a,onSelect:o,onRemove:s,removeDisabled:c}){const l=t.nameKey?r(t.nameKey):t.displayName;return e.jsxs("div",{className:"group relative",children:[e.jsxs("button",{type:"button",onClick:o,"aria-pressed":a,className:g("relative w-full overflow-hidden rounded-xl border p-2.5 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",a?"border-oai-brand-500/40 bg-white dark:border-oai-brand-500/25 dark:bg-oai-gray-900/80":"border-oai-gray-200/80 bg-white/55 hover:border-oai-gray-400 dark:border-oai-gray-800 dark:bg-oai-gray-950/55 dark:hover:border-oai-gray-600"),children:[e.jsx("div",{className:g("absolute inset-0 bg-gradient-to-br to-transparent opacity-80 dark:opacity-55",$e[t.id]||"from-oai-gray-200/80 dark:from-oai-gray-800/70")}),e.jsxs("div",{className:"relative flex items-center gap-2.5",children:[e.jsx("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center",children:e.jsx(X,{state:"idle-living",character:t.id,pet:t,size:44})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-oai-black dark:text-white",children:l}),t.spriteVersionNumber===2?e.jsx("span",{className:"shrink-0 rounded border border-oai-gray-300/80 px-1 text-[9px] font-semibold text-oai-gray-500 dark:border-oai-gray-600 dark:text-oai-gray-400",children:r("pet.format.v2")}):null,a?e.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full bg-oai-brand-500","aria-hidden":!0}):null]})]})]}),s?e.jsx("button",{type:"button",disabled:c,onClick:s,"aria-label":`${r("pet.import.remove")} · ${l}`,className:g("absolute right-1.5 top-1.5 flex h-6 w-6 items-center justify-center rounded-md border border-oai-gray-200/90 bg-white/95 text-oai-gray-500 transition-opacity hover:text-red-600 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 disabled:opacity-40 dark:border-oai-gray-700 dark:bg-oai-gray-900/95 dark:text-oai-gray-400 dark:hover:text-red-400","opacity-0 group-hover:opacity-100"),children:e.jsx(ve,{className:"h-3 w-3","aria-hidden":!0})}):null]})}function qe({value:t,onChange:a}){const o={auto:r("pet.bot.color.auto"),bleu:r("pet.bot.color.bleu"),turquoise:r("pet.bot.color.turquoise"),vert:r("pet.bot.color.vert"),ambre:r("pet.bot.color.ambre"),rose:r("pet.bot.color.rose"),violet:r("pet.bot.color.violet")};return e.jsx("div",{className:"flex flex-wrap items-center justify-end gap-1.5 rounded-full border border-black/5 bg-white/65 px-2.5 py-1.5 backdrop-blur-md dark:border-white/10 dark:bg-black/20",role:"radiogroup","aria-label":r("pet.bot.color"),children:W.map(s=>{const c=(t||"auto")===s;return e.jsx("button",{type:"button",role:"radio","aria-checked":c,"aria-label":o[s],title:o[s],onClick:()=>a(s),className:g("h-4 w-4 rounded-full border transition-transform duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",c?"scale-125 border-oai-black shadow-sm dark:border-white":"border-black/15 hover:scale-110 dark:border-white/25"),style:s==="auto"?{background:`linear-gradient(135deg, ${_.get(ue).hex} 0 50%, ${_.get(ge).hex} 50% 100%)`}:{background:_.get(s)?.hex}},s)})})}function We({pet:t,state:a,onStateChange:o,botColor:s,onBotColorChange:c}){const[l,x]=n.useState(null),b=n.useRef(null),h=j.find(function(d){return d.id===a}),p=r(h?.labelKey||"pet.state.calm");return e.jsxs("section",{className:"relative flex min-h-[400px] flex-col overflow-hidden bg-oai-gray-50 dark:bg-oai-gray-950 sm:min-h-[440px] lg:min-h-[480px]",onPointerMove:m=>{if(t?.spriteVersionNumber!==2||!b.current)return;const d=b.current.getBoundingClientRect(),w=m.clientX-(d.left+d.width/2),N=m.clientY-(d.top+d.height/2),y=(Math.atan2(w,-N)*180/Math.PI+360)%360;x(Math.round(y/22.5)%16)},onPointerLeave:()=>x(null),children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.16] dark:opacity-[0.12]",style:{backgroundImage:"radial-gradient(currentColor 0.7px, transparent 0.7px)",backgroundSize:"14px 14px"},"aria-hidden":!0}),e.jsxs("div",{className:"relative flex items-center justify-between gap-3 px-5 pt-5",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-[0.14em] text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.preview.states")}),e.jsxs("div",{className:"flex items-center gap-2",children:[fe(t?.id)==="vector"?e.jsx(qe,{value:s,onChange:c}):null,e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-black/5 bg-white/65 px-3 py-1.5 text-[11px] font-medium text-oai-gray-600 backdrop-blur-md dark:border-white/10 dark:bg-black/20 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500","aria-hidden":!0}),p]})]})]}),e.jsx("div",{className:"relative flex flex-1 items-center justify-center px-6 py-5",children:e.jsx("div",{ref:b,className:"relative flex h-52 w-52 items-center justify-center sm:h-56 sm:w-56 lg:h-64 lg:w-64",children:e.jsx("div",{className:"origin-bottom lg:scale-[1.18]",children:e.jsx(X,{state:a,character:t?.id||"clawd",pet:t,size:190,lookDirectionIndex:l,botColor:s})})})}),e.jsx("div",{className:"relative border-t border-oai-gray-200/70 bg-white/85 px-3 py-2 dark:border-oai-gray-800 dark:bg-oai-gray-950/85",children:e.jsx("div",{className:"grid grid-cols-3 gap-1","aria-label":r("pet.preview.states"),children:j.map(m=>e.jsxs("button",{type:"button",onClick:()=>o(m.id),"aria-pressed":a===m.id,className:g("flex min-h-10 flex-col items-center justify-center gap-1 rounded-lg px-1.5 text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-oai-brand-500",a===m.id?"font-semibold text-oai-black dark:text-white":"font-medium text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white"),children:[e.jsx("span",{children:r(m.labelKey)}),e.jsx("span",{className:g("h-1 w-1 rounded-full transition-colors duration-200",a===m.id?"bg-oai-black dark:bg-white":"bg-transparent"),"aria-hidden":!0})]},m.id))})})]})}function Xe({pets:t,busy:a,error:o,onImport:s,onClose:c}){const[l,x]=n.useState(()=>new Set),b=p=>x(m=>{const d=new Set(m);return d.has(p)?d.delete(p):d.add(p),d}),h=t.length!==0&&l.size===t.length;return e.jsx(je,{open:!0,onOpenChange:p=>{!p&&!a&&c()},children:e.jsxs(we,{children:[e.jsx(Ne,{className:"fixed inset-0 z-50 bg-black/15 backdrop-blur-md dark:bg-black/40 animate-tt-fade-in"}),e.jsx(Ce,{className:"fixed inset-0 z-50 flex items-center justify-center p-3 md:p-6",children:e.jsxs(Se,{className:"relative flex max-h-[86vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-oai-gray-200/50 bg-white/95 shadow-2xl backdrop-blur-2xl dark:border-white/10 dark:bg-oai-gray-900/95 animate-tt-modal",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-oai-gray-200/70 px-5 py-4 dark:border-oai-gray-800",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(Pe,{className:"text-base font-semibold",children:r("pet.codex.title")}),e.jsx(Ie,{className:"mt-0.5 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.codex.subtitle")})]}),e.jsx(ze,{type:"button",disabled:a,"aria-label":r("pet.codex.close"),className:"shrink-0 rounded-full border border-oai-gray-200/60 p-1.5 text-oai-gray-500 transition-colors hover:text-oai-black disabled:opacity-40 dark:border-oai-gray-800/60 dark:text-oai-gray-400 dark:hover:text-white",children:e.jsx(pe,{size:16})})]}),e.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-4",children:[t.length===0?e.jsx("p",{className:"py-8 text-center text-sm text-oai-gray-400 dark:text-oai-gray-500",children:r("pet.codex.empty")}):e.jsx("div",{className:"grid grid-cols-2 gap-2.5 sm:grid-cols-3",children:t.map(p=>e.jsx(Z,{character:p,selected:l.has(p.id),onSelect:()=>b(p.id)},p.id))}),o?e.jsx("p",{role:"alert",className:"mt-3 text-xs text-red-600 dark:text-red-400",children:o}):null]}),e.jsxs("div",{className:"flex items-center justify-between gap-3 border-t border-oai-gray-200/70 px-5 py-3 dark:border-oai-gray-800",children:[e.jsx("button",{type:"button",disabled:a||t.length===0,onClick:()=>x(h?new Set:new Set(t.map(p=>p.id))),className:"text-xs font-medium text-oai-gray-500 underline-offset-2 hover:underline disabled:opacity-40 dark:text-oai-gray-400",children:r("pet.codex.select_all")}),e.jsxs("button",{type:"button",disabled:a||l.size===0,onClick:()=>s([...l]),className:"flex h-9 items-center gap-1.5 rounded-lg bg-oai-black px-4 text-xs font-semibold text-white transition-colors disabled:bg-oai-gray-200 disabled:text-oai-gray-400 dark:bg-white dark:text-black dark:disabled:bg-oai-gray-800 dark:disabled:text-oai-gray-500",children:[a?e.jsx(Y,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,l.size>0?`${r("pet.codex.import")} · ${l.size}`:r("pet.codex.import")]})]})]})})]})})}function xt(){const{available:t,settings:a,setSetting:o}=Oe(),{pets:s,loading:c,available:l,refresh:x}=Fe(),[b,h]=n.useState(""),[p,m]=n.useState(""),[d,w]=n.useState(!1),[N,y]=n.useState([]),[G,z]=n.useState(!1),[C,O]=n.useState(!1),[J,A]=n.useState(""),[Q,M]=n.useState("idle-living"),[K,ee]=n.useState(!0),k=a.character||"clawd",D=me(),R=D.settings?.menuBarIconStyle==="pet",te=s.find(i=>i.id===k)||s[0],S=d?{kind:"busy",text:r("pet.import.busy")}:p?{kind:"error",text:p}:null,U=N.length!==0;n.useEffect(()=>{!c&&s.length>0&&!s.some(i=>i.id===k)&&o("character","clawd")},[c,s,k,o]);async function P(i,u=r("pet.import.success")){w(!0),m("");try{const f=await i();await x(),ce(),f?.pet?.id&&o("character",f.pet.id),V({title:u,timeout:4e3}),h("")}catch(f){m(f?.message||r("pet.import.failed"))}finally{w(!1)}}const T=n.useCallback(async()=>{if(!l){y([]);return}try{const i=await Ue();y(i.importable)}catch{y([])}},[l]);n.useEffect(()=>{T()},[T]);async function ae(i){O(!0),A("");try{return await Ve(i),await x(),await T(),V({title:r("pet.codex.imported"),timeout:4e3}),!0}catch(u){return A(u?.message||r("pet.import.failed")),!1}finally{O(!1)}}n.useEffect(()=>{if(!K)return;const i=window.setInterval(()=>{M(u=>{const f=j.findIndex(ie=>ie.id===u);return j[(f+1)%j.length].id})},5e3);return()=>window.clearInterval(i)},[K]);const re=[{value:"small",label:r("pet.size.small")},{value:"medium",label:r("pet.size.medium")},{value:"large",label:r("pet.size.large")}];return e.jsx("div",{className:"flex flex-1 flex-col font-oai text-oai-black antialiased dark:text-oai-white",children:e.jsx("main",{className:"flex-1 pb-14 pt-8 sm:pt-10",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsx($,{y:12,children:e.jsxs("header",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-semibold tracking-tight sm:text-4xl",children:r("pet.page.title")}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.page.subtitle")})]})}),e.jsx($,{y:12,delay:.04,children:e.jsxs("div",{className:"overflow-hidden rounded-[28px] border border-oai-gray-200 bg-white/75 dark:border-oai-gray-800 dark:bg-oai-gray-900/60 lg:grid lg:grid-cols-[1.12fr_0.88fr]",children:[e.jsx(We,{pet:te,state:Q,onStateChange:i=>{ee(!1),M(i)},botColor:a.botColor,onBotColorChange:i=>o("botColor",i)}),e.jsxs("aside",{className:"flex flex-col border-t border-oai-gray-200 p-5 dark:border-oai-gray-800 lg:min-h-[480px] lg:border-l lg:border-t-0",children:[e.jsxs("section",{"aria-labelledby":"pet-character-title",children:[e.jsxs("div",{children:[e.jsx("h2",{id:"pet-character-title",className:"text-sm font-semibold",children:r("pet.characters.title")}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.characters.subtitle")})]}),e.jsx("div",{className:"mt-4 grid max-h-72 grid-cols-2 gap-2 overflow-y-auto pr-1 -mr-1",children:s.map(i=>e.jsx(Z,{character:i,selected:k===i.id,onSelect:()=>o("character",i.id),removeDisabled:d,onRemove:l&&i.id!=="clawd"&&i.id!=="bot"?()=>P(async()=>(await Re(i.id),k===i.id&&o("character","clawd"),null),r("pet.import.removed")):void 0},i.id))}),D.available?e.jsxs("div",{className:"mt-4 flex items-center justify-between gap-3 rounded-xl border border-oai-gray-200/70 bg-oai-gray-50/60 px-3 py-2.5 dark:border-oai-gray-800 dark:bg-oai-gray-900/40",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-xs font-semibold",children:r("pet.menubar.title")}),e.jsx("p",{className:"mt-0.5 text-[11px] leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.menubar.hint")})]}),e.jsx(F,{checked:R,onChange:()=>D.setSetting("menuBarIconStyle",R?"clawd":"pet"),ariaLabel:r("pet.menubar.title")})]}):null]}),l?e.jsxs("section",{className:"mt-6 border-t border-oai-gray-200/70 pt-5 dark:border-oai-gray-800","aria-labelledby":"pet-import-title",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Le,{className:"h-4 w-4 shrink-0 text-oai-gray-500","aria-hidden":!0}),e.jsx("h2",{id:"pet-import-title",className:"text-sm font-semibold",children:r("pet.import.title")})]}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:e.jsx(He,{})}),e.jsxs("form",{className:"mt-3 flex gap-2",onSubmit:i=>{i.preventDefault(),!d&&b.trim()&&P(()=>Ke(b))},children:[e.jsxs("label",{className:"relative flex min-w-0 flex-1 items-center",children:[e.jsx(ye,{className:"pointer-events-none absolute left-3 h-3.5 w-3.5 text-oai-gray-400","aria-hidden":!0}),e.jsx("input",{value:b,onChange:i=>h(i.target.value),"aria-label":r("pet.import.url_label"),placeholder:"codex-pets.net/#/pets/…",className:"h-9 w-full rounded-lg border border-oai-gray-200 bg-white pl-9 pr-3 text-xs outline-none focus:border-oai-brand-500 dark:border-oai-gray-700 dark:bg-oai-gray-950"})]}),e.jsxs("button",{type:"submit",disabled:d||!b.trim(),className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg bg-oai-black px-3.5 text-xs font-semibold text-white transition-colors disabled:bg-oai-gray-200 disabled:text-oai-gray-400 dark:bg-white dark:text-black dark:disabled:bg-oai-gray-800 dark:disabled:text-oai-gray-500",children:[d?e.jsx(Y,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,r("pet.import.add")]})]}),e.jsxs("div",{className:g("mt-2 grid gap-2",U?"grid-cols-2":"grid-cols-1"),children:[U?e.jsxs("button",{type:"button",disabled:d||C,onClick:()=>{A(""),z(!0)},className:g("flex h-9 cursor-pointer items-center justify-center gap-1.5 rounded-lg border border-dashed border-oai-gray-300 text-xs font-medium text-oai-gray-500 transition-colors hover:border-oai-gray-500 hover:text-oai-black dark:border-oai-gray-600 dark:text-oai-gray-400 dark:hover:border-oai-gray-400 dark:hover:text-white",(d||C)&&"pointer-events-none opacity-40"),children:[e.jsx(be,{provider:"codex",size:14,className:"fill-current"}),r("pet.codex.browse")]}):null,e.jsxs("label",{onDragOver:i=>i.preventDefault(),onDrop:i=>{if(i.preventDefault(),d)return;const u=i.dataTransfer?.files?.[0];u&&P(()=>H(u))},className:g("flex h-9 cursor-pointer items-center justify-center gap-1.5 rounded-lg border border-dashed border-oai-gray-300 text-xs font-medium text-oai-gray-500 transition-colors hover:border-oai-gray-500 hover:text-oai-black dark:border-oai-gray-600 dark:text-oai-gray-400 dark:hover:border-oai-gray-400 dark:hover:text-white",d&&"pointer-events-none opacity-40"),children:[e.jsx(De,{className:"h-3.5 w-3.5","aria-hidden":!0}),r("pet.import.zip"),e.jsx("input",{type:"file",accept:".zip,.codex-pet.zip,application/zip",className:"sr-only",disabled:d,onChange:i=>{const u=i.target.files?.[0];u&&P(()=>H(u)),i.target.value=""}})]})]}),S?e.jsx("p",{role:S.kind==="error"?"alert":"status",className:g("mt-2 text-xs",S.kind==="error"?"text-red-600 dark:text-red-400":"text-oai-gray-500 dark:text-oai-gray-400"),children:S.text}):null,G?e.jsx(Xe,{pets:N,busy:C,error:J,onClose:()=>{C||z(!1)},onImport:async i=>{await ae(i)&&z(!1)}}):null]}):null,e.jsxs("section",{className:"mt-6 border-t border-oai-gray-200/70 pt-5 dark:border-oai-gray-800",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75,"aria-hidden":!0}),e.jsx("h2",{className:"text-sm font-semibold",children:r("pet.controls.title")})]}),e.jsxs("div",{className:"mt-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("div",{className:"text-sm font-medium",children:r("pet.controls.show")}),e.jsx(F,{checked:a.visible,onChange:()=>o("visible",!a.visible),disabled:!t,ariaLabel:r("pet.controls.show")})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("div",{className:"text-sm font-medium",children:r("pet.controls.size")}),e.jsx("div",{className:"shrink-0",children:e.jsx(xe,{options:re,value:a.size,onChange:i=>o("size",i),disabled:!t})})]})]})]}),t?null:e.jsxs("div",{className:"mt-6 flex gap-2 rounded-xl bg-oai-gray-100 p-3 text-xs leading-relaxed text-oai-gray-500 dark:bg-oai-gray-800/70 dark:text-oai-gray-400",children:[e.jsx(ke,{className:"mt-0.5 h-3.5 w-3.5 shrink-0","aria-hidden":!0}),r("pet.controls.native_only")]})]})]})})]})})})}export{xt as PetPage};
|
|
1
|
+
import{m as L,W as se,ag as oe,r as n,ah as le,ai as ne,aj as de,Q as q,c as r,j as e,e as g,ak as ce,a5 as V,X as pe}from"./__vite-browser-external-BGnq8Ebm.js";import{u as me,T as F,S as xe}from"./Controls-vMzEZzej.js";import{P as be}from"./ProviderIcon-Caz5PuAm.js";import{B as W,C as _,a as ue,b as ge}from"./skins-C8EyB85e.js";import{n as he,p as fe,C as X}from"./ClawdAnimated-BWsB7Eat.js";import{F as $}from"./FadeIn-D7Jcfz1N.js";import{L as ye}from"./link-2-CBro-upz.js";import{L as Y}from"./loader-circle-wYFdSyOd.js";import{Z as ke}from"./zap-DStzvQJI.js";import{T as ve}from"./trash-2-CboDPwbW.js";import{D as je,a as we,b as Ne,c as Ce,d as Se,e as Pe}from"./DialogTitle-_ahf0z8b.js";import{D as Ie}from"./DialogDescription-ryGYdQjX.js";import{D as ze}from"./DialogClose-D_dvtfGV.js";import"./Card-COWo-ClV.js";import"./react-yHv9MTUA.js";import"./use-reduced-motion-DGXcZBX3.js";import"./composite-Dxmivlk4.js";import"./store-oQZR4d9M.js";const Ae=[["path",{d:"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",key:"4pqfef"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 12v-1",key:"1ej8lb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M8 7V6",key:"1nbb54"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]],De=L("file-archive",Ae);const Te=[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]],_e=L("monitor-up",Te);const Be=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Le=L("upload",Be),Ee={visible:!1,character:"clawd",size:"medium",botColor:"auto"};function Oe(){const t=se()&&oe(),[a,o]=n.useState(Ee);n.useEffect(()=>{if(!t)return;const c=le(l=>{o({visible:!!l.visible,character:he(l.character),size:["small","medium","large"].includes(l.size)?l.size:"medium",botColor:W.includes(l.botColor)?l.botColor:"auto"})});return ne(),c},[t]);const s=n.useCallback((c,l)=>{o(x=>({...x,[c]:l})),t&&de(c,l)},[t]);return{available:t,settings:a,setSetting:s}}const v=[{id:"clawd",displayName:"Clawd",nameKey:"pet.character.clawd",spriteVersionNumber:1,custom:!1},{id:"bot",displayName:"Bot",nameKey:"pet.character.bot",spriteVersionNumber:1,custom:!1},{id:"sprout",displayName:"Sprout",nameKey:"pet.character.sprout",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/sprout/spritesheet.webp"},{id:"byte",displayName:"Byte",nameKey:"pet.character.byte",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/byte/spritesheet.webp"},{id:"ember",displayName:"Ember",nameKey:"pet.character.ember",spriteVersionNumber:1,custom:!1,assetUrl:"/pets/ember/spritesheet.webp"}];async function I(t){const a=await t.json().catch(()=>null);if(!t.ok||a?.ok===!1)throw new Error(a?.error||`Pet request failed with HTTP ${t.status}`);return a}async function Me(){const t=await fetch("/functions/tokentracker-pets",{headers:{Accept:"application/json"},cache:"no-store"}),a=await I(t),o=new Set(Array.isArray(a.hiddenBuiltinIds)?a.hiddenBuiltinIds:[]);return[...v.filter(s=>!s.assetUrl||!o.has(s.id)),...Array.isArray(a.pets)?a.pets:[]]}async function E(t){const a=await q();return I(await fetch("/functions/tokentracker-pets",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",...a},cache:"no-store",body:JSON.stringify(t)}))}function Ke(t){return E({action:"install_url",url:t})}async function H(t){const a=await q();return I(await fetch("/api/pets/import",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/zip",...a},cache:"no-store",body:t}))}function Re(t){return E({action:"remove",id:t})}async function Ue(){const t=await fetch("/functions/tokentracker-pets?scope=codex",{headers:{Accept:"application/json"},cache:"no-store"}),a=await I(t);return{importable:Array.isArray(a.importable)?a.importable:[],codexDetected:a.codexDetected===!0}}function Ve(t){return E({action:"import_codex",ids:t})}let B=v;function Fe(){const[t,a]=n.useState(B),[o,s]=n.useState(!0),[c,l]=n.useState(!1),x=n.useCallback(async()=>{s(!0);try{const b=await Me();return B=b,a(b),l(!0),b}catch{return B=v,a(v),l(!1),v}finally{s(!1)}},[]);return n.useEffect(()=>{x()},[x]),{pets:t,loading:o,available:c,refresh:x}}const $e={clawd:"from-oai-amber-50 dark:from-orange-950/70",bot:"from-oai-brand-50 dark:from-teal-950/70",sprout:"from-oai-brand-100 dark:from-emerald-950/70",byte:"from-oai-gray-200 dark:from-slate-800/70",ember:"from-orange-100 dark:from-orange-950/80"};function He(){const t=r("pet.import.subtitle"),a="codex-pets.net",o=t.indexOf(a);return o<0?t:e.jsxs(e.Fragment,{children:[t.slice(0,o),e.jsx("a",{href:"https://codex-pets.net",target:"_blank",rel:"noreferrer",className:"underline decoration-oai-gray-400 underline-offset-2 transition-colors hover:text-oai-black dark:decoration-oai-gray-500 dark:hover:text-white",children:a}),t.slice(o+a.length)]})}const j=[{id:"idle-living",labelKey:"pet.state.calm"},{id:"working-thinking",labelKey:"pet.state.focus"},{id:"working-juggling",labelKey:"pet.state.multitask"},{id:"working-wizard",labelKey:"pet.state.streak"},{id:"happy",labelKey:"pet.state.celebrate"},{id:"sleeping",labelKey:"pet.state.rest"}];function Z({character:t,selected:a,onSelect:o,onRemove:s,removeDisabled:c}){const l=t.nameKey?r(t.nameKey):t.displayName;return e.jsxs("div",{className:"group relative",children:[e.jsxs("button",{type:"button",onClick:o,"aria-pressed":a,className:g("relative w-full overflow-hidden rounded-xl border p-2.5 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",a?"border-oai-brand-500/40 bg-white dark:border-oai-brand-500/25 dark:bg-oai-gray-900/80":"border-oai-gray-200/80 bg-white/55 hover:border-oai-gray-400 dark:border-oai-gray-800 dark:bg-oai-gray-950/55 dark:hover:border-oai-gray-600"),children:[e.jsx("div",{className:g("absolute inset-0 bg-gradient-to-br to-transparent opacity-80 dark:opacity-55",$e[t.id]||"from-oai-gray-200/80 dark:from-oai-gray-800/70")}),e.jsxs("div",{className:"relative flex items-center gap-2.5",children:[e.jsx("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center",children:e.jsx(X,{state:"idle-living",character:t.id,pet:t,size:44})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-oai-black dark:text-white",children:l}),t.spriteVersionNumber===2?e.jsx("span",{className:"shrink-0 rounded border border-oai-gray-300/80 px-1 text-[9px] font-semibold text-oai-gray-500 dark:border-oai-gray-600 dark:text-oai-gray-400",children:r("pet.format.v2")}):null,a?e.jsx("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full bg-oai-brand-500","aria-hidden":!0}):null]})]})]}),s?e.jsx("button",{type:"button",disabled:c,onClick:s,"aria-label":`${r("pet.import.remove")} · ${l}`,className:g("absolute right-1.5 top-1.5 flex h-6 w-6 items-center justify-center rounded-md border border-oai-gray-200/90 bg-white/95 text-oai-gray-500 transition-opacity hover:text-red-600 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 disabled:opacity-40 dark:border-oai-gray-700 dark:bg-oai-gray-900/95 dark:text-oai-gray-400 dark:hover:text-red-400","opacity-0 group-hover:opacity-100"),children:e.jsx(ve,{className:"h-3 w-3","aria-hidden":!0})}):null]})}function qe({value:t,onChange:a}){const o={auto:r("pet.bot.color.auto"),bleu:r("pet.bot.color.bleu"),turquoise:r("pet.bot.color.turquoise"),vert:r("pet.bot.color.vert"),ambre:r("pet.bot.color.ambre"),rose:r("pet.bot.color.rose"),violet:r("pet.bot.color.violet")};return e.jsx("div",{className:"flex flex-wrap items-center justify-end gap-1.5 rounded-full border border-black/5 bg-white/65 px-2.5 py-1.5 backdrop-blur-md dark:border-white/10 dark:bg-black/20",role:"radiogroup","aria-label":r("pet.bot.color"),children:W.map(s=>{const c=(t||"auto")===s;return e.jsx("button",{type:"button",role:"radio","aria-checked":c,"aria-label":o[s],title:o[s],onClick:()=>a(s),className:g("h-4 w-4 rounded-full border transition-transform duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",c?"scale-125 border-oai-black shadow-sm dark:border-white":"border-black/15 hover:scale-110 dark:border-white/25"),style:s==="auto"?{background:`linear-gradient(135deg, ${_.get(ue).hex} 0 50%, ${_.get(ge).hex} 50% 100%)`}:{background:_.get(s)?.hex}},s)})})}function We({pet:t,state:a,onStateChange:o,botColor:s,onBotColorChange:c}){const[l,x]=n.useState(null),b=n.useRef(null),h=j.find(function(d){return d.id===a}),p=r(h?.labelKey||"pet.state.calm");return e.jsxs("section",{className:"relative flex min-h-[400px] flex-col overflow-hidden bg-oai-gray-50 dark:bg-oai-gray-950 sm:min-h-[440px] lg:min-h-[480px]",onPointerMove:m=>{if(t?.spriteVersionNumber!==2||!b.current)return;const d=b.current.getBoundingClientRect(),w=m.clientX-(d.left+d.width/2),N=m.clientY-(d.top+d.height/2),y=(Math.atan2(w,-N)*180/Math.PI+360)%360;x(Math.round(y/22.5)%16)},onPointerLeave:()=>x(null),children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.16] dark:opacity-[0.12]",style:{backgroundImage:"radial-gradient(currentColor 0.7px, transparent 0.7px)",backgroundSize:"14px 14px"},"aria-hidden":!0}),e.jsxs("div",{className:"relative flex items-center justify-between gap-3 px-5 pt-5",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-[0.14em] text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.preview.states")}),e.jsxs("div",{className:"flex items-center gap-2",children:[fe(t?.id)==="vector"?e.jsx(qe,{value:s,onChange:c}):null,e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-black/5 bg-white/65 px-3 py-1.5 text-[11px] font-medium text-oai-gray-600 backdrop-blur-md dark:border-white/10 dark:bg-black/20 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500","aria-hidden":!0}),p]})]})]}),e.jsx("div",{className:"relative flex flex-1 items-center justify-center px-6 py-5",children:e.jsx("div",{ref:b,className:"relative flex h-52 w-52 items-center justify-center sm:h-56 sm:w-56 lg:h-64 lg:w-64",children:e.jsx("div",{className:"origin-bottom lg:scale-[1.18]",children:e.jsx(X,{state:a,character:t?.id||"clawd",pet:t,size:190,lookDirectionIndex:l,botColor:s})})})}),e.jsx("div",{className:"relative border-t border-oai-gray-200/70 bg-white/85 px-3 py-2 dark:border-oai-gray-800 dark:bg-oai-gray-950/85",children:e.jsx("div",{className:"grid grid-cols-3 gap-1","aria-label":r("pet.preview.states"),children:j.map(m=>e.jsxs("button",{type:"button",onClick:()=>o(m.id),"aria-pressed":a===m.id,className:g("flex min-h-10 flex-col items-center justify-center gap-1 rounded-lg px-1.5 text-xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-oai-brand-500",a===m.id?"font-semibold text-oai-black dark:text-white":"font-medium text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white"),children:[e.jsx("span",{children:r(m.labelKey)}),e.jsx("span",{className:g("h-1 w-1 rounded-full transition-colors duration-200",a===m.id?"bg-oai-black dark:bg-white":"bg-transparent"),"aria-hidden":!0})]},m.id))})})]})}function Xe({pets:t,busy:a,error:o,onImport:s,onClose:c}){const[l,x]=n.useState(()=>new Set),b=p=>x(m=>{const d=new Set(m);return d.has(p)?d.delete(p):d.add(p),d}),h=t.length!==0&&l.size===t.length;return e.jsx(je,{open:!0,onOpenChange:p=>{!p&&!a&&c()},children:e.jsxs(we,{children:[e.jsx(Ne,{className:"fixed inset-0 z-50 bg-black/15 backdrop-blur-md dark:bg-black/40 animate-tt-fade-in"}),e.jsx(Ce,{className:"fixed inset-0 z-50 flex items-center justify-center p-3 md:p-6",children:e.jsxs(Se,{className:"relative flex max-h-[86vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-oai-gray-200/50 bg-white/95 shadow-2xl backdrop-blur-2xl dark:border-white/10 dark:bg-oai-gray-900/95 animate-tt-modal",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-oai-gray-200/70 px-5 py-4 dark:border-oai-gray-800",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(Pe,{className:"text-base font-semibold",children:r("pet.codex.title")}),e.jsx(Ie,{className:"mt-0.5 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.codex.subtitle")})]}),e.jsx(ze,{type:"button",disabled:a,"aria-label":r("pet.codex.close"),className:"shrink-0 rounded-full border border-oai-gray-200/60 p-1.5 text-oai-gray-500 transition-colors hover:text-oai-black disabled:opacity-40 dark:border-oai-gray-800/60 dark:text-oai-gray-400 dark:hover:text-white",children:e.jsx(pe,{size:16})})]}),e.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-4",children:[t.length===0?e.jsx("p",{className:"py-8 text-center text-sm text-oai-gray-400 dark:text-oai-gray-500",children:r("pet.codex.empty")}):e.jsx("div",{className:"grid grid-cols-2 gap-2.5 sm:grid-cols-3",children:t.map(p=>e.jsx(Z,{character:p,selected:l.has(p.id),onSelect:()=>b(p.id)},p.id))}),o?e.jsx("p",{role:"alert",className:"mt-3 text-xs text-red-600 dark:text-red-400",children:o}):null]}),e.jsxs("div",{className:"flex items-center justify-between gap-3 border-t border-oai-gray-200/70 px-5 py-3 dark:border-oai-gray-800",children:[e.jsx("button",{type:"button",disabled:a||t.length===0,onClick:()=>x(h?new Set:new Set(t.map(p=>p.id))),className:"text-xs font-medium text-oai-gray-500 underline-offset-2 hover:underline disabled:opacity-40 dark:text-oai-gray-400",children:r("pet.codex.select_all")}),e.jsxs("button",{type:"button",disabled:a||l.size===0,onClick:()=>s([...l]),className:"flex h-9 items-center gap-1.5 rounded-lg bg-oai-black px-4 text-xs font-semibold text-white transition-colors disabled:bg-oai-gray-200 disabled:text-oai-gray-400 dark:bg-white dark:text-black dark:disabled:bg-oai-gray-800 dark:disabled:text-oai-gray-500",children:[a?e.jsx(Y,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,l.size>0?`${r("pet.codex.import")} · ${l.size}`:r("pet.codex.import")]})]})]})})]})})}function xt(){const{available:t,settings:a,setSetting:o}=Oe(),{pets:s,loading:c,available:l,refresh:x}=Fe(),[b,h]=n.useState(""),[p,m]=n.useState(""),[d,w]=n.useState(!1),[N,y]=n.useState([]),[G,z]=n.useState(!1),[C,O]=n.useState(!1),[J,A]=n.useState(""),[Q,M]=n.useState("idle-living"),[K,ee]=n.useState(!0),k=a.character||"clawd",D=me(),R=D.settings?.menuBarIconStyle==="pet",te=s.find(i=>i.id===k)||s[0],S=d?{kind:"busy",text:r("pet.import.busy")}:p?{kind:"error",text:p}:null,U=N.length!==0;n.useEffect(()=>{!c&&s.length>0&&!s.some(i=>i.id===k)&&o("character","clawd")},[c,s,k,o]);async function P(i,u=r("pet.import.success")){w(!0),m("");try{const f=await i();await x(),ce(),f?.pet?.id&&o("character",f.pet.id),V({title:u,timeout:4e3}),h("")}catch(f){m(f?.message||r("pet.import.failed"))}finally{w(!1)}}const T=n.useCallback(async()=>{if(!l){y([]);return}try{const i=await Ue();y(i.importable)}catch{y([])}},[l]);n.useEffect(()=>{T()},[T]);async function ae(i){O(!0),A("");try{return await Ve(i),await x(),await T(),V({title:r("pet.codex.imported"),timeout:4e3}),!0}catch(u){return A(u?.message||r("pet.import.failed")),!1}finally{O(!1)}}n.useEffect(()=>{if(!K)return;const i=window.setInterval(()=>{M(u=>{const f=j.findIndex(ie=>ie.id===u);return j[(f+1)%j.length].id})},5e3);return()=>window.clearInterval(i)},[K]);const re=[{value:"small",label:r("pet.size.small")},{value:"medium",label:r("pet.size.medium")},{value:"large",label:r("pet.size.large")}];return e.jsx("div",{className:"flex flex-1 flex-col font-oai text-oai-black antialiased dark:text-oai-white",children:e.jsx("main",{className:"flex-1 pb-14 pt-8 sm:pt-10",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsx($,{y:12,children:e.jsxs("header",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-semibold tracking-tight sm:text-4xl",children:r("pet.page.title")}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.page.subtitle")})]})}),e.jsx($,{y:12,delay:.04,children:e.jsxs("div",{className:"overflow-hidden rounded-[28px] border border-oai-gray-200 bg-white/75 dark:border-oai-gray-800 dark:bg-oai-gray-900/60 lg:grid lg:grid-cols-[1.12fr_0.88fr]",children:[e.jsx(We,{pet:te,state:Q,onStateChange:i=>{ee(!1),M(i)},botColor:a.botColor,onBotColorChange:i=>o("botColor",i)}),e.jsxs("aside",{className:"flex flex-col border-t border-oai-gray-200 p-5 dark:border-oai-gray-800 lg:min-h-[480px] lg:border-l lg:border-t-0",children:[e.jsxs("section",{"aria-labelledby":"pet-character-title",children:[e.jsxs("div",{children:[e.jsx("h2",{id:"pet-character-title",className:"text-sm font-semibold",children:r("pet.characters.title")}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.characters.subtitle")})]}),e.jsx("div",{className:"mt-4 grid max-h-72 grid-cols-2 gap-2 overflow-y-auto pr-1 -mr-1",children:s.map(i=>e.jsx(Z,{character:i,selected:k===i.id,onSelect:()=>o("character",i.id),removeDisabled:d,onRemove:l&&i.id!=="clawd"&&i.id!=="bot"?()=>P(async()=>(await Re(i.id),k===i.id&&o("character","clawd"),null),r("pet.import.removed")):void 0},i.id))}),D.available?e.jsxs("div",{className:"mt-4 flex items-center justify-between gap-3 rounded-xl border border-oai-gray-200/70 bg-oai-gray-50/60 px-3 py-2.5 dark:border-oai-gray-800 dark:bg-oai-gray-900/40",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-xs font-semibold",children:r("pet.menubar.title")}),e.jsx("p",{className:"mt-0.5 text-[11px] leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:r("pet.menubar.hint")})]}),e.jsx(F,{checked:R,onChange:()=>D.setSetting("menuBarIconStyle",R?"clawd":"pet"),ariaLabel:r("pet.menubar.title")})]}):null]}),l?e.jsxs("section",{className:"mt-6 border-t border-oai-gray-200/70 pt-5 dark:border-oai-gray-800","aria-labelledby":"pet-import-title",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Le,{className:"h-4 w-4 shrink-0 text-oai-gray-500","aria-hidden":!0}),e.jsx("h2",{id:"pet-import-title",className:"text-sm font-semibold",children:r("pet.import.title")})]}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:e.jsx(He,{})}),e.jsxs("form",{className:"mt-3 flex gap-2",onSubmit:i=>{i.preventDefault(),!d&&b.trim()&&P(()=>Ke(b))},children:[e.jsxs("label",{className:"relative flex min-w-0 flex-1 items-center",children:[e.jsx(ye,{className:"pointer-events-none absolute left-3 h-3.5 w-3.5 text-oai-gray-400","aria-hidden":!0}),e.jsx("input",{value:b,onChange:i=>h(i.target.value),"aria-label":r("pet.import.url_label"),placeholder:"codex-pets.net/#/pets/…",className:"h-9 w-full rounded-lg border border-oai-gray-200 bg-white pl-9 pr-3 text-xs outline-none focus:border-oai-brand-500 dark:border-oai-gray-700 dark:bg-oai-gray-950"})]}),e.jsxs("button",{type:"submit",disabled:d||!b.trim(),className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg bg-oai-black px-3.5 text-xs font-semibold text-white transition-colors disabled:bg-oai-gray-200 disabled:text-oai-gray-400 dark:bg-white dark:text-black dark:disabled:bg-oai-gray-800 dark:disabled:text-oai-gray-500",children:[d?e.jsx(Y,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}):null,r("pet.import.add")]})]}),e.jsxs("div",{className:g("mt-2 grid gap-2",U?"grid-cols-2":"grid-cols-1"),children:[U?e.jsxs("button",{type:"button",disabled:d||C,onClick:()=>{A(""),z(!0)},className:g("flex h-9 cursor-pointer items-center justify-center gap-1.5 rounded-lg border border-dashed border-oai-gray-300 text-xs font-medium text-oai-gray-500 transition-colors hover:border-oai-gray-500 hover:text-oai-black dark:border-oai-gray-600 dark:text-oai-gray-400 dark:hover:border-oai-gray-400 dark:hover:text-white",(d||C)&&"pointer-events-none opacity-40"),children:[e.jsx(be,{provider:"codex",size:14,className:"fill-current"}),r("pet.codex.browse")]}):null,e.jsxs("label",{onDragOver:i=>i.preventDefault(),onDrop:i=>{if(i.preventDefault(),d)return;const u=i.dataTransfer?.files?.[0];u&&P(()=>H(u))},className:g("flex h-9 cursor-pointer items-center justify-center gap-1.5 rounded-lg border border-dashed border-oai-gray-300 text-xs font-medium text-oai-gray-500 transition-colors hover:border-oai-gray-500 hover:text-oai-black dark:border-oai-gray-600 dark:text-oai-gray-400 dark:hover:border-oai-gray-400 dark:hover:text-white",d&&"pointer-events-none opacity-40"),children:[e.jsx(De,{className:"h-3.5 w-3.5","aria-hidden":!0}),r("pet.import.zip"),e.jsx("input",{type:"file",accept:".zip,.codex-pet.zip,application/zip",className:"sr-only",disabled:d,onChange:i=>{const u=i.target.files?.[0];u&&P(()=>H(u)),i.target.value=""}})]})]}),S?e.jsx("p",{role:S.kind==="error"?"alert":"status",className:g("mt-2 text-xs",S.kind==="error"?"text-red-600 dark:text-red-400":"text-oai-gray-500 dark:text-oai-gray-400"),children:S.text}):null,G?e.jsx(Xe,{pets:N,busy:C,error:J,onClose:()=>{C||z(!1)},onImport:async i=>{await ae(i)&&z(!1)}}):null]}):null,e.jsxs("section",{className:"mt-6 border-t border-oai-gray-200/70 pt-5 dark:border-oai-gray-800",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_e,{className:"h-4 w-4 text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75,"aria-hidden":!0}),e.jsx("h2",{className:"text-sm font-semibold",children:r("pet.controls.title")})]}),e.jsxs("div",{className:"mt-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("div",{className:"text-sm font-medium",children:r("pet.controls.show")}),e.jsx(F,{checked:a.visible,onChange:()=>o("visible",!a.visible),disabled:!t,ariaLabel:r("pet.controls.show")})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("div",{className:"text-sm font-medium",children:r("pet.controls.size")}),e.jsx("div",{className:"shrink-0",children:e.jsx(xe,{options:re,value:a.size,onChange:i=>o("size",i),disabled:!t})})]})]})]}),t?null:e.jsxs("div",{className:"mt-6 flex gap-2 rounded-xl bg-oai-gray-100 p-3 text-xs leading-relaxed text-oai-gray-500 dark:bg-oai-gray-800/70 dark:text-oai-gray-400",children:[e.jsx(ke,{className:"mt-0.5 h-3.5 w-3.5 shrink-0","aria-hidden":!0}),r("pet.controls.native_only")]})]})]})})]})})})}export{xt as PetPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as v,aJ as Ye,b9 as Xe,aI as Ue,ba as Ve,bb as ce,bc as Ke,bd as ne,aF as pe,be as Z,bf as ge,bg as me,bh as te,A as J,bi as Q,aD as Ce,bj as We,bk as Fe,aE as z,a3 as le,ay as de,aG as qe,bl as he,bm as ze,E as Qe,bn as $e,bo as Ee,j as X,aH as Je,bp as Ze,bq as et,br as tt,bs as nt,y as ot,z as ke,bt as st,bu as Ie,aB as rt,bv as it,bw as at,aC as ct,aA as lt,bx as ut}from"./__vite-browser-external-DPOlUkcY.js";import{p as ft,c as dt,a as pt}from"./store-8e16Ac2h.js";import{n as Te,o as we,q as gt,r as Pe,v as oe,w as mt,s as ht,P as Et,x as Tt,i as Pt,j as vt,k as Ct,l as St,h as bt,e as Rt,g as Ot,u as It,y as Mt,z as yt,t as xt,A as Ft,I as kt,B as wt,c as Ht,b as At,d as Lt,C as Dt,p as Bt}from"./composite-BDwOlhhX.js";import{a as Nt,b as jt,c as _t,d as Gt,e as Yt,f as Xt,g as Ut}from"./ToolbarRootContext-XUDMp5uy.js";function Vt(e,n){return n!=null&&!Te(n)?0:typeof e=="function"?e():e}function ve(e,n,t){const c=Vt(e,t);return typeof c=="number"?c:c?.[n]}function Me(e){return typeof e=="function"?e():e}function He(e,n){return n||e==="click"||e==="mousedown"}function Kt(e){return e?.includes("mouse")&&e!=="mousedown"}function Wt(e){const n=v.useCallback(c=>e===void 0?Ye:e.subscribeStore(c),[e]),t=v.useCallback(()=>e===void 0?void 0:e.store,[e]);return Xe.useSyncExternalStore(n,t,()=>e?.serverStore)}class Se{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new ce,this.restTimeout=new ce,this.handleCloseOptions=void 0}static create(){return new Se}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const ue=new WeakMap;function fe(e){if(!e.performedPointerEventsMutation)return;const n=e.pointerEventsScopeElement;n&&ue.get(n)===e&&(e.pointerEventsScopeElement?.style.removeProperty("pointer-events"),e.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),e.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),ue.delete(n)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function Ae(e,n){const{scopeElement:t,referenceElement:c,floatingElement:i}=n,s=ue.get(t);s&&s!==e&&fe(s),fe(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=t,e.pointerEventsReferenceElement=c,e.pointerEventsFloatingElement=i,ue.set(t,e),t.style.pointerEvents="none",c.style.pointerEvents="auto",i.style.pointerEvents="auto"}function Le(e){const n=e.context.dataRef.current,t=Ue(()=>n.hoverInteractionState??Se.create()).current;return n.hoverInteractionState||(n.hoverInteractionState=t),Ve(n.hoverInteractionState.disposeEffect),n.hoverInteractionState}function qt(e,n={}){const{enabled:t=!0,closeDelay:c=0,nodeId:i}=n,s="rootStore"in e?e.rootStore:e,h=s.useState("open"),d=s.useState("floatingElement"),I=s.useState("domReferenceElement"),{dataRef:l}=s.context,r=we(),b=gt(),p=Le(s),N=Ke(),L=ne(()=>He(l.current.openEvent?.type,p.interactedInside)),u=ne(()=>Kt(l.current.openEvent?.type)),B=ne(()=>{fe(p)});pe(()=>{h||(p.pointerType=void 0,p.restTimeoutPending=!1,p.interactedInside=!1,B())},[h,p,B]),v.useEffect(()=>B,[B]),pe(()=>{if(t&&h&&p.handleCloseOptions?.blockPointerEvents&&u()&&Z(I)&&d){const T=I,x=d,o=ge(d),k=r?.nodesRef.current.find(C=>C.id===b)?.context?.elements.floating;k&&(k.style.pointerEvents="");const w=p.pointerEventsScopeElement!==x?p.pointerEventsScopeElement:null,S=k!==x?k:null,g=p.handleCloseOptions?.getScope?.()??w??S??T.closest("[data-rootownerid]")??o.body;return Ae(p,{scopeElement:g,referenceElement:T,floatingElement:x}),()=>{B()}}},[t,h,I,d,p,u,r,b,B]),v.useEffect(()=>{if(!t)return;function T(){return!!(r&&b&&Pe(r.nodesRef.current,b).length>0)}function x(C){const F=ve(c,"close",p.pointerType),j=()=>{s.setOpen(!1,J(Q,C)),r?.events.emit("floating.closed",C)};F?p.openChangeTimeout.start(F,j):(p.openChangeTimeout.clear(),j())}function o(C){const F=Ce(C);if(!We(F)){p.interactedInside=!1;return}p.interactedInside=F?.closest("[aria-haspopup]")!=null}function k(){p.openChangeTimeout.clear(),N.clear(),r?.events.off("floating.closed",S),B()}function w(C){if(T()&&r){r.events.on("floating.closed",S);return}if(Fe(C.relatedTarget,s.context.triggerElements))return;const F=l.current.floatingContext?.nodeId??i,j=C.relatedTarget;if(!(r&&F&&Z(j)&&Pe(r.nodesRef.current,F,!1).some(_=>z(_.context?.elements.floating,j)))){if(p.handler){p.handler(C);return}B(),u()&&!L()&&x(C)}}function S(C){!r||!b||T()||N.start(0,()=>{r.events.off("floating.closed",S),s.setOpen(!1,J(Q,C)),r.events.emit("floating.closed",C)})}const g=d;return me(g&&te(g,"mouseenter",k),g&&te(g,"mouseleave",w),g&&te(g,"pointerdown",o,!0),()=>{r?.events.off("floating.closed",S)})},[t,d,s,l,c,i,u,L,B,p,r,b,N])}const zt={current:null};function Qt(e,n={}){const{enabled:t=!0,delay:c=0,handleClose:i=null,mouseOnly:s=!1,restMs:h=0,move:d=!0,triggerElementRef:I=zt,externalTree:l,isActiveTrigger:r=!0,getHandleCloseContext:b,isClosing:p,shouldOpen:N,guardStaleOpen:L=!1}=n,u="rootStore"in e?e.rootStore:e,{dataRef:B,events:T}=u.context,x=we(l),o=Le(u),k=v.useRef(!1),w=oe(i),S=oe(c),g=oe(h),C=oe(t),F=oe(N),j=oe(p),W=ne(()=>He(B.current.openEvent?.type,o.interactedInside)),_=ne(()=>F.current?.()!==!1),G=ne((O,m,M)=>{const E=u.context.triggerElements;if(E.hasElement(m))return!O||!z(O,m);if(!Z(M))return!1;const q=M;return E.hasMatchingElement(U=>z(U,q))&&(!O||!z(O,q))}),R=ne(()=>{if(!o.handler)return;ge(u.select("domReferenceElement")).removeEventListener("mousemove",o.handler),o.handler=void 0}),a=ne(()=>{fe(o)});return r&&(o.handleCloseOptions=w.current?.__options),v.useEffect(()=>R,[R]),v.useEffect(()=>{if(!t)return;function O(m){m.open?k.current=!1:(k.current=m.reason===Q,R(),o.openChangeTimeout.clear(),o.restTimeout.clear(),o.blockMouseMove=!0,o.restTimeoutPending=!1)}return T.on("openchange",O),()=>{T.off("openchange",O)}},[t,T,o,R]),v.useEffect(()=>{if(!t)return;function O(P,V=!0){const D=ve(S.current,"close",o.pointerType);D?o.openChangeTimeout.start(D,()=>{u.setOpen(!1,J(Q,P)),x?.events.emit("floating.closed",P)}):V&&(o.openChangeTimeout.clear(),u.setOpen(!1,J(Q,P)),x?.events.emit("floating.closed",P))}const m=I.current??(r?u.select("domReferenceElement"):null);if(!Z(m))return;function M(P){if(o.openChangeTimeout.clear(),o.blockMouseMove=!1,s&&!Te(o.pointerType))return;const V=Me(g.current),D=ve(S.current,"open",o.pointerType),H=Ce(P),f=P.currentTarget??null,A=u.select("domReferenceElement");let Y=f;if(Z(H)&&!u.context.triggerElements.hasElement(H)){for(const Oe of u.context.triggerElements.elements())if(z(Oe,H)){Y=Oe;break}}Z(f)&&Z(A)&&!u.context.triggerElements.hasElement(f)&&z(f,A)&&(Y=A);const K=Y==null?!1:G(A,Y,H),$=u.select("open"),ee=j.current?.()??u.select("transitionStatus")==="ending",be=!$&&ee&&k.current,je=!K&&Z(Y)&&Z(A)&&z(A,Y)&&be,_e=V>0&&!D,Ge=K&&($||be)||je,Re=!$||K;if(Ge){_()&&u.setOpen(!0,J(Q,P,Y));return}_e||(D?o.openChangeTimeout.start(D,()=>{Re&&_()&&u.setOpen(!0,J(Q,P,Y))}):Re&&_()&&u.setOpen(!0,J(Q,P,Y)))}function E(P){if(W()){a();return}R();const V=u.select("domReferenceElement"),D=ge(V);o.restTimeout.clear(),o.restTimeoutPending=!1;const H=B.current.floatingContext??b?.();if(Fe(P.relatedTarget,u.context.triggerElements))return;if(w.current&&H){u.select("open")||o.openChangeTimeout.clear();const A=I.current;o.handler=w.current({...H,tree:x,x:P.clientX,y:P.clientY,onClose(){a(),R(),C.current&&!W()&&A===u.select("domReferenceElement")&&O(P,!0)}}),D.addEventListener("mousemove",o.handler),o.handler(P);return}(o.pointerType!=="touch"||!z(u.select("floatingElement"),P.relatedTarget))&&O(P)}function q(P){z(m,P.relatedTarget)||(o.openChangeTimeout.clear(),o.restTimeout.clear(),o.restTimeoutPending=!1)}const U=L?te(m,"mouseout",q):void 0;return d?me(te(m,"mousemove",M,{once:!0}),te(m,"mouseenter",M),te(m,"mouseleave",E),U):me(te(m,"mouseenter",M),te(m,"mouseleave",E),U)},[R,a,B,S,u,t,w,o,r,G,W,s,d,g,I,x,C,b,j,_,L]),v.useMemo(()=>{if(!t)return;function O(m){o.pointerType=m.pointerType}return{onPointerDown:O,onPointerEnter:O,onMouseMove(m){const{nativeEvent:M}=m,E=m.currentTarget,q=u.select("domReferenceElement"),U=u.select("open"),P=G(q,E,m.target);if(s&&!Te(o.pointerType))return;if(U&&P&&o.handleCloseOptions?.blockPointerEvents){const H=u.select("floatingElement");if(H){const f=o.handleCloseOptions?.getScope?.()??E.ownerDocument.body;Ae(o,{scopeElement:f,referenceElement:E,floatingElement:H})}}const V=Me(g.current);if(U&&!P||V===0||!P&&o.restTimeoutPending&&m.movementX**2+m.movementY**2<2)return;o.restTimeout.clear();function D(){if(o.restTimeoutPending=!1,W())return;const H=u.select("open");!o.blockMouseMove&&(!H||P)&&_()&&u.setOpen(!0,J(Q,M,E))}o.pointerType==="touch"?le.flushSync(()=>{D()}):P&&U?D():(o.restTimeoutPending=!0,o.restTimeout.start(V,D))}}},[t,o,W,G,s,u,g,_])}const ye=.1,$t=ye*ye,y=.5;function re(e,n,t,c,i,s){return c>=n!=s>=n&&e<=(i-t)*(n-c)/(s-c)+t}function ie(e,n,t,c,i,s,h,d,I,l){let r=!1;return re(e,n,t,c,i,s)&&(r=!r),re(e,n,i,s,h,d)&&(r=!r),re(e,n,h,d,I,l)&&(r=!r),re(e,n,I,l,t,c)&&(r=!r),r}function Jt(e,n,t){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height}function ae(e,n,t,c,i,s){const h=Math.min(t,i),d=Math.max(t,i),I=Math.min(c,s),l=Math.max(c,s);return e>=h&&e<=d&&n>=I&&n<=l}function Zt(e={}){const{blockPointerEvents:n=!1}=e,t=new ce,c=({x:i,y:s,placement:h,elements:d,onClose:I,nodeId:l,tree:r})=>{const b=h?.split("-")[0];let p=!1,N=null,L=null,u=typeof performance<"u"?performance.now():0;function B(x,o){const k=performance.now(),w=k-u;if(N===null||L===null||w===0)return N=x,L=o,u=k,!1;const S=x-N,g=o-L,C=S*S+g*g,F=w*w*$t;return N=x,L=o,u=k,C<F}function T(){t.clear(),I()}return function(o){t.clear();const k=d.domReference,w=d.floating;if(!k||!w||b==null||i==null||s==null)return;const{clientX:S,clientY:g}=o,C=Ce(o),F=o.type==="mouseleave",j=z(w,C),W=z(k,C);if(j&&(p=!0,!F))return;if(W&&(p=!1,!F)){p=!0;return}if(F&&Z(o.relatedTarget)&&z(w,o.relatedTarget))return;function _(){return!!(r&&Pe(r.nodesRef.current,l).length>0)}function G(){_()||T()}if(_())return;const R=k.getBoundingClientRect(),a=w.getBoundingClientRect(),O=i>a.right-a.width/2,m=s>a.bottom-a.height/2,M=a.width>R.width,E=a.height>R.height,q=(M?R:a).left,U=(M?R:a).right,P=(E?R:a).top,V=(E?R:a).bottom;if(b==="top"&&s>=R.bottom-1||b==="bottom"&&s<=R.top+1||b==="left"&&i>=R.right-1||b==="right"&&i<=R.left+1){G();return}let D=!1;switch(b){case"top":D=ae(S,g,q,R.top+1,U,a.bottom-1);break;case"bottom":D=ae(S,g,q,a.top+1,U,R.bottom-1);break;case"left":D=ae(S,g,a.right-1,V,R.left+1,P);break;case"right":D=ae(S,g,R.right-1,V,a.left+1,P);break}if(D)return;if(p&&!Jt(S,g,R)){G();return}if(!F&&B(S,g)){G();return}let H=!1;switch(b){case"top":{const f=M?y/2:y*4,A=M||O?i+f:i-f,Y=M?i-f:O?i+f:i-f,K=s+y+1,$=O||M?a.bottom-y:a.top,ee=O?M?a.bottom-y:a.top:a.bottom-y;H=ie(S,g,A,K,Y,K,a.left,$,a.right,ee);break}case"bottom":{const f=M?y/2:y*4,A=M||O?i+f:i-f,Y=M?i-f:O?i+f:i-f,K=s-y,$=O||M?a.top+y:a.bottom,ee=O?M?a.top+y:a.bottom:a.top+y;H=ie(S,g,A,K,Y,K,a.left,$,a.right,ee);break}case"left":{const f=E?y/2:y*4,A=E||m?s+f:s-f,Y=E?s-f:m?s+f:s-f,K=i+y+1,$=m||E?a.right-y:a.left,ee=m?E?a.right-y:a.left:a.right-y;H=ie(S,g,$,a.top,ee,a.bottom,K,A,K,Y);break}case"right":{const f=E?y/2:y*4,A=E||m?s+f:s-f,Y=E?s-f:m?s+f:s-f,K=i-y,$=m||E?a.left+y:a.right,ee=m?E?a.left+y:a.right:a.left+y;H=ie(S,g,K,A,K,Y,$,a.top,ee,a.bottom);break}}H?p||t.start(40,G):G()}};return c.__options={...e,blockPointerEvents:n},c}const De=v.createContext(void 0);function se(e){const n=v.useContext(De);if(n===void 0&&!e)throw new Error(de(47));return n}const en={...ft,disabled:e=>e.disabled,instantType:e=>e.instantType,openMethod:e=>e.openMethod,openChangeReason:e=>e.openChangeReason,modal:e=>e.modal,focusManagerModal:e=>e.focusManagerModal,stickIfOpen:e=>e.stickIfOpen,titleElementId:e=>e.titleElementId,descriptionElementId:e=>e.descriptionElementId,openOnHover:e=>e.openOnHover,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin};class tn extends qe{constructor(n,t,c){const i=new Et;super(nn(n,i,t,c),on(i),en)}setOpen=(n,t)=>{const c=t.reason===Q,i=t.reason===he&&t.event.detail===0,s=!n&&(t.reason===ze||t.reason==null),h=mt(t),d=this.select("activeTriggerId");if(!n&&t.reason===Qe&&t.trigger==null&&d!=null&&(t.trigger=this.context.triggerElements.getById(d)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(n,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(n,t);const I=()=>{const r={open:n,openChangeReason:t.reason};ht(r,n,t.trigger,h()),this.update(r)};c?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start($e,()=>{this.set("stickIfOpen",!1)}),le.flushSync(I)):I();let l;i?l="click":s?l="dismiss":t.reason===Ee&&(l="focus"),this.set("instantType",l)}}function nn(e,n,t,c=!1){const i={...dt(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,openOnHover:!1,closeDelay:0,adaptiveOrigin:void 0,...e};return i.open&&e?.mounted===void 0&&(i.mounted=!0),i.floatingRootContext=pt(n,t,c),i}function on(e){return{popupRef:v.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:v.createRef(),beforeContentFocusGuardRef:v.createRef(),stickIfOpenTimeout:new ce,triggerElements:e}}function xe({props:e}){const{children:n,open:t,defaultOpen:c=!1,onOpenChange:i,onOpenChangeComplete:s,modal:h=!1,handle:d,triggerId:I,defaultTriggerId:l=null}=e,r=sn(d,{modal:h,open:c,openProp:t,activeTriggerId:l,triggerIdProp:I});r.useControlledProp("openProp",t),r.useControlledProp("triggerIdProp",I);const b=r.useState("open"),p=r.useState("mounted"),N=r.useState("payload");r.useContextCallback("onOpenChange",i),r.useContextCallback("onOpenChangeComplete",s),Pt(r,b),vt(r);const{forceUnmount:L}=Ct(b,r,()=>{r.update({stickIfOpen:!0,openChangeReason:null})});r.useSyncedValues({modal:h}),v.useEffect(()=>{b||r.context.stickIfOpenTimeout.clear()},[r,b]),v.useImperativeHandle(e.actionsRef,()=>({unmount:L,close:()=>r.setOpen(!1,J(Je))}),[L,r]);const u=b||p;return X.jsxs(De.Provider,{value:r,children:[d&&X.jsx(St,{handle:d,store:r}),u&&X.jsx(rn,{store:r,modal:h}),typeof n=="function"?n({payload:N}):n]})}function En(e){return se(!0)?X.jsx(xe,{props:e}):X.jsx(Tt,{children:X.jsx(xe,{props:e})})}function sn(e,n){const t=bt((c,i)=>new tn(n,c,i));return v.useEffect(()=>t.context.stickIfOpenTimeout.disposeEffect(),[t]),t}function rn({store:e,modal:n}){const t=e.useState("floatingRootContext"),c=Rt(t,{outsidePressEvent:{mouse:n==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),i=c.reference,s=c.floating;return Ot(e,{activeTriggerProps:i,inactiveTriggerProps:i,popupProps:s}),null}const an=300;function cn(e,n){const t=v.useRef(null);function c(s){le.flushSync(()=>{e.setOpen(!1,J(Ee,s.nativeEvent,s.currentTarget))}),nt(t.current)?.focus()}function i(s){const h=e.select("positionerElement");if(h&&Ze(s,h))e.context.beforeContentFocusGuardRef.current?.focus();else{le.flushSync(()=>{e.setOpen(!1,J(Ee,s.nativeEvent,s.currentTarget))});let d=et(e.context.triggerFocusTargetRef.current||n.current);for(;d!==null&&z(h,d);){const I=d;if(d=tt(d),d===I)break}d?.focus()}}return{preFocusGuardRef:t,handlePreFocusGuardFocus:c,handleFocusTargetFocus:i}}const Tn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,disabled:h=!1,nativeButton:d=!0,handle:I,payload:l,openOnHover:r=!1,delay:b=an,closeDelay:p=0,id:N,...L}=n,u=se(!0),T=Wt(I)??u;if(!T)throw new Error(de(74));const x=It(N),o=T.useState("isTriggerActive",x),k=T.useState("floatingRootContext"),w=T.useState("isOpenedByTrigger",x),S=T.useState("triggerPopupId",x),g=v.useRef(null),{registerTrigger:C,isMountedByThisTrigger:F}=Mt(x,g,T,{payload:l,disabled:h,openOnHover:r,closeDelay:p}),j=T.useState("openChangeReason"),W=T.useState("stickIfOpen"),_=T.useState("openMethod"),G=T.useState("focusManagerModal"),R=Qt(k,{enabled:!h&&r&&(_!=="touch"||j!==he),mouseOnly:!0,move:!1,handleClose:Zt(),restMs:b,delay:{close:p},triggerElementRef:g,isActiveTrigger:o,isClosing:()=>T.select("transitionStatus")==="ending"}),a=Nt(k,{stickIfOpen:W}),O=jt(()=>T.select("open"),A=>{T.set("openMethod",A)}),m=T.useState("triggerProps",F),{getButtonProps:M,buttonRef:E}=ot({disabled:h,native:d}),q={open(A){return A&&j===he?yt.open(A):xt.open(A)}},{preFocusGuardRef:U,handlePreFocusGuardFocus:P,handleFocusTargetFocus:V}=cn(T,g),H=ke("button",n,{state:{disabled:h,open:w},ref:[E,t,C,g],props:[a.reference,R,m,O,{[st]:"",id:x,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":S},L,M],stateAttributesMapping:q}),f=X.jsx(v.Fragment,{children:H},x);return F&&!G?X.jsxs(v.Fragment,{children:[X.jsx(Ie,{ref:U,onFocus:P}),f,X.jsx(Ie,{ref:T.context.triggerFocusTargetRef,onFocus:V})]}):f}),Be=v.createContext(void 0);function ln(){const e=v.useContext(Be);if(e===void 0)throw new Error(de(45));return e}const Pn=v.forwardRef(function(n,t){const{keepMounted:c=!1,...i}=n;return se().useState("mounted")||c?X.jsx(Be.Provider,{value:c,children:X.jsx(rt,{ref:t,...i})}):null}),Ne=v.createContext(void 0);function un(){const e=v.useContext(Ne);if(!e)throw new Error(de(46));return e}const vn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,anchor:h,positionMethod:d,side:I,align:l,sideOffset:r,alignOffset:b,collisionBoundary:p="clipping-ancestors",collisionPadding:N,arrowPadding:L,sticky:u,disableAnchorTracking:B=!1,collisionAvoidance:T=it,...x}=n,o=se(),k=ln(),w=Ft(),S=o.useState("floatingRootContext"),g=o.useState("mounted"),C=o.useState("open"),F=o.useState("openChangeReason"),j=o.useState("activeTriggerElement"),W=o.useState("modal"),_=o.useState("openMethod"),G=o.useState("positionerElement"),R=o.useState("instantType"),a=o.useState("transitionStatus"),O=o.useState("adaptiveOrigin"),m=v.useRef(null),M=at(G),E=_t({anchor:h,floatingRootContext:S,positionMethod:d,mounted:g,side:I,sideOffset:r,align:l,alignOffset:b,arrowPadding:L,collisionBoundary:p,collisionPadding:N,sticky:u,disableAnchorTracking:B,keepMounted:k,nodeId:w,collisionAvoidance:T,adaptiveOrigin:O}),q=S.useState("domReferenceElement");pe(()=>{const H=q,f=m.current;if(H&&(m.current=H),f&&H&&H!==f){o.set("instantType",void 0);const A=new AbortController;return M(()=>{o.set("instantType","trigger-change")},A.signal),()=>{A.abort()}}},[q,M,o]);const U=W===!0&&F!==Q;Gt(C&&U,_==="touch",G,j);const P=o.useStateSetter("positionerElement"),V={open:C,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:R},D=Yt(n,V,{styles:E.positionerStyles,transitionStatus:a,props:x,refs:[t,P],hidden:!g,inert:!C});return X.jsxs(Ne.Provider,{value:E,children:[g&&U&&X.jsx(kt,{inert:ct(!C),cutout:j}),X.jsx(wt,{id:w,children:D})]})}),fn=v.createContext(void 0);function dn(){const[e,n]=v.useState(0),t=ne(()=>(n(i=>i+1),()=>{n(i=>Math.max(0,i-1))}));return{context:v.useMemo(()=>({register:t}),[t]),hasClosePart:e>0}}const Cn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,initialFocus:h,finalFocus:d,...I}=n,l=se(),r=un(),b=Xt()!=null,{context:p,hasClosePart:N}=dn(),L=l.useState("open"),u=l.useState("openMethod"),B=l.useState("instantType"),T=l.useState("transitionStatus"),x=l.useState("popupProps"),o=l.useState("titleElementId"),k=l.useState("descriptionElementId"),w=l.useState("modal"),S=l.useState("mounted"),g=l.useState("openChangeReason"),C=l.useState("activeTriggerElement"),F=l.useState("floatingRootContext"),j=F.useState("floatingId"),W=l.useState("disabled"),_=l.useState("openOnHover"),G=l.useState("closeDelay");lt({open:L,ref:l.context.popupRef,onComplete(){L&&l.context.onOpenChangeComplete?.(!0)}}),qt(F,{enabled:_&&!W,closeDelay:G});const R=h===void 0?Ht(l.context.popupRef):h,a=w!==!1&&N;l.useSyncedValue("focusManagerModal",a);const O=l.useStateSetter("popupElement"),m={open:L,side:r.side,align:r.align,instant:B,transitionStatus:T},M=ke("div",n,{state:m,ref:[t,l.context.popupRef,O],props:[x,{id:j,role:"dialog",...Lt,"aria-labelledby":o,"aria-describedby":k,onKeyDown(E){b&&Dt.has(E.key)&&E.stopPropagation()}},Ut(T),I],stateAttributesMapping:Bt});return X.jsx(At,{context:F,openInteractionType:u,modal:a,disabled:!S||g===Q,initialFocus:R,returnFocus:d,restoreFocus:"popup",previousFocusableElement:ut(C)?C:void 0,nextFocusableElement:l.context.triggerFocusTargetRef,beforeContentFocusGuardRef:l.context.beforeContentFocusGuardRef,children:X.jsx(fn.Provider,{value:p,children:M})})});export{En as P,Tn as a,Pn as b,vn as c,Cn as d};
|
|
1
|
+
import{r as v,aJ as Ye,ba as Xe,aI as Ue,bb as Ve,bc as ce,bd as Ke,be as ne,aF as pe,bf as Z,bg as ge,bh as me,bi as te,A as J,bj as Q,aD as Ce,bk as We,bl as Fe,aE as z,a3 as le,ay as de,aG as qe,bm as he,bn as ze,E as Qe,bo as $e,bp as Ee,j as X,aH as Je,bq as Ze,br as et,bs as tt,bt as nt,y as ot,z as ke,bu as st,bv as Ie,aB as rt,bw as it,bx as at,aC as ct,aA as lt,by as ut}from"./__vite-browser-external-BGnq8Ebm.js";import{p as ft,c as dt,a as pt}from"./store-oQZR4d9M.js";import{n as Te,o as we,q as gt,r as Pe,v as oe,w as mt,s as ht,P as Et,x as Tt,i as Pt,j as vt,k as Ct,l as St,h as bt,e as Rt,g as Ot,u as It,y as Mt,z as yt,t as xt,A as Ft,I as kt,B as wt,c as Ht,b as At,d as Lt,C as Dt,p as Bt}from"./composite-Dxmivlk4.js";import{a as Nt,b as jt,c as _t,d as Gt,e as Yt,f as Xt,g as Ut}from"./ToolbarRootContext-CozJT6Vs.js";function Vt(e,n){return n!=null&&!Te(n)?0:typeof e=="function"?e():e}function ve(e,n,t){const c=Vt(e,t);return typeof c=="number"?c:c?.[n]}function Me(e){return typeof e=="function"?e():e}function He(e,n){return n||e==="click"||e==="mousedown"}function Kt(e){return e?.includes("mouse")&&e!=="mousedown"}function Wt(e){const n=v.useCallback(c=>e===void 0?Ye:e.subscribeStore(c),[e]),t=v.useCallback(()=>e===void 0?void 0:e.store,[e]);return Xe.useSyncExternalStore(n,t,()=>e?.serverStore)}class Se{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new ce,this.restTimeout=new ce,this.handleCloseOptions=void 0}static create(){return new Se}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const ue=new WeakMap;function fe(e){if(!e.performedPointerEventsMutation)return;const n=e.pointerEventsScopeElement;n&&ue.get(n)===e&&(e.pointerEventsScopeElement?.style.removeProperty("pointer-events"),e.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),e.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),ue.delete(n)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function Ae(e,n){const{scopeElement:t,referenceElement:c,floatingElement:i}=n,s=ue.get(t);s&&s!==e&&fe(s),fe(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=t,e.pointerEventsReferenceElement=c,e.pointerEventsFloatingElement=i,ue.set(t,e),t.style.pointerEvents="none",c.style.pointerEvents="auto",i.style.pointerEvents="auto"}function Le(e){const n=e.context.dataRef.current,t=Ue(()=>n.hoverInteractionState??Se.create()).current;return n.hoverInteractionState||(n.hoverInteractionState=t),Ve(n.hoverInteractionState.disposeEffect),n.hoverInteractionState}function qt(e,n={}){const{enabled:t=!0,closeDelay:c=0,nodeId:i}=n,s="rootStore"in e?e.rootStore:e,h=s.useState("open"),d=s.useState("floatingElement"),I=s.useState("domReferenceElement"),{dataRef:l}=s.context,r=we(),b=gt(),p=Le(s),N=Ke(),L=ne(()=>He(l.current.openEvent?.type,p.interactedInside)),u=ne(()=>Kt(l.current.openEvent?.type)),B=ne(()=>{fe(p)});pe(()=>{h||(p.pointerType=void 0,p.restTimeoutPending=!1,p.interactedInside=!1,B())},[h,p,B]),v.useEffect(()=>B,[B]),pe(()=>{if(t&&h&&p.handleCloseOptions?.blockPointerEvents&&u()&&Z(I)&&d){const T=I,x=d,o=ge(d),k=r?.nodesRef.current.find(C=>C.id===b)?.context?.elements.floating;k&&(k.style.pointerEvents="");const w=p.pointerEventsScopeElement!==x?p.pointerEventsScopeElement:null,S=k!==x?k:null,g=p.handleCloseOptions?.getScope?.()??w??S??T.closest("[data-rootownerid]")??o.body;return Ae(p,{scopeElement:g,referenceElement:T,floatingElement:x}),()=>{B()}}},[t,h,I,d,p,u,r,b,B]),v.useEffect(()=>{if(!t)return;function T(){return!!(r&&b&&Pe(r.nodesRef.current,b).length>0)}function x(C){const F=ve(c,"close",p.pointerType),j=()=>{s.setOpen(!1,J(Q,C)),r?.events.emit("floating.closed",C)};F?p.openChangeTimeout.start(F,j):(p.openChangeTimeout.clear(),j())}function o(C){const F=Ce(C);if(!We(F)){p.interactedInside=!1;return}p.interactedInside=F?.closest("[aria-haspopup]")!=null}function k(){p.openChangeTimeout.clear(),N.clear(),r?.events.off("floating.closed",S),B()}function w(C){if(T()&&r){r.events.on("floating.closed",S);return}if(Fe(C.relatedTarget,s.context.triggerElements))return;const F=l.current.floatingContext?.nodeId??i,j=C.relatedTarget;if(!(r&&F&&Z(j)&&Pe(r.nodesRef.current,F,!1).some(_=>z(_.context?.elements.floating,j)))){if(p.handler){p.handler(C);return}B(),u()&&!L()&&x(C)}}function S(C){!r||!b||T()||N.start(0,()=>{r.events.off("floating.closed",S),s.setOpen(!1,J(Q,C)),r.events.emit("floating.closed",C)})}const g=d;return me(g&&te(g,"mouseenter",k),g&&te(g,"mouseleave",w),g&&te(g,"pointerdown",o,!0),()=>{r?.events.off("floating.closed",S)})},[t,d,s,l,c,i,u,L,B,p,r,b,N])}const zt={current:null};function Qt(e,n={}){const{enabled:t=!0,delay:c=0,handleClose:i=null,mouseOnly:s=!1,restMs:h=0,move:d=!0,triggerElementRef:I=zt,externalTree:l,isActiveTrigger:r=!0,getHandleCloseContext:b,isClosing:p,shouldOpen:N,guardStaleOpen:L=!1}=n,u="rootStore"in e?e.rootStore:e,{dataRef:B,events:T}=u.context,x=we(l),o=Le(u),k=v.useRef(!1),w=oe(i),S=oe(c),g=oe(h),C=oe(t),F=oe(N),j=oe(p),W=ne(()=>He(B.current.openEvent?.type,o.interactedInside)),_=ne(()=>F.current?.()!==!1),G=ne((O,m,M)=>{const E=u.context.triggerElements;if(E.hasElement(m))return!O||!z(O,m);if(!Z(M))return!1;const q=M;return E.hasMatchingElement(U=>z(U,q))&&(!O||!z(O,q))}),R=ne(()=>{if(!o.handler)return;ge(u.select("domReferenceElement")).removeEventListener("mousemove",o.handler),o.handler=void 0}),a=ne(()=>{fe(o)});return r&&(o.handleCloseOptions=w.current?.__options),v.useEffect(()=>R,[R]),v.useEffect(()=>{if(!t)return;function O(m){m.open?k.current=!1:(k.current=m.reason===Q,R(),o.openChangeTimeout.clear(),o.restTimeout.clear(),o.blockMouseMove=!0,o.restTimeoutPending=!1)}return T.on("openchange",O),()=>{T.off("openchange",O)}},[t,T,o,R]),v.useEffect(()=>{if(!t)return;function O(P,V=!0){const D=ve(S.current,"close",o.pointerType);D?o.openChangeTimeout.start(D,()=>{u.setOpen(!1,J(Q,P)),x?.events.emit("floating.closed",P)}):V&&(o.openChangeTimeout.clear(),u.setOpen(!1,J(Q,P)),x?.events.emit("floating.closed",P))}const m=I.current??(r?u.select("domReferenceElement"):null);if(!Z(m))return;function M(P){if(o.openChangeTimeout.clear(),o.blockMouseMove=!1,s&&!Te(o.pointerType))return;const V=Me(g.current),D=ve(S.current,"open",o.pointerType),H=Ce(P),f=P.currentTarget??null,A=u.select("domReferenceElement");let Y=f;if(Z(H)&&!u.context.triggerElements.hasElement(H)){for(const Oe of u.context.triggerElements.elements())if(z(Oe,H)){Y=Oe;break}}Z(f)&&Z(A)&&!u.context.triggerElements.hasElement(f)&&z(f,A)&&(Y=A);const K=Y==null?!1:G(A,Y,H),$=u.select("open"),ee=j.current?.()??u.select("transitionStatus")==="ending",be=!$&&ee&&k.current,je=!K&&Z(Y)&&Z(A)&&z(A,Y)&&be,_e=V>0&&!D,Ge=K&&($||be)||je,Re=!$||K;if(Ge){_()&&u.setOpen(!0,J(Q,P,Y));return}_e||(D?o.openChangeTimeout.start(D,()=>{Re&&_()&&u.setOpen(!0,J(Q,P,Y))}):Re&&_()&&u.setOpen(!0,J(Q,P,Y)))}function E(P){if(W()){a();return}R();const V=u.select("domReferenceElement"),D=ge(V);o.restTimeout.clear(),o.restTimeoutPending=!1;const H=B.current.floatingContext??b?.();if(Fe(P.relatedTarget,u.context.triggerElements))return;if(w.current&&H){u.select("open")||o.openChangeTimeout.clear();const A=I.current;o.handler=w.current({...H,tree:x,x:P.clientX,y:P.clientY,onClose(){a(),R(),C.current&&!W()&&A===u.select("domReferenceElement")&&O(P,!0)}}),D.addEventListener("mousemove",o.handler),o.handler(P);return}(o.pointerType!=="touch"||!z(u.select("floatingElement"),P.relatedTarget))&&O(P)}function q(P){z(m,P.relatedTarget)||(o.openChangeTimeout.clear(),o.restTimeout.clear(),o.restTimeoutPending=!1)}const U=L?te(m,"mouseout",q):void 0;return d?me(te(m,"mousemove",M,{once:!0}),te(m,"mouseenter",M),te(m,"mouseleave",E),U):me(te(m,"mouseenter",M),te(m,"mouseleave",E),U)},[R,a,B,S,u,t,w,o,r,G,W,s,d,g,I,x,C,b,j,_,L]),v.useMemo(()=>{if(!t)return;function O(m){o.pointerType=m.pointerType}return{onPointerDown:O,onPointerEnter:O,onMouseMove(m){const{nativeEvent:M}=m,E=m.currentTarget,q=u.select("domReferenceElement"),U=u.select("open"),P=G(q,E,m.target);if(s&&!Te(o.pointerType))return;if(U&&P&&o.handleCloseOptions?.blockPointerEvents){const H=u.select("floatingElement");if(H){const f=o.handleCloseOptions?.getScope?.()??E.ownerDocument.body;Ae(o,{scopeElement:f,referenceElement:E,floatingElement:H})}}const V=Me(g.current);if(U&&!P||V===0||!P&&o.restTimeoutPending&&m.movementX**2+m.movementY**2<2)return;o.restTimeout.clear();function D(){if(o.restTimeoutPending=!1,W())return;const H=u.select("open");!o.blockMouseMove&&(!H||P)&&_()&&u.setOpen(!0,J(Q,M,E))}o.pointerType==="touch"?le.flushSync(()=>{D()}):P&&U?D():(o.restTimeoutPending=!0,o.restTimeout.start(V,D))}}},[t,o,W,G,s,u,g,_])}const ye=.1,$t=ye*ye,y=.5;function re(e,n,t,c,i,s){return c>=n!=s>=n&&e<=(i-t)*(n-c)/(s-c)+t}function ie(e,n,t,c,i,s,h,d,I,l){let r=!1;return re(e,n,t,c,i,s)&&(r=!r),re(e,n,i,s,h,d)&&(r=!r),re(e,n,h,d,I,l)&&(r=!r),re(e,n,I,l,t,c)&&(r=!r),r}function Jt(e,n,t){return e>=t.x&&e<=t.x+t.width&&n>=t.y&&n<=t.y+t.height}function ae(e,n,t,c,i,s){const h=Math.min(t,i),d=Math.max(t,i),I=Math.min(c,s),l=Math.max(c,s);return e>=h&&e<=d&&n>=I&&n<=l}function Zt(e={}){const{blockPointerEvents:n=!1}=e,t=new ce,c=({x:i,y:s,placement:h,elements:d,onClose:I,nodeId:l,tree:r})=>{const b=h?.split("-")[0];let p=!1,N=null,L=null,u=typeof performance<"u"?performance.now():0;function B(x,o){const k=performance.now(),w=k-u;if(N===null||L===null||w===0)return N=x,L=o,u=k,!1;const S=x-N,g=o-L,C=S*S+g*g,F=w*w*$t;return N=x,L=o,u=k,C<F}function T(){t.clear(),I()}return function(o){t.clear();const k=d.domReference,w=d.floating;if(!k||!w||b==null||i==null||s==null)return;const{clientX:S,clientY:g}=o,C=Ce(o),F=o.type==="mouseleave",j=z(w,C),W=z(k,C);if(j&&(p=!0,!F))return;if(W&&(p=!1,!F)){p=!0;return}if(F&&Z(o.relatedTarget)&&z(w,o.relatedTarget))return;function _(){return!!(r&&Pe(r.nodesRef.current,l).length>0)}function G(){_()||T()}if(_())return;const R=k.getBoundingClientRect(),a=w.getBoundingClientRect(),O=i>a.right-a.width/2,m=s>a.bottom-a.height/2,M=a.width>R.width,E=a.height>R.height,q=(M?R:a).left,U=(M?R:a).right,P=(E?R:a).top,V=(E?R:a).bottom;if(b==="top"&&s>=R.bottom-1||b==="bottom"&&s<=R.top+1||b==="left"&&i>=R.right-1||b==="right"&&i<=R.left+1){G();return}let D=!1;switch(b){case"top":D=ae(S,g,q,R.top+1,U,a.bottom-1);break;case"bottom":D=ae(S,g,q,a.top+1,U,R.bottom-1);break;case"left":D=ae(S,g,a.right-1,V,R.left+1,P);break;case"right":D=ae(S,g,R.right-1,V,a.left+1,P);break}if(D)return;if(p&&!Jt(S,g,R)){G();return}if(!F&&B(S,g)){G();return}let H=!1;switch(b){case"top":{const f=M?y/2:y*4,A=M||O?i+f:i-f,Y=M?i-f:O?i+f:i-f,K=s+y+1,$=O||M?a.bottom-y:a.top,ee=O?M?a.bottom-y:a.top:a.bottom-y;H=ie(S,g,A,K,Y,K,a.left,$,a.right,ee);break}case"bottom":{const f=M?y/2:y*4,A=M||O?i+f:i-f,Y=M?i-f:O?i+f:i-f,K=s-y,$=O||M?a.top+y:a.bottom,ee=O?M?a.top+y:a.bottom:a.top+y;H=ie(S,g,A,K,Y,K,a.left,$,a.right,ee);break}case"left":{const f=E?y/2:y*4,A=E||m?s+f:s-f,Y=E?s-f:m?s+f:s-f,K=i+y+1,$=m||E?a.right-y:a.left,ee=m?E?a.right-y:a.left:a.right-y;H=ie(S,g,$,a.top,ee,a.bottom,K,A,K,Y);break}case"right":{const f=E?y/2:y*4,A=E||m?s+f:s-f,Y=E?s-f:m?s+f:s-f,K=i-y,$=m||E?a.left+y:a.right,ee=m?E?a.left+y:a.right:a.left+y;H=ie(S,g,K,A,K,Y,$,a.top,ee,a.bottom);break}}H?p||t.start(40,G):G()}};return c.__options={...e,blockPointerEvents:n},c}const De=v.createContext(void 0);function se(e){const n=v.useContext(De);if(n===void 0&&!e)throw new Error(de(47));return n}const en={...ft,disabled:e=>e.disabled,instantType:e=>e.instantType,openMethod:e=>e.openMethod,openChangeReason:e=>e.openChangeReason,modal:e=>e.modal,focusManagerModal:e=>e.focusManagerModal,stickIfOpen:e=>e.stickIfOpen,titleElementId:e=>e.titleElementId,descriptionElementId:e=>e.descriptionElementId,openOnHover:e=>e.openOnHover,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin};class tn extends qe{constructor(n,t,c){const i=new Et;super(nn(n,i,t,c),on(i),en)}setOpen=(n,t)=>{const c=t.reason===Q,i=t.reason===he&&t.event.detail===0,s=!n&&(t.reason===ze||t.reason==null),h=mt(t),d=this.select("activeTriggerId");if(!n&&t.reason===Qe&&t.trigger==null&&d!=null&&(t.trigger=this.context.triggerElements.getById(d)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(n,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(n,t);const I=()=>{const r={open:n,openChangeReason:t.reason};ht(r,n,t.trigger,h()),this.update(r)};c?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start($e,()=>{this.set("stickIfOpen",!1)}),le.flushSync(I)):I();let l;i?l="click":s?l="dismiss":t.reason===Ee&&(l="focus"),this.set("instantType",l)}}function nn(e,n,t,c=!1){const i={...dt(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,openOnHover:!1,closeDelay:0,adaptiveOrigin:void 0,...e};return i.open&&e?.mounted===void 0&&(i.mounted=!0),i.floatingRootContext=pt(n,t,c),i}function on(e){return{popupRef:v.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:v.createRef(),beforeContentFocusGuardRef:v.createRef(),stickIfOpenTimeout:new ce,triggerElements:e}}function xe({props:e}){const{children:n,open:t,defaultOpen:c=!1,onOpenChange:i,onOpenChangeComplete:s,modal:h=!1,handle:d,triggerId:I,defaultTriggerId:l=null}=e,r=sn(d,{modal:h,open:c,openProp:t,activeTriggerId:l,triggerIdProp:I});r.useControlledProp("openProp",t),r.useControlledProp("triggerIdProp",I);const b=r.useState("open"),p=r.useState("mounted"),N=r.useState("payload");r.useContextCallback("onOpenChange",i),r.useContextCallback("onOpenChangeComplete",s),Pt(r,b),vt(r);const{forceUnmount:L}=Ct(b,r,()=>{r.update({stickIfOpen:!0,openChangeReason:null})});r.useSyncedValues({modal:h}),v.useEffect(()=>{b||r.context.stickIfOpenTimeout.clear()},[r,b]),v.useImperativeHandle(e.actionsRef,()=>({unmount:L,close:()=>r.setOpen(!1,J(Je))}),[L,r]);const u=b||p;return X.jsxs(De.Provider,{value:r,children:[d&&X.jsx(St,{handle:d,store:r}),u&&X.jsx(rn,{store:r,modal:h}),typeof n=="function"?n({payload:N}):n]})}function En(e){return se(!0)?X.jsx(xe,{props:e}):X.jsx(Tt,{children:X.jsx(xe,{props:e})})}function sn(e,n){const t=bt((c,i)=>new tn(n,c,i));return v.useEffect(()=>t.context.stickIfOpenTimeout.disposeEffect(),[t]),t}function rn({store:e,modal:n}){const t=e.useState("floatingRootContext"),c=Rt(t,{outsidePressEvent:{mouse:n==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),i=c.reference,s=c.floating;return Ot(e,{activeTriggerProps:i,inactiveTriggerProps:i,popupProps:s}),null}const an=300;function cn(e,n){const t=v.useRef(null);function c(s){le.flushSync(()=>{e.setOpen(!1,J(Ee,s.nativeEvent,s.currentTarget))}),nt(t.current)?.focus()}function i(s){const h=e.select("positionerElement");if(h&&Ze(s,h))e.context.beforeContentFocusGuardRef.current?.focus();else{le.flushSync(()=>{e.setOpen(!1,J(Ee,s.nativeEvent,s.currentTarget))});let d=et(e.context.triggerFocusTargetRef.current||n.current);for(;d!==null&&z(h,d);){const I=d;if(d=tt(d),d===I)break}d?.focus()}}return{preFocusGuardRef:t,handlePreFocusGuardFocus:c,handleFocusTargetFocus:i}}const Tn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,disabled:h=!1,nativeButton:d=!0,handle:I,payload:l,openOnHover:r=!1,delay:b=an,closeDelay:p=0,id:N,...L}=n,u=se(!0),T=Wt(I)??u;if(!T)throw new Error(de(74));const x=It(N),o=T.useState("isTriggerActive",x),k=T.useState("floatingRootContext"),w=T.useState("isOpenedByTrigger",x),S=T.useState("triggerPopupId",x),g=v.useRef(null),{registerTrigger:C,isMountedByThisTrigger:F}=Mt(x,g,T,{payload:l,disabled:h,openOnHover:r,closeDelay:p}),j=T.useState("openChangeReason"),W=T.useState("stickIfOpen"),_=T.useState("openMethod"),G=T.useState("focusManagerModal"),R=Qt(k,{enabled:!h&&r&&(_!=="touch"||j!==he),mouseOnly:!0,move:!1,handleClose:Zt(),restMs:b,delay:{close:p},triggerElementRef:g,isActiveTrigger:o,isClosing:()=>T.select("transitionStatus")==="ending"}),a=Nt(k,{stickIfOpen:W}),O=jt(()=>T.select("open"),A=>{T.set("openMethod",A)}),m=T.useState("triggerProps",F),{getButtonProps:M,buttonRef:E}=ot({disabled:h,native:d}),q={open(A){return A&&j===he?yt.open(A):xt.open(A)}},{preFocusGuardRef:U,handlePreFocusGuardFocus:P,handleFocusTargetFocus:V}=cn(T,g),H=ke("button",n,{state:{disabled:h,open:w},ref:[E,t,C,g],props:[a.reference,R,m,O,{[st]:"",id:x,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":S},L,M],stateAttributesMapping:q}),f=X.jsx(v.Fragment,{children:H},x);return F&&!G?X.jsxs(v.Fragment,{children:[X.jsx(Ie,{ref:U,onFocus:P}),f,X.jsx(Ie,{ref:T.context.triggerFocusTargetRef,onFocus:V})]}):f}),Be=v.createContext(void 0);function ln(){const e=v.useContext(Be);if(e===void 0)throw new Error(de(45));return e}const Pn=v.forwardRef(function(n,t){const{keepMounted:c=!1,...i}=n;return se().useState("mounted")||c?X.jsx(Be.Provider,{value:c,children:X.jsx(rt,{ref:t,...i})}):null}),Ne=v.createContext(void 0);function un(){const e=v.useContext(Ne);if(!e)throw new Error(de(46));return e}const vn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,anchor:h,positionMethod:d,side:I,align:l,sideOffset:r,alignOffset:b,collisionBoundary:p="clipping-ancestors",collisionPadding:N,arrowPadding:L,sticky:u,disableAnchorTracking:B=!1,collisionAvoidance:T=it,...x}=n,o=se(),k=ln(),w=Ft(),S=o.useState("floatingRootContext"),g=o.useState("mounted"),C=o.useState("open"),F=o.useState("openChangeReason"),j=o.useState("activeTriggerElement"),W=o.useState("modal"),_=o.useState("openMethod"),G=o.useState("positionerElement"),R=o.useState("instantType"),a=o.useState("transitionStatus"),O=o.useState("adaptiveOrigin"),m=v.useRef(null),M=at(G),E=_t({anchor:h,floatingRootContext:S,positionMethod:d,mounted:g,side:I,sideOffset:r,align:l,alignOffset:b,arrowPadding:L,collisionBoundary:p,collisionPadding:N,sticky:u,disableAnchorTracking:B,keepMounted:k,nodeId:w,collisionAvoidance:T,adaptiveOrigin:O}),q=S.useState("domReferenceElement");pe(()=>{const H=q,f=m.current;if(H&&(m.current=H),f&&H&&H!==f){o.set("instantType",void 0);const A=new AbortController;return M(()=>{o.set("instantType","trigger-change")},A.signal),()=>{A.abort()}}},[q,M,o]);const U=W===!0&&F!==Q;Gt(C&&U,_==="touch",G,j);const P=o.useStateSetter("positionerElement"),V={open:C,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:R},D=Yt(n,V,{styles:E.positionerStyles,transitionStatus:a,props:x,refs:[t,P],hidden:!g,inert:!C});return X.jsxs(Ne.Provider,{value:E,children:[g&&U&&X.jsx(kt,{inert:ct(!C),cutout:j}),X.jsx(wt,{id:w,children:D})]})}),fn=v.createContext(void 0);function dn(){const[e,n]=v.useState(0),t=ne(()=>(n(i=>i+1),()=>{n(i=>Math.max(0,i-1))}));return{context:v.useMemo(()=>({register:t}),[t]),hasClosePart:e>0}}const Cn=v.forwardRef(function(n,t){const{render:c,className:i,style:s,initialFocus:h,finalFocus:d,...I}=n,l=se(),r=un(),b=Xt()!=null,{context:p,hasClosePart:N}=dn(),L=l.useState("open"),u=l.useState("openMethod"),B=l.useState("instantType"),T=l.useState("transitionStatus"),x=l.useState("popupProps"),o=l.useState("titleElementId"),k=l.useState("descriptionElementId"),w=l.useState("modal"),S=l.useState("mounted"),g=l.useState("openChangeReason"),C=l.useState("activeTriggerElement"),F=l.useState("floatingRootContext"),j=F.useState("floatingId"),W=l.useState("disabled"),_=l.useState("openOnHover"),G=l.useState("closeDelay");lt({open:L,ref:l.context.popupRef,onComplete(){L&&l.context.onOpenChangeComplete?.(!0)}}),qt(F,{enabled:_&&!W,closeDelay:G});const R=h===void 0?Ht(l.context.popupRef):h,a=w!==!1&&N;l.useSyncedValue("focusManagerModal",a);const O=l.useStateSetter("popupElement"),m={open:L,side:r.side,align:r.align,instant:B,transitionStatus:T},M=ke("div",n,{state:m,ref:[t,l.context.popupRef,O],props:[x,{id:j,role:"dialog",...Lt,"aria-labelledby":o,"aria-describedby":k,onKeyDown(E){b&&Dt.has(E.key)&&E.stopPropagation()}},Ut(T),I],stateAttributesMapping:Bt});return X.jsx(At,{context:F,openInteractionType:u,modal:a,disabled:!S||g===Q,initialFocus:R,returnFocus:d,restoreFocus:"popup",previousFocusableElement:ut(C)?C:void 0,nextFocusableElement:l.context.triggerFocusTargetRef,beforeContentFocusGuardRef:l.context.beforeContentFocusGuardRef,children:X.jsx(fn.Provider,{value:p,children:M})})});export{En as P,Tn as a,Pn as b,vn as c,Cn as d};
|