dara-ui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Footer/Footer.d.ts +67 -0
- package/dist/components/Footer/index.d.ts +3 -0
- package/dist/components/Navbar/Navbar.d.ts +16 -0
- package/dist/dara-ui.cjs.js +350 -330
- package/dist/dara-ui.es.js +2629 -2478
- package/dist/index.d.ts +2 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/dara-ui.cjs.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),$e=require("react-dom"),fe=t.forwardRef(({children:r,variant:m="primary",size:o="md",fullWidth:u=!1,loading:i=!1,glow:n,leftIcon:L,rightIcon:f,className:M="",disabled:N,...j},a)=>{const $="inline-flex items-center justify-center gap-2 font-heading font-semibold tracking-wide transition-all duration-180 rounded-full active:scale-95 disabled:opacity-45 disabled:cursor-not-allowed disabled:pointer-events-none relative overflow-hidden hover:-translate-y-0.5",c={primary:"bg-[var(--color-primary-solid)] text-white shadow-[var(--shadow-btn-primary)] hover:bg-[var(--color-primary-hover)] hover:shadow-[var(--shadow-btn-primary-hover)] hover:brightness-105",secondary:"bg-[var(--color-secondary-solid)] text-white shadow-[var(--shadow-btn-secondary)] hover:bg-[var(--color-secondary-hover)] hover:shadow-[var(--shadow-btn-secondary-hover)] hover:brightness-105",accent:"bg-[var(--color-accent-solid)] text-white shadow-[var(--shadow-btn-accent)] hover:bg-[var(--color-accent-hover)] hover:shadow-[var(--shadow-btn-accent-hover)] hover:brightness-105",glass:"glass text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/40 hover:border-[var(--color-border-secondary)] hover:shadow-[var(--shadow-float)]",danger:"bg-[var(--color-danger-solid)] text-white shadow-[var(--shadow-btn-danger)] hover:bg-[var(--color-danger-hover)] hover:shadow-[var(--shadow-btn-danger-hover)] hover:brightness-105",success:"bg-[var(--color-success-solid)] text-white shadow-[var(--shadow-btn-success)] hover:bg-[var(--color-success-hover)] hover:shadow-[var(--shadow-btn-success-hover)] hover:brightness-105",outline:"bg-transparent text-[var(--color-text-primary)] border-2 border-[var(--color-border-primary)] hover:bg-[var(--color-primary-light)] hover:border-[var(--color-primary)] hover:text-[var(--color-primary)] hover:shadow-[var(--shadow-btn-primary)]"},x={sm:"px-4 py-1.5 text-sm min-h-[32px]",md:"px-6 py-2.5 text-base min-h-[40px]",lg:"px-8 py-3.5 text-lg min-h-[48px]"},g={primary:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-primary-solid)_50%,_transparent)]",secondary:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-secondary-solid)_50%,_transparent)]",accent:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-accent-solid)_50%,_transparent)]"},R=[$,c[m],x[o],u?"w-full":"",i?"opacity-80 pointer-events-none":"",n?g[n]:"",M].filter(Boolean).join(" ");return e.jsxs("button",{ref:a,className:R,disabled:N||i,...j,children:[i&&e.jsx("span",{className:"spinner inline-block w-4 h-4 border-2 border-transparent border-t-current rounded-full animate-spin"}),L&&e.jsx("span",{className:"flex-shrink-0",children:L}),r,f&&e.jsx("span",{className:"flex-shrink-0",children:f})]})});fe.displayName="Button";const de=t.forwardRef(({variant:r="primary",size:m="md",glow:o=!1,outline:u=!1,className:i="",children:n,...L},f)=>{const M="inline-flex items-center justify-center font-accent font-medium transition-all duration-180 rounded-full",N={sm:"px-2.5 py-0.5 text-xs",md:"px-3.5 py-1 text-sm",lg:"px-5 py-1.5 text-base"},j={primary:"bg-[var(--color-primary-solid)] text-white",secondary:"bg-[var(--color-secondary-solid)] text-white",success:"bg-[var(--color-success-solid)] text-white",danger:"bg-[var(--color-danger-solid)] text-white",warning:"bg-[var(--color-warning-solid)] text-white"},a={primary:"border-2 border-[var(--color-primary)] text-[var(--color-primary)] bg-transparent",secondary:"border-2 border-[var(--color-secondary)] text-[var(--color-secondary)] bg-transparent",success:"border-2 border-[var(--color-success)] text-[var(--color-success)] bg-transparent",danger:"border-2 border-[var(--color-danger)] text-[var(--color-danger)] bg-transparent",warning:"border-2 border-[var(--color-warning)] text-[var(--color-warning)] bg-transparent"},$={primary:"shadow-[var(--shadow-glow-primary)]",secondary:"shadow-[var(--shadow-glow-secondary)]",success:"shadow-[var(--shadow-glow-success)]",danger:"shadow-[var(--shadow-glow-danger)]",warning:"shadow-[var(--shadow-glow-warning)]"},c=u?a[r]:j[r],x=o?$[r]:"",g=[M,c,N[m],x,i].filter(Boolean).join(" ");return e.jsx("span",{ref:f,className:g,dir:"auto",...L,children:n})});de.displayName="Badge";const vt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),bt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),ze=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),Be=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}),yt=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),wt=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),Oe=({className:r="w-1/2 h-1/2"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})}),jt=({className:r="w-10 h-10"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"})}),kt=({className:r="w-10 h-10"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 01-2.25 2.25M16.5 7.5V18a2.25 2.25 0 002.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 002.25 2.25h13.5"})}),Ae=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M4 21V3"}),e.jsx("path",{d:"M4 3L20 7L4 11Z"})]}),St=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{d:"M12 6v6l4 2"})]}),Nt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{fillRule:"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",clipRule:"evenodd"})}),Ct=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})}),Lt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M20.317 4.37a19.791 19.791 0 00-4.885-1.515.074.074 0 00-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 00-5.487 0 12.64 12.64 0 00-.617-1.25.077.077 0 00-.079-.037A19.736 19.736 0 003.677 4.37a.07.07 0 00-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 00.031.057 19.9 19.9 0 005.993 3.03.078.078 0 00.084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 00-.041-.106 13.107 13.107 0 01-1.872-.892.077.077 0 01-.008-.128 10.2 10.2 0 00.372-.292.074.074 0 01.077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 01.078.01c.12.098.246.198.373.292a.077.077 0 01-.006.127 12.299 12.299 0 01-1.873.892.077.077 0 00-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 00.084.028 19.839 19.839 0 006.002-3.03.077.077 0 00.032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 00-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"})}),$t=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{fillRule:"evenodd",d:"M19.812 5.418c.861.23 1.538.907 1.768 1.768C21.998 8.746 22 12 22 12s0 3.255-.418 4.814a2.504 2.504 0 01-1.768 1.768c-1.56.419-7.814.419-7.814.419s-6.255 0-7.814-.419a2.505 2.505 0 01-1.768-1.768C2 15.255 2 12 2 12s0-3.255.417-4.814a2.507 2.507 0 011.768-1.768C5.744 5 11.998 5 11.998 5s6.255 0 7.814.418zM15.194 12L10.001 15.002V8.998L15.194 12z",clipRule:"evenodd"})}),Mt=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:[e.jsx("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),e.jsx("path",{d:"M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"}),e.jsx("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5",strokeLinecap:"round"})]}),Tt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"})}),Rt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"})}),he=t.forwardRef(({type:r="text",size:m="md",validation:o,errorMessage:u,successMessage:i,leftIcon:n,rightIcon:L,glowFocus:f=!0,label:M,helperText:N,fullWidth:j=!1,disabled:a=!1,className:$="",placeholder:c,value:x,onChange:g,onFocus:R,onBlur:S,id:l,...v},h)=>{const[I,b]=t.useState(!1),[D,E]=t.useState(!1),k=t.useId(),s=l||k,w="w-full font-sans transition-all duration-180 outline-none disabled:opacity-60 disabled:cursor-not-allowed placeholder:text-[var(--color-text-tertiary)]",C="bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)] focus:bg-[var(--color-bg-elevated)]",y={default:"border border-[var(--color-border-primary)] focus:border-[var(--color-primary)]",success:"border border-[var(--color-success)] focus:border-[var(--color-success)]",error:"border border-[var(--color-danger)] focus:border-[var(--color-danger)]",warning:"border border-[var(--color-warning)] focus:border-[var(--color-warning)]"},p=f?{default:"focus:shadow-[var(--shadow-glow-primary)] focus:ring-2 focus:ring-[var(--color-primary)]/20",success:"focus:shadow-[var(--shadow-glow-success)]",error:"focus:shadow-[var(--shadow-glow-danger)]",warning:"focus:shadow-[var(--shadow-glow-warning)]"}[o||"default"]:"",d="rounded-[14px]",z={sm:"px-3 py-1.5 text-sm",md:"px-4 py-3 text-base",lg:"px-5 py-3.5 text-lg"},W={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},q=[w,C,y[o||"default"],p,d,z[m],j?"w-full":"",n?m==="sm"?"pl-9":m==="md"?"pl-11":"pl-14":"",L||r==="password"?m==="sm"?"pr-9":m==="md"?"pr-11":"pr-14":"",a?"opacity-60 cursor-not-allowed":"",$].filter(Boolean).join(" "),B=U=>{E(!0),R==null||R(U)},F=U=>{E(!1),S==null||S(U)},P=()=>a?"text-[var(--color-text-tertiary)]":o==="error"?"text-[var(--color-danger)]":o==="success"?"text-[var(--color-success)]":o==="warning"?"text-[var(--color-warning)]":D?"text-[var(--color-primary)]":"text-[var(--color-text-secondary)]",X=()=>a?"text-[var(--color-text-tertiary)]":o==="error"?"text-[var(--color-danger)]":o==="success"?"text-[var(--color-success)]":o==="warning"?"text-[var(--color-warning)]":D?"text-[var(--color-primary)]":"text-[var(--color-text-tertiary)]";return e.jsxs("div",{className:`${j?"w-full":""} flex flex-col gap-1.5`,children:[M&&e.jsx("label",{htmlFor:s,className:`text-sm font-medium font-sans transition-colors duration-180 ${P()}`,children:M}),e.jsxs("div",{className:"relative group w-full",children:[n&&e.jsx("span",{className:`absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none transition-colors duration-180 ${X()}`,children:e.jsx("span",{className:W[m],children:n})}),e.jsx("input",{ref:h,id:s,type:r==="password"&&I?"text":r,className:q,placeholder:c,value:x,onChange:g,onFocus:B,onBlur:F,disabled:a,"aria-label":M?void 0:c||"Input",...v}),r==="password"&&e.jsx("button",{type:"button",onClick:()=>b(!I),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-tertiary)] hover:text-[var(--color-text-primary)] transition-colors cursor-pointer",tabIndex:-1,"aria-label":I?"Hide password":"Show password",children:I?e.jsxs("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})]}):e.jsx("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.542-7a10.05 10.05 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.542 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"})})})]}),(N||u||i)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[o==="error"&&u&&e.jsxs("span",{className:"text-[var(--color-danger)] flex items-center",children:[e.jsx(Be,{})," ",u]}),o==="success"&&i&&e.jsxs("span",{className:"text-[var(--color-success)] flex items-center",children:[e.jsx(ze,{})," ",i]}),!o&&N&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:N})]})]})});he.displayName="Input";const We=t.forwardRef(({variant:r="glass",padding:m="md",radius:o="standard",float:u=!1,glow:i,className:n="",children:L,style:f,...M},N)=>{const[j,a]=t.useState({x:0,y:0}),[$,c]=t.useState(!1),x=t.useRef(null),g=k=>{if(!x.current||!u)return;const s=x.current.getBoundingClientRect(),w=k.clientX-s.left,C=k.clientY-s.top,y=s.width/2,p=s.height/2,d=(C-p)/p*-6,z=(w-y)/y*6;a({x:d,y:z})},R=()=>{u&&c(!0)},S=()=>{c(!1),a({x:0,y:0})},l={glass:"glass",solid:"glass-solid",outline:"glass-outline"},v={sm:"p-4",md:"p-6",lg:"p-8",none:"p-0"},h={sm:"var(--radius-sm)",md:"var(--radius-md)",standard:"var(--radius-standard)",large:"var(--radius-large)",xl:"var(--radius-xl)",full:"var(--radius-full)"},I={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent"},b=u?"float-card":"",D=i?I[i]:"",E=[l[r],v[m],b,D,n].filter(Boolean).join(" ");return e.jsx("div",{ref:k=>{typeof N=="function"?N(k):N&&(N.current=k),x.current=k},className:E,style:{borderRadius:h[o],transform:u&&$?`perspective(800px) rotateX(${j.x}deg) rotateY(${j.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:u?"preserve-3d":"flat",transition:u?"transform 0.2s ease-out, box-shadow 0.4s ease, border-radius 0.2s ease":"border-radius 0.2s ease",...f},onMouseMove:g,onMouseEnter:R,onMouseLeave:S,...M,children:L})});We.displayName="Card";const Ge=({items:r,activeValue:m,defaultValue:o,onChange:u,align:i="left",size:n="md",glowColor:L="primary",fullWidth:f=!1,className:M=""})=>{var w,C;const N=m!==void 0,[j,a]=t.useState(o||((w=r[0])==null?void 0:w.value)||((C=r[0])==null?void 0:C.label)||""),$=N?m:j,[c,x]=t.useState({}),g=t.useRef(null),R=t.useRef(null),S=t.useRef(null),l=t.useRef(null),v=t.useRef(!0),h=(y,p)=>y.value||y.label||`tab-${p}`,I=t.useCallback(y=>{N||a(y),u==null||u(y)},[N,u]),b=t.useCallback(()=>{S.current&&(clearTimeout(S.current),S.current=null),requestAnimationFrame(()=>{if(R.current&&g.current){const y=R.current.getBoundingClientRect(),p=g.current.getBoundingClientRect(),d=y.left-p.left,z=y.width;x(W=>W.left===d&&W.width===z?W:{left:d,width:z})}})},[]);t.useEffect(()=>{if(v.current){v.current=!1,setTimeout(b,100);return}return S.current=setTimeout(()=>{b()},30),()=>{S.current&&(clearTimeout(S.current),S.current=null)}},[$,r,b]),t.useEffect(()=>{const y=()=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{b()},150)};return window.addEventListener("resize",y),window.addEventListener("orientationchange",y),()=>{window.removeEventListener("resize",y),window.removeEventListener("orientationchange",y),l.current&&(clearTimeout(l.current),l.current=null)}},[b]);const D=t.useMemo(()=>({sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-2.5 text-lg"}),[]),E=t.useMemo(()=>({primary:"bg-[var(--color-primary)] shadow-[var(--shadow-glow-primary)]",secondary:"bg-[var(--color-secondary)] shadow-[var(--shadow-glow-secondary)]",accent:"bg-[var(--color-accent)] shadow-[var(--shadow-glow-accent)]",success:"bg-[var(--color-success)] shadow-[var(--shadow-glow-success)]",danger:"bg-[var(--color-danger)] shadow-[var(--shadow-glow-danger)]",none:"bg-[var(--color-border-primary)]"}),[]),k=t.useMemo(()=>({left:"justify-start",center:"justify-center",right:"justify-end"}),[]),s=t.useMemo(()=>{var y;return(y=r.find((p,d)=>h(p,d)===$))==null?void 0:y.content},[r,$]);return e.jsxs("div",{className:`w-full ${M}`,children:[e.jsxs("div",{ref:g,className:`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),Me=require("react-dom"),ge=t.forwardRef(({children:r,variant:l="primary",size:s="md",fullWidth:u=!1,loading:n=!1,glow:o,leftIcon:C,rightIcon:m,className:$="",disabled:N,...v},a)=>{const M="inline-flex items-center justify-center gap-2 font-heading font-semibold tracking-wide transition-all duration-180 rounded-full active:scale-95 disabled:opacity-45 disabled:cursor-not-allowed disabled:pointer-events-none relative overflow-hidden hover:-translate-y-0.5",c={primary:"bg-[var(--color-primary-solid)] text-white shadow-[var(--shadow-btn-primary)] hover:bg-[var(--color-primary-hover)] hover:shadow-[var(--shadow-btn-primary-hover)] hover:brightness-105",secondary:"bg-[var(--color-secondary-solid)] text-white shadow-[var(--shadow-btn-secondary)] hover:bg-[var(--color-secondary-hover)] hover:shadow-[var(--shadow-btn-secondary-hover)] hover:brightness-105",accent:"bg-[var(--color-accent-solid)] text-white shadow-[var(--shadow-btn-accent)] hover:bg-[var(--color-accent-hover)] hover:shadow-[var(--shadow-btn-accent-hover)] hover:brightness-105",glass:"glass text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/40 hover:border-[var(--color-border-secondary)] hover:shadow-[var(--shadow-float)]",danger:"bg-[var(--color-danger-solid)] text-white shadow-[var(--shadow-btn-danger)] hover:bg-[var(--color-danger-hover)] hover:shadow-[var(--shadow-btn-danger-hover)] hover:brightness-105",success:"bg-[var(--color-success-solid)] text-white shadow-[var(--shadow-btn-success)] hover:bg-[var(--color-success-hover)] hover:shadow-[var(--shadow-btn-success-hover)] hover:brightness-105",outline:"bg-transparent text-[var(--color-text-primary)] border-2 border-[var(--color-border-primary)] hover:bg-[var(--color-primary-light)] hover:border-[var(--color-primary)] hover:text-[var(--color-primary)] hover:shadow-[var(--shadow-btn-primary)]"},g={sm:"px-4 py-1.5 text-sm min-h-[32px]",md:"px-6 py-2.5 text-base min-h-[40px]",lg:"px-8 py-3.5 text-lg min-h-[48px]"},x={primary:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-primary-solid)_50%,_transparent)]",secondary:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-secondary-solid)_50%,_transparent)]",accent:"hover:shadow-[0_0_50px_color-mix(in_srgb,_var(--color-accent-solid)_50%,_transparent)]"},R=[M,c[l],g[s],u?"w-full":"",n?"opacity-80 pointer-events-none":"",o?x[o]:"",$].filter(Boolean).join(" ");return e.jsxs("button",{ref:a,className:R,disabled:N||n,...v,children:[n&&e.jsx("span",{className:"spinner inline-block w-4 h-4 border-2 border-transparent border-t-current rounded-full animate-spin"}),C&&e.jsx("span",{className:"flex-shrink-0",children:C}),r,m&&e.jsx("span",{className:"flex-shrink-0",children:m})]})});ge.displayName="Button";const he=t.forwardRef(({variant:r="primary",size:l="md",glow:s=!1,outline:u=!1,className:n="",children:o,...C},m)=>{const $="inline-flex items-center justify-center font-accent font-medium transition-all duration-180 rounded-full",N={sm:"px-2.5 py-0.5 text-xs",md:"px-3.5 py-1 text-sm",lg:"px-5 py-1.5 text-base"},v={primary:"bg-[var(--color-primary-solid)] text-white",secondary:"bg-[var(--color-secondary-solid)] text-white",success:"bg-[var(--color-success-solid)] text-white",danger:"bg-[var(--color-danger-solid)] text-white",warning:"bg-[var(--color-warning-solid)] text-white"},a={primary:"border-2 border-[var(--color-primary)] text-[var(--color-primary)] bg-transparent",secondary:"border-2 border-[var(--color-secondary)] text-[var(--color-secondary)] bg-transparent",success:"border-2 border-[var(--color-success)] text-[var(--color-success)] bg-transparent",danger:"border-2 border-[var(--color-danger)] text-[var(--color-danger)] bg-transparent",warning:"border-2 border-[var(--color-warning)] text-[var(--color-warning)] bg-transparent"},M={primary:"shadow-[var(--shadow-glow-primary)]",secondary:"shadow-[var(--shadow-glow-secondary)]",success:"shadow-[var(--shadow-glow-success)]",danger:"shadow-[var(--shadow-glow-danger)]",warning:"shadow-[var(--shadow-glow-warning)]"},c=u?a[r]:v[r],g=s?M[r]:"",x=[$,c,N[l],g,n].filter(Boolean).join(" ");return e.jsx("span",{ref:m,className:x,dir:"auto",...C,children:o})});he.displayName="Badge";const bt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),yt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),ze=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),Be=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}),wt=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),jt=({className:r="h-5 w-5"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),Oe=({className:r="w-1/2 h-1/2"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})}),kt=({className:r="w-10 h-10"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"})}),Nt=({className:r="w-10 h-10"})=>e.jsx("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 01-2.25 2.25M16.5 7.5V18a2.25 2.25 0 002.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 002.25 2.25h13.5"})}),Ae=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M4 21V3"}),e.jsx("path",{d:"M4 3L20 7L4 11Z"})]}),St=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{d:"M12 6v6l4 2"})]}),Ct=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{fillRule:"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",clipRule:"evenodd"})}),Lt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})}),$t=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M20.317 4.37a19.791 19.791 0 00-4.885-1.515.074.074 0 00-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 00-5.487 0 12.64 12.64 0 00-.617-1.25.077.077 0 00-.079-.037A19.736 19.736 0 003.677 4.37a.07.07 0 00-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 00.031.057 19.9 19.9 0 005.993 3.03.078.078 0 00.084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 00-.041-.106 13.107 13.107 0 01-1.872-.892.077.077 0 01-.008-.128 10.2 10.2 0 00.372-.292.074.074 0 01.077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 01.078.01c.12.098.246.198.373.292a.077.077 0 01-.006.127 12.299 12.299 0 01-1.873.892.077.077 0 00-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 00.084.028 19.839 19.839 0 006.002-3.03.077.077 0 00.032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 00-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"})}),Mt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{fillRule:"evenodd",d:"M19.812 5.418c.861.23 1.538.907 1.768 1.768C21.998 8.746 22 12 22 12s0 3.255-.418 4.814a2.504 2.504 0 01-1.768 1.768c-1.56.419-7.814.419-7.814.419s-6.255 0-7.814-.419a2.505 2.505 0 01-1.768-1.768C2 15.255 2 12 2 12s0-3.255.417-4.814a2.507 2.507 0 011.768-1.768C5.744 5 11.998 5 11.998 5s6.255 0 7.814.418zM15.194 12L10.001 15.002V8.998L15.194 12z",clipRule:"evenodd"})}),Tt=({className:r="h-4 w-4"})=>e.jsxs("svg",{className:r,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:[e.jsx("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),e.jsx("path",{d:"M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"}),e.jsx("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5",strokeLinecap:"round"})]}),Rt=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"})}),It=({className:r="h-4 w-4"})=>e.jsx("svg",{className:r,fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:e.jsx("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"})}),fe=t.forwardRef(({type:r="text",size:l="md",validation:s,errorMessage:u,successMessage:n,leftIcon:o,rightIcon:C,glowFocus:m=!0,label:$,helperText:N,fullWidth:v=!1,disabled:a=!1,className:M="",placeholder:c,value:g,onChange:x,onFocus:R,onBlur:j,id:p,...b},f)=>{const[T,S]=t.useState(!1),[I,E]=t.useState(!1),y=t.useId(),i=p||y,k="w-full font-sans transition-all duration-180 outline-none disabled:opacity-60 disabled:cursor-not-allowed placeholder:text-[var(--color-text-tertiary)]",L="bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)] focus:bg-[var(--color-bg-elevated)]",w={default:"border border-[var(--color-border-primary)] focus:border-[var(--color-primary)]",success:"border border-[var(--color-success)] focus:border-[var(--color-success)]",error:"border border-[var(--color-danger)] focus:border-[var(--color-danger)]",warning:"border border-[var(--color-warning)] focus:border-[var(--color-warning)]"},h=m?{default:"focus:shadow-[var(--shadow-glow-primary)] focus:ring-2 focus:ring-[var(--color-primary)]/20",success:"focus:shadow-[var(--shadow-glow-success)]",error:"focus:shadow-[var(--shadow-glow-danger)]",warning:"focus:shadow-[var(--shadow-glow-warning)]"}[s||"default"]:"",d="rounded-[14px]",P={sm:"px-3 py-1.5 text-sm",md:"px-4 py-3 text-base",lg:"px-5 py-3.5 text-lg"},q={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},G=[k,L,w[s||"default"],h,d,P[l],v?"w-full":"",o?l==="sm"?"pl-9":l==="md"?"pl-11":"pl-14":"",C||r==="password"?l==="sm"?"pr-9":l==="md"?"pr-11":"pr-14":"",a?"opacity-60 cursor-not-allowed":"",M].filter(Boolean).join(" "),O=Q=>{E(!0),R==null||R(Q)},H=Q=>{E(!1),j==null||j(Q)},z=()=>a?"text-[var(--color-text-tertiary)]":s==="error"?"text-[var(--color-danger)]":s==="success"?"text-[var(--color-success)]":s==="warning"?"text-[var(--color-warning)]":I?"text-[var(--color-primary)]":"text-[var(--color-text-secondary)]",X=()=>a?"text-[var(--color-text-tertiary)]":s==="error"?"text-[var(--color-danger)]":s==="success"?"text-[var(--color-success)]":s==="warning"?"text-[var(--color-warning)]":I?"text-[var(--color-primary)]":"text-[var(--color-text-tertiary)]";return e.jsxs("div",{className:`${v?"w-full":""} flex flex-col gap-1.5`,children:[$&&e.jsx("label",{htmlFor:i,className:`text-sm font-medium font-sans transition-colors duration-180 ${z()}`,children:$}),e.jsxs("div",{className:"relative group w-full",children:[o&&e.jsx("span",{className:`absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none transition-colors duration-180 ${X()}`,children:e.jsx("span",{className:q[l],children:o})}),e.jsx("input",{ref:f,id:i,type:r==="password"&&T?"text":r,className:G,placeholder:c,value:g,onChange:x,onFocus:O,onBlur:H,disabled:a,"aria-label":$?void 0:c||"Input",...b}),r==="password"&&e.jsx("button",{type:"button",onClick:()=>S(!T),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-tertiary)] hover:text-[var(--color-text-primary)] transition-colors cursor-pointer",tabIndex:-1,"aria-label":T?"Hide password":"Show password",children:T?e.jsxs("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})]}):e.jsx("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.542-7a10.05 10.05 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.542 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"})})})]}),(N||u||n)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[s==="error"&&u&&e.jsxs("span",{className:"text-[var(--color-danger)] flex items-center",children:[e.jsx(Be,{})," ",u]}),s==="success"&&n&&e.jsxs("span",{className:"text-[var(--color-success)] flex items-center",children:[e.jsx(ze,{})," ",n]}),!s&&N&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:N})]})]})});fe.displayName="Input";const We=t.forwardRef(({variant:r="glass",padding:l="md",radius:s="standard",float:u=!1,glow:n,className:o="",children:C,style:m,...$},N)=>{const[v,a]=t.useState({x:0,y:0}),[M,c]=t.useState(!1),g=t.useRef(null),x=y=>{if(!g.current||!u)return;const i=g.current.getBoundingClientRect(),k=y.clientX-i.left,L=y.clientY-i.top,w=i.width/2,h=i.height/2,d=(L-h)/h*-6,P=(k-w)/w*6;a({x:d,y:P})},R=()=>{u&&c(!0)},j=()=>{c(!1),a({x:0,y:0})},p={glass:"glass",solid:"glass-solid",outline:"glass-outline"},b={sm:"p-4",md:"p-6",lg:"p-8",none:"p-0"},f={sm:"var(--radius-sm)",md:"var(--radius-md)",standard:"var(--radius-standard)",large:"var(--radius-large)",xl:"var(--radius-xl)",full:"var(--radius-full)"},T={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent"},S=u?"float-card":"",I=n?T[n]:"",E=[p[r],b[l],S,I,o].filter(Boolean).join(" ");return e.jsx("div",{ref:y=>{typeof N=="function"?N(y):N&&(N.current=y),g.current=y},className:E,style:{borderRadius:f[s],transform:u&&M?`perspective(800px) rotateX(${v.x}deg) rotateY(${v.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:u?"preserve-3d":"flat",transition:u?"transform 0.2s ease-out, box-shadow 0.4s ease, border-radius 0.2s ease":"border-radius 0.2s ease",...m},onMouseMove:x,onMouseEnter:R,onMouseLeave:j,...$,children:C})});We.displayName="Card";const Ge=({items:r,activeValue:l,defaultValue:s,onChange:u,align:n="left",size:o="md",glowColor:C="primary",fullWidth:m=!1,className:$=""})=>{var k,L;const N=l!==void 0,[v,a]=t.useState(s||((k=r[0])==null?void 0:k.value)||((L=r[0])==null?void 0:L.label)||""),M=N?l:v,[c,g]=t.useState({}),x=t.useRef(null),R=t.useRef(null),j=t.useRef(null),p=t.useRef(null),b=t.useRef(!0),f=(w,h)=>w.value||w.label||`tab-${h}`,T=t.useCallback(w=>{N||a(w),u==null||u(w)},[N,u]),S=t.useCallback(()=>{j.current&&(clearTimeout(j.current),j.current=null),requestAnimationFrame(()=>{if(R.current&&x.current){const w=R.current.getBoundingClientRect(),h=x.current.getBoundingClientRect(),d=w.left-h.left,P=w.width;g(q=>q.left===d&&q.width===P?q:{left:d,width:P})}})},[]);t.useEffect(()=>{if(b.current){b.current=!1,setTimeout(S,100);return}return j.current=setTimeout(()=>{S()},30),()=>{j.current&&(clearTimeout(j.current),j.current=null)}},[M,r,S]),t.useEffect(()=>{const w=()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{S()},150)};return window.addEventListener("resize",w),window.addEventListener("orientationchange",w),()=>{window.removeEventListener("resize",w),window.removeEventListener("orientationchange",w),p.current&&(clearTimeout(p.current),p.current=null)}},[S]);const I=t.useMemo(()=>({sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-2.5 text-lg"}),[]),E=t.useMemo(()=>({primary:"bg-[var(--color-primary)] shadow-[var(--shadow-glow-primary)]",secondary:"bg-[var(--color-secondary)] shadow-[var(--shadow-glow-secondary)]",accent:"bg-[var(--color-accent)] shadow-[var(--shadow-glow-accent)]",success:"bg-[var(--color-success)] shadow-[var(--shadow-glow-success)]",danger:"bg-[var(--color-danger)] shadow-[var(--shadow-glow-danger)]",none:"bg-[var(--color-border-primary)]"}),[]),y=t.useMemo(()=>({left:"justify-start",center:"justify-center",right:"justify-end"}),[]),i=t.useMemo(()=>{var w;return(w=r.find((h,d)=>f(h,d)===M))==null?void 0:w.content},[r,M]);return e.jsxs("div",{className:`w-full ${$}`,children:[e.jsxs("div",{ref:x,className:`
|
|
2
2
|
relative flex border-b border-[var(--color-border-secondary)]
|
|
3
|
-
${
|
|
4
|
-
${
|
|
5
|
-
`,role:"tablist",children:[r.map((
|
|
3
|
+
${y[n]}
|
|
4
|
+
${m?"w-full":""}
|
|
5
|
+
`,role:"tablist",children:[r.map((w,h)=>{const d=f(w,h),P=d===M;return e.jsxs("button",{ref:P?R:null,className:`
|
|
6
6
|
relative flex items-center gap-2 font-medium font-sans
|
|
7
7
|
transition-all duration-150
|
|
8
8
|
rounded-t-[--radius-md]
|
|
9
|
-
${
|
|
10
|
-
${
|
|
11
|
-
${
|
|
12
|
-
${
|
|
9
|
+
${I[o]}
|
|
10
|
+
${m?"flex-1 justify-center":""}
|
|
11
|
+
${P?"text-[var(--color-text-primary)]":"text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}
|
|
12
|
+
${w.disabled?"opacity-40 cursor-not-allowed pointer-events-none":"cursor-pointer"}
|
|
13
13
|
focus:outline-none focus-visible:ring-2 focus-visible:ring-[#7c5cff]
|
|
14
14
|
hover:bg-[var(--color-bg-elevated)]/20
|
|
15
15
|
select-none
|
|
16
|
-
`,onClick:()=>!
|
|
16
|
+
`,onClick:()=>!w.disabled&&T(d),role:"tab","aria-selected":P,"aria-disabled":w.disabled,tabIndex:P?0:-1,disabled:w.disabled,children:[w.icon&&e.jsx("span",{className:"flex-shrink-0",children:w.icon}),e.jsx("span",{children:w.label})]},d)}),e.jsx("div",{className:`
|
|
17
17
|
absolute bottom-0 h-0.5 rounded-full
|
|
18
18
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
19
|
-
${E[
|
|
19
|
+
${E[C]}
|
|
20
20
|
will-change-transform
|
|
21
21
|
`,style:{...c,opacity:c.width?1:0}})]}),e.jsx("div",{className:"pt-4 relative min-h-[60px] overflow-hidden",children:e.jsx("div",{className:`\r
|
|
22
22
|
transition-all duration-300 ease-[var(--ease-in-out)]\r
|
|
23
23
|
animate-fade-slide-in\r
|
|
24
24
|
will-change-transform\r
|
|
25
|
-
`,children:
|
|
25
|
+
`,children:i},M)}),e.jsx("style",{children:`
|
|
26
26
|
@keyframes fadeSlideIn {
|
|
27
27
|
0% {
|
|
28
28
|
opacity: 0;
|
|
@@ -37,54 +37,54 @@
|
|
|
37
37
|
.animate-fade-slide-in {
|
|
38
38
|
animation: fadeSlideIn 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
39
39
|
}
|
|
40
|
-
`})]})};Ge.displayName="Tabs";const qe=({items:r,openItems:
|
|
40
|
+
`})]})};Ge.displayName="Tabs";const qe=({items:r,openItems:l,defaultOpenItems:s=[],onOpenChange:u,multiple:n=!1,glass:o=!0,className:C="",size:m="md"})=>{const $=l!==void 0,[N,v]=t.useState(s),a=$?l:N,M=t.useRef(new Map),[c,g]=t.useState({}),x=t.useCallback(p=>{let b;n?a.includes(p)?b=a.filter(f=>f!==p):b=[...a,p]:a.includes(p)&&a.length===1?b=[]:b=[p],$||v(b),u==null||u(b)},[a,n,$,u]);t.useEffect(()=>{const p={};r.forEach(b=>{const f=M.current.get(b.id);f&&(f.style.maxHeight="none",p[b.id]=f.scrollHeight,f.style.maxHeight="0px")}),g(p)},[r]);const R={sm:"px-3 py-2 text-sm",md:"px-4 py-3 text-base",lg:"px-6 py-4 text-lg"},j={sm:"px-5 py-3 text-sm",md:"px-6 py-4 text-base",lg:"px-8 py-6 text-lg"};return e.jsx("div",{className:`${o?"glass":""} overflow-hidden ${C}`,children:r.map((p,b)=>{const f=a.includes(p.id),T=b===0,S=b===r.length-1,I=r.length===1,E=c[p.id]||0;let y="";return I?y="rounded-[--radius-md]":T?y="rounded-t-[--radius-md]":S&&(y="rounded-b-[--radius-md]"),e.jsxs("div",{className:`
|
|
41
41
|
border-b border-[var(--color-border-secondary)] last:border-b-0
|
|
42
42
|
transition-colors duration-180
|
|
43
|
-
${
|
|
44
|
-
`,children:[e.jsxs("button",{onClick:()=>
|
|
43
|
+
${y}
|
|
44
|
+
`,children:[e.jsxs("button",{onClick:()=>x(p.id),disabled:p.disabled,className:`
|
|
45
45
|
w-full flex items-center justify-between
|
|
46
46
|
font-heading font-semibold
|
|
47
47
|
transition-colors duration-180
|
|
48
|
-
${R[
|
|
49
|
-
${
|
|
50
|
-
${
|
|
48
|
+
${R[m]}
|
|
49
|
+
${p.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer"}
|
|
50
|
+
${f?"text-[var(--color-primary)]":"text-[var(--color-text-primary)]"}
|
|
51
51
|
hover:bg-[var(--color-bg-elevated)]/30
|
|
52
52
|
focus:outline-none
|
|
53
|
-
`,"aria-expanded":
|
|
53
|
+
`,"aria-expanded":f,"aria-disabled":p.disabled,children:[e.jsxs("span",{className:"flex items-center gap-2",children:[p.icon&&e.jsx("span",{className:"flex-shrink-0",children:p.icon}),p.title]}),e.jsx("span",{className:`
|
|
54
54
|
transition-transform duration-250 text-[var(--color-text-secondary)]
|
|
55
|
-
${
|
|
56
|
-
`,"aria-hidden":"true",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})})]}),e.jsx("div",{ref:
|
|
55
|
+
${f?"rotate-180":"rotate-0"}
|
|
56
|
+
`,"aria-hidden":"true",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})})]}),e.jsx("div",{ref:i=>{i?M.current.set(p.id,i):M.current.delete(p.id)},className:`
|
|
57
57
|
overflow-hidden
|
|
58
58
|
transition-[max-height,padding] duration-350 ease-[var(--ease-in-out)]
|
|
59
|
-
${
|
|
60
|
-
`,style:{maxHeight:
|
|
59
|
+
${f?"border-t border-[var(--color-border-secondary)]":""}
|
|
60
|
+
`,style:{maxHeight:f?`${E}px`:"0px",paddingTop:"0",paddingBottom:"0"},children:e.jsx("div",{className:`${j[m]} text-[var(--color-text-secondary)]`,children:p.content})})]},p.id)})})};qe.displayName="Accordion";const Ve=t.forwardRef(({options:r,value:l,defaultValue:s,onChange:u,placeholder:n="Select an option...",searchable:o=!1,searchPlaceholder:C="Search...",disabled:m=!1,fullWidth:$=!1,size:N="md",className:v="",label:a,helperText:M,error:c=!1,errorMessage:g},x)=>{const R=l!==void 0,[j,p]=t.useState(s),[b,f]=t.useState(!1),[T,S]=t.useState(""),I=t.useRef(null),E=t.useRef(null),y=R?l:j,i=r.find(O=>O.value===y),k=o?r.filter(O=>O.label.toLowerCase().includes(T.toLowerCase())):r,L=t.useId(),w=t.useCallback(()=>{m||(f(O=>!O),b||S(""))},[m,b]),h=t.useCallback(O=>{R||p(O),u==null||u(O),f(!1),S("")},[R,u]);t.useEffect(()=>{const O=H=>{I.current&&!I.current.contains(H.target)&&(f(!1),S(""))};return b&&document.addEventListener("mousedown",O),()=>{document.removeEventListener("mousedown",O)}},[b]),t.useEffect(()=>{b&&o&&E.current&&E.current.focus()},[b,o]);const d={sm:{trigger:"px-3 py-1.5 text-sm",option:"px-3 py-1.5 text-sm",search:"px-3 py-1.5 text-sm"},md:{trigger:"px-4 py-2.5 text-base",option:"px-4 py-2.5 text-base",search:"px-4 py-2.5 text-base"},lg:{trigger:"px-5 py-3.5 text-lg",option:"px-5 py-3.5 text-lg",search:"px-5 py-3.5 text-lg"}},P={sm:"w-36",md:"w-44",lg:"w-52"},q={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},G=(i==null?void 0:i.label)||n;return e.jsxs("div",{ref:x,className:`
|
|
61
61
|
flex flex-col gap-1.5
|
|
62
|
-
${
|
|
63
|
-
${
|
|
64
|
-
`,children:[a&&e.jsx("label",{className:"text-sm font-medium text-[var(--color-text-secondary)] font-sans",children:a}),e.jsxs("div",{ref:
|
|
62
|
+
${$?"w-full":P[N]}
|
|
63
|
+
${v}
|
|
64
|
+
`,children:[a&&e.jsx("label",{className:"text-sm font-medium text-[var(--color-text-secondary)] font-sans",children:a}),e.jsxs("div",{ref:I,className:"relative w-full",children:[e.jsxs("button",{type:"button",onClick:w,disabled:m,className:`
|
|
65
65
|
w-full flex items-center justify-between gap-2
|
|
66
66
|
font-sans text-[var(--color-text-primary)]
|
|
67
67
|
transition-all duration-[var(--transition-fast)]
|
|
68
68
|
rounded-[var(--radius-md)]
|
|
69
69
|
${d[N].trigger}
|
|
70
|
-
${
|
|
70
|
+
${m?"opacity-60 cursor-not-allowed bg-[var(--color-bg-tertiary)]":"cursor-pointer bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)]"}
|
|
71
71
|
${c?"border border-[var(--color-danger)] focus:border-[var(--color-danger)]":"border border-[var(--color-border-primary)] focus:border-[var(--color-primary)]"}
|
|
72
72
|
focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]/20
|
|
73
|
-
${
|
|
74
|
-
`,"aria-haspopup":"listbox","aria-expanded":
|
|
73
|
+
${b?"border-[var(--color-primary)]":""}
|
|
74
|
+
`,"aria-haspopup":"listbox","aria-expanded":b,"aria-disabled":m,children:[e.jsxs("span",{className:`
|
|
75
75
|
flex items-center gap-2 min-w-0 truncate
|
|
76
|
-
${
|
|
77
|
-
`,children:[(
|
|
76
|
+
${i?"":"text-[var(--color-text-tertiary)]"}
|
|
77
|
+
`,children:[(i==null?void 0:i.icon)&&e.jsx("span",{className:"flex-shrink-0 inline-flex",children:i.icon}),e.jsx("span",{className:"truncate",dir:"auto",children:G})]}),e.jsx("span",{className:`
|
|
78
78
|
transition-transform duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
79
|
-
${
|
|
79
|
+
${b?"rotate-180":"rotate-0"}
|
|
80
80
|
text-[var(--color-text-tertiary)]
|
|
81
81
|
flex-shrink-0
|
|
82
|
-
`,children:e.jsx("svg",{className:
|
|
82
|
+
`,children:e.jsx("svg",{className:q[N],fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})})]}),e.jsxs("div",{className:`
|
|
83
83
|
z-50 w-full mt-1.5 glass max-h-60 overflow-auto
|
|
84
84
|
rounded-[var(--radius-md)] py-1 shadow-[var(--shadow-float)]
|
|
85
85
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
86
|
-
${
|
|
87
|
-
`,style:{position:"absolute"},children:[
|
|
86
|
+
${b?"opacity-100 translate-y-0 pointer-events-auto":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
87
|
+
`,style:{position:"absolute"},children:[o&&e.jsxs("div",{className:"px-2 pb-1.5 border-b border-[var(--color-border-secondary)]",children:[e.jsx("label",{htmlFor:`${L}-search`,className:"sr-only",children:C}),e.jsx("input",{ref:E,id:`${L}-search`,type:"text",value:T,onChange:O=>S(O.target.value),placeholder:C,className:`
|
|
88
88
|
w-full font-sans
|
|
89
89
|
bg-[var(--color-bg-secondary)]
|
|
90
90
|
text-[var(--color-text-primary)]
|
|
@@ -93,47 +93,47 @@
|
|
|
93
93
|
outline-none
|
|
94
94
|
focus:border-[var(--color-primary)]
|
|
95
95
|
${d[N].search}
|
|
96
|
-
`,onClick:
|
|
96
|
+
`,onClick:O=>O.stopPropagation()})]}),e.jsx("div",{className:"py-1",role:"listbox","aria-label":a||"Dropdown options",children:k.length===0?e.jsx("div",{className:`${d[N].option} text-[var(--color-text-tertiary)] text-center`,children:"No options found"}):k.map(O=>{const H=O.value===y;return e.jsxs("div",{role:"option","aria-selected":H,"aria-disabled":O.disabled||void 0,tabIndex:O.disabled?-1:0,onClick:()=>{O.disabled||h(O.value)},onKeyDown:z=>{!O.disabled&&(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),h(O.value))},className:`
|
|
97
97
|
w-full flex items-center gap-2 text-left
|
|
98
98
|
${d[N].option}
|
|
99
|
-
${
|
|
100
|
-
${
|
|
99
|
+
${O.disabled?"opacity-40 cursor-not-allowed":"cursor-pointer hover:bg-[var(--color-bg-elevated)]/50"}
|
|
100
|
+
${H?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)]"}
|
|
101
101
|
focus:outline-none focus:bg-[var(--color-bg-elevated)]/30
|
|
102
|
-
`,children:[
|
|
102
|
+
`,children:[O.icon&&e.jsx("span",{className:"flex-shrink-0","aria-hidden":"true",children:O.icon}),e.jsx("span",{className:"truncate",dir:"auto",children:O.label}),H&&e.jsx("span",{className:"ml-auto text-[var(--color-primary)] flex-shrink-0","aria-hidden":"true",children:e.jsx("svg",{className:`${q[N]} opacity-80`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})})]},O.value)})})]})]}),(M||g)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-sans",children:[c&&g&&e.jsxs(e.Fragment,{children:[e.jsx("svg",{className:"h-3.5 w-3.5 text-[var(--color-danger)] flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"})}),e.jsx("span",{className:"text-[var(--color-danger)]",children:g})]}),!c&&M&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:M})]})]})});Ve.displayName="Dropdown";const Et=300,Te=({isOpen:r,onClose:l,title:s,children:u,size:n="md",closeOnBackdropClick:o=!0,closeOnEscape:C=!0,confirmText:m,cancelText:$,onConfirm:N,className:v=""})=>{const a=t.useRef(null),M=t.useRef(null),[c,g]=t.useState(!1),[x,R]=t.useState(!1),j={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl"};t.useEffect(()=>{let f;return r?(g(!0),R(!1),f=setTimeout(()=>{R(!0)},20)):(R(!1),f=setTimeout(()=>{g(!1)},Et)),()=>clearTimeout(f)},[r]),t.useEffect(()=>{if(!r||!C)return;const f=T=>{T.key==="Escape"&&l()};return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[r,C,l]),t.useEffect(()=>{var S;if(!r){(S=M.current)==null||S.focus();return}M.current=document.activeElement;const f=setTimeout(()=>{var I;return(I=a.current)==null?void 0:I.focus()},30),T=I=>{if(I.key!=="Tab"||!a.current)return;const E=a.current.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])');if(E.length===0)return;const y=E[0],i=E[E.length-1],k=document.activeElement;I.shiftKey&&k===y?(I.preventDefault(),i.focus()):!I.shiftKey&&k===i&&(I.preventDefault(),y.focus())};return document.addEventListener("keydown",T),()=>{clearTimeout(f),document.removeEventListener("keydown",T)}},[r]);const p=t.useCallback(f=>{o&&f.target===f.currentTarget&&l()},[o,l]),b=t.useCallback(()=>{N==null||N(),l()},[N,l]);return c?Me.createPortal(e.jsx("div",{ref:a,className:`
|
|
103
103
|
fixed inset-0 z-[10001]
|
|
104
104
|
flex items-center justify-center
|
|
105
105
|
bg-[var(--color-bg-primary)]/60 backdrop-blur-[6px]
|
|
106
106
|
transition-all duration-300 ease-[var(--ease-in-out,cubic-bezier(0.4,0,0.2,1))]
|
|
107
|
-
${
|
|
108
|
-
`,onClick:
|
|
107
|
+
${x?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
108
|
+
`,onClick:p,role:"dialog","aria-modal":"true","aria-labelledby":s?"modal-title":void 0,tabIndex:-1,children:e.jsxs("div",{className:`
|
|
109
109
|
glass-heavy p-8
|
|
110
|
-
w-[90%] ${
|
|
110
|
+
w-[90%] ${j[n]}
|
|
111
111
|
transition-all duration-300 ease-[var(--ease-in-out,cubic-bezier(0.4,0,0.2,1))]
|
|
112
|
-
${
|
|
113
|
-
${
|
|
114
|
-
`,onClick:
|
|
112
|
+
${x?"scale-100 opacity-100":"scale-90 opacity-0"}
|
|
113
|
+
${v}
|
|
114
|
+
`,onClick:f=>f.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[s&&e.jsxs("h3",{id:"modal-title",className:"font-heading text-xl font-bold text-[var(--color-text-primary)] flex items-center gap-2",children:[e.jsx(yt,{className:"h-5 w-5 flex-shrink-0 text-[var(--color-primary)]"}),s]}),e.jsx("button",{onClick:l,className:"text-[var(--color-text-tertiary)] hover:text-[var(--color-text-primary)] text-2xl leading-none transition-colors duration-180","aria-label":"Close modal",title:"Close",children:"×"})]}),e.jsx("div",{className:"text-[var(--color-text-secondary)] mb-4 font-sans text-sm leading-relaxed",children:u}),(m||$)&&e.jsxs("div",{className:"flex gap-3 mt-6",children:[m&&e.jsx(ge,{variant:"primary",onClick:b,children:m}),$&&e.jsx(ge,{variant:"glass",onClick:l,children:$})]})]})}),document.body):null};Te.displayName="Modal";const He=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:s,label:u,size:n="md",glow:o=!1,error:C=!1,disabled:m=!1,className:$="",id:N,...v},a)=>{const M=r!==void 0,[c,g]=t.useState(l),[x,R]=t.useState(!1),j=t.useRef(null),p=M?r:c,b=t.useId(),f=N||b,T=L=>{const w=L.target.checked;M||g(w),s==null||s(w),w&&(R(!0),setTimeout(()=>R(!1),800))},S={sm:{box:"w-4 h-4",icon:"h-2.5 w-2.5",label:"text-sm",gap:"gap-2"},md:{box:"w-5 h-5",icon:"h-3 w-3",label:"text-base",gap:"gap-2.5"},lg:{box:"w-6 h-6",icon:"h-3.5 w-3.5",label:"text-lg",gap:"gap-3"}},I=S[n]||S.md,E=o&&p?"shadow-[var(--shadow-glow-primary)] ring-2 ring-[var(--color-primary)]/30":"",y=C?"border-[var(--color-danger)]":"border-[var(--color-border-primary)]",i=()=>e.jsx("svg",{className:`${I.icon} text-[var(--color-text-inverse)]`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})}),k=()=>{const L=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","var(--color-success)","#ffffff"];return e.jsx("div",{className:"absolute inset-0 pointer-events-none overflow-visible",children:Array.from({length:12}).map((h,d)=>{const P=d/12*360+Math.random()*30,q=12+Math.random()*20,G=2+Math.random()*3,O=L[Math.floor(Math.random()*L.length)],H=Math.random()*.15;return e.jsx("div",{className:"sparkle-particle",style:{left:"50%",top:"50%",width:`${G}px`,height:`${G}px`,backgroundColor:O,borderRadius:"50%",position:"absolute",transform:"translate(-50%, -50%)","--angle":`${P}deg`,"--distance":`${q}px`,animationDelay:`${H}s`}},d)})})};return e.jsxs("label",{htmlFor:f,className:`
|
|
115
115
|
inline-flex items-center
|
|
116
|
-
${
|
|
116
|
+
${I.gap}
|
|
117
117
|
cursor-pointer
|
|
118
|
-
${
|
|
119
|
-
${
|
|
118
|
+
${m?"opacity-50 cursor-not-allowed":""}
|
|
119
|
+
${$}
|
|
120
120
|
align-middle
|
|
121
121
|
w-fit
|
|
122
|
-
`,children:[e.jsx("input",{ref:
|
|
122
|
+
`,children:[e.jsx("input",{ref:L=>{typeof a=="function"?a(L):a&&(a.current=L),j.current=L},id:f,type:"checkbox",checked:p,onChange:T,disabled:m,className:"sr-only","aria-invalid":C,...v}),e.jsxs("div",{className:`
|
|
123
123
|
relative flex-shrink-0
|
|
124
|
-
${
|
|
124
|
+
${I.box}
|
|
125
125
|
rounded-[var(--radius-sm)]
|
|
126
126
|
transition-all duration-[var(--transition-med)]
|
|
127
|
-
${
|
|
128
|
-
${
|
|
129
|
-
${
|
|
127
|
+
${y}
|
|
128
|
+
${m?"bg-[var(--color-bg-tertiary)]":""}
|
|
129
|
+
${p?`bg-[var(--color-primary-solid)] ${E}`:"bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)]"}
|
|
130
130
|
flex items-center justify-center
|
|
131
131
|
border
|
|
132
|
-
`,style:{boxShadow:
|
|
133
|
-
${
|
|
132
|
+
`,style:{boxShadow:p&&o?"var(--shadow-glow-primary)":"none",alignSelf:"center"},children:[p&&e.jsx("div",{className:"flex items-center justify-center w-full h-full",style:{animation:"checkScale 0.25s ease-out"},children:e.jsx(i,{})}),p&&x&&e.jsx(k,{})]}),u&&e.jsx("span",{className:`
|
|
133
|
+
${I.label}
|
|
134
134
|
text-[var(--color-text-primary)]
|
|
135
135
|
font-sans font-medium
|
|
136
|
-
${
|
|
136
|
+
${m?"text-[var(--color-text-tertiary)]":""}
|
|
137
137
|
select-none
|
|
138
138
|
align-middle
|
|
139
139
|
`,children:u}),e.jsx("style",{children:`
|
|
@@ -168,30 +168,30 @@
|
|
|
168
168
|
transform: scale(1);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
`})]})});He.displayName="Checkbox";const Fe=t.forwardRef(({checked:r,defaultChecked:
|
|
171
|
+
`})]})});He.displayName="Checkbox";const Fe=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:s,label:u,size:n="md",glow:o=!1,disabled:C=!1,onIcon:m,offIcon:$,className:N="",id:v,...a},M)=>{const c=r!==void 0,[g,x]=t.useState(l),[R,j]=t.useState(!1),p=t.useRef(null),[b,f]=t.useState(!1);t.useEffect(()=>{const L=()=>{f(document.documentElement.dir==="rtl")};L();const w=new MutationObserver(L);return w.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>w.disconnect()},[]);const T=c?r:g,S=t.useId(),I=v||S,E=L=>{const w=L.target.checked;c||x(w),s==null||s(w),w&&(j(!0),setTimeout(()=>j(!1),700))},y={sm:{track:"w-10 h-5",thumb:"w-5 h-5",travel:20,label:"text-xs",icon:"text-[10px]",gap:"gap-1.5",thumbOffset:0},md:{track:"w-12 h-6",thumb:"w-6 h-6",travel:24,label:"text-sm",icon:"text-xs",gap:"gap-2",thumbOffset:0},lg:{track:"w-16 h-8",thumb:"w-8 h-8",travel:32,label:"text-base",icon:"text-sm",gap:"gap-2.5",thumbOffset:0}},i=y[n]||y.md;let k=0;return T?k=b?-i.travel:i.travel:k=0,e.jsxs("label",{htmlFor:I,className:`
|
|
172
172
|
inline-flex flex-col items-start
|
|
173
|
-
${
|
|
174
|
-
${
|
|
173
|
+
${i.gap}
|
|
174
|
+
${C?"opacity-50 pointer-events-none":"cursor-pointer"}
|
|
175
175
|
${N}
|
|
176
176
|
w-fit
|
|
177
177
|
`,children:[u&&e.jsx("span",{className:`
|
|
178
|
-
${
|
|
178
|
+
${i.label}
|
|
179
179
|
font-sans font-medium
|
|
180
180
|
text-[var(--color-text-primary)]
|
|
181
181
|
select-none
|
|
182
182
|
`,children:u}),e.jsxs("div",{className:`
|
|
183
183
|
relative inline-flex items-center
|
|
184
184
|
cursor-pointer
|
|
185
|
-
${
|
|
185
|
+
${C?"cursor-not-allowed":""}
|
|
186
186
|
align-middle
|
|
187
|
-
`,children:[e.jsx("input",{ref:
|
|
187
|
+
`,children:[e.jsx("input",{ref:L=>{typeof M=="function"?M(L):M&&(M.current=L),p.current=L},id:I,type:"checkbox",role:"switch",checked:T,onChange:E,disabled:C,className:"sr-only","aria-checked":T,...a}),e.jsxs("div",{className:`
|
|
188
188
|
relative flex-shrink-0
|
|
189
|
-
${
|
|
189
|
+
${i.track}
|
|
190
190
|
rounded-full
|
|
191
191
|
overflow-visible
|
|
192
192
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
193
193
|
border-2
|
|
194
|
-
${
|
|
194
|
+
${T?`
|
|
195
195
|
bg-[var(--color-primary)]
|
|
196
196
|
border-[var(--color-primary)]
|
|
197
197
|
backdrop-blur-[12px]
|
|
@@ -200,34 +200,34 @@
|
|
|
200
200
|
border-[var(--color-border-primary)]
|
|
201
201
|
backdrop-blur-[10px]
|
|
202
202
|
`}
|
|
203
|
-
${
|
|
204
|
-
`,style:{boxShadow:
|
|
203
|
+
${o&&T?"shadow-[var(--shadow-glow-primary)] ring-2 ring-[var(--color-primary)]/25":"shadow-[var(--shadow-float)]"}
|
|
204
|
+
`,style:{boxShadow:o&&T?"var(--shadow-glow-primary)":void 0},children:[e.jsx("div",{className:`
|
|
205
205
|
absolute inset-0 rounded-full pointer-events-none
|
|
206
206
|
transition-opacity duration-300
|
|
207
|
-
${
|
|
207
|
+
${T?"opacity-100":"opacity-40"}
|
|
208
208
|
`,style:{background:"linear-gradient(180deg, rgba(255,255,255,0.18) 0%, transparent 55%)"}}),e.jsxs("div",{className:`
|
|
209
209
|
absolute
|
|
210
|
-
${
|
|
210
|
+
${i.thumb}
|
|
211
211
|
rounded-full
|
|
212
212
|
flex items-center justify-center
|
|
213
213
|
transition-transform duration-350
|
|
214
214
|
ease-[cubic-bezier(0.34,1.56,0.64,1)]
|
|
215
|
-
${
|
|
215
|
+
${T?`
|
|
216
216
|
bg-white
|
|
217
217
|
shadow-[0_2px_12px_rgba(0,0,0,0.25),0_0_0_1px_rgba(255,255,255,0.4)]
|
|
218
218
|
`:`
|
|
219
219
|
bg-[var(--color-bg-secondary)]
|
|
220
220
|
shadow-[0_2px_8px_rgba(0,0,0,0.2),0_0_0_1px_var(--color-border-primary)]
|
|
221
221
|
`}
|
|
222
|
-
`,style:{top:"50%",[
|
|
223
|
-
${
|
|
222
|
+
`,style:{top:"50%",[b?"right":"left"]:0,transform:`translateY(-50%) translateX(${k}px)`},children:[T&&m&&e.jsx("span",{className:`
|
|
223
|
+
${i.icon}
|
|
224
224
|
flex items-center justify-center leading-none
|
|
225
225
|
text-[var(--color-primary)]
|
|
226
|
-
`,children:
|
|
227
|
-
${
|
|
226
|
+
`,children:m}),!T&&$&&e.jsx("span",{className:`
|
|
227
|
+
${i.icon}
|
|
228
228
|
flex items-center justify-center leading-none
|
|
229
229
|
text-[var(--color-text-tertiary)]
|
|
230
|
-
`,children
|
|
230
|
+
`,children:$})]}),T&&R&&e.jsx("div",{className:"absolute inset-0 pointer-events-none overflow-visible",children:Array.from({length:10}).map((L,w)=>{const h=w/10*360+Math.random()*24,d=14+Math.random()*18,P=2+Math.random()*2.5,q=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","#ffffff"],G=q[Math.floor(Math.random()*q.length)],O=Math.random()*.12;return e.jsx("div",{className:"switch-sparkle",style:{position:"absolute",left:b?"20%":"80%",top:"50%",width:`${P}px`,height:`${P}px`,backgroundColor:G,borderRadius:"50%","--angle":`${h}deg`,"--distance":`${d}px`,animationDelay:`${O}s`}},w)})})]})]}),e.jsx("style",{children:`
|
|
231
231
|
.switch-sparkle {
|
|
232
232
|
animation: switchSparkleBurst 0.65s ease-out forwards;
|
|
233
233
|
}
|
|
@@ -244,40 +244,40 @@
|
|
|
244
244
|
opacity: 0;
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
`})]})});Fe.displayName="Switch";const Ye=t.forwardRef(({checked:r,defaultChecked:
|
|
247
|
+
`})]})});Fe.displayName="Switch";const Ye=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:s,onChange:u,label:n,size:o="md",glow:C=!1,error:m=!1,disabled:$=!1,value:N,name:v,className:a="",id:M,...c},g)=>{const x=r!==void 0,[R,j]=t.useState(l),[p,b]=t.useState(x?!!r:l),f=t.useRef(null);t.useEffect(()=>{x&&b(!!r)},[r,x]);const T=t.useId(),S=M||T,I=k=>{const L=k.target.checked;b(L),x||j(L),s==null||s(L),u==null||u(k)};t.useEffect(()=>{if(x||!v)return;const k=()=>{const L=f.current;L&&b(L.checked)};return document.addEventListener("change",k,!0),()=>document.removeEventListener("change",k,!0)},[x,v]);const E={sm:{ring:"w-4 h-4",dot:"w-1.5 h-1.5",label:"text-sm",gap:"gap-2"},md:{ring:"w-5 h-5",dot:"w-2 h-2",label:"text-base",gap:"gap-2.5"},lg:{ring:"w-6 h-6",dot:"w-2.5 h-2.5",label:"text-lg",gap:"gap-3"}},y=E[o]||E.md,i=p;return e.jsxs("label",{htmlFor:S,className:`
|
|
248
248
|
inline-flex items-center
|
|
249
|
-
${
|
|
249
|
+
${y.gap}
|
|
250
250
|
cursor-pointer
|
|
251
|
-
${
|
|
251
|
+
${$?"opacity-50 cursor-not-allowed":""}
|
|
252
252
|
${a}
|
|
253
253
|
align-middle
|
|
254
254
|
w-fit
|
|
255
|
-
`,children:[e.jsx("input",{ref:
|
|
255
|
+
`,children:[e.jsx("input",{ref:k=>{typeof g=="function"?g(k):g&&(g.current=k),f.current=k},id:S,type:"radio",checked:x?r:R,onChange:I,disabled:$,value:N,name:v,className:"sr-only","aria-invalid":m,...c}),e.jsxs("span",{className:`
|
|
256
256
|
relative flex-shrink-0
|
|
257
|
-
${
|
|
257
|
+
${y.ring}
|
|
258
258
|
rounded-full
|
|
259
259
|
flex items-center justify-center
|
|
260
260
|
border-2
|
|
261
261
|
transition-[border-color,box-shadow,background-color] duration-100 ease-out
|
|
262
|
-
${
|
|
263
|
-
${
|
|
262
|
+
${m?"border-[var(--color-danger)]":i?"border-[var(--color-primary)]":"border-[var(--color-border-primary)]"}
|
|
263
|
+
${i?"bg-[var(--color-primary)]/10":"bg-[var(--color-bg-elevated)]/40 hover:bg-[var(--color-bg-elevated)]/60"}
|
|
264
264
|
backdrop-blur-[8px]
|
|
265
|
-
${
|
|
265
|
+
${C&&i?"shadow-[var(--shadow-glow-primary)] ring-2 ring-[var(--color-primary)]/25":""}
|
|
266
266
|
`,style:{alignSelf:"center"},children:[e.jsx("span",{className:`
|
|
267
|
-
${
|
|
267
|
+
${y.dot}
|
|
268
268
|
rounded-full
|
|
269
269
|
bg-[var(--color-primary)]
|
|
270
270
|
transition-transform duration-100
|
|
271
271
|
ease-[cubic-bezier(0.34,1.4,0.64,1)]
|
|
272
|
-
${
|
|
273
|
-
`}),
|
|
274
|
-
${
|
|
272
|
+
${i?"scale-100":"scale-0"}
|
|
273
|
+
`}),i&&e.jsx("span",{className:"absolute inset-0 rounded-full pointer-events-none radio-pulse-ring","aria-hidden":!0},String(i)+S)]}),n&&e.jsx("span",{className:`
|
|
274
|
+
${y.label}
|
|
275
275
|
font-sans font-medium
|
|
276
276
|
text-[var(--color-text-primary)]
|
|
277
277
|
select-none
|
|
278
|
-
${
|
|
278
|
+
${$?"text-[var(--color-text-tertiary)]":""}
|
|
279
279
|
align-middle
|
|
280
|
-
`,children:
|
|
280
|
+
`,children:n}),e.jsx("style",{children:`
|
|
281
281
|
.radio-pulse-ring {
|
|
282
282
|
animation: radioPulse 0.35s ease-out forwards;
|
|
283
283
|
}
|
|
@@ -291,53 +291,53 @@
|
|
|
291
291
|
opacity: 0;
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
-
`})]})});Ye.displayName="Radio";const Xe=t.forwardRef(({value:r,defaultValue:
|
|
295
|
-
${
|
|
296
|
-
${
|
|
294
|
+
`})]})});Ye.displayName="Radio";const Xe=t.forwardRef(({value:r,defaultValue:l=0,min:s=0,max:u=100,step:n=1,onChange:o,onChangeComplete:C,label:m,suffix:$="%",prefix:N="",showValue:v=!0,valuePosition:a="right",size:M="md",color:c="primary",glow:g=!0,disabled:x=!1,fullWidth:R=!0,className:j=""},p)=>{const b=r!==void 0,[f,T]=t.useState(l),[S,I]=t.useState(!1),[E,y]=t.useState(null),[i,k]=t.useState(!1),L=t.useRef(null),w=t.useRef(null),h=t.useRef(null),d=t.useRef(0),q=Math.max(s,Math.min(u,b?r:f)),G=E!==null?Math.max(s,Math.min(u,E)):q,O=(G-s)/(u-s)*100,H=G>=u,[z,X]=t.useState(!1);t.useEffect(()=>{const U=()=>{X(document.documentElement.dir==="rtl")};U();const ae=new MutationObserver(U);return ae.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>ae.disconnect()},[]),t.useEffect(()=>{const U=d.current;if(H&&U<u&&G>s){k(!0);const ae=setTimeout(()=>k(!1),800);return()=>clearTimeout(ae)}d.current=G},[H,G,u,s]);const F={primary:{track:"bg-[var(--color-primary)]",glow:"shadow-[var(--shadow-glow-primary)]",thumb:"border-[var(--color-primary)]",text:"text-[var(--color-primary)]"},secondary:{track:"bg-[var(--color-secondary)]",glow:"shadow-[var(--shadow-glow-secondary)]",thumb:"border-[var(--color-secondary)]",text:"text-[var(--color-secondary)]"},accent:{track:"bg-[var(--color-accent)]",glow:"shadow-[var(--shadow-glow-accent)]",thumb:"border-[var(--color-accent)]",text:"text-[var(--color-accent)]"},success:{track:"bg-[var(--color-success)]",glow:"shadow-[var(--shadow-glow-success)]",thumb:"border-[var(--color-success)]",text:"text-[var(--color-success)]"},danger:{track:"bg-[var(--color-danger)]",glow:"shadow-[var(--shadow-glow-danger)]",thumb:"border-[var(--color-danger)]",text:"text-[var(--color-danger)]"},warning:{track:"bg-[var(--color-warning)]",glow:"shadow-[var(--shadow-glow-warning)]",thumb:"border-[var(--color-warning)]",text:"text-[var(--color-warning)]"}}[c],B={sm:{track:"h-1",thumb:"w-4 h-4",thumbInner:"w-2 h-2",value:"text-xs",label:"text-sm",gap:"gap-2",minHeight:"56px"},md:{track:"h-1.5",thumb:"w-5 h-5",thumbInner:"w-2.5 h-2.5",value:"text-sm",label:"text-base",gap:"gap-2.5",minHeight:"64px"},lg:{track:"h-2",thumb:"w-6 h-6",thumbInner:"w-3 h-3",value:"text-base",label:"text-lg",gap:"gap-3",minHeight:"76px"}}[M],_=t.useCallback(U=>{if(!L.current)return G;const ae=L.current.getBoundingClientRect();let ne=(U-ae.left)/ae.width;z&&(ne=1-ne);const D=ne*(u-s)+s,V=Math.round(D/n)*n;return Math.max(s,Math.min(u,V))},[s,u,n,G,z]),Z=t.useCallback(U=>{h.current!==U&&(h.current=U,b||T(U),o==null||o(U))},[b,o]),ee=t.useCallback(U=>{if(x)return;I(!0);const ae=_(U);y(ae),Z(ae)},[x,_,Z]),K=t.useCallback(U=>{if(!S||x)return;const ae=_(U);y(ae),Z(ae)},[S,x,_,Z]),oe=t.useCallback(()=>{if(!S)return;I(!1);const U=E!==null?E:q;y(null),C==null||C(U)},[S,E,q,C]),A=U=>{ee(U.clientX),U.preventDefault()};t.useEffect(()=>{if(!S)return;const U=ne=>K(ne.clientX),ae=()=>oe();return document.addEventListener("mousemove",U),document.addEventListener("mouseup",ae),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",ae)}},[S,K,oe]);const re=U=>{ee(U.touches[0].clientX)};t.useEffect(()=>{if(!S)return;const U=ne=>K(ne.touches[0].clientX),ae=()=>oe();return document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",ae),()=>{document.removeEventListener("touchmove",U),document.removeEventListener("touchend",ae)}},[S,K,oe]);const J=()=>`${N}${G}${$}`,te={left:"flex-row items-center gap-3",right:"flex-row items-center gap-3",top:"flex-col items-start gap-1.5",bottom:"flex-col items-start gap-1.5"},se={left:"order-first",right:"order-last",top:"order-first",bottom:"order-last"},ce=t.useMemo(()=>{if(!i)return[];const U=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","#ffffff"];return Array.from({length:12},(ae,ne)=>({id:ne,angle:ne/12*360+ne*7%30,distance:16+ne%5*5,size:2+ne%3,color:U[ne%U.length],delay:ne%4*.04}))},[i]),le={top:"50%",transform:"translateY(-50%)"},me=S?"none":"width 120ms ease-out",ve=S?"none":"transform 120ms ease-out",ue=a==="top"||a==="bottom",pe=ue?B.minHeight:"auto",be=ue?"32px":"auto";return e.jsxs("div",{ref:p,className:`${R?"w-full":"inline-block"} ${j}`,style:{minWidth:ue?"140px":"120px",minHeight:pe},children:[m&&e.jsx("label",{className:`block ${B.label} font-medium text-[var(--color-text-secondary)] font-sans mb-1.5`,children:m}),e.jsxs("div",{className:`flex ${te[a]||te.right}`,style:{minHeight:ue?B.minHeight:"auto"},children:[v&&(a==="left"||a==="top")&&e.jsx("span",{className:`
|
|
295
|
+
${B.value}
|
|
296
|
+
${se[a]}
|
|
297
297
|
font-mono font-medium
|
|
298
|
-
${
|
|
298
|
+
${F.text}
|
|
299
299
|
min-w-[2.5rem]
|
|
300
|
-
${
|
|
301
|
-
`,children:
|
|
300
|
+
${ue?"mb-0.5":""}
|
|
301
|
+
`,children:J()}),e.jsxs("div",{ref:L,className:`
|
|
302
302
|
relative flex-1
|
|
303
|
-
${
|
|
303
|
+
${B.gap}
|
|
304
304
|
cursor-pointer
|
|
305
|
-
${
|
|
305
|
+
${x?"opacity-50 cursor-not-allowed":""}
|
|
306
306
|
py-2
|
|
307
|
-
`,style:{minHeight:
|
|
307
|
+
`,style:{minHeight:be},onMouseDown:A,onTouchStart:re,children:[e.jsx("div",{className:`
|
|
308
308
|
absolute left-0 right-0 w-full
|
|
309
|
-
${
|
|
309
|
+
${B.track}
|
|
310
310
|
rounded-full
|
|
311
311
|
bg-[var(--color-bg-tertiary)]
|
|
312
|
-
`,style:
|
|
312
|
+
`,style:le}),e.jsx("div",{className:`
|
|
313
313
|
absolute
|
|
314
|
-
${
|
|
314
|
+
${B.track}
|
|
315
315
|
rounded-full
|
|
316
|
-
${
|
|
317
|
-
${
|
|
318
|
-
`,style:{...
|
|
316
|
+
${F.track}
|
|
317
|
+
${g?F.glow:""}
|
|
318
|
+
`,style:{...le,width:`${O}%`,[z?"right":"left"]:0,transition:me}}),e.jsxs("div",{ref:w,className:`
|
|
319
319
|
absolute
|
|
320
|
-
${
|
|
320
|
+
${B.thumb}
|
|
321
321
|
rounded-full
|
|
322
322
|
bg-[var(--color-bg-secondary)]
|
|
323
323
|
border-2
|
|
324
|
-
${
|
|
324
|
+
${F.thumb}
|
|
325
325
|
flex items-center justify-center
|
|
326
326
|
shadow-[var(--shadow-float)]
|
|
327
|
-
${
|
|
328
|
-
`,style:{top:"50%",[
|
|
329
|
-
${
|
|
327
|
+
${x?"cursor-not-allowed":"cursor-grab active:cursor-grabbing"}
|
|
328
|
+
`,style:{top:"50%",[z?"right":"left"]:`${O}%`,transform:`translate(${z?"50%":"-50%"}, -50%) scale(${S?1.1:1})`,transition:ve,willChange:S?"transform, left, right":"auto"},children:[e.jsx("div",{className:`
|
|
329
|
+
${B.thumbInner}
|
|
330
330
|
rounded-full
|
|
331
|
-
${
|
|
332
|
-
${
|
|
333
|
-
`}),
|
|
334
|
-
${
|
|
335
|
-
${
|
|
331
|
+
${F.track}
|
|
332
|
+
${g?F.glow:""}
|
|
333
|
+
`}),i&&ce.length>0&&e.jsx("div",{className:"absolute inset-0 pointer-events-none overflow-visible",children:ce.map(U=>e.jsx("div",{className:"range-sparkle",style:{left:"50%",top:"50%",width:`${U.size}px`,height:`${U.size}px`,backgroundColor:U.color,borderRadius:"50%",position:"absolute",transform:"translate(-50%, -50%)","--angle":`${U.angle}deg`,"--distance":`${U.distance}px`,animationDelay:`${U.delay}s`}},U.id))})]})]}),v&&(a==="right"||a==="bottom")&&e.jsx("span",{className:`
|
|
334
|
+
${B.value}
|
|
335
|
+
${se[a]}
|
|
336
336
|
font-mono font-medium
|
|
337
|
-
${
|
|
337
|
+
${F.text}
|
|
338
338
|
min-w-[2.5rem]
|
|
339
|
-
${
|
|
340
|
-
`,children:
|
|
339
|
+
${ue?"mt-0.5":""}
|
|
340
|
+
`,children:J()})]}),e.jsx("style",{children:`
|
|
341
341
|
.range-sparkle {
|
|
342
342
|
animation: rangeSparkleBurst 0.7s ease-out forwards;
|
|
343
343
|
}
|
|
@@ -354,7 +354,7 @@
|
|
|
354
354
|
opacity: 0;
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
|
-
`})]})});Xe.displayName="Range";const
|
|
357
|
+
`})]})});Xe.displayName="Range";const we=[{value:"en",label:"English",dir:"ltr"},{value:"fa",label:"فارسی",dir:"rtl"},{value:"fr",label:"Français",dir:"ltr"}],Re=t.createContext(void 0),Dt=({defaultLanguage:r,translations:l,languages:s,children:u})=>{var c;const n="dara-ui-language",o=s||we,C=()=>{var x;const g=localStorage.getItem(n);return g&&o.some(R=>R.value===g)?g:r||((x=o[0])==null?void 0:x.value)||"en"},[m,$]=t.useState(C),N=t.useCallback((g,x)=>{const R=l[m]||l.en||{},j=g.split(".");let p=R;for(const b of j)if(p&&typeof p=="object"&&b in p)p=p[b];else{let T=l.en||{};for(const S of j)if(T&&typeof T=="object"&&S in T)T=T[S];else return g;p=T;break}return typeof p!="string"?g:x?p.replace(/\{\{(\w+)\}\}/g,(b,f)=>String(x[f]??`{{${f}}}`)):p},[m,l]),v=t.useCallback(g=>{const x=o.find(R=>R.value===g);x&&($(g),document.documentElement.lang=g,document.documentElement.dir=x.dir||"ltr",localStorage.setItem(n,g),window.dispatchEvent(new CustomEvent("dara-language-change",{detail:{lang:g}})))},[o]);t.useEffect(()=>{const g=C(),x=o.find(R=>R.value===g);x&&(document.documentElement.lang=g,document.documentElement.dir=x.dir||"ltr")},[o]),t.useEffect(()=>{const g=x=>{const{lang:R}=x.detail;R&&R!==m&&$(R)};return window.addEventListener("dara-language-change",g),()=>{window.removeEventListener("dara-language-change",g)}},[m]);const a=((c=o.find(g=>g.value===m))==null?void 0:c.dir)||"ltr",M=t.useMemo(()=>({language:m,setLanguage:v,t:N,languages:o,dir:a}),[m,v,N,o,a]);return e.jsx(Re.Provider,{value:M,children:u})},xe=()=>{const r=t.useContext(Re);if(!r)throw new Error("useI18n must be used within an I18nProvider");return r},_e=r=>`https://flagcdn.com/${{en:"gb",fa:"ir",fr:"fr",de:"de",es:"es",ar:"sa",it:"it",pt:"pt",ru:"ru",ja:"jp",ko:"kr",zh:"cn",nl:"nl",pl:"pl",tr:"tr",vi:"vn",th:"th",id:"id",ms:"my",hi:"in",ur:"pk",he:"il",el:"gr",cs:"cz",hu:"hu",sv:"se",no:"no",da:"dk",fi:"fi",ro:"ro",bg:"bg",hr:"hr",sk:"sk",sl:"si",lt:"lt",lv:"lv",et:"ee",uk:"ua",be:"by",ka:"ge",hy:"am",az:"az"}[r]||r}.svg`,At=({code:r,className:l=""})=>{const[s,u]=t.useState(!1),n=_e(r);return s?e.jsx("span",{className:`text-xs font-mono text-[var(--color-text-tertiary)] ${l}`,children:r.toUpperCase()}):e.jsx("img",{src:n,alt:`${r} flag`,className:`flex-shrink-0 object-cover rounded-sm ${l}`,style:{width:"20px",height:"15px",minWidth:"20px",minHeight:"15px"},onError:()=>u(!0),loading:"lazy"})},Ue=({value:r,defaultValue:l,onChange:s,availableLanguages:u,size:n="md",iconOnly:o=!1,fixedWidth:C,className:m="",placement:$="bottom",openUpward:N=!1,useContext:v=!0})=>{const[a,M]=t.useState(!1),[c,g]=t.useState(we),x=t.useRef(null),R="dara-ui-language",j=t.useContext(Re),p=v&&j!==void 0,b=r!==void 0,[f,T]=t.useState(()=>{var P;const d=localStorage.getItem(R);return d&&we.find(G=>G.value===d)?d:l||((P=we[0])==null?void 0:P.value)||"en"});let S;b?S=r:p?S=j.language:S=f,t.useEffect(()=>{u&&g(u)},[u]);const I=t.useCallback(d=>{const P=c.find(q=>q.value===d);document.documentElement.lang=d,document.documentElement.dir=(P==null?void 0:P.dir)||"ltr",localStorage.setItem(R,d),window.dispatchEvent(new CustomEvent("dara-language-change",{detail:{lang:d}}))},[c]);t.useEffect(()=>{I(S)},[S,I]),t.useEffect(()=>{const d=P=>{x.current&&!x.current.contains(P.target)&&M(!1)};return a&&document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}},[a]);const E=t.useCallback(d=>{p?j.setLanguage(d):b||T(d),I(d),s==null||s(d),M(!1)},[p,j,b,s,I]),y=t.useMemo(()=>c.map(d=>({...d,icon:d.icon||e.jsx(At,{code:d.value})})),[c]),i={sm:{trigger:"px-3 py-1.5 text-xs",option:"px-3 py-1.5 text-xs",icon:"h-3 w-3",iconOnlySize:"w-8 h-8",chevronSize:"h-3 w-3",iconOnlyWidth:"32px",flagSize:"w-4 h-3"},md:{trigger:"px-4 py-2 text-sm",option:"px-4 py-2 text-sm",icon:"h-4 w-4",iconOnlySize:"w-10 h-10",chevronSize:"h-4 w-4",iconOnlyWidth:"40px",flagSize:"w-5 h-3.5"},lg:{trigger:"px-5 py-2.5 text-base",option:"px-5 py-2.5 text-base",icon:"h-5 w-5",iconOnlySize:"w-12 h-12",chevronSize:"h-5 w-5",iconOnlyWidth:"48px",flagSize:"w-6 h-4.5"}},k=y.find(d=>d.value===S),L=o?i[n].iconOnlyWidth:C||"140px",w=()=>N||$==="top"?"bottom-full mb-1.5":"top-full mt-1.5",h=(d,P)=>{const q=_e(d);return e.jsx("img",{src:q,alt:`${d} flag`,className:`flex-shrink-0 object-cover rounded-sm ${P}`,style:{width:n==="sm"?"16px":n==="lg"?"24px":"20px",height:n==="sm"?"12px":n==="lg"?"18px":"15px",minWidth:n==="sm"?"16px":n==="lg"?"24px":"20px",minHeight:n==="sm"?"12px":n==="lg"?"18px":"15px"},onError:G=>{var H;G.currentTarget.style.display="none";const O=document.createElement("span");O.className="text-xs font-mono text-[var(--color-text-tertiary)]",O.textContent=d.toUpperCase(),(H=G.currentTarget.parentNode)==null||H.appendChild(O)},loading:"lazy"})};return o?e.jsxs("div",{ref:x,className:`relative inline-flex ${m}`,children:[e.jsx("button",{type:"button",onClick:()=>M(!a),className:`
|
|
358
358
|
inline-flex items-center justify-center
|
|
359
359
|
bg-[var(--color-bg-tertiary)]
|
|
360
360
|
text-[var(--color-text-primary)]
|
|
@@ -364,12 +364,12 @@
|
|
|
364
364
|
hover:border-[var(--color-border-secondary)]
|
|
365
365
|
transition-all duration-180
|
|
366
366
|
active:scale-95
|
|
367
|
-
${
|
|
367
|
+
${i[n].trigger}
|
|
368
368
|
flex-shrink-0
|
|
369
|
-
`,style:{width:
|
|
369
|
+
`,style:{width:C||i[n].iconOnlyWidth,minWidth:C||i[n].iconOnlyWidth,height:C||i[n].iconOnlyWidth,minHeight:C||i[n].iconOnlyWidth},"aria-expanded":a,"aria-haspopup":"listbox","aria-label":`Current language: ${(k==null?void 0:k.label)||"Language"}`,children:(k==null?void 0:k.icon)||h(S,"w-4 h-3")}),e.jsx("div",{className:`
|
|
370
370
|
absolute z-50
|
|
371
371
|
left-1/2 -translate-x-1/2
|
|
372
|
-
${
|
|
372
|
+
${w()}
|
|
373
373
|
glass
|
|
374
374
|
rounded-[var(--radius-md)]
|
|
375
375
|
py-1
|
|
@@ -377,12 +377,12 @@
|
|
|
377
377
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
378
378
|
overflow-hidden
|
|
379
379
|
${a?"opacity-100 translate-y-0 pointer-events-auto":N?"opacity-0 translate-y-2 pointer-events-none":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
380
|
-
`,style:{width:
|
|
380
|
+
`,style:{width:L,minWidth:L,position:"absolute",top:N?"auto":"100%",bottom:N?"100%":"auto",marginTop:N?"0":"6px",marginBottom:N?"6px":"0"},role:"listbox",children:y.map(d=>{const P=d.value===S;return e.jsx("button",{type:"button",onClick:()=>E(d.value),className:`
|
|
381
381
|
w-full flex items-center justify-center gap-2
|
|
382
|
-
${
|
|
383
|
-
${
|
|
382
|
+
${i[n].option}
|
|
383
|
+
${P?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
384
384
|
transition-colors duration-150
|
|
385
|
-
`,role:"option","aria-selected":
|
|
385
|
+
`,role:"option","aria-selected":P,title:d.label,children:typeof d.icon=="string"?e.jsx("img",{src:d.icon,alt:`${d.value} flag`,className:"flex-shrink-0 object-cover rounded-sm w-4 h-3",onError:q=>{q.currentTarget.style.display="none"},loading:"lazy"}):d.icon||h(d.value,"w-4 h-3")},d.value)})})]}):e.jsxs("div",{ref:x,className:`relative ${m}`,children:[e.jsxs("button",{type:"button",onClick:()=>M(!a),className:`
|
|
386
386
|
inline-flex items-center
|
|
387
387
|
bg-[var(--color-bg-tertiary)]
|
|
388
388
|
text-[var(--color-text-primary)]
|
|
@@ -392,18 +392,18 @@
|
|
|
392
392
|
hover:border-[var(--color-border-secondary)]
|
|
393
393
|
transition-all duration-180
|
|
394
394
|
active:scale-95
|
|
395
|
-
${
|
|
396
|
-
`,style:{width:
|
|
395
|
+
${i[n].trigger}
|
|
396
|
+
`,style:{width:C||"auto",minWidth:C||"auto"},"aria-expanded":a,"aria-haspopup":"listbox",children:[e.jsxs("span",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(k==null?void 0:k.icon)||h(S,"w-4 h-3"),e.jsx("span",{className:"font-mono tracking-wide truncate",children:(k==null?void 0:k.label)||"Language"})]}),e.jsx("svg",{className:`
|
|
397
397
|
flex-shrink-0 ml-2
|
|
398
398
|
transition-transform duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
399
399
|
${a?"rotate-180":"rotate-0"}
|
|
400
|
-
${
|
|
400
|
+
${i[n].chevronSize}
|
|
401
401
|
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}),e.jsx("div",{className:`
|
|
402
402
|
absolute z-50
|
|
403
403
|
left-1/2 -translate-x-1/2
|
|
404
|
-
${
|
|
404
|
+
${w()}
|
|
405
405
|
pointer-events-none
|
|
406
|
-
`,style:{width:
|
|
406
|
+
`,style:{width:L,minWidth:L,top:"100%",marginTop:"6px"},children:e.jsx("div",{className:`
|
|
407
407
|
glass
|
|
408
408
|
rounded-[var(--radius-md)]
|
|
409
409
|
py-1
|
|
@@ -411,38 +411,38 @@
|
|
|
411
411
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
412
412
|
overflow-hidden
|
|
413
413
|
${a?"opacity-100 translate-y-0 pointer-events-auto":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
414
|
-
`,children:
|
|
414
|
+
`,children:y.map(d=>{const P=d.value===S;return e.jsxs("button",{type:"button",onClick:()=>E(d.value),className:`
|
|
415
415
|
w-full flex items-center gap-2 text-left
|
|
416
|
-
${
|
|
417
|
-
${
|
|
416
|
+
${i[n].option}
|
|
417
|
+
${P?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
418
418
|
transition-colors duration-150
|
|
419
|
-
`,role:"option","aria-selected":
|
|
419
|
+
`,role:"option","aria-selected":P,children:[typeof d.icon=="string"?e.jsx("img",{src:d.icon,alt:`${d.value} flag`,className:"flex-shrink-0 object-cover rounded-sm w-4 h-3",onError:q=>{q.currentTarget.style.display="none"},loading:"lazy"}):d.icon||h(d.value,"w-4 h-3"),e.jsx("span",{className:"truncate",children:d.label}),P&&e.jsx("svg",{className:"ml-auto h-4 w-4 flex-shrink-0 text-[var(--color-primary)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})]},d.value)})})})]})};Ue.displayName="LanguageChanger";const Qe=({brand:r,links:l=[],showSecondaryNav:s=!1,secondaryLinks:u=[],showSearch:n=!0,searchPlaceholder:o="Search...",onSearch:C,showLanguageChanger:m=!1,showThemeChanger:$=!1,languageChanger:N,themeChanger:v,languageChangerMobile:a,themeChangerMobile:M,rightContent:c,className:g="",scrollSpy:x=!1,scrollSpyOffset:R=140,onActiveChange:j})=>{const{t:p}=xe(),[b,f]=t.useState(!1),[T,S]=t.useState(!1),[I,E]=t.useState(!1),[y,i]=t.useState(""),[k,L]=t.useState(!1),[w,h]=t.useState(!1),[d,P]=t.useState(""),q=t.useRef(null),G=t.useRef(null),O=t.useRef(null),H=t.useRef(null),z=typeof document<"u"&&document.documentElement.dir==="rtl";t.useEffect(()=>{const A=()=>h(window.innerWidth<768);return A(),window.addEventListener("resize",A),()=>window.removeEventListener("resize",A)},[]),t.useEffect(()=>{const A=()=>{H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{f(window.scrollY>20)},50)};return window.addEventListener("scroll",A,{passive:!0}),()=>{window.removeEventListener("scroll",A),H.current&&clearTimeout(H.current)}},[]),t.useEffect(()=>{if(!x||typeof window>"u")return;const A=l.map(se=>se.href.replace(/^#/,"")).filter(Boolean);if(A.length===0)return;const re=A.map(se=>document.getElementById(se)).filter(se=>se!==null);if(re.length===0)return;const J=new Map,te=new IntersectionObserver(se=>{se.forEach(le=>{const me=le.target.id;J.set(me,le.intersectionRatio)});let ce=null;if(re.forEach(le=>{const me=le.getBoundingClientRect(),ve=J.get(le.id)??0;if(me.bottom<R||me.top>window.innerHeight)return;const ue=Math.abs(me.top-R),pe=ve*1e3-ue;(!ce||pe>ce.score)&&(ce={id:le.id,score:pe})}),ce&&ce.id!==d){const le=ce.id;P(le),j==null||j(le)}},{rootMargin:`-${R}px 0px -50% 0px`,threshold:[0,.1,.25,.5,.75,1]});return re.forEach(se=>te.observe(se)),()=>te.disconnect()},[x,R,l,d,j]),t.useEffect(()=>{const A=re=>{re.key==="Escape"&&T&&S(!1)};return document.addEventListener("keydown",A),()=>document.removeEventListener("keydown",A)},[T]),t.useEffect(()=>(T?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[T]),t.useEffect(()=>{I&&G.current&&G.current.focus()},[I]);const X=t.useCallback(A=>{A.preventDefault(),y.trim()&&C&&C(y)},[y,C]),Q=t.useCallback(()=>{S(A=>!A)},[]),F=t.useCallback(()=>{E(A=>!A),I||setTimeout(()=>{var A;return(A=G.current)==null?void 0:A.focus()},100)},[I]),W=t.useCallback(()=>{w&&!y&&E(!1)},[w,y]),B=t.useCallback(()=>{S(!1)},[]),_=t.useCallback(()=>{L(!0)},[]),Z=t.useCallback(()=>{L(!1)},[]),ee=t.useCallback(A=>{if(!x)return!!A.active;const re=A.href.replace(/^#/,"");return re!==""&&re===d},[x,d]),K=e.jsx("span",{className:"font-heading font-bold text-lg tracking-tight",style:{background:"var(--gradient-primary)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"DARA UI"}),oe=t.useCallback(()=>r?typeof r=="string"?e.jsx("span",{className:"font-heading font-bold text-lg tracking-tight text-[var(--color-text-primary)]",children:r}):r:K,[r]);return e.jsxs(e.Fragment,{children:[e.jsx("nav",{ref:q,className:`
|
|
420
420
|
fixed top-0 left-0 right-0 z-50
|
|
421
421
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
422
|
-
${
|
|
423
|
-
${
|
|
424
|
-
`,style:{paddingTop:
|
|
422
|
+
${b?"px-3 md:px-4":""}
|
|
423
|
+
${g}
|
|
424
|
+
`,style:{paddingTop:b?"12px":"0",paddingBottom:b?"12px":"0"},children:e.jsxs("div",{className:`
|
|
425
425
|
mx-auto
|
|
426
426
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
427
|
-
${
|
|
428
|
-
`,children:[e.jsxs("div",{className:"grid grid-cols-[auto_1fr_auto] items-center md:gap-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("a",{href:"/",className:"block",onClick:
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
427
|
+
${b?"navbar-glass rounded-full shadow-[var(--shadow-float)] py-2 px-5 md:px-8":"bg-[var(--color-bg-secondary)]/80 backdrop-blur-[20px] border-b border-[var(--color-border-primary)] py-3 px-5 md:px-8 rounded-none"}
|
|
428
|
+
`,children:[e.jsxs("div",{className:"grid grid-cols-[auto_1fr_auto] items-center md:gap-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("a",{href:"/",className:"block",onClick:B,children:oe()})}),e.jsx("div",{className:"hidden md:flex items-center justify-center gap-1",children:l.map((A,re)=>{const J=ee(A);return e.jsxs("a",{href:A.href,className:`
|
|
429
|
+
px-4 py-1.5 rounded-full text-sm font-medium
|
|
430
|
+
transition-all duration-180
|
|
431
|
+
flex items-center gap-2
|
|
432
|
+
${J?"bg-[var(--color-primary-solid)] !text-white shadow-[var(--shadow-glow-primary)] hover:bg-[var(--color-primary-hover)]":"!text-[var(--color-text-secondary)] hover:!text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/30"}
|
|
433
|
+
`,onClick:B,children:[A.icon&&e.jsx("span",{className:"flex-shrink-0",children:A.icon}),A.label]},re)})}),e.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[n&&!w&&e.jsx("form",{onSubmit:X,className:"relative",children:e.jsx(fe,{ref:G,type:"search",placeholder:o,value:y,onChange:A=>i(A.target.value),size:"sm",className:"w-44 lg:w-56",leftIcon:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})})}),n&&w&&e.jsxs("div",{className:`
|
|
434
434
|
flex items-center transition-all duration-300 ease-[var(--ease-in-out)]
|
|
435
|
-
${
|
|
436
|
-
`,children:[
|
|
435
|
+
${I?"w-40":"w-8"}
|
|
436
|
+
`,children:[I&&e.jsx("form",{onSubmit:X,className:"w-full mr-1",children:e.jsx(fe,{ref:G,type:"search",placeholder:o,value:y,onChange:A=>i(A.target.value),onBlur:W,size:"sm",className:"w-full"})}),e.jsx("button",{onClick:F,className:"flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/30 transition-all duration-180","aria-label":I?"Close search":"Open search",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:I?e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}):e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})})]}),!w&&m&&N,!w&&$&&v,c,e.jsxs("button",{onClick:Q,className:"md:hidden relative w-10 h-10 rounded-full bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)] transition-all duration-180 flex items-center justify-center flex-shrink-0","aria-label":"Toggle menu","aria-expanded":T,children:[e.jsx("span",{className:`absolute block w-5 h-0.5 rounded-full bg-[var(--color-text-primary)] transition-all duration-300 ease-[var(--ease-in-out)] ${T?"rotate-45":"-translate-y-1.5"}`}),e.jsx("span",{className:`absolute block w-5 h-0.5 rounded-full bg-[var(--color-text-primary)] transition-all duration-300 ease-[var(--ease-in-out)] ${T?"opacity-0 scale-0":"opacity-100"}`}),e.jsx("span",{className:`absolute block w-5 h-0.5 rounded-full bg-[var(--color-text-primary)] transition-all duration-300 ease-[var(--ease-in-out)] ${T?"-rotate-45":"translate-y-1.5"}`})]})]})]}),s&&!w&&e.jsx("div",{className:`overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)] ${k?"max-h-20 opacity-100 mt-2":"max-h-0 opacity-0"}`,onMouseEnter:_,onMouseLeave:Z,children:e.jsx("div",{className:"flex items-center justify-center gap-1 pt-2 border-t border-[var(--color-border-primary)]",children:u.map((A,re)=>e.jsxs("a",{href:A.href,className:`
|
|
437
437
|
px-3 py-1 rounded-full text-xs font-medium transition-all duration-180 flex items-center gap-1.5
|
|
438
|
-
${
|
|
439
|
-
`,onClick:
|
|
438
|
+
${A.active?"bg-[var(--color-primary-solid)] !text-white shadow-[var(--shadow-glow-primary)]":"!text-[var(--color-text-tertiary)] hover:!text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/30"}
|
|
439
|
+
`,onClick:B,children:[A.icon&&e.jsx("span",{className:"flex-shrink-0",children:A.icon}),A.label]},re))})})]})}),e.jsx("div",{className:`
|
|
440
440
|
fixed inset-0 z-[55]
|
|
441
441
|
bg-black/60 backdrop-blur-[6px]
|
|
442
442
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
443
443
|
md:hidden
|
|
444
|
-
${
|
|
445
|
-
`,onClick:
|
|
444
|
+
${T?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
445
|
+
`,onClick:Q,"aria-hidden":"true"}),e.jsxs("div",{ref:O,className:`
|
|
446
446
|
fixed top-0 z-[60]
|
|
447
447
|
${z?"left-0 rounded-r-[var(--radius-large)]":"right-0 rounded-l-[var(--radius-large)]"}
|
|
448
448
|
w-80 max-w-[85vw] h-full
|
|
@@ -453,61 +453,61 @@
|
|
|
453
453
|
transition-all duration-400 ease-[var(--ease-in-out)]
|
|
454
454
|
md:hidden
|
|
455
455
|
flex flex-col
|
|
456
|
-
${
|
|
457
|
-
`,style:{transform:
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
456
|
+
${T?"translate-x-0 opacity-100":z?"-translate-x-full opacity-0":"translate-x-full opacity-0"}
|
|
457
|
+
`,style:{transform:T?"translateX(0)":z?"translateX(-100%)":"translateX(100%)",transition:"transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease"},role:"dialog","aria-modal":"true","aria-label":"Navigation menu",children:[e.jsxs("div",{className:"flex items-center justify-between p-5 border-b border-[var(--color-border-primary)]",children:[e.jsx("a",{href:"/",className:"block",onClick:B,children:oe()}),e.jsx("button",{onClick:Q,className:"w-9 h-9 rounded-full flex items-center justify-center text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/40 transition-all duration-180","aria-label":"Close menu",children:e.jsx("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-1",children:[l.map((A,re)=>{const J=ee(A);return e.jsxs("a",{href:A.href,className:`
|
|
458
|
+
flex items-center gap-3 px-4 py-3.5 rounded-[var(--radius-md)]
|
|
459
|
+
transition-all duration-180
|
|
460
|
+
${J?"bg-[var(--color-primary-solid)] !text-white shadow-[var(--shadow-glow-primary)]":"!text-[var(--color-text-secondary)] hover:!text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/30"}
|
|
461
|
+
`,onClick:B,children:[A.icon&&e.jsx("span",{className:"flex-shrink-0",children:A.icon}),e.jsx("span",{className:"font-medium",children:A.label})]},re)}),s&&u.length>0&&e.jsxs("div",{className:"mt-6 pt-4 border-t border-[var(--color-border-primary)] space-y-1",children:[e.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono px-4 mb-2",dir:"auto",children:p("navbar.more")}),u.map((A,re)=>e.jsxs("a",{href:A.href,className:`
|
|
462
462
|
flex items-center gap-3 px-4 py-3 rounded-[var(--radius-md)]
|
|
463
463
|
transition-all duration-180
|
|
464
|
-
${
|
|
465
|
-
`,onClick:
|
|
464
|
+
${A.active?"bg-[var(--color-primary-solid)] !text-white":"!text-[var(--color-text-secondary)] hover:!text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/30"}
|
|
465
|
+
`,onClick:B,children:[A.icon&&e.jsx("span",{className:"flex-shrink-0",children:A.icon}),e.jsx("span",{className:"font-medium",children:A.label})]},re))]})]}),e.jsxs("div",{className:"p-5 border-t border-[var(--color-border-primary)] space-y-4",children:[n&&e.jsx("form",{onSubmit:X,children:e.jsx(fe,{type:"search",placeholder:o,value:y,onChange:A=>i(A.target.value),size:"sm",className:"w-full",leftIcon:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})})}),e.jsxs("div",{className:"flex items-center gap-3",children:[m&&(a||N),$&&(M||v)]}),c&&e.jsx("div",{className:"pt-1",children:c})]})]})]})};Qe.displayName="Navbar";const Je=({brand:r,groups:l=[],collapsible:s=!0,defaultCollapsed:u=!1,collapsed:n,onCollapseChange:o,iconOnly:C=!1,showGroupLabels:m=!0,activeItemId:$,defaultActiveItemId:N,onItemClick:v,expandedWidth:a="260px",collapsedWidth:M="64px",className:c="",footer:g,fixed:x=!1,height:R="100%",mobileBreakpoint:j=768,forceMobile:p=!1})=>{var ae,ne;const[b,f]=t.useState(!1);t.useEffect(()=>{if(p){f(!0);return}const D=()=>f(window.innerWidth<j);return D(),window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[j,p]);const T=n!==void 0,[S,I]=t.useState(u),E=T?n:S,y=C||E,i=$!==void 0,[k,L]=t.useState(N||((ne=(ae=l[0])==null?void 0:ae.items[0])==null?void 0:ne.id)),w=i?$:k,[h,d]=t.useState(!1);t.useEffect(()=>{const D=()=>d(document.documentElement.dir==="rtl");D();const V=new MutationObserver(D);return V.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>V.disconnect()},[]);const{activeItem:P,activeParent:q}=t.useMemo(()=>{for(const D of l)for(const V of D.items){if(V.id===w)return{activeItem:V,activeParent:null};if(V.subItems){for(const Y of V.subItems)if(Y.id===w)return{activeItem:Y,activeParent:V}}}return{activeItem:null,activeParent:null}},[l,w]),[G,O]=t.useState(()=>{const D=new Set;return l.forEach((V,Y)=>{V.defaultExpanded!==!1&&D.add(`group-${Y}`)}),D}),[H,z]=t.useState(new Set),X=t.useRef(null),[Q,F]=t.useState(!1),[W,B]=t.useState(!1),_=(P==null?void 0:P.content)??(q==null?void 0:q.content)??null,[Z,ee]=t.useState(_),[K,oe]=t.useState(!0),A=t.useCallback(()=>{const D=X.current;if(!D)return;const{scrollLeft:V,scrollWidth:Y,clientWidth:ie}=D;if(Y-ie<=1){F(!1),B(!1);return}h?(F(V<-1),B(V>-(Y-ie)+1)):(F(V>1),B(V<Y-ie-1))},[h]),re=t.useCallback(D=>{const V=X.current;if(!V)return;const Y=Math.max(V.clientWidth*.7,200),ie=D==="start"?h?Y:-Y:h?-Y:Y;V.scrollBy({left:ie,behavior:"smooth"})},[h]),J=t.useCallback((D,V)=>{i||L(D),v==null||v(D),V==null||V()},[i,v]),te=t.useCallback(()=>{if(!s)return;const D=!E;T||I(D),o==null||o(D)},[s,E,T,o]),se=t.useCallback(D=>{O(V=>{const Y=new Set(V);return Y.has(D)?Y.delete(D):Y.add(D),Y})},[]),ce=t.useCallback(D=>{z(V=>{const Y=new Set(V);return Y.has(D)?Y.delete(D):Y.add(D),Y})},[]);t.useEffect(()=>{if(!b)return;const D=X.current;if(!D)return;A(),D.addEventListener("scroll",A,{passive:!0}),window.addEventListener("resize",A);let V;return typeof ResizeObserver<"u"&&(V=new ResizeObserver(()=>A()),V.observe(D)),()=>{D.removeEventListener("scroll",A),window.removeEventListener("resize",A),V==null||V.disconnect()}},[b,A,l]),t.useEffect(()=>{var V;if(!b)return;const D=(V=X.current)==null?void 0:V.querySelector(`[data-sidebar-id="${w}"]`);D==null||D.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[w,b]),t.useEffect(()=>{if(_===Z)return;oe(!1);const D=setTimeout(()=>{ee(_),requestAnimationFrame(()=>oe(!0))},160);return()=>clearTimeout(D)},[_,Z]),t.useEffect(()=>{if(b)return;const D=V=>{(V.ctrlKey||V.metaKey)&&V.key==="b"&&(V.preventDefault(),te())};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[b,te]);const le=(D,V=0,Y)=>{const ie=w===D.id,de=!!(D.subItems&&D.subItems.length>0),ye=`${Y||D.id}-sub`,Ce=H.has(ye),gt=y?0:V*16;return y?e.jsx("div",{className:"relative",children:e.jsxs("button",{onClick:()=>J(D.id,D.onClick),disabled:D.disabled,className:`
|
|
466
466
|
w-full flex items-center justify-center
|
|
467
467
|
px-2 py-3 rounded-[var(--radius-md)]
|
|
468
468
|
transition-all duration-180 relative
|
|
469
|
-
${
|
|
470
|
-
${
|
|
469
|
+
${D.disabled?"opacity-40 cursor-not-allowed":"hover:bg-[var(--color-bg-elevated)]/40 cursor-pointer"}
|
|
470
|
+
${ie?"text-[var(--color-primary)] bg-[var(--color-primary-light)]":"text-[var(--color-text-secondary)]"}
|
|
471
471
|
group
|
|
472
|
-
`,title:
|
|
473
|
-
absolute -top-0.5 ${
|
|
472
|
+
`,title:D.label,"aria-current":ie?"page":void 0,"aria-disabled":D.disabled,children:[D.icon&&e.jsx("span",{className:"flex-shrink-0 text-current w-5 h-5 flex items-center justify-center",children:D.icon}),D.badge&&e.jsx("span",{className:`
|
|
473
|
+
absolute -top-0.5 ${h?"-left-0.5":"-right-0.5"}
|
|
474
474
|
flex items-center justify-center
|
|
475
475
|
min-w-[18px] h-[18px] px-1
|
|
476
476
|
text-[9px] font-bold rounded-full
|
|
477
477
|
bg-[var(--color-danger)] text-white
|
|
478
|
-
`,children:
|
|
479
|
-
absolute ${
|
|
478
|
+
`,children:D.badge}),ie&&e.jsx("span",{className:`
|
|
479
|
+
absolute ${h?"right-0":"left-0"}
|
|
480
480
|
top-1/2 -translate-y-1/2
|
|
481
481
|
w-0.5 h-6 rounded-full
|
|
482
482
|
bg-[var(--color-primary)] shadow-[var(--shadow-glow-primary)]
|
|
483
|
-
`})]})},
|
|
483
|
+
`})]})},D.id):e.jsxs("div",{className:"relative",children:[e.jsxs("button",{onClick:()=>{de?ce(ye):J(D.id,D.onClick)},disabled:D.disabled,className:`
|
|
484
484
|
w-full flex items-center gap-3
|
|
485
|
-
${
|
|
485
|
+
${h?"flex-row-reverse":""}
|
|
486
486
|
px-3 py-2.5 rounded-[var(--radius-md)]
|
|
487
487
|
transition-all duration-180
|
|
488
488
|
text-sm font-medium relative
|
|
489
|
-
${
|
|
490
|
-
${
|
|
489
|
+
${D.disabled?"opacity-40 cursor-not-allowed":"hover:bg-[var(--color-bg-elevated)]/40 cursor-pointer"}
|
|
490
|
+
${ie?"text-[var(--color-primary)] bg-[var(--color-primary-light)]":"text-[var(--color-text-secondary)]"}
|
|
491
491
|
group
|
|
492
|
-
`,style:{paddingInlineStart:`${16+
|
|
492
|
+
`,style:{paddingInlineStart:`${16+gt}px`,paddingInlineEnd:"12px"},"aria-current":ie?"page":void 0,"aria-disabled":D.disabled,"aria-expanded":de?Ce:void 0,children:[D.icon&&e.jsx("span",{className:"flex-shrink-0 text-current w-5 h-5 flex items-center justify-center",children:D.icon}),e.jsx("span",{className:`flex-1 truncate ${h?"text-right":"text-left"}`,children:D.label}),D.badge&&e.jsx("span",{className:`
|
|
493
493
|
flex-shrink-0 text-[10px] font-bold px-2 py-0.5 rounded-full
|
|
494
|
-
${
|
|
495
|
-
`,children:
|
|
494
|
+
${ie?"bg-[var(--color-primary-solid)] text-white":"bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]"}
|
|
495
|
+
`,children:D.badge}),de&&e.jsx("span",{className:`
|
|
496
496
|
flex-shrink-0 transition-transform duration-250
|
|
497
497
|
text-[var(--color-text-tertiary)]
|
|
498
|
-
${
|
|
499
|
-
`,children:e.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}),
|
|
500
|
-
absolute ${
|
|
498
|
+
${Ce?"rotate-90":h?"rotate-180":"rotate-0"}
|
|
499
|
+
`,children:e.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}),ie&&e.jsx("span",{className:`
|
|
500
|
+
absolute ${h?"right-0":"left-0"}
|
|
501
501
|
top-1/2 -translate-y-1/2
|
|
502
502
|
w-0.5 h-6 rounded-full
|
|
503
503
|
bg-[var(--color-primary)] shadow-[var(--shadow-glow-primary)]
|
|
504
|
-
`})]}),
|
|
504
|
+
`})]}),de&&!y&&e.jsx("div",{className:`
|
|
505
505
|
overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)]
|
|
506
|
-
${
|
|
506
|
+
${Ce?"max-h-[9999px] opacity-100":"max-h-0 opacity-0"}
|
|
507
507
|
`,children:e.jsx("div",{className:`
|
|
508
508
|
relative space-y-0.5 py-1
|
|
509
|
-
${
|
|
510
|
-
`,children:
|
|
509
|
+
${h?"mr-4 pr-4 border-r border-[var(--color-border-secondary)]":"ml-4 pl-4 border-l border-[var(--color-border-secondary)]"}
|
|
510
|
+
`,children:D.subItems.map(vt=>le(vt,V+1,D.id))})})]},D.id)},me=(D,V)=>{const Y=`group-${V}`,ie=G.has(Y);return y?e.jsx("div",{className:"space-y-1",children:D.items.map(de=>le(de))},Y):e.jsxs("div",{className:"mb-2",children:[m&&e.jsxs("button",{onClick:()=>se(Y),className:`
|
|
511
511
|
w-full flex items-center gap-2 px-3 py-2
|
|
512
512
|
text-xs font-mono uppercase tracking-wider
|
|
513
513
|
text-[var(--color-text-tertiary)]
|
|
@@ -515,11 +515,11 @@
|
|
|
515
515
|
transition-colors duration-180
|
|
516
516
|
rounded-[var(--radius-sm)]
|
|
517
517
|
hover:bg-[var(--color-bg-elevated)]/20
|
|
518
|
-
${
|
|
519
|
-
`,children:[
|
|
518
|
+
${h?"flex-row-reverse":""}
|
|
519
|
+
`,children:[D.icon&&e.jsx("span",{className:"flex-shrink-0 w-4 h-4",children:D.icon}),e.jsx("span",{className:`flex-1 ${h?"text-right":"text-left"}`,children:D.label}),e.jsx("span",{className:`transition-transform duration-250 ${ie?"rotate-180":"rotate-0"}`,children:e.jsx("svg",{className:"h-3 w-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})})]}),e.jsx("div",{className:`
|
|
520
520
|
overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)]
|
|
521
|
-
${
|
|
522
|
-
`,children:e.jsx("div",{className:"space-y-1 py-1",children:
|
|
521
|
+
${ie?"max-h-[9999px] opacity-100":"max-h-0 opacity-0"}
|
|
522
|
+
`,children:e.jsx("div",{className:"space-y-1 py-1",children:D.items.map(de=>le(de))})})]},Y)};if(b)return e.jsxs("div",{className:`flex flex-col w-full h-full min-h-0 ${c}`,children:[e.jsxs("div",{className:"relative flex items-stretch gap-2 px-4 pt-4 flex-shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>re("start"),disabled:!Q,"aria-label":"Scroll left",hidden:!Q,tabIndex:Q?0:-1,className:`\r
|
|
523
523
|
flex-shrink-0 w-8 self-stretch\r
|
|
524
524
|
flex items-center justify-center\r
|
|
525
525
|
rounded-[var(--radius-md)]\r
|
|
@@ -537,24 +537,24 @@
|
|
|
537
537
|
flex items-center gap-1\r
|
|
538
538
|
overflow-x-auto scroll-smooth\r
|
|
539
539
|
pb-1 sidebar-horizontal-scroll\r
|
|
540
|
-
`,style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:[r&&e.jsx("div",{className:"flex-shrink-0 me-3 flex items-center",children:r}),
|
|
540
|
+
`,style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:[r&&e.jsx("div",{className:"flex-shrink-0 me-3 flex items-center",children:r}),l.map((D,V)=>e.jsxs(t.Fragment,{children:[m&&e.jsx("span",{className:`\r
|
|
541
541
|
flex-shrink-0 px-3 py-1\r
|
|
542
542
|
text-[10px] font-mono uppercase tracking-wider\r
|
|
543
543
|
text-[var(--color-text-tertiary)]\r
|
|
544
544
|
border-e border-[var(--color-border-secondary)]\r
|
|
545
545
|
me-1\r
|
|
546
|
-
`,dir:"auto",children:
|
|
546
|
+
`,dir:"auto",children:D.label}),D.items.map(Y=>{const ie=!!(Y.subItems&&Y.subItems.length>0),de=w===Y.id||ie&&Y.subItems.some(ye=>ye.id===w);return e.jsxs("button",{type:"button","data-sidebar-id":Y.id,onClick:()=>J(Y.id,Y.onClick),disabled:Y.disabled,className:`
|
|
547
547
|
flex-shrink-0
|
|
548
548
|
flex items-center gap-2
|
|
549
549
|
px-4 py-2 rounded-full
|
|
550
550
|
text-sm font-medium whitespace-nowrap
|
|
551
551
|
transition-all duration-180
|
|
552
552
|
${Y.disabled?"opacity-40 cursor-not-allowed":"cursor-pointer"}
|
|
553
|
-
${
|
|
554
|
-
`,style:
|
|
553
|
+
${de?"bg-[var(--color-primary-solid)] text-white":"text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/40"}
|
|
554
|
+
`,style:de?{boxShadow:"none"}:void 0,"aria-current":de?"page":void 0,"aria-disabled":Y.disabled,children:[Y.icon&&e.jsx("span",{className:"flex-shrink-0 w-4 h-4 flex items-center justify-center",children:Y.icon}),e.jsx("span",{children:Y.label}),Y.badge!==void 0&&e.jsx("span",{className:`
|
|
555
555
|
flex-shrink-0 text-[10px] font-bold px-1.5 py-0.5 rounded-full
|
|
556
|
-
${
|
|
557
|
-
`,children:Y.badge})]},Y.id)})]},`group-${
|
|
556
|
+
${de?"bg-white/25 text-white":"bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]"}
|
|
557
|
+
`,children:Y.badge})]},Y.id)})]},`group-${V}`))]}),e.jsx("button",{type:"button",onClick:()=>re("end"),disabled:!W,"aria-label":"Scroll right",hidden:!W,tabIndex:W?0:-1,className:`\r
|
|
558
558
|
flex-shrink-0 w-8 self-stretch\r
|
|
559
559
|
flex items-center justify-center\r
|
|
560
560
|
rounded-[var(--radius-md)]\r
|
|
@@ -567,17 +567,17 @@
|
|
|
567
567
|
outline-none focus:outline-none focus-visible:outline-none\r
|
|
568
568
|
shadow-none hover:shadow-none focus:shadow-none\r
|
|
569
569
|
disabled:opacity-0 disabled:pointer-events-none\r
|
|
570
|
-
`,style:{boxShadow:"none",filter:"none"},children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})})]}),
|
|
570
|
+
`,style:{boxShadow:"none",filter:"none"},children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})})]}),q&&q.subItems&&e.jsxs("div",{className:"flex flex-wrap items-center gap-1 mt-2 px-4 flex-shrink-0",children:[e.jsxs("span",{className:"text-[10px] font-mono uppercase tracking-wider text-[var(--color-text-tertiary)] me-1",children:[q.label,":"]}),q.subItems.map(D=>{const V=w===D.id;return e.jsxs("button",{type:"button",onClick:()=>J(D.id,D.onClick),disabled:D.disabled,className:`
|
|
571
571
|
flex items-center gap-1.5
|
|
572
572
|
px-3 py-1 rounded-full
|
|
573
573
|
text-xs font-medium whitespace-nowrap
|
|
574
574
|
transition-all duration-180
|
|
575
|
-
${
|
|
576
|
-
${
|
|
577
|
-
`,"aria-current":
|
|
575
|
+
${D.disabled?"opacity-40 cursor-not-allowed":"cursor-pointer"}
|
|
576
|
+
${V?"bg-[var(--color-primary-light)] text-[var(--color-primary)] border border-[var(--color-primary)]/40":"text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/40"}
|
|
577
|
+
`,"aria-current":V?"page":void 0,children:[D.icon&&e.jsx("span",{className:"flex-shrink-0 w-3.5 h-3.5 flex items-center justify-center",children:D.icon}),e.jsx("span",{children:D.label}),D.badge!==void 0&&e.jsx("span",{className:`
|
|
578
578
|
flex-shrink-0 text-[9px] font-bold px-1.5 py-0.5 rounded-full
|
|
579
|
-
${
|
|
580
|
-
`,children:
|
|
579
|
+
${V?"bg-[var(--color-primary)]/20 text-[var(--color-primary)]":"bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]"}
|
|
580
|
+
`,children:D.badge})]},D.id)})]}),Z!=null&&e.jsx("div",{className:"flex-1 min-h-0 mt-4 px-4 pb-4 overflow-y-auto sidebar-content-scroll",style:{opacity:K?1:0,transform:K?"translateY(0)":"translateY(6px)",transition:"opacity 160ms cubic-bezier(0.4, 0, 0.2, 1), transform 160ms cubic-bezier(0.4, 0, 0.2, 1)"},children:Z}),e.jsx("style",{children:`
|
|
581
581
|
.sidebar-horizontal-scroll::-webkit-scrollbar { display: none; }
|
|
582
582
|
.sidebar-content-scroll::-webkit-scrollbar { width: 4px; }
|
|
583
583
|
.sidebar-content-scroll::-webkit-scrollbar-track { background: transparent; }
|
|
@@ -585,11 +585,11 @@
|
|
|
585
585
|
background: var(--color-border-primary);
|
|
586
586
|
border-radius: 4px;
|
|
587
587
|
}
|
|
588
|
-
`})]});const
|
|
589
|
-
flex ${
|
|
590
|
-
${
|
|
588
|
+
`})]});const ue=x?"fixed top-0 z-40":`relative overflow-hidden ${x?"":h?"rounded-l-[var(--radius-large)]":"rounded-r-[var(--radius-large)]"}`,pe=h&&!E?{direction:"rtl"}:{direction:"ltr"},be=h?"ltr":"rtl",U=h?"rtl":"ltr";return e.jsxs("div",{className:`
|
|
589
|
+
flex ${h?"flex-row-reverse":""} transition-all duration-300 ease-[var(--ease-in-out)]
|
|
590
|
+
${x?"min-h-screen":""}
|
|
591
591
|
${c}
|
|
592
|
-
`,style:{height:
|
|
592
|
+
`,style:{height:x?"100%":R,maxHeight:x?"100%":R},children:[e.jsx("style",{children:`
|
|
593
593
|
.sidebar-scroll::-webkit-scrollbar { width: 4px; }
|
|
594
594
|
.sidebar-scroll::-webkit-scrollbar-track { background: transparent; }
|
|
595
595
|
.sidebar-scroll::-webkit-scrollbar-thumb {
|
|
@@ -600,21 +600,21 @@
|
|
|
600
600
|
background: var(--color-text-tertiary);
|
|
601
601
|
}
|
|
602
602
|
`}),e.jsxs("aside",{className:`
|
|
603
|
-
${
|
|
603
|
+
${ue}
|
|
604
604
|
h-full
|
|
605
605
|
bg-[var(--color-bg-secondary)]/95
|
|
606
606
|
backdrop-blur-[20px]
|
|
607
607
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
608
608
|
flex flex-col
|
|
609
|
-
${
|
|
609
|
+
${h?"border-l":"border-r"}
|
|
610
610
|
border-[var(--color-border-primary)]
|
|
611
|
-
${
|
|
612
|
-
`,style:{width:E
|
|
611
|
+
${x?"":"shadow-[var(--shadow-float)]"}
|
|
612
|
+
`,style:{width:E?M:a,[h?"right":"left"]:x?0:"auto",flexShrink:0,height:"100%",maxHeight:"100%"},role:"navigation","aria-label":"Sidebar navigation",children:[r&&e.jsx("div",{className:`
|
|
613
613
|
flex items-center gap-3 px-4 py-4
|
|
614
614
|
border-b border-[var(--color-border-primary)]
|
|
615
615
|
min-h-[64px] flex-shrink-0
|
|
616
616
|
${E?"justify-center px-2":""}
|
|
617
|
-
`,style:
|
|
617
|
+
`,style:pe,dir:h&&!E?"rtl":"ltr",children:r}),e.jsx("nav",{className:"flex-1 overflow-y-auto min-h-0 sidebar-scroll",style:{scrollbarWidth:"thin",scrollbarColor:"var(--color-border-primary) transparent",direction:be},dir:be,children:e.jsx("div",{className:"p-3 space-y-2",style:{direction:U},dir:U,children:l.map((D,V)=>me(D,V))})}),e.jsxs("div",{className:"border-t border-[var(--color-border-primary)] flex-shrink-0",children:[g&&e.jsx("div",{className:`p-3 ${E?"flex justify-center":""}`,children:e.jsx("div",{className:`
|
|
618
618
|
w-full
|
|
619
619
|
${E?`
|
|
620
620
|
flex justify-center
|
|
@@ -624,7 +624,7 @@
|
|
|
624
624
|
[&>a]:!w-10 [&>a]:!h-10 [&>a]:!px-0 [&>a]:!gap-0 [&>a]:justify-center
|
|
625
625
|
[&>a>span:not(:first-child)]:hidden
|
|
626
626
|
`:""}
|
|
627
|
-
`,style:
|
|
627
|
+
`,style:pe,dir:h&&!E?"rtl":"ltr",children:g})}),s&&e.jsx("div",{className:`px-3 pb-3 ${E?"flex justify-center":""}`,children:e.jsxs("button",{onClick:te,className:`
|
|
628
628
|
flex items-center justify-center
|
|
629
629
|
rounded-[var(--radius-md)] glass
|
|
630
630
|
text-[var(--color-text-secondary)]
|
|
@@ -632,21 +632,41 @@
|
|
|
632
632
|
hover:bg-[var(--color-bg-elevated)]/40
|
|
633
633
|
transition-all duration-180 text-sm gap-2
|
|
634
634
|
${E?"w-10 h-10 px-0":"w-full px-3 py-2"}
|
|
635
|
-
${!E&&
|
|
635
|
+
${!E&&h?"flex-row-reverse":""}
|
|
636
636
|
`,"aria-label":E?"Expand sidebar":"Collapse sidebar",title:`${E?"Expand":"Collapse"} (Ctrl+B)`,children:[e.jsx("svg",{className:`
|
|
637
637
|
h-4 w-4 flex-shrink-0 transition-transform duration-300
|
|
638
|
-
${E?
|
|
639
|
-
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})}),!E&&e.jsx("span",{className:"text-xs font-mono text-[var(--color-text-tertiary)]",children:"Ctrl+B"})]})})]})]}),
|
|
638
|
+
${E?h?"rotate-180":"rotate-0":h?"rotate-0":"rotate-180"}
|
|
639
|
+
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})}),!E&&e.jsx("span",{className:"text-xs font-mono text-[var(--color-text-tertiary)]",children:"Ctrl+B"})]})})]})]}),Z!=null&&e.jsx("div",{className:"flex-1 p-6 overflow-y-auto transition-all duration-300 ease-[var(--ease-in-out)]",style:{height:"100%",maxHeight:"100%",minHeight:0,opacity:K?1:0,transform:K?"translateY(0)":"translateY(6px)",transition:"opacity 160ms cubic-bezier(0.4, 0, 0.2, 1), transform 160ms cubic-bezier(0.4, 0, 0.2, 1)"},children:Z})]})};Je.displayName="Sidebar";const Ze=({variant:r="default",brand:l,tagline:s,columns:u=[],social:n,bottomBar:o,className:C=""})=>r==="minimal"?e.jsx("footer",{className:`
|
|
640
|
+
w-full border-t border-[var(--color-border-primary)]
|
|
641
|
+
py-4 px-6
|
|
642
|
+
${C}
|
|
643
|
+
`,children:e.jsxs("div",{className:"max-w-6xl mx-auto flex items-center justify-between gap-4 flex-wrap",children:[l&&e.jsx("div",{className:"flex-shrink-0",children:l}),o&&e.jsx("div",{className:"text-xs text-[var(--color-text-tertiary)] font-mono",children:o})]})}):r==="sticky"?e.jsx("footer",{className:`
|
|
644
|
+
fixed bottom-0 left-0 right-0 z-40
|
|
645
|
+
navbar-glass
|
|
646
|
+
py-3 px-6
|
|
647
|
+
${C}
|
|
648
|
+
`,children:e.jsxs("div",{className:"max-w-6xl mx-auto flex items-center justify-between gap-4 flex-wrap",children:[l&&e.jsx("div",{className:"flex-shrink-0",children:l}),n&&e.jsx("div",{className:"flex items-center gap-3",children:n}),o&&e.jsx("div",{className:"text-xs text-[var(--color-text-tertiary)] font-mono",children:o})]})}):e.jsx("footer",{className:`
|
|
649
|
+
w-full border-t border-[var(--color-border-primary)]
|
|
650
|
+
bg-[var(--color-bg-secondary)]/60
|
|
651
|
+
backdrop-blur-[20px]
|
|
652
|
+
pt-12 pb-6 px-6
|
|
653
|
+
${C}
|
|
654
|
+
`,children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-8 mb-10",children:[e.jsxs("div",{className:"md:col-span-4 flex flex-col gap-3",children:[l&&e.jsx("div",{className:"flex-shrink-0",children:l}),s&&e.jsx("p",{className:"text-sm text-[var(--color-text-secondary)] leading-relaxed max-w-xs",dir:"auto",children:s}),n&&e.jsx("div",{className:"flex items-center gap-3 mt-2",children:n})]}),e.jsx("div",{className:"md:col-span-8 grid grid-cols-2 md:grid-cols-3 gap-6",children:u.map((m,$)=>{var N;return e.jsxs("div",{className:"flex flex-col gap-3",children:[m.title&&e.jsx("h4",{className:"font-heading font-semibold text-xs uppercase tracking-wider text-[var(--color-text-tertiary)]",dir:"auto",children:m.title}),m.content?e.jsx("div",{className:"text-sm text-[var(--color-text-secondary)]",children:m.content}):e.jsx("ul",{className:"flex flex-col gap-2",children:(N=m.links)==null?void 0:N.map((v,a)=>e.jsx("li",{children:e.jsxs("a",{href:v.href,target:v.external?"_blank":void 0,rel:v.external?"noopener noreferrer":void 0,className:`\r
|
|
655
|
+
inline-flex items-center gap-2\r
|
|
656
|
+
text-sm text-[var(--color-text-secondary)]\r
|
|
657
|
+
hover:text-[var(--color-primary)]\r
|
|
658
|
+
transition-colors duration-180\r
|
|
659
|
+
`,dir:"auto",children:[v.icon&&e.jsx("span",{className:"flex-shrink-0",children:v.icon}),v.label]})},a))})]},$)})})]}),o&&e.jsx("div",{className:"pt-6 border-t border-[var(--color-border-secondary)] flex items-center justify-between flex-wrap gap-4",children:e.jsx("div",{className:"text-xs text-[var(--color-text-tertiary)] font-mono",dir:"auto",children:o})})]})});Ze.displayName="Footer";const Pe={github:{icon:e.jsx(Ct,{className:"h-4 w-4"}),color:"#f0f6fc"},twitter:{icon:e.jsx(Lt,{className:"h-4 w-4"}),color:"#1DA1F2"},discord:{icon:e.jsx($t,{className:"h-4 w-4"}),color:"#5865F2"},youtube:{icon:e.jsx(Mt,{className:"h-4 w-4"}),color:"#FF0000"},instagram:{icon:e.jsx(Tt,{className:"h-4 w-4"}),color:"#E4405F"},linkedin:{icon:e.jsx(Rt,{className:"h-4 w-4"}),color:"#0A66C2"},bluesky:{icon:e.jsx(It,{className:"h-4 w-4"}),color:"#1185FE"}},Ke=({links:r,position:l="right",offset:s=5,verticalOffset:u="50%",size:n="md",showLabels:o=!1,className:C=""})=>{const[m,$]=t.useState(!1),[N,v]=t.useState(!1),a=t.useRef(null),M=y=>{const i=y.toLowerCase();return i.includes("github.com")?"github":i.includes("twitter.com")||i.includes("x.com")?"twitter":i.includes("discord.com")||i.includes("discord.gg")?"discord":i.includes("youtube.com")||i.includes("youtu.be")?"youtube":i.includes("instagram.com")?"instagram":i.includes("linkedin.com")?"linkedin":i.includes("bsky.app")||i.includes("bluesky")?"bluesky":"github"},c=y=>{const i=y.toLowerCase();return Pe[i]||Pe.github},g={sm:{button:"w-9 h-9 text-sm",icon:"h-3.5 w-3.5",chevron:"w-8 h-8",gap:"gap-2",buttonPx:36,chevronPx:32},md:{button:"w-11 h-11 text-base",icon:"h-4.5 w-4.5",chevron:"w-10 h-10",gap:"gap-2.5",buttonPx:44,chevronPx:40},lg:{button:"w-13 h-13 text-lg",icon:"h-5.5 w-5.5",chevron:"w-12 h-12",gap:"gap-3",buttonPx:52,chevronPx:48}},x=()=>{m?(v(!0),setTimeout(()=>{$(!1),v(!1)},300)):($(!0),v(!1))};t.useEffect(()=>{const y=i=>{a.current&&!a.current.contains(i.target)&&m&&!N&&x()};return m&&document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y)}},[m,N]);const R=()=>typeof u=="number"?`${u}px`:u,j=l==="left",p=g[n]||g.md,f={left:{container:"left-0",chevron:`left-[${s}px]`,menu:`left-[${s}px]`,transform:"translateX(0)"},right:{container:"right-0",chevron:`right-[${s}px]`,menu:`right-[${s}px]`,transform:"translateX(0)"}}[l],T=p.buttonPx,S=8,I=(y,i)=>{const k=M(y.url),L=c(k);if(y.icon&&t.isValidElement(y.icon)){const h=y.icon;return t.cloneElement(h,{className:`${i} flex-shrink-0`})}const w=L.icon;if(t.isValidElement(w)){const h=w;return t.cloneElement(h,{className:`${i} flex-shrink-0`})}return w},E=y=>y.color?y.color:c(M(y.url)).color;return e.jsx("div",{ref:a,className:`fixed z-40 ${f.container} ${C}`,style:{top:R(),transform:"translateY(-50%)",...j?{left:`${s+5}px`}:{right:`${s}px`}},children:e.jsxs("div",{className:"relative flex items-center",children:[e.jsx("div",{className:`
|
|
640
660
|
absolute top-1/2 -translate-y-1/2
|
|
641
661
|
flex items-center
|
|
642
|
-
${
|
|
662
|
+
${p.gap}
|
|
643
663
|
transition-opacity duration-300 ease-[var(--ease-in-out)]
|
|
644
|
-
${
|
|
664
|
+
${m?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
645
665
|
${N?"opacity-0":""}
|
|
646
|
-
${
|
|
647
|
-
`,style:{paddingRight:
|
|
666
|
+
${j?"left-0":"right-0"}
|
|
667
|
+
`,style:{paddingRight:j?"0":`${T+S}px`,paddingLeft:j?`${T+S}px`:"0"},children:r.map((y,i)=>{const k=y.label||M(y.url).charAt(0).toUpperCase()+M(y.url).slice(1),L=E(y);return e.jsxs("a",{href:y.url,target:"_blank",rel:"noopener noreferrer","aria-label":`${k} (opens in new tab)`,className:`
|
|
648
668
|
flex items-center justify-center
|
|
649
|
-
${
|
|
669
|
+
${p.button}
|
|
650
670
|
rounded-full
|
|
651
671
|
flex-shrink-0
|
|
652
672
|
shadow-lg
|
|
@@ -654,11 +674,11 @@
|
|
|
654
674
|
transition-all duration-200
|
|
655
675
|
hover:scale-110
|
|
656
676
|
hover:-translate-y-0.5
|
|
657
|
-
${
|
|
677
|
+
${o?"px-4":""}
|
|
658
678
|
group
|
|
659
679
|
relative
|
|
660
|
-
`,style:{width:
|
|
661
|
-
${
|
|
680
|
+
`,style:{width:n==="sm"?"36px":n==="lg"?"52px":"44px",height:n==="sm"?"36px":n==="lg"?"52px":"44px",minWidth:n==="sm"?"36px":n==="lg"?"52px":"44px",minHeight:n==="sm"?"36px":n==="lg"?"52px":"44px",background:"var(--glass-bg, rgba(255,255,255,0.05))",backdropFilter:"blur(12px)",WebkitBackdropFilter:"blur(12px)",border:`1px solid ${L}44`,borderRadius:"50%",transition:"border-color 0.25s ease, box-shadow 0.25s ease, scale 0.25s ease"},onMouseEnter:w=>{w.currentTarget.style.borderColor=L,w.currentTarget.style.boxShadow=`0 0 24px ${L}44`},onMouseLeave:w=>{w.currentTarget.style.borderColor=`${L}44`,w.currentTarget.style.boxShadow="none"},children:[e.jsx("span",{className:`${p.icon} flex-shrink-0 flex items-center justify-center`,style:{color:L},children:I(y,p.icon)}),o&&e.jsx("span",{className:"text-xs font-medium truncate max-w-[80px] text-[var(--color-text-primary)]",children:k})]},i)})}),e.jsx("button",{onClick:x,className:`
|
|
681
|
+
${p.chevron}
|
|
662
682
|
rounded-full
|
|
663
683
|
flex items-center justify-center
|
|
664
684
|
transition-all duration-300
|
|
@@ -667,12 +687,12 @@
|
|
|
667
687
|
relative
|
|
668
688
|
z-10
|
|
669
689
|
flex-shrink-0
|
|
670
|
-
`,style:{width:
|
|
690
|
+
`,style:{width:n==="sm"?"32px":n==="lg"?"48px":"40px",height:n==="sm"?"32px":n==="lg"?"48px":"40px",background:"var(--glass-bg, rgba(255,255,255,0.05))",backdropFilter:"blur(12px)",WebkitBackdropFilter:"blur(12px)",border:"1px solid var(--color-border-primary)",borderRadius:"50%"},"aria-label":m?"Close social menu":"Open social menu",children:e.jsx("svg",{className:`
|
|
671
691
|
w-4 h-4
|
|
672
692
|
text-[var(--color-text-primary)]
|
|
673
693
|
transition-transform duration-300
|
|
674
|
-
${
|
|
675
|
-
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:
|
|
694
|
+
${m?"rotate-180":"rotate-0"}
|
|
695
|
+
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:j?"M9 5l7 7-7 7":"M15 19l-7-7 7-7"})})})]})})};Ke.displayName="SocialMedia";const Pt=({type:r})=>{switch(r){case"success":return e.jsx(ze,{});case"error":return e.jsx(Be,{});case"warning":return e.jsx(wt,{});default:return e.jsx(jt,{})}},Ie=({message:r,type:l="info",duration:s=3e3,onDismiss:u})=>{const[n,o]=t.useState(!1),[C,m]=t.useState(!1),$={success:{bg:"bg-[var(--color-success-light)]",border:"border-[var(--color-success)]",text:"text-[var(--color-success)]"},error:{bg:"bg-[var(--color-danger-light)]",border:"border-[var(--color-danger)]",text:"text-[var(--color-danger)]"},warning:{bg:"bg-[var(--color-warning-light)]",border:"border-[var(--color-warning)]",text:"text-[var(--color-warning)]"},info:{bg:"bg-[var(--color-info-light)]",border:"border-[var(--color-info)]",text:"text-[var(--color-info)]"}};t.useEffect(()=>{const a=setTimeout(()=>{o(!0)},10);return()=>clearTimeout(a)},[]),t.useEffect(()=>{if(s<=0)return;const a=setTimeout(()=>{N()},s);return()=>clearTimeout(a)},[s]);const N=t.useCallback(()=>{m(!0),o(!1),setTimeout(()=>{u==null||u()},300)},[u]),v=$[l];return e.jsxs("div",{className:`
|
|
676
696
|
glass-heavy
|
|
677
697
|
px-5 py-3.5
|
|
678
698
|
rounded-[14px]
|
|
@@ -682,159 +702,159 @@
|
|
|
682
702
|
flex items-center gap-3
|
|
683
703
|
w-[360px] max-w-[90vw]
|
|
684
704
|
transition-all duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
685
|
-
${
|
|
686
|
-
${
|
|
687
|
-
${
|
|
688
|
-
${
|
|
689
|
-
`,role:"alert","aria-live":"polite",children:[e.jsx("span",{className:`${
|
|
705
|
+
${v.bg}
|
|
706
|
+
${v.border}
|
|
707
|
+
${n?"translate-x-0 opacity-100":"translate-x-[calc(100%+24px)] opacity-0"}
|
|
708
|
+
${C?"scale-95 opacity-0":""}
|
|
709
|
+
`,role:"alert","aria-live":"polite",children:[e.jsx("span",{className:`${v.text} flex-shrink-0`,children:e.jsx(Pt,{type:l})}),e.jsx("span",{className:"text-[var(--color-text-primary)] flex-1",children:r}),e.jsx("button",{onClick:N,className:"text-[var(--color-text-tertiary)] hover:text-[var(--color-text-primary)] transition-colors duration-180 flex-shrink-0 ml-2","aria-label":"Dismiss toast",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]})};Ie.displayName="Toast";const Ee=({toasts:r,onRemove:l})=>r.length===0?null:Me.createPortal(e.jsx("div",{className:"fixed top-6 right-6 z-[10000] flex flex-col-reverse gap-3 pointer-events-none",children:r.map(s=>e.jsx("div",{className:"pointer-events-auto",children:e.jsx(Ie,{...s,onDismiss:()=>l(s.id)})},s.id))}),document.body);Ee.displayName="ToastContainer";const et=t.createContext(void 0),zt=({children:r})=>{const[s,u]=t.useState([]),n=t.useCallback(M=>{u(c=>c.filter(g=>g.id!==M))},[]),o=t.useCallback(M=>{const c=`toast-${Date.now()}-${Math.random().toString(36).substring(2,6)}`;u(x=>{const R=[...x,{...M,id:c}];return R.length>5?R.slice(1):R});const g=M.duration||3e3;setTimeout(()=>{n(c)},g+350)},[n]),C=t.useCallback((M,c)=>{o({message:M,type:"success",duration:c})},[o]),m=t.useCallback((M,c)=>{o({message:M,type:"error",duration:c})},[o]),$=t.useCallback((M,c)=>{o({message:M,type:"warning",duration:c})},[o]),N=t.useCallback((M,c)=>{o({message:M,type:"info",duration:c})},[o]),v=t.useCallback(()=>{u([])},[]),a={showToast:o,success:C,error:m,warning:$,info:N,clearAll:v};return e.jsxs(et.Provider,{value:a,children:[r,e.jsx(Ee,{toasts:s,onRemove:n})]})},Bt=()=>{const r=t.useContext(et);if(!r)throw new Error("useToast must be used within a ToastProvider");return r},Se=t.forwardRef(({src:r,alt:l="",size:s="md",fallback:u=!1,fallbackText:n,shape:o="circle",bordered:C=!1,glow:m,status:$,group:N=!1,onClick:v,className:a="",children:M,...c},g)=>{const[x,R]=t.useState(!1),j={xs:"w-6 h-6 text-[10px]",sm:"w-8 h-8 text-xs",md:"w-10 h-10 text-sm",lg:"w-12 h-12 text-base",xl:"w-16 h-16 text-lg"},p={circle:"rounded-full",rounded:"rounded-[var(--radius-md)]",square:"rounded-none"},b={primary:"shadow-[var(--shadow-glow-primary)]",secondary:"shadow-[var(--shadow-glow-secondary)]",accent:"shadow-[var(--shadow-glow-accent)]"},f={online:"bg-[var(--color-success)]",offline:"bg-[var(--color-text-tertiary)]",away:"bg-[var(--color-warning)]",busy:"bg-[var(--color-danger)]"},T={xs:"w-1.5 h-1.5",sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3",xl:"w-3.5 h-3.5"},S=C?"border-2 border-[var(--color-border-secondary)]":"",I=m?b[m]:"",E=()=>{v&&v()},y=()=>{if(!n)return"";const L=n.trim().split(" ");return L.length===1?L[0].charAt(0).toUpperCase():(L[0].charAt(0)+L[L.length-1].charAt(0)).toUpperCase()},i=r&&!u&&!x,k=()=>i?e.jsx("img",{src:r,alt:l,className:"w-full h-full object-cover",onError:()=>R(!0)}):n?e.jsx("span",{className:"font-heading font-semibold text-inherit",children:y()}):e.jsx(Oe,{});return N?e.jsx("div",{ref:g,className:`flex -space-x-2 ${a}`,...c,children:t.Children.map(M,L=>t.isValidElement(L)?t.cloneElement(L,{size:s,shape:o,bordered:!0,className:`${p[o]} ring-2 ring-[var(--color-bg-primary)] ${L.props.className||""}`}):L)}):e.jsxs("div",{ref:g,className:`
|
|
690
710
|
relative inline-flex items-center justify-center
|
|
691
711
|
flex-shrink-0
|
|
692
|
-
${
|
|
712
|
+
${v?"cursor-pointer hover:opacity-80":""}
|
|
693
713
|
${a}
|
|
694
714
|
`,onClick:E,...c,children:[e.jsx("div",{className:`
|
|
695
715
|
flex items-center justify-center
|
|
696
716
|
bg-[var(--color-bg-tertiary)]
|
|
697
717
|
text-[var(--color-text-secondary)]
|
|
698
718
|
transition-all duration-[var(--transition-fast)]
|
|
699
|
-
${
|
|
700
|
-
${
|
|
701
|
-
${
|
|
702
|
-
${
|
|
719
|
+
${j[s]}
|
|
720
|
+
${p[o]}
|
|
721
|
+
${S}
|
|
722
|
+
${I}
|
|
703
723
|
overflow-hidden
|
|
704
|
-
`,children:
|
|
724
|
+
`,children:k()}),$&&e.jsx("span",{className:`
|
|
705
725
|
absolute bottom-0 right-0
|
|
706
726
|
rounded-full
|
|
707
727
|
ring-2 ring-[var(--color-bg-primary)]
|
|
708
|
-
${
|
|
709
|
-
${
|
|
710
|
-
`})]})});
|
|
728
|
+
${f[$]}
|
|
729
|
+
${T[s]}
|
|
730
|
+
`})]})});Se.displayName="Avatar";const tt=({content:r,children:l,placement:s="top",delay:u=300,hideDelay:n=0,maxWidth:o="240px",arrow:C=!0,variant:m="glass",size:$="md",disabled:N=!1,open:v,onOpen:a,onClose:M,className:c=""})=>{const[g,x]=t.useState(!1),[R,j]=t.useState(!1),[p,b]=t.useState(!1),[f,T]=t.useState({top:-9999,left:-9999}),[S,I]=t.useState(!1),E=t.useId(),y=t.useRef(null),i=t.useRef(null),k=t.useRef(null),L=t.useRef(null),w=v!==void 0,h=w?v:g;t.useEffect(()=>{const Q=()=>{I(document.documentElement.dir==="rtl")};Q();const F=new MutationObserver(Q);return F.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>F.disconnect()},[]);const d={sm:"px-2.5 py-1.5 text-xs",md:"px-3.5 py-2 text-sm",lg:"px-[18px] py-2.5 text-base"},P=m==="solid"?"glass-solid":m==="outline"?"glass-outline":"glass",q=150,G=t.useCallback(()=>{const Q=y.current,F=i.current;if(!Q||!F)return!1;const W=Q.getBoundingClientRect(),B=F.offsetWidth,_=F.offsetHeight;if(B===0||_===0)return!1;const Z=8;let ee=0,K=0;const oe=W.left+W.width/2,A=W.top+W.height/2;switch((()=>{if(S){if(s==="left")return"right";if(s==="right")return"left";if(s==="top-left")return"top-right";if(s==="top-right")return"top-left";if(s==="bottom-left")return"bottom-right";if(s==="bottom-right")return"bottom-left"}return s})()){case"top":ee=W.top-_-Z,K=oe-B/2;break;case"bottom":ee=W.bottom+Z,K=oe-B/2;break;case"left":ee=A-_/2,K=W.left-B-Z;break;case"right":ee=A-_/2,K=W.right+Z;break;case"top-left":ee=W.top-_-Z,K=W.left;break;case"top-right":ee=W.top-_-Z,K=W.right-B;break;case"bottom-left":ee=W.bottom+Z,K=W.left;break;case"bottom-right":ee=W.bottom+Z,K=W.right-B;break;default:ee=W.top-_-Z,K=oe-B/2}const te=window.innerWidth,se=window.innerHeight;return K<8&&(K=8),K+B>te-8&&(K=te-B-8),ee<8&&(ee=8),ee+_>se-8&&(ee=se-_-8),T({top:ee,left:K}),!0},[s,S]);t.useLayoutEffect(()=>{if(!h){b(!1);const B=setTimeout(()=>{j(!1),T({top:-9999,left:-9999})},q);return()=>clearTimeout(B)}j(!0),b(!1);let Q=0,F=0;const W=()=>{if(Q+=1,G()){b(!0);return}Q<8?F=requestAnimationFrame(W):b(!0)};return F=requestAnimationFrame(W),()=>cancelAnimationFrame(F)},[h,G]),t.useEffect(()=>{h&&R&&G()},[S,h,R,G]),t.useEffect(()=>{if(!h)return;const Q=()=>G();return window.addEventListener("resize",Q),window.addEventListener("scroll",Q,!0),()=>{window.removeEventListener("resize",Q),window.removeEventListener("scroll",Q,!0)}},[h,G]);const O=t.useCallback(()=>{N||(k.current&&(clearTimeout(k.current),k.current=null),L.current&&(clearTimeout(L.current),L.current=null),k.current=setTimeout(()=>{w||x(!0),a==null||a()},u))},[N,u,w,a]),H=t.useCallback(()=>{k.current&&(clearTimeout(k.current),k.current=null),L.current=setTimeout(()=>{w||x(!1),M==null||M()},n)},[n,w,M]);t.useEffect(()=>()=>{k.current&&clearTimeout(k.current),L.current&&clearTimeout(L.current)},[]);const z={top:"bottom-[-5px] left-1/2 -translate-x-1/2",bottom:"top-[-5px] left-1/2 -translate-x-1/2",left:"right-[-5px] top-1/2 -translate-y-1/2",right:"left-[-5px] top-1/2 -translate-y-1/2","top-left":"bottom-[-5px] left-3","top-right":"bottom-[-5px] right-3","bottom-left":"top-[-5px] left-3","bottom-right":"top-[-5px] right-3"},X=()=>{if(S){if(s==="left")return z.right;if(s==="right")return z.left;if(s==="top-left")return z["top-right"];if(s==="top-right")return z["top-left"];if(s==="bottom-left")return z["bottom-right"];if(s==="bottom-right")return z["bottom-left"]}return z[s]||z.top};return e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:y,className:"inline-flex",onMouseEnter:O,onMouseLeave:H,onFocus:O,onBlur:H,"aria-describedby":h?E:void 0,children:l}),R&&Me.createPortal(e.jsxs("div",{ref:i,className:`
|
|
711
731
|
z-[10002]
|
|
712
732
|
font-sans text-[var(--color-text-primary)]
|
|
713
733
|
transition-opacity duration-150 ease-out
|
|
714
734
|
pointer-events-none
|
|
715
|
-
${
|
|
716
|
-
${
|
|
717
|
-
${d[
|
|
735
|
+
${p?"opacity-100":"opacity-0"}
|
|
736
|
+
${P}
|
|
737
|
+
${d[$]}
|
|
718
738
|
${c}
|
|
719
|
-
${
|
|
720
|
-
`,style:{position:"fixed",top:
|
|
739
|
+
${S?"text-right":"text-left"}
|
|
740
|
+
`,style:{position:"fixed",top:f.top,left:f.left,maxWidth:o,direction:S?"rtl":"ltr"},id:E,role:"tooltip",dir:S?"rtl":"ltr",children:[r,C&&e.jsx("div",{className:`absolute w-2.5 h-2.5 rotate-45 ${X()}`,style:{background:"inherit",border:"1px solid var(--glass-border, rgba(255,255,255,0.12))"},"aria-hidden":"true"})]}),document.body)]})};tt.displayName="Tooltip";const ke=t.forwardRef(({value:r=0,max:l=100,variant:s="horizontal",size:u="md",color:n="primary",showLabel:o=!1,labelFormat:C,label:m,labelPosition:$="inside",animated:N=!0,thickness:v=8,radialSize:a=80,displayType:M="percentage",glow:c=!1,className:g="",...x},R)=>{const j=Math.max(0,Math.min(r,l)),p=j/l*100,b={sm:"h-1.5",md:"h-2.5",lg:"h-4"},f={sm:64,md:80,lg:100},T={primary:"bg-[var(--color-primary)]",secondary:"bg-[var(--color-secondary)]",accent:"bg-[var(--color-accent)]",success:"bg-[var(--color-success)]",danger:"bg-[var(--color-danger)]",warning:"bg-[var(--color-warning)]",gradient:"bg-gradient-to-r from-[var(--color-primary)] to-[var(--color-secondary)]"},S={primary:"color-mix(in srgb, var(--color-primary) 35%, transparent)",secondary:"color-mix(in srgb, var(--color-secondary) 35%, transparent)",accent:"color-mix(in srgb, var(--color-accent) 35%, transparent)",success:"color-mix(in srgb, var(--color-success) 35%, transparent)",danger:"color-mix(in srgb, var(--color-danger) 35%, transparent)",warning:"color-mix(in srgb, var(--color-warning) 35%, transparent)",gradient:"color-mix(in srgb, var(--color-primary) 35%, transparent)"},E=(()=>{if(m)return m;if(C)return C(j,l);switch(M){case"ratio":return`${Math.round(j)} / ${l}`;case"custom":return m||`${Math.round(j)}`;case"percentage":default:return`${Math.round(p)}%`}})();if(s==="horizontal"){const q=N?"transition-all duration-[var(--transition-base)] ease-[var(--ease-in-out)]":"",G=v||8,O={left:"flex-row items-center gap-3",right:"flex-row items-center gap-3",top:"flex-col items-start gap-1.5",bottom:"flex-col items-start gap-1.5",inside:"flex-row items-center gap-3"},H={left:"order-first",right:"order-last",top:"order-first",bottom:"order-last",inside:"order-last"},z=O[$]||O.right,X=H[$]||H.right,Q=$==="left"||$==="top",F=$==="inside",W=b[u]||b.md,B=S[n]||S.primary;return e.jsxs("div",{className:`w-full ${z} ${g}`,style:{minWidth:"100px"},...x,children:[o&&Q&&e.jsx("span",{className:`
|
|
721
741
|
font-mono text-xs font-medium text-[var(--color-text-secondary)]
|
|
722
742
|
flex-shrink-0
|
|
723
743
|
${X}
|
|
724
|
-
`,children:E}),e.jsxs("div",{className:"flex-1 w-full relative",children:[c&&
|
|
744
|
+
`,children:E}),e.jsxs("div",{className:"flex-1 w-full relative",children:[c&&p>0&&e.jsx("div",{className:"absolute inset-0 rounded-full pointer-events-none z-0",style:{width:`${p}%`,height:`${G}px`,boxShadow:`0 0 20px ${B}, 0 0 40px ${B}`,opacity:.7}}),e.jsx("div",{className:`
|
|
725
745
|
w-full rounded-full
|
|
726
746
|
bg-[var(--color-bg-tertiary)]
|
|
727
|
-
${
|
|
747
|
+
${W}
|
|
728
748
|
overflow-hidden
|
|
729
749
|
relative z-10
|
|
730
|
-
`,style:{height:`${
|
|
750
|
+
`,style:{height:`${F?Math.max(G,u==="lg"?22:u==="sm"?16:18):G}px`},role:"progressbar","aria-label":`${m||"Progress"}: ${Math.round(p)}%`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":l,children:e.jsx("div",{className:`h-full rounded-full ${T[n]} ${q} relative flex items-center justify-end`,style:{width:`${p}%`,transition:N?"width 0.4s ease":"none"},children:o&&F&&p>15&&e.jsx("span",{className:`
|
|
731
751
|
font-mono font-semibold text-[var(--color-text-inverse)]
|
|
732
752
|
truncate
|
|
733
753
|
ml-auto
|
|
734
754
|
px-2.5
|
|
735
|
-
`,style:{fontSize:u==="lg"?"0.8rem":u==="sm"?"0.65rem":"0.7rem",lineHeight:1,textShadow:"0 1px 2px rgba(0,0,0,0.25)",maxWidth:"100%",position:"relative",zIndex:1},children:E})})}),
|
|
755
|
+
`,style:{fontSize:u==="lg"?"0.8rem":u==="sm"?"0.65rem":"0.7rem",lineHeight:1,textShadow:"0 1px 2px rgba(0,0,0,0.25)",maxWidth:"100%",position:"relative",zIndex:1},children:E})})}),o&&F&&p<=15&&e.jsx("span",{className:`
|
|
736
756
|
absolute top-1/2 -translate-y-1/2
|
|
737
757
|
font-mono font-medium text-[var(--color-text-secondary)]
|
|
738
758
|
text-[10px] sm:text-xs
|
|
739
759
|
truncate
|
|
740
760
|
pointer-events-none
|
|
741
761
|
z-20
|
|
742
|
-
`,style:{left:`${Math.max(
|
|
762
|
+
`,style:{left:`${Math.max(p,2)}%`},children:E})]}),o&&!Q&&!F&&e.jsx("span",{className:`
|
|
743
763
|
font-mono text-xs font-medium text-[var(--color-text-secondary)]
|
|
744
764
|
flex-shrink-0
|
|
745
765
|
${X}
|
|
746
|
-
`,children:E})]})}const
|
|
766
|
+
`,children:E})]})}const y=a||f[u]||80,i=y/2,k=(y-v)/2,L=2*Math.PI*k,w=L-p/100*L,h=o?E:"",d=()=>n==="gradient"?"url(#radialGradient)":`var(--color-${n})`,P=()=>n==="gradient"?"url(#glowGradient)":`var(--color-${n})`;return e.jsx("div",{ref:R,className:`relative inline-flex flex-col items-center justify-center ${g}`,...x,children:e.jsxs("div",{className:"relative",style:{width:y,height:y},role:"progressbar","aria-label":`${m||"Progress"}: ${Math.round(p)}%`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":l,children:[e.jsxs("svg",{className:"relative w-full h-full",viewBox:`0 0 ${y} ${y}`,"aria-hidden":"true",children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"radialGradient",x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[e.jsx("stop",{offset:"0%",stopColor:"var(--color-primary)"}),e.jsx("stop",{offset:"100%",stopColor:"var(--color-secondary)"})]}),e.jsxs("linearGradient",{id:"glowGradient",x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[e.jsx("stop",{offset:"0%",stopColor:"var(--color-primary)"}),e.jsx("stop",{offset:"100%",stopColor:"var(--color-secondary)"})]})]}),c&&p>0&&e.jsx("circle",{cx:i,cy:i,r:k+v/2,fill:"none",stroke:P(),strokeWidth:v+6,strokeDasharray:L,strokeDashoffset:w,strokeLinecap:"round",transform:`rotate(-90 ${i} ${i})`,style:{filter:"blur(10px)",opacity:.35,transition:N?"stroke-dashoffset 0.6s ease":"none"}}),e.jsx("circle",{cx:i,cy:i,r:k,fill:"none",stroke:"var(--color-bg-tertiary)",strokeWidth:v}),e.jsx("circle",{cx:i,cy:i,r:k,fill:"none",stroke:d(),strokeWidth:v,strokeDasharray:L,strokeDashoffset:w,strokeLinecap:"round",transform:`rotate(-90 ${i} ${i})`,style:{transition:N?"stroke-dashoffset 0.6s ease":"none"}})]}),o&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10 pointer-events-none",children:e.jsx("span",{className:"font-heading font-bold leading-none",style:{fontSize:y<60?"0.65rem":y<80?"0.75rem":"0.9rem",color:"var(--color-text-primary)",textShadow:"0 0 30px var(--color-bg-primary), 0 0 60px var(--color-bg-primary)"},children:h})})]})})});ke.displayName="Progress";const rt=({title:r,price:l,currency:s="$",image:u,description:n,rating:o=0,reviewCount:C=0,category:m,tags:$=[],onSale:N=!1,originalPrice:v,inStock:a=!0,badge:M,badgeVariant:c="primary",link:g,onAddToCart:x,onClick:R,layout:j="vertical",glow:p="none",showQuickActions:b=!0,className:f="",fullWidthMobile:T=!1})=>{const{t:S}=xe(),[I,E]=t.useState({x:0,y:0}),[y,i]=t.useState(!1),[k,L]=t.useState(!1),w=t.useRef(null),h=j==="horizontal",d=j==="compact",P=j==="vertical",[q,G]=t.useState(!1);t.useEffect(()=>{const J=()=>{G(document.documentElement.dir==="rtl")};J();const te=new MutationObserver(J);return te.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>te.disconnect()},[]);const O=J=>{if(!w.current||d)return;const te=w.current.getBoundingClientRect(),se=J.clientX-te.left,ce=J.clientY-te.top;E({x:(ce-te.height/2)/(te.height/2)*-6,y:(se-te.width/2)/(te.width/2)*6})},H=()=>i(!0),z=()=>{i(!1),E({x:0,y:0})},X={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""},Q={primary:"0 0 28px color-mix(in srgb, var(--color-primary) 45%, transparent)",secondary:"0 0 28px color-mix(in srgb, var(--color-secondary) 45%, transparent)",accent:"0 0 28px color-mix(in srgb, var(--color-accent) 45%, transparent)",none:"0 0 24px color-mix(in srgb, var(--color-primary) 28%, transparent)"}[p],F="var(--shadow-float, 0 8px 24px rgba(0,0,0,0.18))",W=`0 16px 40px rgba(0,0,0,0.28), ${Q}`,B=J=>typeof J=="string"?J:`${s}${J.toFixed(2)}`,_=()=>Array.from({length:5},(J,te)=>e.jsx("span",{className:te<Math.round(o)?"text-[var(--color-warning)]":"text-[var(--color-text-tertiary)]","aria-hidden":"true",children:te<Math.round(o)?"★":"☆"},te)),Z=()=>e.jsx("div",{className:"w-full h-full flex items-center justify-center bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]",children:e.jsx(kt,{})}),ee=d?"w-14 h-14 flex-shrink-0":h?"w-28 h-28 sm:w-36 sm:h-36 flex-shrink-0":"w-full aspect-square",K=d?y?"translateY(-4px) scale(1.03)":"translateY(0) scale(1)":y?`perspective(900px) rotateX(${I.x}deg) rotateY(${I.y}deg) translateY(-6px) scale(1.02)`:"perspective(900px) rotateX(0) rotateY(0) translateY(0) scale(1)",oe=!b&&R,A=!!g,re=N&&d&&e.jsx("div",{className:`
|
|
747
767
|
absolute top-0 z-20 w-[4.5rem] h-[4.5rem]
|
|
748
768
|
overflow-hidden pointer-events-none
|
|
749
|
-
${
|
|
769
|
+
${q?"left-0":"right-0"}
|
|
750
770
|
`,"aria-hidden":"true",children:e.jsx("span",{className:`
|
|
751
771
|
absolute top-[0.35rem] w-[7rem]
|
|
752
772
|
bg-[var(--color-danger)] text-white
|
|
753
773
|
text-[10px] font-bold uppercase tracking-wider
|
|
754
774
|
py-0.5 text-center shadow-sm
|
|
755
|
-
${
|
|
756
|
-
`,children:
|
|
775
|
+
${q?"left-[-2.35rem] -rotate-45 origin-center":"right-[-2.35rem] rotate-45 origin-center"}
|
|
776
|
+
`,children:S("productLabels.sale")})});return e.jsxs("div",{ref:w,className:`
|
|
757
777
|
glass relative overflow-hidden
|
|
758
778
|
${d?"p-3":"p-4"}
|
|
759
|
-
${X[
|
|
760
|
-
${
|
|
761
|
-
${
|
|
762
|
-
${
|
|
779
|
+
${X[p]}
|
|
780
|
+
${T?"w-full sm:w-auto":""}
|
|
781
|
+
${P?"flex flex-col h-full":""}
|
|
782
|
+
${h?"flex flex-row gap-4 items-stretch":""}
|
|
763
783
|
${d?"flex flex-row items-center gap-3":""}
|
|
764
|
-
${
|
|
784
|
+
${f}
|
|
765
785
|
${oe?"cursor-pointer":""}
|
|
766
|
-
`,style:{transform:
|
|
767
|
-
${
|
|
786
|
+
`,style:{transform:K,transformStyle:"preserve-3d",boxShadow:y?W:F,transition:"transform 0.22s ease-out, box-shadow 0.3s ease, border-color 0.25s ease",borderColor:y?"color-mix(in srgb, var(--color-primary) 35%, var(--color-border-primary))":void 0,overflow:"hidden",borderRadius:"var(--radius-standard)"},onMouseMove:O,onMouseEnter:H,onMouseLeave:z,onClick:R,role:oe?"button":void 0,tabIndex:oe?0:void 0,"aria-label":oe?`Product: ${r}`:void 0,onKeyDown:oe?J=>{(J.key==="Enter"||J.key===" ")&&(R==null||R())}:void 0,children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 rounded-[inherit] transition-opacity duration-300",style:{opacity:y?1:0,background:"radial-gradient(ellipse at 30% 0%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 55%)"}}),re,d&&!a&&e.jsx("div",{className:"absolute inset-0 z-30 flex items-center justify-center rounded-[inherit] bg-black/60 backdrop-blur-[2px]",children:e.jsx("span",{className:"font-heading font-bold text-white text-[11px] uppercase tracking-widest px-2 text-center",children:S("productLabels.outOfStock")})}),e.jsxs("div",{className:`
|
|
787
|
+
${ee}
|
|
768
788
|
rounded-[var(--radius-md)] overflow-hidden
|
|
769
789
|
bg-[var(--color-bg-tertiary)] relative
|
|
770
790
|
transition-transform duration-300
|
|
771
|
-
${
|
|
772
|
-
`,children:[u&&!
|
|
791
|
+
${y&&d?"scale-105":""}
|
|
792
|
+
`,children:[u&&!k?e.jsx("img",{src:u,alt:r,className:`
|
|
773
793
|
w-full h-full object-cover transition-transform duration-500
|
|
774
|
-
${
|
|
775
|
-
`,onError:()=>
|
|
794
|
+
${y&&!d?"scale-105":"scale-100"}
|
|
795
|
+
`,onError:()=>L(!0),loading:"lazy"}):e.jsx(Z,{}),e.jsxs("div",{className:"absolute top-2 start-2 z-10 flex flex-col gap-1 items-start",children:[M&&!d&&e.jsx(he,{variant:c,size:"sm",glow:!0,children:M}),N&&!d&&!M&&e.jsx(he,{variant:"danger",size:"sm",glow:!0,children:"Sale"}),N&&!d&&M&&e.jsx(he,{variant:"danger",size:"sm",glow:!0,children:M})]}),!a&&!d&&e.jsx("div",{className:"absolute inset-0 bg-black/55 flex items-center justify-center z-10",children:e.jsx("span",{className:"font-heading font-bold text-white text-xs uppercase tracking-wider",children:S("productLabels.outOfStock")})})]}),e.jsxs("div",{className:`
|
|
776
796
|
flex flex-col min-w-0 relative z-[1]
|
|
777
|
-
${
|
|
778
|
-
`,children:[
|
|
797
|
+
${P?"flex-1 mt-3":"flex-1"}
|
|
798
|
+
`,children:[m&&!d&&e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wider text-[var(--color-text-tertiary)] mb-1",children:m}),e.jsx("h3",{className:`
|
|
779
799
|
font-heading font-bold text-[var(--color-text-primary)]
|
|
780
800
|
${d?"text-sm":"text-base"}
|
|
781
801
|
line-clamp-2 leading-snug
|
|
782
|
-
${
|
|
802
|
+
${A||y?"hover:text-[var(--color-primary)]":""}
|
|
783
803
|
transition-colors duration-180
|
|
784
|
-
${
|
|
785
|
-
`,onClick:
|
|
804
|
+
${y?"text-[var(--color-primary)]":""}
|
|
805
|
+
`,onClick:J=>{g&&(J.stopPropagation(),window.open(g,"_blank"))},children:r}),n&&!d&&e.jsx("p",{className:"text-[var(--color-text-secondary)] text-sm mt-1.5 line-clamp-2",children:n}),$.length>0&&!d&&e.jsxs("div",{className:"flex flex-wrap gap-1 mt-2",children:[$.slice(0,3).map(J=>e.jsxs("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-full bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]",children:["#",J]},J)),$.length>3&&e.jsxs("span",{className:"text-[10px] font-mono text-[var(--color-text-tertiary)]",children:["+",$.length-3]})]}),e.jsxs("div",{className:`
|
|
786
806
|
flex items-center justify-between gap-3
|
|
787
|
-
${
|
|
807
|
+
${P?"mt-auto pt-3":"mt-2"}
|
|
788
808
|
${d?"mt-1":""}
|
|
789
809
|
`,children:[e.jsxs("div",{className:"relative inline-flex items-baseline min-w-0",children:[e.jsx("span",{className:`
|
|
790
810
|
font-heading font-bold
|
|
791
811
|
${d?"text-sm":"text-lg"}
|
|
792
812
|
${N?"text-[var(--color-danger)]":"text-[var(--color-text-primary)]"}
|
|
793
|
-
`,children:
|
|
813
|
+
`,children:B(l)}),N&&v&&e.jsx("span",{className:`
|
|
794
814
|
absolute line-through text-[var(--color-text-tertiary)] font-mono
|
|
795
815
|
pointer-events-none whitespace-nowrap
|
|
796
816
|
${d?"text-[8px] -top-2.5 start-0":"text-[10px] -top-3 start-0.5"}
|
|
797
|
-
`,children:
|
|
817
|
+
`,children:B(v)})]}),o>0&&!d&&e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[e.jsx("span",{className:"flex text-xs leading-none","aria-hidden":"true",children:_()}),C>0&&e.jsxs("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:["(",C,")"]})]})]}),b&&!d&&e.jsx("div",{className:"mt-3 pt-3 border-t border-[var(--color-border-secondary)]",children:e.jsx(ge,{variant:"primary",size:"sm",fullWidth:!0,disabled:!a,onClick:J=>{J.stopPropagation(),x==null||x()},children:S(a?"productLabels.addToCart":"productLabels.outOfStock")})})]}),d&&b&&e.jsx("button",{type:"button",onClick:J=>{J.stopPropagation(),a&&(x==null||x())},disabled:!a,className:`
|
|
798
818
|
flex-shrink-0 w-9 h-9 rounded-full
|
|
799
819
|
flex items-center justify-center relative z-10
|
|
800
820
|
transition-all duration-200
|
|
801
821
|
${a?"bg-[var(--color-primary-solid)] text-white hover:bg-[var(--color-primary-hover)]":"bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)] cursor-not-allowed"}
|
|
802
|
-
${
|
|
803
|
-
`,"aria-label":
|
|
822
|
+
${y&&a?"scale-110 shadow-[var(--shadow-glow-primary)]":"scale-100"}
|
|
823
|
+
`,"aria-label":S(a?"productLabels.addToCart":"productLabels.outOfStock"),children:e.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"})})})]})};rt.displayName="ProductCard";const at=({title:r,excerpt:l,coverImage:s,author:u,authorAvatar:n,date:o,readTime:C,category:m,tags:$=[],link:N,onClick:v,featured:a=!1,layout:M="vertical",glow:c="none",showCategory:g=!0,showAuthor:x=!0,showReadTime:R=!0,className:j="",fullWidthMobile:p=!1})=>{const{t:b,language:f}=xe(),[T,S]=t.useState({x:0,y:0}),[I,E]=t.useState(!1),[y,i]=t.useState(!1),k=t.useRef(null),L=M==="horizontal",w=B=>{if(!k.current)return;const _=k.current.getBoundingClientRect(),Z=B.clientX-_.left,ee=B.clientY-_.top;S({x:(ee-_.height/2)/(_.height/2)*-6,y:(Z-_.width/2)/(_.width/2)*6})},h=()=>E(!0),d=()=>{E(!1),S({x:0,y:0})},P={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""},q={primary:"0 0 28px color-mix(in srgb, var(--color-primary) 45%, transparent)",secondary:"0 0 28px color-mix(in srgb, var(--color-secondary) 45%, transparent)",accent:"0 0 28px color-mix(in srgb, var(--color-accent) 45%, transparent)",none:"0 0 24px color-mix(in srgb, var(--color-primary) 28%, transparent)"}[c],G="var(--shadow-float, 0 8px 24px rgba(0,0,0,0.18))",O=`0 16px 40px rgba(0,0,0,0.28), ${q}`,H=B=>{try{const _=B instanceof Date?B:new Date(B);if(isNaN(_.getTime()))return"";const ee={en:"en-US",fa:"fa-IR",fr:"fr-FR"}[f]||"en-US";return _.toLocaleDateString(ee,{year:"numeric",month:"short",day:"numeric"})}catch{return console.warn("Invalid date provided to BlogCard:",B),""}},z=B=>{try{if(B instanceof Date)return isNaN(B.getTime())?void 0:B.toISOString();const _=new Date(B);return isNaN(_.getTime())?void 0:B}catch{return}},X=()=>e.jsx("div",{className:"w-full h-full flex items-center justify-center bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]",children:e.jsx(Nt,{})}),Q=L?"w-full sm:w-44 sm:h-44 md:w-52 md:h-52 flex-shrink-0 aspect-video sm:aspect-square":a?"w-full aspect-[16/9]":"w-full aspect-video",F=a?4:3,W=!!v;return e.jsxs("div",{ref:k,className:`
|
|
804
824
|
glass relative overflow-hidden
|
|
805
825
|
${a?"p-5":"p-4"}
|
|
806
|
-
${
|
|
807
|
-
${
|
|
808
|
-
${
|
|
809
|
-
${
|
|
810
|
-
${
|
|
811
|
-
`,style:{transform:
|
|
812
|
-
${
|
|
826
|
+
${P[c]}
|
|
827
|
+
${p?"w-full sm:w-auto":""}
|
|
828
|
+
${L?"flex flex-col sm:flex-row gap-4":"flex flex-col h-full"}
|
|
829
|
+
${j}
|
|
830
|
+
${W?"cursor-pointer":""}
|
|
831
|
+
`,style:{transform:I?`perspective(900px) rotateX(${T.x}deg) rotateY(${T.y}deg) translateY(-6px) scale(1.02)`:"perspective(900px) rotateX(0) rotateY(0) translateY(0) scale(1)",transformStyle:"preserve-3d",boxShadow:I?O:G,transition:"transform 0.22s ease-out, box-shadow 0.3s ease, border-color 0.25s ease",borderColor:I?"color-mix(in srgb, var(--color-primary) 35%, var(--color-border-primary))":void 0},onMouseMove:w,onMouseEnter:h,onMouseLeave:d,onClick:v,role:W?"button":void 0,tabIndex:W?0:void 0,"aria-label":W?`Blog post: ${r}`:void 0,onKeyDown:W?B=>{(B.key==="Enter"||B.key===" ")&&(v==null||v())}:void 0,children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 rounded-[inherit] transition-opacity duration-300 z-0",style:{opacity:I?1:0,background:"radial-gradient(ellipse at 30% 0%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 55%)"}}),e.jsxs("div",{className:`
|
|
832
|
+
${Q}
|
|
813
833
|
rounded-[var(--radius-md)] overflow-hidden
|
|
814
834
|
bg-[var(--color-bg-tertiary)] relative z-[1]
|
|
815
|
-
`,children:[
|
|
835
|
+
`,children:[s&&!y?e.jsx("img",{src:s,alt:r,className:`
|
|
816
836
|
w-full h-full object-cover transition-transform duration-500
|
|
817
|
-
${
|
|
818
|
-
`,onError:()=>
|
|
837
|
+
${I?"scale-105":"scale-100"}
|
|
838
|
+
`,onError:()=>i(!0),loading:"lazy"}):e.jsx(X,{}),m&&g&&e.jsx("span",{className:"absolute top-2.5 start-2.5 z-10",children:e.jsx(he,{variant:"primary",size:"sm",glow:!0,children:m})})]}),e.jsxs("div",{className:`
|
|
819
839
|
flex flex-col flex-1 min-w-0 relative z-[1]
|
|
820
|
-
${
|
|
840
|
+
${L?"":"mt-3"}
|
|
821
841
|
`,children:[e.jsx("h3",{className:`
|
|
822
842
|
font-heading font-bold leading-snug line-clamp-2
|
|
823
|
-
${a?"text-2xl":
|
|
843
|
+
${a?"text-2xl":L?"text-lg":"text-xl"}
|
|
824
844
|
transition-colors duration-180
|
|
825
|
-
${
|
|
826
|
-
`,onClick:
|
|
845
|
+
${I?"text-[var(--color-primary)]":"text-[var(--color-text-primary)]"}
|
|
846
|
+
`,onClick:B=>{N&&(B.stopPropagation(),window.open(N,"_blank"))},children:r}),e.jsx("p",{className:`
|
|
827
847
|
text-[var(--color-text-secondary)] mt-2 flex-1
|
|
828
848
|
${a?"text-base line-clamp-3":"text-sm line-clamp-2"}
|
|
829
|
-
`,children:
|
|
849
|
+
`,children:l}),$.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1.5 mt-3",children:[$.slice(0,F).map(B=>e.jsxs("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-full bg-[var(--color-bg-tertiary)] text-[var(--color-text-tertiary)]",children:["#",B]},B)),$.length>F&&e.jsxs("span",{className:"text-[10px] font-mono text-[var(--color-text-tertiary)]",children:["+",$.length-F]})]}),e.jsxs("div",{className:"flex flex-col gap-3 mt-4 pt-3 border-t border-[var(--color-border-secondary)]",children:[x&&u&&e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(Se,{src:n,fallbackText:u,size:"sm"}),e.jsx("span",{className:"text-sm font-medium text-[var(--color-text-primary)] truncate",children:u})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-[var(--color-text-tertiary)]",children:[o&&e.jsx("time",{dateTime:z(o),children:H(o)}),R&&C!=null&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("svg",{className:"h-3 w-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),b("blogLabels.minRead",{count:C})]})]}),N&&e.jsx("div",{children:e.jsxs("span",{className:`
|
|
830
850
|
text-sm font-medium text-[var(--color-primary)]
|
|
831
851
|
inline-flex items-center gap-1
|
|
832
852
|
transition-all duration-200
|
|
833
|
-
${
|
|
834
|
-
`,children:[
|
|
853
|
+
${I?"opacity-100 translate-x-0.5":"opacity-70"}
|
|
854
|
+
`,children:[b("blogLabels.readMore"),e.jsx("svg",{className:`
|
|
835
855
|
h-4 w-4 transition-transform duration-200 rtl:-scale-x-100
|
|
836
|
-
${
|
|
837
|
-
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"})})]})})]})]})]})};
|
|
856
|
+
${I?"translate-x-0.5 rtl:-translate-x-0.5":""}
|
|
857
|
+
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"})})]})})]})]})]})};at.displayName="BlogCard";const je=()=>e.jsx("svg",{className:"flex-shrink-0",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}),Le=()=>e.jsxs("svg",{className:"flex-shrink-0",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("circle",{cx:"12",cy:"12",r:"5"}),e.jsx("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),e.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),e.jsx("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),e.jsx("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),e.jsx("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),e.jsx("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),e.jsx("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),e.jsx("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}),ot=()=>e.jsx("svg",{className:"flex-shrink-0",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M12 2C12 2 5 9 5 15C5 18.866 8.134 22 12 22C15.866 22 19 18.866 19 15C19 9 12 2 12 2Z"})}),Ne=[{value:"nightfall",label:"Nightfall",icon:e.jsx(je,{})},{value:"daylight",label:"Daylight",icon:e.jsx(Le,{})},{value:"dracula",label:"Dracula",icon:e.jsx(ot,{})}],st=t.createContext(void 0),$e=r=>({nightfall:e.jsx(je,{}),daylight:e.jsx(Le,{}),dracula:e.jsx(ot,{}),dark:e.jsx(je,{}),light:e.jsx(Le,{})})[r]||e.jsx(je,{}),Ot=({defaultTheme:r,themes:l,autoDetect:s=!0,children:u})=>{const n="dara-ui-theme",o=()=>{var g;const c=localStorage.getItem(n);return c||r||((g=Ne[0])==null?void 0:g.value)||"nightfall"},[C,m]=t.useState(Ne),[$,N]=t.useState(o);t.useEffect(()=>{var x,R;if(!s&&l){m(l);return}if(l){m(l);return}const c=[],g=document.styleSheets;try{for(const j of g)try{const p=j.cssRules||j.rules;for(const b of p)if(b instanceof CSSStyleRule){const f=(x=b.selectorText)==null?void 0:x.match(/\[data-theme="([^"]+)"\]/);if(f&&f[1]){const T=f[1],S=T.split("-").map(I=>I.charAt(0).toUpperCase()+I.slice(1)).join(" ");c.some(I=>I.value===T)||c.push({value:T,label:S,icon:$e(T)})}}}catch{continue}}catch{}if(c.length>0){if(m(c),!c.some(j=>j.value===$)){const j=((R=c[0])==null?void 0:R.value)||"nightfall";N(j),v(j)}}else l&&m(l)},[s,l]);const v=t.useCallback(c=>{document.documentElement.setAttribute("data-theme",c)},[]);t.useEffect(()=>{v($)},[$,v]);const a=t.useCallback(c=>{C.find(x=>x.value===c)&&(N(c),v(c),localStorage.setItem(n,c),window.dispatchEvent(new CustomEvent("dara-theme-change",{detail:{theme:c}})))},[C,v]);t.useEffect(()=>{const c=o();C.find(x=>x.value===c)&&v(c)},[C,v]),t.useEffect(()=>{const c=g=>{const{theme:x}=g.detail;x&&x!==$&&N(x)};return window.addEventListener("dara-theme-change",c),()=>{window.removeEventListener("dara-theme-change",c)}},[$]);const M=t.useMemo(()=>({theme:$,setTheme:a,themes:C}),[$,a,C]);return e.jsx(st.Provider,{value:M,children:u})},Wt=()=>{const r=t.useContext(st);if(!r)throw new Error("useTheme must be used within a ThemeProvider");return r},nt=({value:r,defaultValue:l,onChange:s,availableThemes:u,autoDetect:n=!0,size:o="md",iconOnly:C=!1,fixedWidth:m,className:$="",useContext:N=!0,openUpward:v=!1})=>{const[a,M]=t.useState(!1),[c,g]=t.useState(Ne),x=t.useRef(null),R="dara-ui-theme";let j=null,p=!1;try{j=Wt(),p=N&&!0}catch{p=!1,j=null}const b=r!==void 0,[f,T]=t.useState(()=>{var d;const h=localStorage.getItem(R);return h||l||((d=Ne[0])==null?void 0:d.value)||"nightfall"});let S;b?S=r:p&&j?S=j.theme:S=f,t.useEffect(()=>{var P,q;if(!n&&u){g(u);return}if(u){g(u);return}const h=[],d=document.styleSheets;try{for(const G of d)try{const O=G.cssRules||G.rules;for(const H of O)if(H instanceof CSSStyleRule){const z=(P=H.selectorText)==null?void 0:P.match(/\[data-theme="([^"]+)"\]/);if(z&&z[1]){const X=z[1],Q=X.split("-").map(F=>F.charAt(0).toUpperCase()+F.slice(1)).join(" ");h.some(F=>F.value===X)||h.push({value:X,label:Q,icon:$e(X)})}}}catch{continue}}catch{}if(h.length>0){if(g(h),!h.some(G=>G.value===S)){const G=((q=h[0])==null?void 0:q.value)||"nightfall";!b&&!p&&T(G),I(G)}}else u&&g(u)},[n,u]);const I=t.useCallback(h=>{document.documentElement.setAttribute("data-theme",h)},[]);t.useEffect(()=>{I(S)},[S,I]),t.useEffect(()=>{const h=d=>{x.current&&!x.current.contains(d.target)&&M(!1)};return a&&document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[a]);const E=t.useCallback(h=>{p&&j?j.setTheme(h):b||T(h),I(h),s==null||s(h),M(!1),window.dispatchEvent(new CustomEvent("dara-theme-change",{detail:{theme:h}}))},[p,j,b,s,I]),y=t.useMemo(()=>c.map(h=>({...h,icon:h.icon||$e(h.value)})),[c]),i={sm:{trigger:"px-3 py-1.5 text-xs",option:"px-3 py-1.5 text-xs",icon:"h-3 w-3",iconOnlySize:"w-8 h-8",chevronSize:"h-3 w-3",iconOnlyWidth:"32px"},md:{trigger:"px-4 py-2 text-sm",option:"px-4 py-2 text-sm",icon:"h-4 w-4",iconOnlySize:"w-10 h-10",chevronSize:"h-4 w-4",iconOnlyWidth:"40px"},lg:{trigger:"px-5 py-2.5 text-base",option:"px-5 py-2.5 text-base",icon:"h-5 w-5",iconOnlySize:"w-12 h-12",chevronSize:"h-5 w-5",iconOnlyWidth:"48px"}},k=y.find(h=>h.value===S),L=C?i[o].iconOnlyWidth:m||"140px",w=h=>{if(t.isValidElement(h)){const d=h;return t.cloneElement(d,{className:`flex-shrink-0 ${o==="sm"?"w-4 h-4":o==="lg"?"w-6 h-6":"w-5 h-5"} ${d.props.className||""}`,width:o==="sm"?"16":o==="lg"?"24":"20",height:o==="sm"?"16":o==="lg"?"24":"20",viewBox:d.props.viewBox||"0 0 24 24"})}return h};return C?e.jsxs("div",{ref:x,className:`relative inline-flex ${$}`,children:[e.jsx("button",{type:"button",onClick:()=>M(!a),className:`
|
|
838
858
|
inline-flex items-center justify-center
|
|
839
859
|
bg-[var(--color-bg-tertiary)]
|
|
840
860
|
text-[var(--color-text-primary)]
|
|
@@ -844,25 +864,25 @@
|
|
|
844
864
|
hover:border-[var(--color-border-secondary)]
|
|
845
865
|
transition-all duration-180
|
|
846
866
|
active:scale-95
|
|
847
|
-
${
|
|
867
|
+
${i[o].trigger}
|
|
848
868
|
flex-shrink-0
|
|
849
|
-
`,style:{width:
|
|
869
|
+
`,style:{width:m||i[o].iconOnlyWidth,minWidth:m||i[o].iconOnlyWidth,height:m||i[o].iconOnlyWidth,minHeight:m||i[o].iconOnlyWidth},"aria-expanded":a,"aria-haspopup":"listbox","aria-label":`Current theme: ${(k==null?void 0:k.label)||"Theme"}`,children:(k==null?void 0:k.icon)&&w(k.icon)}),e.jsx("div",{className:`
|
|
850
870
|
absolute z-50
|
|
851
871
|
left-1/2 -translate-x-1/2
|
|
852
|
-
${
|
|
872
|
+
${v?"bottom-full mb-1.5":"top-full mt-1.5"}
|
|
853
873
|
glass
|
|
854
874
|
rounded-[var(--radius-md)]
|
|
855
875
|
py-1
|
|
856
876
|
shadow-[var(--shadow-float)]
|
|
857
877
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
858
878
|
overflow-hidden
|
|
859
|
-
${a?"opacity-100 translate-y-0 pointer-events-auto":
|
|
860
|
-
`,style:{width:
|
|
879
|
+
${a?"opacity-100 translate-y-0 pointer-events-auto":v?"opacity-0 translate-y-2 pointer-events-none":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
880
|
+
`,style:{width:L,minWidth:L,position:"absolute",top:v?"auto":"100%",bottom:v?"100%":"auto",marginTop:v?"0":"6px",marginBottom:v?"6px":"0"},role:"listbox",children:y.map(h=>{const d=h.value===S;return e.jsx("button",{type:"button",onClick:()=>E(h.value),className:`
|
|
861
881
|
w-full flex items-center justify-center gap-2
|
|
862
|
-
${
|
|
882
|
+
${i[o].option}
|
|
863
883
|
${d?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
864
884
|
transition-colors duration-150
|
|
865
|
-
`,role:"option","aria-selected":d,title:
|
|
885
|
+
`,role:"option","aria-selected":d,title:h.label,children:h.icon&&w(h.icon)},h.value)})})]}):e.jsxs("div",{ref:x,className:`relative ${$}`,children:[e.jsxs("button",{type:"button",onClick:()=>M(!a),className:`
|
|
866
886
|
inline-flex items-center
|
|
867
887
|
bg-[var(--color-bg-tertiary)]
|
|
868
888
|
text-[var(--color-text-primary)]
|
|
@@ -872,72 +892,72 @@
|
|
|
872
892
|
hover:border-[var(--color-border-secondary)]
|
|
873
893
|
transition-all duration-180
|
|
874
894
|
active:scale-95
|
|
875
|
-
${
|
|
876
|
-
`,style:{width:
|
|
895
|
+
${i[o].trigger}
|
|
896
|
+
`,style:{width:m||"auto",minWidth:m||"auto"},"aria-expanded":a,"aria-haspopup":"listbox",children:[e.jsxs("span",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(k==null?void 0:k.icon)&&w(k.icon),e.jsx("span",{className:"font-mono tracking-wide truncate",children:(k==null?void 0:k.label)||"Theme"})]}),e.jsx("svg",{className:`
|
|
877
897
|
flex-shrink-0 ml-2
|
|
878
898
|
transition-transform duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
879
899
|
${a?"rotate-180":"rotate-0"}
|
|
880
|
-
${
|
|
900
|
+
${i[o].chevronSize}
|
|
881
901
|
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}),e.jsx("div",{className:`
|
|
882
902
|
absolute z-50
|
|
883
903
|
left-1/2 -translate-x-1/2
|
|
884
|
-
${
|
|
904
|
+
${v?"bottom-full mb-1.5":"top-full mt-1.5"}
|
|
885
905
|
pointer-events-none
|
|
886
|
-
`,style:{width:
|
|
906
|
+
`,style:{width:L,minWidth:L,top:v?"auto":"100%",bottom:v?"100%":"auto",marginTop:v?"0":"6px",marginBottom:v?"6px":"0"},children:e.jsx("div",{className:`
|
|
887
907
|
glass
|
|
888
908
|
rounded-[var(--radius-md)]
|
|
889
909
|
py-1
|
|
890
910
|
shadow-[var(--shadow-float)]
|
|
891
911
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
892
912
|
overflow-hidden
|
|
893
|
-
${a?"opacity-100 translate-y-0 pointer-events-auto":
|
|
894
|
-
`,children:
|
|
913
|
+
${a?"opacity-100 translate-y-0 pointer-events-auto":v?"opacity-0 translate-y-2 pointer-events-none":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
914
|
+
`,children:y.map(h=>{const d=h.value===S;return e.jsxs("button",{type:"button",onClick:()=>E(h.value),className:`
|
|
895
915
|
w-full flex items-center gap-2 text-left
|
|
896
|
-
${
|
|
916
|
+
${i[o].option}
|
|
897
917
|
${d?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
898
918
|
transition-colors duration-150
|
|
899
|
-
`,role:"option","aria-selected":d,children:[p.icon&&y(p.icon),e.jsx("span",{className:"truncate",children:p.label}),d&&e.jsx("svg",{className:"ml-auto h-4 w-4 flex-shrink-0 text-[var(--color-primary)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})]},p.value)})})})]})};st.displayName="ThemeChanger";const Wt={app:{title:"Dara UI Components"},hero:{version:"v1.0 - The Digital Archives",title:"DARA UI",subtitle:"A design system discovered inside a futuristic archive hidden beneath during a snowstorm."},navbar:{home:"Home",explore:"Explore",settings:"Settings",dashboard:"Dashboard",projects:"Projects",team:"Team",analytics:"Analytics",more:"More"},common:{thenImport:"Then import components:",hoverToFloat:"Hover to float",mission:"MISSION",requirements:"Requirements:",complete:"Complete",completeMission:"Complete Mission",areYouSureComplete:"Are you sure you want to complete the mission:",youWillEarn:"You will earn",uponCompletion:"upon completion."},codeBlock:{install:"npm install dara-ui",or:"or",yarnAdd:"yarn add dara-ui",thenImport:"Then import components:",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"Species",affiliation:"Affiliation"},productLabels:{addToCart:"Add to Cart",outOfStock:"Out of Stock",sale:"Sale",new:"New",limited:"Limited"},blogLabels:{readMore:"Read more",minRead:"{{count}} min"},sidebar:{title:"Sidebar",hint:"Collapsible · Groups · Sub-menus · RTL ready",logout:"Logout",main:"Main",management:"Management",dashboard:"Dashboard",projects:"Projects",team:"Team",documents:"Documents",messages:"Messages",settings:"Settings",invoices:"Invoices",reports:"Reports",archive:"Archive",inbox:"Inbox",sent:"Sent",drafts:"Drafts",collapse:"Collapse",expand:"Expand",subtitle:"Collapsible navigation with groups, sub-menus, and RTL support",tip1:"Click the collapse button or press Ctrl+B to toggle",tip2:"Items with sub-menus expand on click",tip3:"Active items are highlighted with a purple accent",activeProjects:"Active Projects",completedTasks:"Completed Tasks",teamMembers:"Team Members",notifications:"Notifications",darkMode:"Dark Mode",language:"Language",dashboardContent:"Welcome to your dashboard. Here you can see an overview of your projects and team activity.",projectsContent:"Manage all your projects in one place. You have 12 active projects.",teamContent:"Your team members and their roles. 5 members online.",invoicesContent:"View and manage all your invoices.",reportsContent:"Generate and view detailed reports.",archiveContent:"Access archived documents and records.",inboxContent:"Your unread messages and conversations.",sentContent:"Messages you have sent to others.",draftsContent:"Your saved drafts and pending messages.",settingsContent:"Configure your application preferences and account settings.",activeProjectsLabel:"Active Projects",completedTasksLabel:"Completed Tasks",teamMembersLabel:"Team Members",notificationsLabel:"Notifications",storageLabel:"Storage",quickActionsLabel:"Quick Actions",recentActivityLabel:"Recent Activity",deployAction:"Deploy",reviewAction:"Review",inviteAction:"Invite",upgradeAction:"Upgrade",projectAlpha:"Project Alpha",projectBeta:"Project Beta",projectGamma:"Project Gamma",projectDelta:"Project Delta",inProgress:"In Progress",completed:"Completed",onHold:"On Hold",review:"In Review",memberRole1:"Lead Developer",memberRole2:"Designer",memberRole3:"Product Manager",memberRole4:"QA Engineer",activityUpload:"Uploaded new archive files",activityComment:"Commented on Project Alpha",activityMerge:"Merged pull request #42",activityDeploy:"Deployed to production",minutesAgo:"{{count}} min ago",hoursAgo:"{{count}} hours ago",invoiceNumber:"Invoice #{{num}}",invoicePaid:"Paid",invoicePending:"Pending",invoiceOverdue:"Overdue",reportWeekly:"Weekly Report",reportMonthly:"Monthly Report",reportQuarterly:"Quarterly Report",mobileSidebarHint:"Swipe or tap the menu to open navigation",openMenu:"Open menu",closeMenu:"Close menu"},badges:{title:"Badges",variants:"Variants",sizes:"Sizes",outline:"Outline Variants",withGlow:"With Glow",withIcons:"With Icons",primary:"Primary",secondary:"Secondary",success:"Success",danger:"Danger",warning:"Warning",small:"Small",medium:"Medium",large:"Large",glowPrimary:"Glow Primary",glowSuccess:"Glow Success",glowDanger:"Glow Danger",package:"Package",done:"Done",pending:"Pending",failed:"Failed"},buttons:{title:"Button Variants",withGlow:"With Glow",withIcons:"With Icons",states:"Button States",sizesTitle:"Button Sizes",primary:"Primary",secondary:"Secondary",accent:"Accent",glass:"Glass",danger:"Danger",success:"Success",outline:"Outline",normal:"Normal",hover:"Hover",pressed:"Pressed",disabled:"Disabled",loading:"Loading",small:"Small",medium:"Medium",large:"Large",glowPrimary:"Primary Glow",glowSecondary:"Secondary Glow",glowAccent:"Accent Glow",launch:"Launch",next:"Next",confirm:"Confirm"},avatar:{title:"Avatar",sizes:"Sizes",shapes:"Shapes",status:"Status Indicators",glowEffects:"Glow Effects",withImage:"With Image",group:"Group",clickable:"Clickable"},tooltip:{title:"Tooltip",placements:"Placements",variants:"Variants",withBadge:"With Badge",longContent:"Long Content",solidLabel:"Solid",outlineLabel:"Outline",glassLabel:"Glass",top:"Top",bottom:"Bottom",left:"Left",right:"Right",topLeft:"Top Left",topRight:"Top Right",bottomLeft:"Bottom Left",bottomRight:"Bottom Right",glassTooltip:"Glass tooltip",solidTooltip:"Solid tooltip",outlineTooltip:"Outline tooltip",unreadMessages:"You have {{count}} unread messages",longTooltip:"This is a longer tooltip with more detailed information about the element you're hovering over.",hoverDetails:"Hover for details",disabledTooltip:"This tooltip is disabled",noArrow:"No arrow on this tooltip",interactive:"Interactive tooltip",demoTitle:"Tooltip Demo",demoDescription:"Hover over the buttons below to see tooltips in action",placementDemo:"Placement Demo",variantDemo:"Variant Demo",sizeDemo:"Size Demo",longContentDemo:"Long Content Demo",badgeDemo:"Badge Demo",disabledDemo:"Disabled Tooltip Demo",noArrowDemo:"No Arrow Demo"},tabs:{title:"Tabs",archive:"Archive",quests:"Quests",stats:"Stats",settings:"Settings",archiveContent:"Browse encrypted Jedi records, holocrons, and mission logs from the archive.",questsContent:"Active missions, bounties, and side-quests await your attention, Padawan.",statsContent:"Track your Force alignment, XP gains, and cybernetic enhancement levels.",settingsContent:"Configure your HUD, theme mode, and archive encryption preferences."},accordion:{title:"Accordion",mode:"Mode",single:"Single",multiple:"Multiple",singleDesc:"Only one item can be open at a time",multipleDesc:"Multiple items can be open simultaneously",controlled:"Controlled - Open items:",withIcons:"With Icons",q1:"What is Dara UI?",a1:"Dara UI is a design system that feels like an interface discovered inside a futuristic archive hidden beneath during a snowstorm. It blends glassmorphism, cyberpunk, gothic aesthetics, Apple minimalism, and anime HUD elements.",q2:"What themes are available?",a2:"Nightfall (default), Daylight (light) and Dracula (purple).",q3:"How do I install it?",a3:"npm install dara-ui, then import { Button, Card, Input } from 'dara-ui'. Works with Vite, Next.js, and CRA out of the box.",dashboard:"Dashboard",projects:"Projects",settingsAccordion:"Settings",dashboardContent:"Dashboard overview with key metrics and recent activity.",projectsContent:"Active projects and their current status.",settingsContentAccordion:"Configure your application preferences."},dropdown:{title:"Dropdown",basic:"Basic",withIcons:"With Icons",searchable:"Searchable",controlled:"Controlled - Selected:",selectFramework:"Select a framework...",withPlaceholder:"With placeholder",selectWithIcons:"Select with icons...",searchWithIcons:"Search with icons...",searchOptions:"Search options...",searchFrameworks:"Search frameworks...",typeToFilter:"Type to filter options",framework:"Framework",chooseFramework:"Choose your preferred framework",setVue:"Set Vue",setSvelte:"Set Svelte",setSolid:"Set Solid"},cards:{title:"Cards",variants:"Variants",floatGlow:"Float + Glow",featureCards:"Feature Cards",glassCard:"Glass Card",solidCard:"Solid Card",outlineCard:"Outline Card",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",launch:"Launch",analytics:"Analytics",deployProject:"Deploy your project with one click.",trackPerformance:"Track your performance metrics."},inputs:{title:"Inputs",basic:"Basic Inputs",withLabels:"With Labels",withIconsTitle:"With Icons",validation:"Validation States",textInput:"Text input",password:"Password",search:"Search",email:"Email",username:"Username",enterUsername:"Enter username",enterEmail:"Enter email",emailHelper:"We'll never share your email.",success:"Success",error:"Error",validInput:"Valid input!",somethingWrong:"Something went wrong"},modal:{title:"Modal",openModal:"Open Modal",viewContent:"View Content",archiveAccess:"Archive Access",acceptMission:"Accept Mission",decline:"Decline",modalDescription:"You've discovered a sealed Jedi archive fragment. This modal uses glass-heavy styling with blur(30px) backdrop, scale-in animation, and is rendered via React Portal outside the DOM tree."},toast:{title:"Toast Notifications",subtitle:"Top-right · Minimal · 220ms slide-in · Auto-dismiss",successToast:"Success Toast",errorToast:"Error Toast",warningToast:"Warning Toast",infoToast:"Info Toast",successMsg:"Mission complete! +300 XP earned.",errorMsg:"Connection lost. Retrying...",warningMsg:"Please check your connection",infoMsg:"Archives are being indexed"},progress:{title:"Progress",horizontal:"Horizontal",labelInside:"Label Inside Bar",displayTypes:"Display Types",sizes:"Sizes",radial:"Radial",radialCustom:"Radial with Custom Label",radialSizes:"Radial Sizes",almostDone:"Almost done!",loading:"Loading...",done:"Done!"},xpbar:{title:"XPBar, RankTier",rankProgress:"RANK PROGRESS",missionProgress:"MISSION PROGRESS",tier:"Tier",rank:"Rank",points:"Points",exp:"EXP",score:"Score",prestige:"Prestige"},rank:{common:"Common",uncommon:"Uncommon",rare:"Rare",epic:"Epic",legendary:"Legendary",recruit:"Recruit",soldier:"Soldier",veteran:"Veteran",elite:"Elite",commander:"Commander"},glow:{title:"Glow Effects",glowPrimary:"Glow Primary",glowSecondary:"Glow Secondary",glowAccent:"Glow Accent"},quest:{title:"Quest Cards",buildCMS:"Build CMS",buildCMSDesc:"Deploy the encrypted Jedi archive interface before the snow melts.",secureArchives:"Secure Archives",secureArchivesDesc:"Implement end-to-end encryption for all stored data in the archive.",legendaryQuest:"Legendary Quest: The Lost Archive",legendaryQuestDesc:"Journey into the depths of the forgotten vault and retrieve the ancient holocron.",mapNightCity:"Map Night City",mapNightCityDesc:"Create a comprehensive map of the cyberpunk district before the data purge.",requirements:"Requirements",completeReviews:"Complete 3 code reviews",writeTests:"Write 5 unit tests",deployStaging:"Deploy to staging",reachLevel:"Reach level 25",defeatGuardian:"Defeat the Shadow Guardian",collectArtifacts:"Collect 3 ancient artifacts",solveRiddle:"Solve the sphinx riddle",scanLocations:"Scan 10 locations",interviewNPCs:"Interview 5 NPCs",uploadArchive:"Upload to the archive",deadline:"Deadline",deadlineToday:"Deadline: Today",deadlineTomorrow:"Deadline: Tomorrow",deadlineTonight:"Deadline: Tonight",deadlineYesterday:"Deadline: Yesterday",daysAgo:"days ago",days:"days",week:"week",weeks:"weeks",month:"month",months:"months",years:"years"},character:{title:"Character Cards",vertical:"Vertical Layout (default)",horizontal:"Horizontal Layout",daraName:"Dara",daraSubtitle:"Jedi Archivist",daraQuote:"The dark is not to be feared - it is to be archived.",cipherName:"Cipher",cipherSubtitle:"Netrunner",cipherQuote:"The code is the key to everything.",shadowName:"Shadow",shadowSubtitle:"Night Hunter",shadowQuote:"I move in the darkness where they cannot see.",force:"Force",combat:"Combat",intelligence:"Intelligence",wisdom:"Wisdom",hacking:"Hacking",stealth:"Stealth",agility:"Agility",strength:"Strength",speciesHumanCyborg:"Human/Cyborg",speciesCyborg:"Cyborg",speciesVampire:"Vampire",affiliationJedi:"Jedi Order",affiliationNetwatch:"Netwatch",affiliationNightCouncil:"Night Council",traitMbtiIntj:"MBTI: INTJ",traitMbtiIntp:"MBTI: INTP",traitMbtiIstp:"MBTI: ISTP",traitHumanCyborg:"Human/Cyborg",traitCyborg:"Cyborg",traitVampire:"Vampire"},statsWidget:{title:"Stats Widget",radialVariant:"Radial Variant",barVariant:"Bar Variant",horizontalLayout:"Horizontal Layout",forceStats:"FORCE STATS",characterStats:"CHARACTER STATS",progress:"PROGRESS",skills:"SKILLS",battleStats:"BATTLE STATS",skillProgress:"SKILL PROGRESS",health:"Health",mana:"Mana",stamina:"Stamina",level:"Level",endurance:"Endurance",luck:"Luck",statsSuffix:"stats"},themeChanger:{title:"Theme Changer",default:"Default",iconOnly:"Icon Only",fixedWidth:"Fixed Width (160px)",small:"Small",smallIconOnly:"Small Icon Only",customThemes:"Custom Themes",demo:"Demo",themeChangerDesc:"Theme changer with auto-detection, icon-only mode, and fixed width support. Pass iconOnly for compact navbar usage, or fixedWidth for consistent sizing."},languageChanger:{title:"Language Changer",default:"Default",iconOnly:"Icon Only",fixedWidth:"Fixed Width (160px)",small:"Small",smallIconOnly:"Small Icon Only",customLanguages:"Custom Languages",demo:"Demo",languageChangerDesc:"Language changer with localStorage persistence, icon-only mode, and fixed width support. Pass iconOnly for compact navbar usage, or fixedWidth for consistent sizing. The language is persisted via localStorage and updates the lang and dir attributes on the html element."},gradients:{title:"Gradients",primary:"Primary",accent:"Accent",success:"Success",danger:"Danger"},effects:{title:"Effects",glassEffect:"Glass Effect",glowPrimary:"Glow Primary",glowAccent:"Glow Accent"},typography:{title:"Typography",textSecondary:"Text Secondary",regularBody:"Regular body text with Inter font",gradientHeading:"Gradient Heading",accentText:"Accent colored text",codeExample:'console.log("Code with JetBrains Mono");'},persian:{title:"Persian Support",persianText:"این متن با فونت وزیرمتن نمایش داده میشود",persianHeading:"عنوان فارسی با قلم Kook",persianDesc:"متن فارسی با اندازه کوچک و رنگ ثانویه"},checkbox:{title:"Checkbox",basic:"Basic Checkboxes",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",unchecked:"Unchecked",checked:"Checked",glowChecked:"Glow when checked",small:"Small",medium:"Medium",large:"Large",normal:"Normal",error:"Error State",disabled:"Disabled",disabledChecked:"Disabled Checked",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"RTL mode - label appears on the right",controlledLabel:"Controlled checkbox",status:"Status",check:"Check",uncheck:"Uncheck",groupLabel:"Select your preferences:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",selectedCount:"Selected"},switch:{title:"Switch",basic:"Basic Switches",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",off:"Off",on:"On",glowOn:"Glow when on",small:"Small",medium:"Medium",large:"Large",normal:"Normal",disabledOff:"Disabled Off",disabledOn:"Disabled On",rtlLabel1:"فعال سازی حالت شب",rtlLabel2:"فعال کردن اعلانها",rtlLabel3:"حالت خودکار",rtlNote:"RTL mode - label stays above, switch mirrors direction",controlledLabel:"Controlled switch",status:"Status",turnOn:"Turn On",turnOff:"Turn Off",groupLabel:"Settings:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",enabledCount:"Enabled",withIcons:"With Icons",notifications:"Notifications",darkMode:"Dark mode",sound:"Sound"},radio:{title:"Radio",basic:"Basic Radios",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",unselected:"Unselected",selected:"Selected",glowSelected:"Glow when selected",small:"Small",medium:"Medium",large:"Large",normal:"Normal",error:"Error State",disabled:"Disabled",disabledChecked:"Disabled Checked",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"RTL mode - label appears on the right",controlledLabel:"Controlled radio",status:"Status",select:"Select",deselect:"Deselect",groupLabel:"Select your preference:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",horizontalGroup:"Horizontal group",nightfall:"Nightfall",daylight:"Daylight",dracula:"Dracula"},range:{title:"Range Slider",basic:"Basic Ranges",colors:"Color Variants",sizes:"Sizes",customUnits:"Custom Units",valuePositions:"Value Positions",sparkleAtMax:"Sparkle at Max",withoutGlow:"Without Glow",controlled:"Controlled Mode",volume:"Volume",brightness:"Brightness",contrast:"Contrast",primary:"Primary",secondary:"Secondary",accent:"Accent",success:"Success",danger:"Danger",warning:"Warning",small:"Small",medium:"Medium (default)",large:"Large",pixels:"Pixels",price:"Price",rial:"Rial (تومان)",temperature:"Temperature",left:"Left",right:"Right (default)",top:"Top",bottom:"Bottom",almostMax:"Almost at max",atMax:"At max (sparkle!)",sparkleNote:"Sparkle burst animation when reaching maximum value",noGlow:"No glow effect",noGlow2:"Secondary without glow",liveValue:"Live value",finalValue:"Final value",controlledLabel:"Controlled range",set25:"Set 25%",set75:"Set 75%",set100:"Set 100%",reset:"Reset"},productCard:{title:"Product Cards",variants:"Variants",layouts:"Layouts",glows:"Glow Effects",withActions:"With Quick Actions",responsive:"Responsive (Full width on mobile)",addToCart:"Add to Cart",outOfStock:"Out of Stock",sale:"Sale",new:"New",limited:"Limited",reviews:"reviews",vertical:"Vertical",horizontal:"Horizontal",compact:"Compact",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",product1:"Cyberpunk 2077 - Collector's Edition",product2:"Jedi Holocron - Limited Run",product3:"Neon Samurai Controller",product4:"Data Shard - Encrypted",desc1:"Limited edition collector's set with art book, steelbook case, and exclusive digital content.",desc2:"Authentic Jedi holocron replica with light and sound effects. Limited to 500 units worldwide.",desc3:"Wireless controller with RGB lighting, programmable back buttons, and low-latency connection.",desc4:"Encrypted data shard containing classified archive fragments. Requires Level 5 clearance.",category1:"Gaming",category2:"Collectibles",category3:"Accessories",category4:"Data",tag1:"limited",tag2:"collector",tag3:"exclusive",tag4:"encrypted"},blogCard:{title:"Blog Cards",variants:"Variants",layouts:"Layouts",glows:"Glow Effects",responsive:"Responsive (Full width on mobile)",readMore:"Read More",featured:"Featured Post",vertical:"Vertical",horizontal:"Horizontal",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",post1:"The Future of Glassmorphism in UI Design",post2:"Building a Design System from Scratch",post3:"Mastering 3D Hover Effects in React",post4:"The Art of Cyberpunk Aesthetics",excerpt1:"Explore how glassmorphism is evolving and why it's becoming the go-to aesthetic for modern interfaces in 2024.",excerpt2:"A comprehensive guide to building a design system that scales, from tokens to components.",excerpt3:"Learn how to create smooth 3D tilt effects for cards, images, and interactive elements.",excerpt4:"Dive into the cyberpunk aesthetic and how it influences modern UI design.",author1:"Jane Doe",author2:"John Smith",author3:"Alex Rivers",author4:"Taylor Night",category1:"Design",category2:"Development",category3:"React",category4:"Aesthetics",tag1:"design",tag2:"tutorial",tag3:"react",tag4:"aesthetic"},scrollReveal:{title:"Scroll Reveal",subtitle:"Animate elements into view as you scroll",animation:"Animation",stagger:"Staggered Reveal",allPresets:"All Animation Presets",triggerAgain:"Re-trigger on Scroll Back",demoTip:"Scroll down to see elements animate in"},pageLoader:{title:"Page Loader",subtitle:"Full-screen loading overlay with multiple shapes",shapes:"Loader Shapes",spinner:"Spinner",ring:"Ring",dots:"Dots",pulse:"Pulse",bars:"Bars",withBrand:"With Brand Mark",withProgress:"With Progress Bar",provider:"Provider Demo",loadingArchives:"Loading archives...",downloading:"Downloading data...",navigating:"Navigating...",fetchingData:"Fetching data...",uploading:"Uploading...",simulateRoute:"Simulate Route Change",simulateFetch:"Simulate Data Fetch",simulateUpload:"Simulate Upload with Progress"}},Gt={app:{title:"کامپوننتهای دارا UI"},hero:{version:"نسخه ۱.۰ - آرشیو دیجیتال",title:"دارا UI",subtitle:"یک سیستم طراحی کشفشده در آرشیوی آیندهنگرانه که در زیر برف پنهان شده بود."},navbar:{home:"خانه",explore:"کاوش",settings:"تنظیمات",dashboard:"داشبورد",projects:"پروژهها",team:"تیم",analytics:"تحلیل",more:"بیشتر"},common:{thenImport:"سپس کامپوننتها را ایمپورت کنید:",hoverToFloat:"برای شناوری هاور کنید",mission:"ماموریت",requirements:"نیازمندیها:",complete:"تکمیل",completeMission:"تکمیل ماموریت",areYouSureComplete:"آیا مطمئن هستید که میخواهید ماموریت را تکمیل کنید:",youWillEarn:"شما دریافت خواهید کرد",uponCompletion:"پس از تکمیل."},codeBlock:{install:"npm install dara-ui",or:"یا",yarnAdd:"yarn add dara-ui",thenImport:"سپس کامپوننتها را ایمپورت کنید:",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"گونه",affiliation:"وابستگی"},productLabels:{addToCart:"افزودن به سبد",outOfStock:"ناموجود",sale:"تخفیف",new:"جدید",limited:"محدود"},blogLabels:{readMore:"ادامه مطلب",minRead:"{{count}} دقیقه"},sidebar:{title:"سایدبار",hint:"جمعشونده · گروهها · زیرمنوها · آماده RTL",logout:"خروج",main:"اصلی",management:"مدیریت",dashboard:"داشبورد",projects:"پروژهها",team:"تیم",documents:"اسناد",messages:"پیامها",settings:"تنظیمات",invoices:"فاکتورها",reports:"گزارشها",archive:"آرشیو",inbox:"صندوق ورودی",sent:"ارسالشده",drafts:"پیشنویسها",collapse:"جمع کردن",expand:"باز کردن",subtitle:"ناوبری جمعشونده با گروهها، زیرمنوها و پشتیبانی از RTL",tip1:"برای جمع کردن یا باز کردن، دکمه را کلیک کنید یا Ctrl+B را فشار دهید",tip2:"آیتمهای دارای زیرمنو با کلیک باز میشوند",tip3:"آیتمهای فعال با رنگ بنفش مشخص شدهاند",activeProjects:"پروژههای فعال",completedTasks:"وظایف انجام شده",teamMembers:"اعضای تیم",notifications:"اعلانها",darkMode:"حالت تاریک",language:"زبان",dashboardContent:"به داشبورد خود خوش آمدید. در اینجا میتوانید نمای کلی از پروژهها و فعالیت تیم خود را مشاهده کنید.",projectsContent:"همه پروژههای خود را در یک مکان مدیریت کنید. شما ۱۲ پروژه فعال دارید.",teamContent:"اعضای تیم و نقشهای آنها. ۵ عضو آنلاین هستند.",invoicesContent:"مشاهده و مدیریت تمام فاکتورهای شما.",reportsContent:"ایجاد و مشاهده گزارشهای دقیق.",archiveContent:"دسترسی به اسناد و مدارک بایگانی شده.",inboxContent:"پیامهای خوانده نشده و مکالمات شما.",sentContent:"پیامهایی که به دیگران ارسال کردهاید.",draftsContent:"پیشنویسهای ذخیره شده و پیامهای در انتظار شما.",settingsContent:"تنظیمات برنامه و حساب کاربری خود را پیکربندی کنید.",activeProjectsLabel:"پروژههای فعال",completedTasksLabel:"وظایف انجام شده",teamMembersLabel:"اعضای تیم",notificationsLabel:"اعلانها",storageLabel:"فضای ذخیرهسازی",quickActionsLabel:"اقدامات سریع",recentActivityLabel:"فعالیتهای اخیر",deployAction:"استقرار",reviewAction:"بررسی",inviteAction:"دعوت",upgradeAction:"ارتقا",projectAlpha:"پروژه آلفا",projectBeta:"پروژه بتا",projectGamma:"پروژه گاما",projectDelta:"پروژه دلتا",inProgress:"در حال انجام",completed:"تکمیل شده",onHold:"متوقف شده",review:"در بررسی",memberRole1:"توسعهدهنده ارشد",memberRole2:"طراح",memberRole3:"مدیر محصول",memberRole4:"مهندس تست",activityUpload:"فایلهای آرشیو جدید را آپلود کرد",activityComment:"در پروژه آلفا نظر داد",activityMerge:"درخواست ادغام #۴۲ را ادغام کرد",activityDeploy:"به محیط عملیاتی مستقر کرد",minutesAgo:"{{count}} دقیقه پیش",hoursAgo:"{{count}} ساعت پیش",invoiceNumber:"فاکتور #{{num}}",invoicePaid:"پرداخت شده",invoicePending:"در انتظار",invoiceOverdue:"معوق",reportWeekly:"گزارش هفتگی",reportMonthly:"گزارش ماهانه",reportQuarterly:"گزارش فصلی",mobileSidebarHint:"برای باز کردن منو، بکشید یا روی آن ضربه بزنید",openMenu:"باز کردن منو",closeMenu:"بستن منو"},badges:{title:"نشانها",variants:"واریانتها",sizes:"اندازهها",outline:"واریانتهای خطی",withGlow:"با درخشش",withIcons:"با آیکونها",primary:"اصلی",secondary:"ثانویه",success:"موفق",danger:"خطر",warning:"اخطار",small:"کوچک",medium:"متوسط",large:"بزرگ",glowPrimary:"درخشش اصلی",glowSuccess:"درخشش موفق",glowDanger:"درخشش خطر",package:"بسته",done:"انجام شد",pending:"در انتظار",failed:"ناموفق"},buttons:{title:"واریانتهای دکمه",withGlow:"با درخشش",withIcons:"با آیکونها",states:"وضعیتهای دکمه",sizesTitle:"اندازههای دکمه",primary:"اصلی",secondary:"ثانویه",accent:"متضاد",glass:"شیشهای",danger:"خطر",success:"موفق",outline:"خطی",normal:"عادی",hover:"هاور",pressed:"فشرده",disabled:"غیرفعال",loading:"در حال بارگذاری",small:"کوچک",medium:"متوسط",large:"بزرگ",glowPrimary:"درخشش اصلی",glowSecondary:"درخشش ثانویه",glowAccent:"درخشش متضاد",launch:"اجرا",next:"بعدی",confirm:"تأیید"},avatar:{title:"آواتار",sizes:"اندازهها",shapes:"اشکال",status:"وضعیتها",glowEffects:"جلوههای درخشش",withImage:"با تصویر",group:"گروه",clickable:"قابل کلیک"},tooltip:{title:"راهنما",placements:"موقعیتها",variants:"واریانتها",withBadge:"با نشان",longContent:"متن بلند",solidLabel:"توپر",outlineLabel:"خطی",glassLabel:"شیشهای",top:"بالا",bottom:"پایین",left:"چپ",right:"راست",topLeft:"بالا چپ",topRight:"بالا راست",bottomLeft:"پایین چپ",bottomRight:"پایین راست",glassTooltip:"راهنمای شیشهای",solidTooltip:"راهنمای توپر",outlineTooltip:"راهنمای خطی",unreadMessages:"شما {{count}} پیام خواندهنشده دارید",longTooltip:"این یک راهنمای بلندتر با اطلاعات دقیقتر درباره المان مورد نظر است.",hoverDetails:"برای جزئیات هاور کن",disabledTooltip:"این راهنما غیرفعال است",noArrow:"بدون پیکان در این راهنما",interactive:"راهنمای تعاملی",demoTitle:"نمایش راهنما",demoDescription:"برای مشاهده راهنماها، روی دکمههای زیر هاور کنید",placementDemo:"نمایش موقعیتها",variantDemo:"نمایش واریانتها",sizeDemo:"نمایش اندازهها",longContentDemo:"نمایش متن بلند",badgeDemo:"نمایش با نشان",disabledDemo:"نمایش راهنمای غیرفعال",noArrowDemo:"نمایش بدون پیکان"},tabs:{title:"تبها",archive:"آرشیو",quests:"ماموریتها",stats:"آمار",settings:"تنظیمات",archiveContent:"مرور سوابق رمزنگاریشده جدای، هولوکرونها و گزارش ماموریتها از آرشیو کلگری.",questsContent:"ماموریتهای فعال، جایزهها و ماموریتهای جانبی منتظر توجه شما هستند، پادوان.",statsContent:"همترازی نیرو، افزایش XP و سطوح ارتقای سایبرنتیک خود را پیگیری کنید.",settingsContent:"هاد، تم و تنظیمات رمزنگاری آرشیو را پیکربندی کنید."},accordion:{title:"آکاردئون",mode:"حالت",single:"تکی",multiple:"چندگانه",singleDesc:"فقط یک آیتم میتواند در هر زمان باز باشد",multipleDesc:"چندین آیتم میتوانند همزمان باز باشند",controlled:"کنترلشده - آیتمهای باز:",withIcons:"با آیکونها",q1:"دارا UI چیست؟",a1:"دارا UI یک سیستم طراحی است که حس یک رابط کشفشده در آرشیوی آیندهنگرانه در زیر کلگری در طوفان برف را دارد. ترکیبی از شیشهای، سایبرپانک، گوتیک، مینیمالیسم اپل و عناصر هاد انیمهای.",q2:"چه تمهایی موجود است؟",a2:"آرشیو شب (پیشفرض)، کلگری برفی (روشن)، حالت سیت (سیاه + قرمز)، معبد جدای (سفید + آبی)، دراکولا (بنفش) و شراب (قرمز تیره).",q3:"چگونه نصب کنم؟",a3:"npm install dara-ui, بعدش import { Button, Card, Input } from 'dara-ui' رو اول کدت اضافه کن. این کتابخونه با Vite، Next.js، و CRA قابل استفادست.",dashboard:"داشبورد",projects:"پروژهها",settingsAccordion:"تنظیمات",dashboardContent:"نمای کلی داشبورد با معیارهای کلیدی و فعالیتهای اخیر.",projectsContent:"پروژههای فعال و وضعیت فعلی آنها.",settingsContentAccordion:"تنظیمات برنامه خود را پیکربندی کنید."},dropdown:{title:"دراپداون",basic:"پایه",withIcons:"با آیکونها",searchable:"قابل جستجو",controlled:"کنترلشده - انتخابشده:",selectFramework:"یک فریمورک انتخاب کنید...",withPlaceholder:"با جایگذاری",selectWithIcons:"با آیکون انتخاب کنید...",searchWithIcons:"با آیکون جستجو کنید...",searchOptions:"جستجوی گزینهها...",searchFrameworks:"جستجوی فریمورکها...",typeToFilter:"برای فیلتر کردن تایپ کنید",framework:"فریمورک",chooseFramework:"فریمورک مورد نظر خود را انتخاب کنید",setVue:"تنظیم Vue",setSvelte:"تنظیم Svelte",setSolid:"تنظیم Solid"},cards:{title:"کارتها",variants:"واریانتها",floatGlow:"شناور + درخشش",featureCards:"کارتهای ویژه",glassCard:"کارت شیشهای",solidCard:"کارت توپر",outlineCard:"کارت خطی",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",launch:"اجرا",analytics:"تحلیل",deployProject:"پروژه خود را با یک کلیک مستقر کنید.",trackPerformance:"معیارهای عملکرد خود را پیگیری کنید."},inputs:{title:"ورودیها",basic:"ورودیهای پایه",withLabels:"با برچسبها",withIconsTitle:"با آیکونها",validation:"وضعیتهای اعتبارسنجی",textInput:"ورودی متن",password:"رمز عبور",search:"جستجو",email:"ایمیل",username:"نام کاربری",enterUsername:"نام کاربری را وارد کنید",enterEmail:"ایمیل را وارد کنید",emailHelper:"ما هرگز ایمیل شما را به اشتراک نمیگذاریم.",success:"موفق",error:"خطا",validInput:"ورودی معتبر!",somethingWrong:"مشکلی پیش آمده است"},modal:{title:"مودال",openModal:"باز کردن مودال",viewContent:"مشاهده محتوا",archiveAccess:"دسترسی به آرشیو",acceptMission:"پذیرش ماموریت",decline:"رد کردن",modalDescription:"شما یک قطعه آرشیو جدای مهر و موم شده را کشف کردید. این مودال از استایل glass-heavy با blur(30px) استفاده میکند."},toast:{title:"اعلانهای توست",subtitle:"بالا-راست · مینیمال · اسلاید ۲۲۰ms · خودکار حذف",successToast:"توست موفق",errorToast:"توست خطا",warningToast:"توست اخطار",infoToast:"توست اطلاعات",successMsg:"ماموریت انجام شد! +۳۰۰ XP دریافت شد.",errorMsg:"اتصال قطع شد. تلاش مجدد...",warningMsg:"لطفا اتصال خود را بررسی کنید",infoMsg:"آرشیوها در حال ایندکس شدن هستند"},progress:{title:"پیشرفت",horizontal:"افقی",labelInside:"برچسب داخل نوار",displayTypes:"انواع نمایش",sizes:"اندازهها",radial:"دایرهای",radialCustom:"دایرهای با برچسب سفارشی",radialSizes:"اندازههای دایرهای",almostDone:"تقریبا تمام شد!",loading:"لودینگ...",done:"انجام شد!"},xpbar:{title:"نوار تجربه، سطح",rankProgress:"پیشرفت رتبه",missionProgress:"پیشرفت ماموریت",tier:"سطح",rank:"رتبه",points:"امتیاز",exp:"تجربه",score:"امتیاز",prestige:"اعتبار"},rank:{common:"معمولی",uncommon:"غیرمعمول",rare:"کمیاب",epic:"حماسی",legendary:"افسانهای",recruit:"تازهکار",soldier:"سرباز",veteran:"کهنهکار",elite:"نخبه",commander:"فرمانده"},glow:{title:"جلوههای درخشش",glowPrimary:"درخشش بنفش",glowSecondary:"درخشش فیروزهای",glowAccent:"درخشش صورتی"},quest:{title:"کارتهای ماموریت",buildCMS:"ساخت CMS",buildCMSDesc:"رابط آرشیو جدای را پیش از آب شدن برفها مستقر کنید.",secureArchives:"ایمنسازی آرشیو",secureArchivesDesc:"رمزنگاری سرتاسری برای تمام دادههای ذخیرهشده در آرشیو پیادهسازی کنید.",legendaryQuest:"ماموریت افسانهای: آرشیو گمشده",legendaryQuestDesc:"به اعماق طاق فراموششده سفر کنید و هولوکرون باستانی را بازیابی کنید.",mapNightCity:"نقشهبرداری شبشهر",mapNightCityDesc:"نقشه جامعی از منطقه سایبرپانکی قبل از پاکسازی داده ایجاد کنید.",requirements:"نیازمندیها",completeReviews:"تکمیل ۳ بازبینی کد",writeTests:"نوشتن ۵ تست واحد",deployStaging:"استقرار در محیط تست",reachLevel:"رسیدن به سطح ۲۵",defeatGuardian:"شکست دادن نگهبان سایه",collectArtifacts:"جمعآوری ۳ اثر باستانی",solveRiddle:"حل معما",scanLocations:"اسکن ۱۰ مکان",interviewNPCs:"مصاحبه با ۵ شخصیت",uploadArchive:"آپلود در آرشیو",deadline:"مهلت",deadlineToday:"مهلت: امروز",deadlineTomorrow:"مهلت: فردا",deadlineTonight:"مهلت: امشب",deadlineYesterday:"مهلت: دیروز",daysAgo:"روز پیش",days:"روز",week:"هفته",weeks:"هفته",month:"ماه",months:"ماه",years:"سال"},character:{title:"کارتهای شخصیت",vertical:"چیدمان عمودی (پیشفرض)",horizontal:"چیدمان افقی",daraName:"دارا",daraSubtitle:"بایگان جدای",daraQuote:"تاریکی ترسناک نیست - باید بایگانی شود.",cipherName:"سایفر",cipherSubtitle:"نترانر",cipherQuote:"کد کلید همه چیز است.",shadowName:"سایه",shadowSubtitle:"شکارچی شب",shadowQuote:"من در تاریکی حرکت میکنم جایی که آنها نمیتوانند ببینند.",force:"نیرو",combat:"رزمی",intelligence:"هوش",wisdom:"خرد",hacking:"هک",stealth:"مخفیکاری",agility:"چابکی",strength:"قدرت",speciesHumanCyborg:"انسان/سایبورگ",speciesCyborg:"سایبورگ",speciesVampire:"خونآشام",affiliationJedi:"فرقه جدای",affiliationNetwatch:"نتواچ",affiliationNightCouncil:"شورای شب",traitMbtiIntj:"MBTI: INTJ",traitMbtiIntp:"MBTI: INTP",traitMbtiIstp:"MBTI: ISTP",traitHumanCyborg:"انسان/سایبورگ",traitCyborg:"سایبورگ",traitVampire:"خونآشام"},statsWidget:{title:"ویجت آمار",radialVariant:"واریانت دایرهای",barVariant:"واریانت نواری",horizontalLayout:"چیدمان افقی",forceStats:"آمار نیرو",characterStats:"آمار شخصیت",progress:"پیشرفت",skills:"مهارتها",battleStats:"آمار نبرد",skillProgress:"پیشرفت مهارت",health:"سلامت",mana:"مانا",stamina:"استقامت",level:"سطح",endurance:"استقامت",luck:"شانس",statsSuffix:"آمار"},themeChanger:{title:"تغییر دهنده تم",default:"پیشفرض",iconOnly:"فقط آیکون",fixedWidth:"عرض ثابت (۱۶۰px)",small:"کوچک",smallIconOnly:"کوچک فقط آیکون",customThemes:"تمهای سفارشی",demo:"نمایش",themeChangerDesc:"تغییر دهنده تم با تشخیص خودکار، حالت فقط آیکون و پشتیبانی از عرض ثابت. برای استفاده فشرده در نوار ناوبری از iconOnly استفاده کنید، یا برای اندازهگیری ثابت از fixedWidth استفاده کنید."},languageChanger:{title:"تغییر دهنده زبان",default:"پیشفرض",iconOnly:"فقط آیکون",fixedWidth:"عرض ثابت (۱۶۰px)",small:"کوچک",smallIconOnly:"کوچک فقط آیکون",customLanguages:"زبانهای سفارشی",demo:"نمایش",languageChangerDesc:"تغییر دهنده زبان با ذخیرهسازی در localStorage، حالت فقط آیکون و پشتیبانی از عرض ثابت. برای استفاده فشرده در نوار ناوبری از iconOnly استفاده کنید، یا برای اندازهگیری ثابت از fixedWidth استفاده کنید. زبان در localStorage ذخیره شده و ویژگیهای lang و dir روی عنصر html بهروز میشوند."},gradients:{title:"گرادیانها",primary:"اصلی",accent:"متضاد",success:"موفق",danger:"خطر"},effects:{title:"جلوهها",glassEffect:"جلوه شیشهای",glowPrimary:"درخشش بنفش",glowAccent:"درخشش صورتی"},typography:{title:"تایپوگرافی",textSecondary:"متن ثانویه",regularBody:"متن معمولی با فونت Inter",gradientHeading:"عنوان گرادیان",accentText:"متن با رنگ متضاد",codeExample:'console.log("کد با فونت JetBrains Mono");'},persian:{title:"پشتیبانی از فارسی",persianText:"این متن با فونت وزیرمتن نمایش داده میشود",persianHeading:"عنوان فارسی با قلم Kook",persianDesc:"متن فارسی با اندازه کوچک و رنگ ثانویه"},checkbox:{title:"چکباکس",basic:"چکباکسهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",unchecked:"تیک نخورده",checked:"تیک خورده",glowChecked:"درخشش هنگام تیک خوردن",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",error:"حالت خطا",disabled:"غیرفعال",disabledChecked:"غیرفعال تیک خورده",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"حالت RTL - برچسب در سمت راست قرار میگیرد",controlledLabel:"چکباکس کنترلشده",status:"وضعیت",check:"تیک بزن",uncheck:"تیک بردار",groupLabel:"تنظیمات خود را انتخاب کنید:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",selectedCount:"انتخاب شده"},switch:{title:"سوئیچ",basic:"سوئیچهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",off:"خاموش",on:"روشن",glowOn:"درخشش هنگام روشن بودن",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",disabledOff:"غیرفعال خاموش",disabledOn:"غیرفعال روشن",rtlLabel1:"فعال سازی حالت شب",rtlLabel2:"فعال کردن اعلانها",rtlLabel3:"حالت خودکار",rtlNote:"حالت RTL - برچسب در بالا، سوئیچ جهت خود را تغییر میدهد",controlledLabel:"سوئیچ کنترلشده",status:"وضعیت",turnOn:"روشن کن",turnOff:"خاموش کن",groupLabel:"تنظیمات:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",enabledCount:"فعال",withIcons:"با آیکونها",notifications:"اعلانها",darkMode:"حالت شب",sound:"صدا"},radio:{title:"رادیو",basic:"رادیوهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",unselected:"انتخاب نشده",selected:"انتخاب شده",glowSelected:"درخشش هنگام انتخاب",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",error:"حالت خطا",disabled:"غیرفعال",disabledChecked:"غیرفعال انتخاب شده",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"حالت RTL - برچسب در سمت راست قرار میگیرد",controlledLabel:"رادیو کنترلشده",status:"وضعیت",select:"انتخاب",deselect:"لغو انتخاب",groupLabel:"تنظیمات خود را انتخاب کنید:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",horizontalGroup:"گروه افقی",nightfall:"شب",daylight:"روز",dracula:"دراکولا"},range:{title:"لغزنده محدوده",basic:"لغزندههای پایه",colors:"واریانتهای رنگی",sizes:"اندازهها",customUnits:"واحدهای سفارشی",valuePositions:"موقعیتهای مقدار",sparkleAtMax:"جرقه در حداکثر",withoutGlow:"بدون درخشش",controlled:"حالت کنترلشده",volume:"صدا",brightness:"روشنایی",contrast:"کنتراست",primary:"اصلی",secondary:"ثانویه",accent:"متضاد",success:"موفق",danger:"خطر",warning:"اخطار",small:"کوچک",medium:"متوسط (پیشفرض)",large:"بزرگ",pixels:"پیکسل",price:"قیمت",rial:"ریال (تومان)",temperature:"دما",left:"چپ",right:"راست (پیشفرض)",top:"بالا",bottom:"پایین",almostMax:"نزدیک به حداکثر",atMax:"در حداکثر (جرقه!)",sparkleNote:"انفجار جرقه هنگام رسیدن به حداکثر مقدار",noGlow:"بدون جلوه درخشش",noGlow2:"ثانویه بدون درخشش",liveValue:"مقدار زنده",finalValue:"مقدار نهایی",controlledLabel:"لغزنده کنترلشده",set25:"تنظیم ۲۵٪",set75:"تنظیم ۷۵٪",set100:"تنظیم ۱۰۰٪",reset:"بازنشانی"},productCard:{title:"کارتهای محصول",variants:"واریانتها",layouts:"چیدمانها",glows:"جلوههای درخشش",withActions:"با اقدامات سریع",responsive:"واکنشگرا (عرض کامل در موبایل)",addToCart:"افزودن به سبد خرید",outOfStock:"ناموجود",sale:"تخفیف",new:"جدید",limited:"محدود",reviews:"نظرات",vertical:"عمودی",horizontal:"افقی",compact:"فشرده",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",product1:"سایبرپانک ۲۰۷۷ - نسخه کلکسیونی",product2:"هولوکرون جدای - نسخه محدود",product3:"کنترلر سامورایی نئون",product4:"شاخه داده - رمزنگاریشده",desc1:"مجموعه کلکسیونی نسخه محدود با کتاب هنری، قاب فلزی و محتوای دیجیتال اختصاصی.",desc2:"کپی معتبر هولوکرون جدای با جلوههای نور و صدا. محدود به ۵۰۰ دستگاه در سراسر جهان.",desc3:"کنترلر بیسیم با نورپردازی RGB، دکمههای پشتی قابل برنامهریزی و اتصال با تأخیر کم.",desc4:"شاخه داده رمزنگاریشده حاوی قطعات طبقهبندیشده آرشیو. نیاز به سطح ۵ دسترسی دارد.",category1:"بازی",category2:"کلکسیونی",category3:"لوازم جانبی",category4:"داده",tag1:"محدود",tag2:"کلکسیونی",tag3:"اختصاصی",tag4:"رمزنگاریشده"},blogCard:{title:"کارتهای وبلاگ",variants:"واریانتها",layouts:"چیدمانها",glows:"جلوههای درخشش",responsive:"واکنشگرا (عرض کامل در موبایل)",readMore:"ادامه مطلب",featured:"نوشته ویژه",vertical:"عمودی",horizontal:"افقی",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",post1:"آینده شیشهمورفیسم در طراحی رابط کاربری",post2:"ساخت یک سیستم طراحی از صفر",post3:"تسلط بر جلوههای هاور سهبعدی در React",post4:"هنر زیباییشناسی سایبرپانک",excerpt1:"بررسی تکامل شیشهمورفیسم و اینکه چرا به زیباییشناسی اصلی رابطهای مدرن در ۲۰۲۴ تبدیل میشود.",excerpt2:"راهنمای جامع ساخت یک سیستم طراحی که مقیاسپذیر باشد، از توکنها تا کامپوننتها.",excerpt3:"یادگیری ساخت جلوههای چرخش سهبعدی نرم برای کارتها، تصاویر و عناصر تعاملی.",excerpt4:"غواصی در زیباییشناسی سایبرپانک و تأثیر آن بر طراحی رابط کاربری مدرن.",author1:"جین دو",author2:"جان اسمیت",author3:"الکس ریورز",author4:"تیلور نایت",category1:"طراحی",category2:"توسعه",category3:"ریاکت",category4:"زیباییشناسی",tag1:"طراحی",tag2:"آموزشی",tag3:"ریاکت",tag4:"زیباییشناسی"},scrollReveal:{title:"نمایش با اسکرول",subtitle:"انیمیشن عناصر هنگام ورود به دید",animation:"انیمیشن",stagger:"نمایش پلکانی",allPresets:"همه پیشتنظیمهای انیمیشن",triggerAgain:"اجرای مجدد در اسکرول برگشتی",demoTip:"برای دیدن انیمیشن عناصر، به پایین اسکرول کنید"},pageLoader:{title:"لودر صفحه",subtitle:"پوشش تمامصفحه بارگذاری با اشکال مختلف",shapes:"اشکال لودر",spinner:"چرخان",ring:"حلقهای",dots:"نقطهای",pulse:"ضربان",bars:"میلهای",withBrand:"با نشان برند",withProgress:"با نوار پیشرفت",provider:"نمایش پرووایدر",loadingArchives:"در حال بارگذاری آرشیو...",downloading:"در حال دانلود داده...",navigating:"در حال انتقال...",fetchingData:"در حال دریافت داده...",uploading:"در حال آپلود...",simulateRoute:"شبیهسازی تغییر مسیر",simulateFetch:"شبیهسازی دریافت داده",simulateUpload:"شبیهسازی آپلود با پیشرفت"}},qt={app:{title:"Composants Dara UI"},hero:{version:"v1.0 - Les Archives Numériques",title:"DARA UI",subtitle:"Un système de design découvert dans une archive futuriste cachée sous la neige."},navbar:{home:"Accueil",explore:"Explorer",settings:"Paramètres",dashboard:"Tableau de bord",projects:"Projets",team:"Équipe",analytics:"Analyses",more:"Plus"},common:{thenImport:"Ensuite, importez les composants :",hoverToFloat:"Survolez pour flotter",mission:"MISSION",requirements:"Prérequis :",complete:"Terminer",completeMission:"Terminer la mission",areYouSureComplete:"Êtes-vous sûr de vouloir terminer la mission :",youWillEarn:"Vous gagnerez",uponCompletion:"à la fin."},codeBlock:{install:"npm install dara-ui",or:"ou",yarnAdd:"yarn add dara-ui",thenImport:"Ensuite, importez les composants :",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"Espèce",affiliation:"Affiliation"},productLabels:{addToCart:"Ajouter au panier",outOfStock:"En rupture de stock",sale:"Soldes",new:"Nouveau",limited:"Édition limitée"},blogLabels:{readMore:"Lire la suite",minRead:"{{count}} min"},sidebar:{title:"Barre latérale",hint:"Réductible · Groupes · Sous-menus · Prêt RTL",logout:"Déconnexion",main:"Principal",management:"Gestion",dashboard:"Tableau de bord",projects:"Projets",team:"Équipe",documents:"Documents",messages:"Messages",settings:"Paramètres",invoices:"Factures",reports:"Rapports",archive:"Archives",inbox:"Boîte de réception",sent:"Envoyés",drafts:"Brouillons",collapse:"Réduire",expand:"Développer",subtitle:"Navigation réductible avec groupes, sous-menus et support RTL",tip1:"Cliquez sur le bouton de réduction ou appuyez sur Ctrl+B pour basculer",tip2:"Les éléments avec sous-menus se développent au clic",tip3:"Les éléments actifs sont surlignés en violet",activeProjects:"Projets actifs",completedTasks:"Tâches terminées",teamMembers:"Membres de l'équipe",notifications:"Notifications",darkMode:"Mode sombre",language:"Langue",dashboardContent:"Bienvenue sur votre tableau de bord. Vous pouvez voir un aperçu de vos projets et de l'activité de votre équipe.",projectsContent:"Gérez tous vos projets au même endroit. Vous avez 12 projets actifs.",teamContent:"Les membres de votre équipe et leurs rôles. 5 membres en ligne.",invoicesContent:"Consultez et gérez toutes vos factures.",reportsContent:"Générez et consultez des rapports détaillés.",archiveContent:"Accédez aux documents et dossiers archivés.",inboxContent:"Vos messages non lus et vos conversations.",sentContent:"Messages que vous avez envoyés à d'autres.",draftsContent:"Vos brouillons enregistrés et messages en attente.",settingsContent:"Configurez les préférences de votre application et les paramètres de votre compte.",activeProjectsLabel:"Projets actifs",completedTasksLabel:"Tâches terminées",teamMembersLabel:"Membres de l'équipe",notificationsLabel:"Notifications",storageLabel:"Stockage",quickActionsLabel:"Actions rapides",recentActivityLabel:"Activité récente",deployAction:"Déployer",reviewAction:"Réviser",inviteAction:"Inviter",upgradeAction:"Mettre à niveau",projectAlpha:"Projet Alpha",projectBeta:"Projet Beta",projectGamma:"Projet Gamma",projectDelta:"Projet Delta",inProgress:"En cours",completed:"Terminé",onHold:"En pause",review:"En révision",memberRole1:"Développeur principal",memberRole2:"Designer",memberRole3:"Chef de produit",memberRole4:"Ingénieur QA",activityUpload:"A téléversé de nouveaux fichiers d'archive",activityComment:"A commenté le Projet Alpha",activityMerge:"A fusionné la pull request #42",activityDeploy:"A déployé en production",minutesAgo:"il y a {{count}} min",hoursAgo:"il y a {{count}} heures",invoiceNumber:"Facture #{{num}}",invoicePaid:"Payée",invoicePending:"En attente",invoiceOverdue:"En retard",reportWeekly:"Rapport hebdomadaire",reportMonthly:"Rapport mensuel",reportQuarterly:"Rapport trimestriel",mobileSidebarHint:"Glissez ou touchez le menu pour ouvrir la navigation",openMenu:"Ouvrir le menu",closeMenu:"Fermer le menu"},badges:{title:"Badges",variants:"Variantes",sizes:"Tailles",outline:"Variantes contour",withGlow:"Avec lueur",withIcons:"Avec icônes",primary:"Primaire",secondary:"Secondaire",success:"Succès",danger:"Danger",warning:"Avertissement",small:"Petit",medium:"Moyen",large:"Grand",glowPrimary:"Lueur Primaire",glowSuccess:"Lueur Succès",glowDanger:"Lueur Danger",package:"Paquet",done:"Terminé",pending:"En attente",failed:"Échoué"},buttons:{title:"Variantes de boutons",withGlow:"Avec lueur",withIcons:"Avec icônes",states:"États des boutons",sizesTitle:"Tailles des boutons",primary:"Primaire",secondary:"Secondaire",accent:"Accent",glass:"Verre",danger:"Danger",success:"Succès",outline:"Contour",normal:"Normal",hover:"Survol",pressed:"Appuyé",disabled:"Désactivé",loading:"Chargement",small:"Petit",medium:"Moyen",large:"Grand",glowPrimary:"Lueur Primaire",glowSecondary:"Lueur Secondaire",glowAccent:"Lueur Accent",launch:"Lancer",next:"Suivant",confirm:"Confirmer"},avatar:{title:"Avatar",sizes:"Tailles",shapes:"Formes",status:"Indicateurs de statut",glowEffects:"Effets de lueur",withImage:"Avec image",group:"Groupe",clickable:"Cliquable"},tooltip:{title:"Infobulle",placements:"Placements",variants:"Variantes",withBadge:"Avec badge",longContent:"Contenu long",solidLabel:"Solide",outlineLabel:"Contour",glassLabel:"Verre",top:"Haut",bottom:"Bas",left:"Gauche",right:"Droite",topLeft:"Haut gauche",topRight:"Haut droite",bottomLeft:"Bas gauche",bottomRight:"Bas droite",glassTooltip:"Infobulle en verre",solidTooltip:"Infobulle solide",outlineTooltip:"Infobulle contour",unreadMessages:"Vous avez {{count}} messages non lus",longTooltip:"Ceci est une infobulle plus longue avec des informations plus détaillées sur l'élément que vous survolez.",hoverDetails:"Survolez pour plus de détails",disabledTooltip:"Cette infobulle est désactivée",noArrow:"Pas de flèche sur cette infobulle",interactive:"Infobulle interactive",demoTitle:"Démo d'infobulle",demoDescription:"Survolez les boutons ci-dessous pour voir les infobulles en action",placementDemo:"Démo de placement",variantDemo:"Démo de variantes",sizeDemo:"Démo de tailles",longContentDemo:"Démo de contenu long",badgeDemo:"Démo avec badge",disabledDemo:"Démo d'infobulle désactivée",noArrowDemo:"Démo sans flèche"},tabs:{title:"Onglets",archive:"Archives",quests:"Quêtes",stats:"Statistiques",settings:"Paramètres",archiveContent:"Parcourez les enregistrements Jedi cryptés, les holocrons et les journaux de mission des archives.",questsContent:"Des missions actives, des primes et des quêtes secondaires vous attendent, Padawan.",statsContent:"Suivez votre alignement de la Force, vos gains d'XP et vos niveaux d'amélioration cybernétique.",settingsContent:"Configurez votre HUD, votre mode thème et vos préférences de cryptage d'archives."},accordion:{title:"Accordéon",mode:"Mode",single:"Unique",multiple:"Multiple",singleDesc:"Un seul élément peut être ouvert à la fois",multipleDesc:"Plusieurs éléments peuvent être ouverts simultanément",controlled:"Contrôlé - Éléments ouverts :",withIcons:"Avec icônes",q1:"Qu'est-ce que Dara UI ?",a1:"Dara UI est un système de design qui ressemble à une interface découverte dans une archive futuriste cachée sous lors d'une tempête de neige. Il mélange le glassmorphisme, le cyberpunk, l'esthétique gothique, le minimalisme d'Apple et des éléments d'interface anime.",q2:"Quels thèmes sont disponibles ?",a2:"Archive Nocturne (défaut), Enneigée (clair), Mode Sith (noir + rouge), Temple Jedi (blanc + bleu), Dracula (violet) et Vin (rouges profonds).",q3:"Comment l'installer ?",a3:"npm install dara-ui, puis import { Button, Card, Input } from 'dara-ui'. Fonctionne avec Vite, Next.js et CRA.",dashboard:"Tableau de bord",projects:"Projets",settingsAccordion:"Paramètres",dashboardContent:"Aperçu du tableau de bord avec les indicateurs clés et l'activité récente.",projectsContent:"Projets actifs et leur statut actuel.",settingsContentAccordion:"Configurez les préférences de votre application."},dropdown:{title:"Liste déroulante",basic:"Basique",withIcons:"Avec icônes",searchable:"Recherchable",controlled:"Contrôlé - Sélectionné :",selectFramework:"Sélectionnez un framework...",withPlaceholder:"Avec espace réservé",selectWithIcons:"Sélectionnez avec icônes...",searchWithIcons:"Recherchez avec icônes...",searchOptions:"Rechercher des options...",searchFrameworks:"Rechercher des frameworks...",typeToFilter:"Tapez pour filtrer les options",framework:"Framework",chooseFramework:"Choisissez votre framework préféré",setVue:"Définir Vue",setSvelte:"Définir Svelte",setSolid:"Définir Solid"},cards:{title:"Cartes",variants:"Variantes",floatGlow:"Flottant + Lueur",featureCards:"Cartes de fonctionnalités",glassCard:"Carte en verre",solidCard:"Carte solide",outlineCard:"Carte contour",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",launch:"Lancer",analytics:"Analyses",deployProject:"Déployez votre projet en un clic.",trackPerformance:"Suivez vos métriques de performance."},inputs:{title:"Champs de saisie",basic:"Champs de saisie basiques",withLabels:"Avec étiquettes",withIconsTitle:"Avec icônes",validation:"États de validation",textInput:"Saisie de texte",password:"Mot de passe",search:"Recherche",email:"Email",username:"Nom d'utilisateur",enterUsername:"Entrez le nom d'utilisateur",enterEmail:"Entrez l'email",emailHelper:"Nous ne partagerons jamais votre email.",success:"Succès",error:"Erreur",validInput:"Saisie valide !",somethingWrong:"Une erreur s'est produite"},modal:{title:"Modale",openModal:"Ouvrir la modale",viewContent:"Voir le contenu",archiveAccess:"Accès aux archives",acceptMission:"Accepter la mission",decline:"Refuser",modalDescription:"Vous avez découvert un fragment d'archive Jedi scellé. Cette modale utilise un style glass-heavy avec un arrière-plan flou à 30px."},toast:{title:"Notifications Toast",subtitle:"En haut à droite · Minimal · Glissement 220ms · Auto-fermeture",successToast:"Toast Succès",errorToast:"Toast Erreur",warningToast:"Toast Avertissement",infoToast:"Toast Info",successMsg:"Mission terminée ! +300 XP gagnés.",errorMsg:"Connexion perdue. Nouvel essai...",warningMsg:"Veuillez vérifier votre connexion",infoMsg:"Les archives sont en cours d'indexation"},progress:{title:"Progression",horizontal:"Horizontal",labelInside:"Étiquette à l'intérieur",displayTypes:"Types d'affichage",sizes:"Tailles",radial:"Radial",radialCustom:"Radial avec étiquette personnalisée",radialSizes:"Tailles radiales",almostDone:"Presque terminé !",loading:"Chargement...",done:"Terminé !"},xpbar:{title:"Barre d'XP, Niveau",rankProgress:"PROGRESSION DE RANG",missionProgress:"PROGRESSION DE MISSION",tier:"Niveau",rank:"Rang",points:"Points",exp:"EXP",score:"Score",prestige:"Prestige"},rank:{common:"Commun",uncommon:"Peu commun",rare:"Rare",epic:"Épique",legendary:"Légendaire",recruit:"Recrue",soldier:"Soldat",veteran:"Vétéran",elite:"Élite",commander:"Commandant"},glow:{title:"Effets de lueur",glowPrimary:"Lueur violette",glowSecondary:"Lueur Secondary",glowAccent:"Lueur rose"},quest:{title:"Cartes de quêtes",buildCMS:"Construire CMS",buildCMSDesc:"Déployez l'interface d'archives Jedi cryptée avant que la neige ne fonde.",secureArchives:"Sécuriser les archives",secureArchivesDesc:"Implémentez le chiffrement de bout en bout pour toutes les données stockées dans les archives.",legendaryQuest:"Quête légendaire : Les archives perdues",legendaryQuestDesc:"Voyagez dans les profondeurs du caveau oublié et récupérez l'ancien holocron.",mapNightCity:"Cartographier Night City",mapNightCityDesc:"Créez une carte complète du quartier cyberpunk avant la purge des données.",requirements:"Prérequis",completeReviews:"Compléter 3 revues de code",writeTests:"Écrire 5 tests unitaires",deployStaging:"Déployer en pré-production",reachLevel:"Atteindre le niveau 25",defeatGuardian:"Vaincre le Gardien de l'Ombre",collectArtifacts:"Collecter 3 artefacts anciens",solveRiddle:"Résoudre l'énigme du sphinx",scanLocations:"Scanner 10 emplacements",interviewNPCs:"Interviewer 5 PNJ",uploadArchive:"Téléverser vers l'archive",deadline:"Échéance",deadlineToday:"Échéance : Aujourd'hui",deadlineTomorrow:"Échéance : Demain",deadlineTonight:"Échéance : Ce soir",deadlineYesterday:"Échéance : Hier",daysAgo:"jours",days:"jours",week:"semaine",weeks:"semaines",month:"mois",months:"mois",years:"ans"},character:{title:"Cartes de personnage",vertical:"Disposition verticale (défaut)",horizontal:"Disposition horizontale",daraName:"Dara",daraSubtitle:"Archiviste Jedi",daraQuote:"L'obscurité n'est pas à craindre - elle doit être archivée.",cipherName:"Cipher",cipherSubtitle:"Netrunner",cipherQuote:"Le code est la clé de tout.",shadowName:"Ombre",shadowSubtitle:"Chasseur nocturne",shadowQuote:"Je me déplace dans l'obscurité là où ils ne peuvent pas voir.",force:"Force",combat:"Combat",intelligence:"Intelligence",wisdom:"Sagesse",hacking:"Piratage",stealth:"Furtivité",agility:"Agilité",strength:"Force",speciesHumanCyborg:"Humain/Cyborg",speciesCyborg:"Cyborg",speciesVampire:"Vampire",affiliationJedi:"Ordre Jedi",affiliationNetwatch:"Netwatch",affiliationNightCouncil:"Conseil de la Nuit",traitMbtiIntj:"MBTI : INTJ",traitMbtiIntp:"MBTI : INTP",traitMbtiIstp:"MBTI : ISTP",traitHumanCyborg:"Humain/Cyborg",traitCyborg:"Cyborg",traitVampire:"Vampire"},statsWidget:{title:"Widget de statistiques",radialVariant:"Variante radiale",barVariant:"Variante à barres",horizontalLayout:"Disposition horizontale",forceStats:"STATS DE LA FORCE",characterStats:"STATS DU PERSONNAGE",progress:"PROGRÈS",skills:"COMPÉTENCES",battleStats:"STATS DE COMBAT",skillProgress:"PROGRÈS DES COMPÉTENCES",health:"Santé",mana:"Mana",stamina:"Endurance",level:"Niveau",endurance:"Endurance",luck:"Chance",statsSuffix:"stats"},themeChanger:{title:"Changeur de thème",default:"Défaut",iconOnly:"Icône uniquement",fixedWidth:"Largeur fixe (160px)",small:"Petit",smallIconOnly:"Petit icône uniquement",customThemes:"Thèmes personnalisés",demo:"Démo",themeChangerDesc:"Changeur de thème avec détection automatique, mode icône uniquement et support de largeur fixe. Passez iconOnly pour une utilisation compacte dans la barre de navigation, ou fixedWidth pour une taille cohérente."},languageChanger:{title:"Changeur de langue",default:"Défaut",iconOnly:"Icône uniquement",fixedWidth:"Largeur fixe (160px)",small:"Petit",smallIconOnly:"Petit icône uniquement",customLanguages:"Langues personnalisées",demo:"Démo",languageChangerDesc:"Changeur de langue avec persistance localStorage, mode icône uniquement et support de largeur fixe. Passez iconOnly pour une utilisation compacte dans la barre de navigation, ou fixedWidth pour une taille cohérente. La langue est persistée via localStorage et met à jour les attributs lang et dir sur l'élément html."},gradients:{title:"Dégradés",primary:"Primaire",accent:"Accent",success:"Succès",danger:"Danger"},effects:{title:"Effets",glassEffect:"Effet verre",glowPrimary:"Lueur violette",glowAccent:"Lueur rose"},typography:{title:"Typographie",textSecondary:"Texte secondaire",regularBody:"Texte corporel régulier avec la police Inter",gradientHeading:"Titre dégradé",accentText:"Texte coloré accentué",codeExample:'console.log("Code avec JetBrains Mono");'},persian:{title:"Support persan",persianText:"Ce texte est affiché avec la police Vazirmatn",persianHeading:"Titre persan avec la police Kook",persianDesc:"Texte persan en petit format et couleur secondaire"},checkbox:{title:"Case à cocher",basic:"Cases à cocher de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlée",group:"Exemple de groupe",unchecked:"Décoché",checked:"Coché",glowChecked:"Lueur lorsqu'elle est cochée",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",error:"État d'erreur",disabled:"Désactivé",disabledChecked:"Désactivé coché",rtlLabel1:"Accepter les conditions",rtlLabel2:"Confirmer les informations",rtlLabel3:"Activer le mode nuit",rtlNote:"Mode RTL - l'étiquette apparaît à droite",controlledLabel:"Case à cocher contrôlée",status:"Statut",check:"Cocher",uncheck:"Décocher",groupLabel:"Sélectionnez vos préférences :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",selectedCount:"Sélectionné"},switch:{title:"Interrupteur",basic:"Interrupteurs de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlé",group:"Exemple de groupe",off:"Désactivé",on:"Activé",glowOn:"Lueur lorsqu'activé",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",disabledOff:"Désactivé éteint",disabledOn:"Désactivé allumé",rtlLabel1:"Activer le mode nuit",rtlLabel2:"Activer les notifications",rtlLabel3:"Mode automatique",rtlNote:"Mode RTL - l'étiquette reste en haut, l'interrupteur s'adapte",controlledLabel:"Interrupteur contrôlé",status:"Statut",turnOn:"Allumer",turnOff:"Éteindre",groupLabel:"Paramètres :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",enabledCount:"Activé",withIcons:"Avec icônes",notifications:"Notifications",darkMode:"Mode sombre",sound:"Son"},radio:{title:"Radio",basic:"Radios de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlé",group:"Exemple de groupe",unselected:"Désélectionné",selected:"Sélectionné",glowSelected:"Lueur lorsqu'elle est sélectionnée",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",error:"État d'erreur",disabled:"Désactivé",disabledChecked:"Désactivé sélectionné",rtlLabel1:"Accepter les conditions",rtlLabel2:"Confirmer les informations",rtlLabel3:"Activer le mode nuit",rtlNote:"Mode RTL - l'étiquette apparaît à droite",controlledLabel:"Radio contrôlée",status:"Statut",select:"Sélectionner",deselect:"Désélectionner",groupLabel:"Sélectionnez votre préférence :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",horizontalGroup:"Groupe horizontal",nightfall:"Nuit",daylight:"Jour",dracula:"Dracula"},range:{title:"Curseur de plage",basic:"Curseurs de base",colors:"Variantes de couleurs",sizes:"Tailles",customUnits:"Unités personnalisées",valuePositions:"Positions des valeurs",sparkleAtMax:"Étincelle au maximum",withoutGlow:"Sans lueur",controlled:"Mode contrôlé",volume:"Volume",brightness:"Luminosité",contrast:"Contraste",primary:"Primaire",secondary:"Secondaire",accent:"Accent",success:"Succès",danger:"Danger",warning:"Avertissement",small:"Petit",medium:"Moyen (défaut)",large:"Grand",pixels:"Pixels",price:"Prix",rial:"Rial (تومان)",temperature:"Température",left:"Gauche",right:"Droite (défaut)",top:"Haut",bottom:"Bas",almostMax:"Presque au maximum",atMax:"Au maximum (étincelle!)",sparkleNote:"Animation d'étincelles lors de l'atteinte de la valeur maximale",noGlow:"Sans effet de lueur",noGlow2:"Secondaire sans lueur",liveValue:"Valeur en direct",finalValue:"Valeur finale",controlledLabel:"Curseur contrôlé",set25:"Définir 25%",set75:"Définir 75%",set100:"Définir 100%",reset:"Réinitialiser"},productCard:{title:"Cartes de produit",variants:"Variantes",layouts:"Dispositions",glows:"Effets de lueur",withActions:"Avec actions rapides",responsive:"Responsive (pleine largeur sur mobile)",addToCart:"Ajouter au panier",outOfStock:"En rupture de stock",sale:"Soldes",new:"Nouveau",limited:"Édition limitée",reviews:"avis",vertical:"Vertical",horizontal:"Horizontal",compact:"Compact",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",accentGlow:"Lueur Accent",product1:"Cyberpunk 2077 - Édition Collector",product2:"Holocron Jedi - Édition Limitée",product3:"Manette Samouraï Neon",product4:"Fragment de données - Crypté",desc1:"Ensemble collector en édition limitée avec livre d'art, boîtier steelbook et contenu numérique exclusif.",desc2:"Réplique authentique d'holocron Jedi avec effets de lumière et son. Limité à 500 unités dans le monde.",desc3:"Manette sans fil avec éclairage RGB, boutons arrière programmables et connexion à faible latence.",desc4:"Fragment de données crypté contenant des fragments d'archives classifiés. Nécessite un niveau d'accès 5.",category1:"Jeux",category2:"Objets de collection",category3:"Accessoires",category4:"Données",tag1:"édition limitée",tag2:"collection",tag3:"exclusif",tag4:"crypté"},blogCard:{title:"Cartes de blog",variants:"Variantes",layouts:"Dispositions",glows:"Effets de lueur",responsive:"Responsive (pleine largeur sur mobile)",readMore:"Lire la suite",featured:"Article en vedette",vertical:"Vertical",horizontal:"Horizontal",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",accentGlow:"Lueur Accent",post1:"L'avenir du glassmorphisme dans le design UI",post2:"Construire un système de design à partir de zéro",post3:"Maîtriser les effets 3D au survol dans React",post4:"L'art de l'esthétique cyberpunk",excerpt1:"Découvrez comment le glassmorphisme évolue et pourquoi il devient l'esthétique de référence pour les interfaces modernes en 2024.",excerpt2:"Un guide complet pour construire un système de design qui s'adapte, des tokens aux composants.",excerpt3:"Apprenez à créer des effets de rotation 3D fluides pour les cartes, images et éléments interactifs.",excerpt4:"Plongez dans l'esthétique cyberpunk et son influence sur le design UI moderne.",author1:"Jane Doe",author2:"John Smith",author3:"Alex Rivers",author4:"Taylor Night",category1:"Design",category2:"Développement",category3:"React",category4:"Esthétique",tag1:"design",tag2:"tutoriel",tag3:"react",tag4:"esthétique"},scrollReveal:{title:"Révélation au défilement",subtitle:"Animez les éléments à l'entrée dans la vue",animation:"Animation",stagger:"Révélation échelonnée",allPresets:"Tous les préréglages d'animation",triggerAgain:"Re-déclencher au retour",demoTip:"Défilez vers le bas pour voir les éléments s'animer"},pageLoader:{title:"Chargeur de page",subtitle:"Superposition de chargement plein écran avec plusieurs formes",shapes:"Formes du chargeur",spinner:"Rotation",ring:"Anneau",dots:"Points",pulse:"Pulsation",bars:"Barres",withBrand:"Avec marque",withProgress:"Avec barre de progression",provider:"Démo du fournisseur",loadingArchives:"Chargement des archives...",downloading:"Téléchargement des données...",navigating:"Navigation...",fetchingData:"Récupération des données...",uploading:"Téléversement...",simulateRoute:"Simuler un changement de route",simulateFetch:"Simuler une récupération",simulateUpload:"Simuler un téléversement"}},Vt={en:Wt,fa:Gt,fr:qt},nt=({name:r,subtitle:m,quote:o,portrait:u,icon:i,mbti:n,species:L,affiliation:f,traits:M=[],stats:N=[],glow:j="primary",layout:a="vertical",className:$=""})=>{const[c,x]=t.useState({x:0,y:0}),[g,R]=t.useState(!1),S=t.useRef(null),{t:l}=ue(),v=s=>{if(!S.current)return;const w=S.current.getBoundingClientRect(),C=s.clientX-w.left,y=s.clientY-w.top,p=w.width/2,d=w.height/2,z=(y-d)/d*-8,W=(C-p)/p*8;x({x:z,y:W})},h=()=>R(!0),I=()=>{R(!1),x({x:0,y:0})},D={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[j]||"",E=a==="horizontal",k=s=>{const w=Math.min(100,Math.max(0,s.value)),C=E?48:56,y=3.5,p=C/2-y/2,d=2*Math.PI*p,z=d-w/100*d,W=E?60:68,B=C+8*2,F=B/2,P=s.color==="secondary"?"var(--color-secondary)":s.color==="accent"?"var(--color-accent)":s.color==="success"?"var(--color-success)":s.color==="danger"?"var(--color-danger)":s.color==="warning"?"var(--color-warning)":"var(--color-primary)";return e.jsxs("div",{className:"flex flex-col items-center flex-shrink-0",style:{width:W},children:[e.jsx("div",{className:"relative",style:{width:C,height:C},role:"img","aria-label":`${s.label}: ${s.value}%`,children:e.jsxs("svg",{width:C,height:C,viewBox:`0 0 ${B} ${B}`,className:"block overflow-visible","aria-hidden":"true",style:{overflow:"visible"},children:[w>0&&e.jsx("circle",{cx:F,cy:F,r:p,fill:"none",stroke:P,strokeWidth:y+3,strokeDasharray:d,strokeDashoffset:z,strokeLinecap:"round",transform:`rotate(-90 ${F} ${F})`,style:{filter:"blur(4px)",opacity:.45}}),e.jsx("circle",{cx:F,cy:F,r:p,fill:"none",stroke:"var(--color-border-secondary)",strokeWidth:y}),e.jsx("circle",{cx:F,cy:F,r:p,fill:"none",stroke:P,strokeWidth:y,strokeDasharray:d,strokeDashoffset:z,strokeLinecap:"round",transform:`rotate(-90 ${F} ${F})`,style:{transition:"stroke-dashoffset 0.8s ease"}}),e.jsxs("text",{x:F,y:F,textAnchor:"middle",dominantBaseline:"central",className:"font-heading font-bold",style:{fontSize:C<52?"11px":"13px",fill:"var(--color-text-primary)"},children:[s.value,e.jsx("tspan",{style:{fontSize:C<52?"8px":"9px",fill:"var(--color-text-secondary)"},children:"%"})]})]})}),e.jsx("p",{className:"text-[9px] uppercase tracking-wider text-[var(--color-text-secondary)] font-mono mt-1.5 text-center leading-tight max-w-full",children:s.label})]})};return e.jsxs("div",{ref:S,className:`
|
|
919
|
+
`,role:"option","aria-selected":d,children:[h.icon&&w(h.icon),e.jsx("span",{className:"truncate",children:h.label}),d&&e.jsx("svg",{className:"ml-auto h-4 w-4 flex-shrink-0 text-[var(--color-primary)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})]},h.value)})})})]})};nt.displayName="ThemeChanger";const Gt={app:{title:"Dara UI Components"},hero:{version:"v1.0 - The Digital Archives",title:"DARA UI",subtitle:"A design system discovered inside a futuristic archive hidden beneath during a snowstorm."},navbar:{home:"Home",explore:"Explore",settings:"Settings",dashboard:"Dashboard",projects:"Projects",team:"Team",analytics:"Analytics",more:"More"},common:{thenImport:"Then import components:",hoverToFloat:"Hover to float",mission:"MISSION",requirements:"Requirements:",complete:"Complete",completeMission:"Complete Mission",areYouSureComplete:"Are you sure you want to complete the mission:",youWillEarn:"You will earn",uponCompletion:"upon completion."},codeBlock:{install:"npm install dara-ui",or:"or",yarnAdd:"yarn add dara-ui",thenImport:"Then import components:",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"Species",affiliation:"Affiliation"},productLabels:{addToCart:"Add to Cart",outOfStock:"Out of Stock",sale:"Sale",new:"New",limited:"Limited"},blogLabels:{readMore:"Read more",minRead:"{{count}} min"},sidebar:{title:"Sidebar",hint:"Collapsible · Groups · Sub-menus · RTL ready",logout:"Logout",main:"Main",management:"Management",dashboard:"Dashboard",projects:"Projects",team:"Team",documents:"Documents",messages:"Messages",settings:"Settings",invoices:"Invoices",reports:"Reports",archive:"Archive",inbox:"Inbox",sent:"Sent",drafts:"Drafts",collapse:"Collapse",expand:"Expand",subtitle:"Collapsible navigation with groups, sub-menus, and RTL support",tip1:"Click the collapse button or press Ctrl+B to toggle",tip2:"Items with sub-menus expand on click",tip3:"Active items are highlighted with a purple accent",activeProjects:"Active Projects",completedTasks:"Completed Tasks",teamMembers:"Team Members",notifications:"Notifications",darkMode:"Dark Mode",language:"Language",dashboardContent:"Welcome to your dashboard. Here you can see an overview of your projects and team activity.",projectsContent:"Manage all your projects in one place. You have 12 active projects.",teamContent:"Your team members and their roles. 5 members online.",invoicesContent:"View and manage all your invoices.",reportsContent:"Generate and view detailed reports.",archiveContent:"Access archived documents and records.",inboxContent:"Your unread messages and conversations.",sentContent:"Messages you have sent to others.",draftsContent:"Your saved drafts and pending messages.",settingsContent:"Configure your application preferences and account settings.",activeProjectsLabel:"Active Projects",completedTasksLabel:"Completed Tasks",teamMembersLabel:"Team Members",notificationsLabel:"Notifications",storageLabel:"Storage",quickActionsLabel:"Quick Actions",recentActivityLabel:"Recent Activity",deployAction:"Deploy",reviewAction:"Review",inviteAction:"Invite",upgradeAction:"Upgrade",projectAlpha:"Project Alpha",projectBeta:"Project Beta",projectGamma:"Project Gamma",projectDelta:"Project Delta",inProgress:"In Progress",completed:"Completed",onHold:"On Hold",review:"In Review",memberRole1:"Lead Developer",memberRole2:"Designer",memberRole3:"Product Manager",memberRole4:"QA Engineer",activityUpload:"Uploaded new archive files",activityComment:"Commented on Project Alpha",activityMerge:"Merged pull request #42",activityDeploy:"Deployed to production",minutesAgo:"{{count}} min ago",hoursAgo:"{{count}} hours ago",invoiceNumber:"Invoice #{{num}}",invoicePaid:"Paid",invoicePending:"Pending",invoiceOverdue:"Overdue",reportWeekly:"Weekly Report",reportMonthly:"Monthly Report",reportQuarterly:"Quarterly Report",mobileSidebarHint:"Swipe or tap the menu to open navigation",openMenu:"Open menu",closeMenu:"Close menu"},badges:{title:"Badges",variants:"Variants",sizes:"Sizes",outline:"Outline Variants",withGlow:"With Glow",withIcons:"With Icons",primary:"Primary",secondary:"Secondary",success:"Success",danger:"Danger",warning:"Warning",small:"Small",medium:"Medium",large:"Large",glowPrimary:"Glow Primary",glowSuccess:"Glow Success",glowDanger:"Glow Danger",package:"Package",done:"Done",pending:"Pending",failed:"Failed"},buttons:{title:"Button Variants",withGlow:"With Glow",withIcons:"With Icons",states:"Button States",sizesTitle:"Button Sizes",primary:"Primary",secondary:"Secondary",accent:"Accent",glass:"Glass",danger:"Danger",success:"Success",outline:"Outline",normal:"Normal",hover:"Hover",pressed:"Pressed",disabled:"Disabled",loading:"Loading",small:"Small",medium:"Medium",large:"Large",glowPrimary:"Primary Glow",glowSecondary:"Secondary Glow",glowAccent:"Accent Glow",launch:"Launch",next:"Next",confirm:"Confirm"},avatar:{title:"Avatar",sizes:"Sizes",shapes:"Shapes",status:"Status Indicators",glowEffects:"Glow Effects",withImage:"With Image",group:"Group",clickable:"Clickable"},tooltip:{title:"Tooltip",placements:"Placements",variants:"Variants",withBadge:"With Badge",longContent:"Long Content",solidLabel:"Solid",outlineLabel:"Outline",glassLabel:"Glass",top:"Top",bottom:"Bottom",left:"Left",right:"Right",topLeft:"Top Left",topRight:"Top Right",bottomLeft:"Bottom Left",bottomRight:"Bottom Right",glassTooltip:"Glass tooltip",solidTooltip:"Solid tooltip",outlineTooltip:"Outline tooltip",unreadMessages:"You have {{count}} unread messages",longTooltip:"This is a longer tooltip with more detailed information about the element you're hovering over.",hoverDetails:"Hover for details",disabledTooltip:"This tooltip is disabled",noArrow:"No arrow on this tooltip",interactive:"Interactive tooltip",demoTitle:"Tooltip Demo",demoDescription:"Hover over the buttons below to see tooltips in action",placementDemo:"Placement Demo",variantDemo:"Variant Demo",sizeDemo:"Size Demo",longContentDemo:"Long Content Demo",badgeDemo:"Badge Demo",disabledDemo:"Disabled Tooltip Demo",noArrowDemo:"No Arrow Demo"},tabs:{title:"Tabs",archive:"Archive",quests:"Quests",stats:"Stats",settings:"Settings",archiveContent:"Browse encrypted Jedi records, holocrons, and mission logs from the archive.",questsContent:"Active missions, bounties, and side-quests await your attention, Padawan.",statsContent:"Track your Force alignment, XP gains, and cybernetic enhancement levels.",settingsContent:"Configure your HUD, theme mode, and archive encryption preferences."},accordion:{title:"Accordion",mode:"Mode",single:"Single",multiple:"Multiple",singleDesc:"Only one item can be open at a time",multipleDesc:"Multiple items can be open simultaneously",controlled:"Controlled - Open items:",withIcons:"With Icons",q1:"What is Dara UI?",a1:"Dara UI is a design system that feels like an interface discovered inside a futuristic archive hidden beneath during a snowstorm. It blends glassmorphism, cyberpunk, gothic aesthetics, Apple minimalism, and anime HUD elements.",q2:"What themes are available?",a2:"Nightfall (default), Daylight (light) and Dracula (purple).",q3:"How do I install it?",a3:"npm install dara-ui, then import { Button, Card, Input } from 'dara-ui'. Works with Vite, Next.js, and CRA out of the box.",dashboard:"Dashboard",projects:"Projects",settingsAccordion:"Settings",dashboardContent:"Dashboard overview with key metrics and recent activity.",projectsContent:"Active projects and their current status.",settingsContentAccordion:"Configure your application preferences."},dropdown:{title:"Dropdown",basic:"Basic",withIcons:"With Icons",searchable:"Searchable",controlled:"Controlled - Selected:",selectFramework:"Select a framework...",withPlaceholder:"With placeholder",selectWithIcons:"Select with icons...",searchWithIcons:"Search with icons...",searchOptions:"Search options...",searchFrameworks:"Search frameworks...",typeToFilter:"Type to filter options",framework:"Framework",chooseFramework:"Choose your preferred framework",setVue:"Set Vue",setSvelte:"Set Svelte",setSolid:"Set Solid"},cards:{title:"Cards",variants:"Variants",floatGlow:"Float + Glow",featureCards:"Feature Cards",glassCard:"Glass Card",solidCard:"Solid Card",outlineCard:"Outline Card",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",launch:"Launch",analytics:"Analytics",deployProject:"Deploy your project with one click.",trackPerformance:"Track your performance metrics."},inputs:{title:"Inputs",basic:"Basic Inputs",withLabels:"With Labels",withIconsTitle:"With Icons",validation:"Validation States",textInput:"Text input",password:"Password",search:"Search",email:"Email",username:"Username",enterUsername:"Enter username",enterEmail:"Enter email",emailHelper:"We'll never share your email.",success:"Success",error:"Error",validInput:"Valid input!",somethingWrong:"Something went wrong"},modal:{title:"Modal",openModal:"Open Modal",viewContent:"View Content",archiveAccess:"Archive Access",acceptMission:"Accept Mission",decline:"Decline",modalDescription:"You've discovered a sealed Jedi archive fragment. This modal uses glass-heavy styling with blur(30px) backdrop, scale-in animation, and is rendered via React Portal outside the DOM tree."},toast:{title:"Toast Notifications",subtitle:"Top-right · Minimal · 220ms slide-in · Auto-dismiss",successToast:"Success Toast",errorToast:"Error Toast",warningToast:"Warning Toast",infoToast:"Info Toast",successMsg:"Mission complete! +300 XP earned.",errorMsg:"Connection lost. Retrying...",warningMsg:"Please check your connection",infoMsg:"Archives are being indexed"},progress:{title:"Progress",horizontal:"Horizontal",labelInside:"Label Inside Bar",displayTypes:"Display Types",sizes:"Sizes",radial:"Radial",radialCustom:"Radial with Custom Label",radialSizes:"Radial Sizes",almostDone:"Almost done!",loading:"Loading...",done:"Done!"},xpbar:{title:"XPBar, RankTier",rankProgress:"RANK PROGRESS",missionProgress:"MISSION PROGRESS",tier:"Tier",rank:"Rank",points:"Points",exp:"EXP",score:"Score",prestige:"Prestige"},rank:{common:"Common",uncommon:"Uncommon",rare:"Rare",epic:"Epic",legendary:"Legendary",recruit:"Recruit",soldier:"Soldier",veteran:"Veteran",elite:"Elite",commander:"Commander"},glow:{title:"Glow Effects",glowPrimary:"Glow Primary",glowSecondary:"Glow Secondary",glowAccent:"Glow Accent"},quest:{title:"Quest Cards",buildCMS:"Build CMS",buildCMSDesc:"Deploy the encrypted Jedi archive interface before the snow melts.",secureArchives:"Secure Archives",secureArchivesDesc:"Implement end-to-end encryption for all stored data in the archive.",legendaryQuest:"Legendary Quest: The Lost Archive",legendaryQuestDesc:"Journey into the depths of the forgotten vault and retrieve the ancient holocron.",mapNightCity:"Map Night City",mapNightCityDesc:"Create a comprehensive map of the cyberpunk district before the data purge.",requirements:"Requirements",completeReviews:"Complete 3 code reviews",writeTests:"Write 5 unit tests",deployStaging:"Deploy to staging",reachLevel:"Reach level 25",defeatGuardian:"Defeat the Shadow Guardian",collectArtifacts:"Collect 3 ancient artifacts",solveRiddle:"Solve the sphinx riddle",scanLocations:"Scan 10 locations",interviewNPCs:"Interview 5 NPCs",uploadArchive:"Upload to the archive",deadline:"Deadline",deadlineToday:"Deadline: Today",deadlineTomorrow:"Deadline: Tomorrow",deadlineTonight:"Deadline: Tonight",deadlineYesterday:"Deadline: Yesterday",daysAgo:"days ago",days:"days",week:"week",weeks:"weeks",month:"month",months:"months",years:"years"},character:{title:"Character Cards",vertical:"Vertical Layout (default)",horizontal:"Horizontal Layout",daraName:"Dara",daraSubtitle:"Jedi Archivist",daraQuote:"The dark is not to be feared - it is to be archived.",cipherName:"Cipher",cipherSubtitle:"Netrunner",cipherQuote:"The code is the key to everything.",shadowName:"Shadow",shadowSubtitle:"Night Hunter",shadowQuote:"I move in the darkness where they cannot see.",force:"Force",combat:"Combat",intelligence:"Intelligence",wisdom:"Wisdom",hacking:"Hacking",stealth:"Stealth",agility:"Agility",strength:"Strength",speciesHumanCyborg:"Human/Cyborg",speciesCyborg:"Cyborg",speciesVampire:"Vampire",affiliationJedi:"Jedi Order",affiliationNetwatch:"Netwatch",affiliationNightCouncil:"Night Council",traitMbtiIntj:"MBTI: INTJ",traitMbtiIntp:"MBTI: INTP",traitMbtiIstp:"MBTI: ISTP",traitHumanCyborg:"Human/Cyborg",traitCyborg:"Cyborg",traitVampire:"Vampire"},statsWidget:{title:"Stats Widget",radialVariant:"Radial Variant",barVariant:"Bar Variant",horizontalLayout:"Horizontal Layout",forceStats:"FORCE STATS",characterStats:"CHARACTER STATS",progress:"PROGRESS",skills:"SKILLS",battleStats:"BATTLE STATS",skillProgress:"SKILL PROGRESS",health:"Health",mana:"Mana",stamina:"Stamina",level:"Level",endurance:"Endurance",luck:"Luck",statsSuffix:"stats"},themeChanger:{title:"Theme Changer",default:"Default",iconOnly:"Icon Only",fixedWidth:"Fixed Width (160px)",small:"Small",smallIconOnly:"Small Icon Only",customThemes:"Custom Themes",demo:"Demo",themeChangerDesc:"Theme changer with auto-detection, icon-only mode, and fixed width support. Pass iconOnly for compact navbar usage, or fixedWidth for consistent sizing."},languageChanger:{title:"Language Changer",default:"Default",iconOnly:"Icon Only",fixedWidth:"Fixed Width (160px)",small:"Small",smallIconOnly:"Small Icon Only",customLanguages:"Custom Languages",demo:"Demo",languageChangerDesc:"Language changer with localStorage persistence, icon-only mode, and fixed width support. Pass iconOnly for compact navbar usage, or fixedWidth for consistent sizing. The language is persisted via localStorage and updates the lang and dir attributes on the html element."},gradients:{title:"Gradients",primary:"Primary",accent:"Accent",success:"Success",danger:"Danger"},effects:{title:"Effects",glassEffect:"Glass Effect",glowPrimary:"Glow Primary",glowAccent:"Glow Accent"},typography:{title:"Typography",textSecondary:"Text Secondary",regularBody:"Regular body text with Inter font",gradientHeading:"Gradient Heading",accentText:"Accent colored text",codeExample:'console.log("Code with JetBrains Mono");'},persian:{title:"Persian Support",persianText:"این متن با فونت وزیرمتن نمایش داده میشود",persianHeading:"عنوان فارسی با قلم Kook",persianDesc:"متن فارسی با اندازه کوچک و رنگ ثانویه"},checkbox:{title:"Checkbox",basic:"Basic Checkboxes",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",unchecked:"Unchecked",checked:"Checked",glowChecked:"Glow when checked",small:"Small",medium:"Medium",large:"Large",normal:"Normal",error:"Error State",disabled:"Disabled",disabledChecked:"Disabled Checked",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"RTL mode - label appears on the right",controlledLabel:"Controlled checkbox",status:"Status",check:"Check",uncheck:"Uncheck",groupLabel:"Select your preferences:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",selectedCount:"Selected"},switch:{title:"Switch",basic:"Basic Switches",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",off:"Off",on:"On",glowOn:"Glow when on",small:"Small",medium:"Medium",large:"Large",normal:"Normal",disabledOff:"Disabled Off",disabledOn:"Disabled On",rtlLabel1:"فعال سازی حالت شب",rtlLabel2:"فعال کردن اعلانها",rtlLabel3:"حالت خودکار",rtlNote:"RTL mode - label stays above, switch mirrors direction",controlledLabel:"Controlled switch",status:"Status",turnOn:"Turn On",turnOff:"Turn Off",groupLabel:"Settings:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",enabledCount:"Enabled",withIcons:"With Icons",notifications:"Notifications",darkMode:"Dark mode",sound:"Sound"},radio:{title:"Radio",basic:"Basic Radios",sizes:"Sizes",states:"States",rtlSupport:"RTL Support",controlled:"Controlled",group:"Group Example",unselected:"Unselected",selected:"Selected",glowSelected:"Glow when selected",small:"Small",medium:"Medium",large:"Large",normal:"Normal",error:"Error State",disabled:"Disabled",disabledChecked:"Disabled Checked",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"RTL mode - label appears on the right",controlledLabel:"Controlled radio",status:"Status",select:"Select",deselect:"Deselect",groupLabel:"Select your preference:",groupOption1:"Enable notifications",groupOption2:"Dark mode",groupOption3:"Auto-save",horizontalGroup:"Horizontal group",nightfall:"Nightfall",daylight:"Daylight",dracula:"Dracula"},range:{title:"Range Slider",basic:"Basic Ranges",colors:"Color Variants",sizes:"Sizes",customUnits:"Custom Units",valuePositions:"Value Positions",sparkleAtMax:"Sparkle at Max",withoutGlow:"Without Glow",controlled:"Controlled Mode",volume:"Volume",brightness:"Brightness",contrast:"Contrast",primary:"Primary",secondary:"Secondary",accent:"Accent",success:"Success",danger:"Danger",warning:"Warning",small:"Small",medium:"Medium (default)",large:"Large",pixels:"Pixels",price:"Price",rial:"Rial (تومان)",temperature:"Temperature",left:"Left",right:"Right (default)",top:"Top",bottom:"Bottom",almostMax:"Almost at max",atMax:"At max (sparkle!)",sparkleNote:"Sparkle burst animation when reaching maximum value",noGlow:"No glow effect",noGlow2:"Secondary without glow",liveValue:"Live value",finalValue:"Final value",controlledLabel:"Controlled range",set25:"Set 25%",set75:"Set 75%",set100:"Set 100%",reset:"Reset"},productCard:{title:"Product Cards",variants:"Variants",layouts:"Layouts",glows:"Glow Effects",withActions:"With Quick Actions",responsive:"Responsive (Full width on mobile)",addToCart:"Add to Cart",outOfStock:"Out of Stock",sale:"Sale",new:"New",limited:"Limited",reviews:"reviews",vertical:"Vertical",horizontal:"Horizontal",compact:"Compact",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",product1:"Cyberpunk 2077 - Collector's Edition",product2:"Jedi Holocron - Limited Run",product3:"Neon Samurai Controller",product4:"Data Shard - Encrypted",desc1:"Limited edition collector's set with art book, steelbook case, and exclusive digital content.",desc2:"Authentic Jedi holocron replica with light and sound effects. Limited to 500 units worldwide.",desc3:"Wireless controller with RGB lighting, programmable back buttons, and low-latency connection.",desc4:"Encrypted data shard containing classified archive fragments. Requires Level 5 clearance.",category1:"Gaming",category2:"Collectibles",category3:"Accessories",category4:"Data",tag1:"limited",tag2:"collector",tag3:"exclusive",tag4:"encrypted"},blogCard:{title:"Blog Cards",variants:"Variants",layouts:"Layouts",glows:"Glow Effects",responsive:"Responsive (Full width on mobile)",readMore:"Read More",featured:"Featured Post",vertical:"Vertical",horizontal:"Horizontal",primaryGlow:"Primary Glow",secondaryGlow:"Secondary Glow",accentGlow:"Accent Glow",post1:"The Future of Glassmorphism in UI Design",post2:"Building a Design System from Scratch",post3:"Mastering 3D Hover Effects in React",post4:"The Art of Cyberpunk Aesthetics",excerpt1:"Explore how glassmorphism is evolving and why it's becoming the go-to aesthetic for modern interfaces in 2024.",excerpt2:"A comprehensive guide to building a design system that scales, from tokens to components.",excerpt3:"Learn how to create smooth 3D tilt effects for cards, images, and interactive elements.",excerpt4:"Dive into the cyberpunk aesthetic and how it influences modern UI design.",author1:"Jane Doe",author2:"John Smith",author3:"Alex Rivers",author4:"Taylor Night",category1:"Design",category2:"Development",category3:"React",category4:"Aesthetics",tag1:"design",tag2:"tutorial",tag3:"react",tag4:"aesthetic"},scrollReveal:{title:"Scroll Reveal",subtitle:"Animate elements into view as you scroll",animation:"Animation",stagger:"Staggered Reveal",allPresets:"All Animation Presets",triggerAgain:"Re-trigger on Scroll Back",demoTip:"Scroll down to see elements animate in"},pageLoader:{title:"Page Loader",subtitle:"Full-screen loading overlay with multiple shapes",shapes:"Loader Shapes",spinner:"Spinner",ring:"Ring",dots:"Dots",pulse:"Pulse",bars:"Bars",withBrand:"With Brand Mark",withProgress:"With Progress Bar",provider:"Provider Demo",loadingArchives:"Loading archives...",downloading:"Downloading data...",navigating:"Navigating...",fetchingData:"Fetching data...",uploading:"Uploading...",simulateRoute:"Simulate Route Change",simulateFetch:"Simulate Data Fetch",simulateUpload:"Simulate Upload with Progress"}},qt={app:{title:"کامپوننتهای دارا UI"},hero:{version:"نسخه ۱.۰ - آرشیو دیجیتال",title:"دارا UI",subtitle:"یک سیستم طراحی کشفشده در آرشیوی آیندهنگرانه که در زیر برف پنهان شده بود."},navbar:{home:"خانه",explore:"کاوش",settings:"تنظیمات",dashboard:"داشبورد",projects:"پروژهها",team:"تیم",analytics:"تحلیل",more:"بیشتر"},common:{thenImport:"سپس کامپوننتها را ایمپورت کنید:",hoverToFloat:"برای شناوری هاور کنید",mission:"ماموریت",requirements:"نیازمندیها:",complete:"تکمیل",completeMission:"تکمیل ماموریت",areYouSureComplete:"آیا مطمئن هستید که میخواهید ماموریت را تکمیل کنید:",youWillEarn:"شما دریافت خواهید کرد",uponCompletion:"پس از تکمیل."},codeBlock:{install:"npm install dara-ui",or:"یا",yarnAdd:"yarn add dara-ui",thenImport:"سپس کامپوننتها را ایمپورت کنید:",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"گونه",affiliation:"وابستگی"},productLabels:{addToCart:"افزودن به سبد",outOfStock:"ناموجود",sale:"تخفیف",new:"جدید",limited:"محدود"},blogLabels:{readMore:"ادامه مطلب",minRead:"{{count}} دقیقه"},sidebar:{title:"سایدبار",hint:"جمعشونده · گروهها · زیرمنوها · آماده RTL",logout:"خروج",main:"اصلی",management:"مدیریت",dashboard:"داشبورد",projects:"پروژهها",team:"تیم",documents:"اسناد",messages:"پیامها",settings:"تنظیمات",invoices:"فاکتورها",reports:"گزارشها",archive:"آرشیو",inbox:"صندوق ورودی",sent:"ارسالشده",drafts:"پیشنویسها",collapse:"جمع کردن",expand:"باز کردن",subtitle:"ناوبری جمعشونده با گروهها، زیرمنوها و پشتیبانی از RTL",tip1:"برای جمع کردن یا باز کردن، دکمه را کلیک کنید یا Ctrl+B را فشار دهید",tip2:"آیتمهای دارای زیرمنو با کلیک باز میشوند",tip3:"آیتمهای فعال با رنگ بنفش مشخص شدهاند",activeProjects:"پروژههای فعال",completedTasks:"وظایف انجام شده",teamMembers:"اعضای تیم",notifications:"اعلانها",darkMode:"حالت تاریک",language:"زبان",dashboardContent:"به داشبورد خود خوش آمدید. در اینجا میتوانید نمای کلی از پروژهها و فعالیت تیم خود را مشاهده کنید.",projectsContent:"همه پروژههای خود را در یک مکان مدیریت کنید. شما ۱۲ پروژه فعال دارید.",teamContent:"اعضای تیم و نقشهای آنها. ۵ عضو آنلاین هستند.",invoicesContent:"مشاهده و مدیریت تمام فاکتورهای شما.",reportsContent:"ایجاد و مشاهده گزارشهای دقیق.",archiveContent:"دسترسی به اسناد و مدارک بایگانی شده.",inboxContent:"پیامهای خوانده نشده و مکالمات شما.",sentContent:"پیامهایی که به دیگران ارسال کردهاید.",draftsContent:"پیشنویسهای ذخیره شده و پیامهای در انتظار شما.",settingsContent:"تنظیمات برنامه و حساب کاربری خود را پیکربندی کنید.",activeProjectsLabel:"پروژههای فعال",completedTasksLabel:"وظایف انجام شده",teamMembersLabel:"اعضای تیم",notificationsLabel:"اعلانها",storageLabel:"فضای ذخیرهسازی",quickActionsLabel:"اقدامات سریع",recentActivityLabel:"فعالیتهای اخیر",deployAction:"استقرار",reviewAction:"بررسی",inviteAction:"دعوت",upgradeAction:"ارتقا",projectAlpha:"پروژه آلفا",projectBeta:"پروژه بتا",projectGamma:"پروژه گاما",projectDelta:"پروژه دلتا",inProgress:"در حال انجام",completed:"تکمیل شده",onHold:"متوقف شده",review:"در بررسی",memberRole1:"توسعهدهنده ارشد",memberRole2:"طراح",memberRole3:"مدیر محصول",memberRole4:"مهندس تست",activityUpload:"فایلهای آرشیو جدید را آپلود کرد",activityComment:"در پروژه آلفا نظر داد",activityMerge:"درخواست ادغام #۴۲ را ادغام کرد",activityDeploy:"به محیط عملیاتی مستقر کرد",minutesAgo:"{{count}} دقیقه پیش",hoursAgo:"{{count}} ساعت پیش",invoiceNumber:"فاکتور #{{num}}",invoicePaid:"پرداخت شده",invoicePending:"در انتظار",invoiceOverdue:"معوق",reportWeekly:"گزارش هفتگی",reportMonthly:"گزارش ماهانه",reportQuarterly:"گزارش فصلی",mobileSidebarHint:"برای باز کردن منو، بکشید یا روی آن ضربه بزنید",openMenu:"باز کردن منو",closeMenu:"بستن منو"},badges:{title:"نشانها",variants:"واریانتها",sizes:"اندازهها",outline:"واریانتهای خطی",withGlow:"با درخشش",withIcons:"با آیکونها",primary:"اصلی",secondary:"ثانویه",success:"موفق",danger:"خطر",warning:"اخطار",small:"کوچک",medium:"متوسط",large:"بزرگ",glowPrimary:"درخشش اصلی",glowSuccess:"درخشش موفق",glowDanger:"درخشش خطر",package:"بسته",done:"انجام شد",pending:"در انتظار",failed:"ناموفق"},buttons:{title:"واریانتهای دکمه",withGlow:"با درخشش",withIcons:"با آیکونها",states:"وضعیتهای دکمه",sizesTitle:"اندازههای دکمه",primary:"اصلی",secondary:"ثانویه",accent:"متضاد",glass:"شیشهای",danger:"خطر",success:"موفق",outline:"خطی",normal:"عادی",hover:"هاور",pressed:"فشرده",disabled:"غیرفعال",loading:"در حال بارگذاری",small:"کوچک",medium:"متوسط",large:"بزرگ",glowPrimary:"درخشش اصلی",glowSecondary:"درخشش ثانویه",glowAccent:"درخشش متضاد",launch:"اجرا",next:"بعدی",confirm:"تأیید"},avatar:{title:"آواتار",sizes:"اندازهها",shapes:"اشکال",status:"وضعیتها",glowEffects:"جلوههای درخشش",withImage:"با تصویر",group:"گروه",clickable:"قابل کلیک"},tooltip:{title:"راهنما",placements:"موقعیتها",variants:"واریانتها",withBadge:"با نشان",longContent:"متن بلند",solidLabel:"توپر",outlineLabel:"خطی",glassLabel:"شیشهای",top:"بالا",bottom:"پایین",left:"چپ",right:"راست",topLeft:"بالا چپ",topRight:"بالا راست",bottomLeft:"پایین چپ",bottomRight:"پایین راست",glassTooltip:"راهنمای شیشهای",solidTooltip:"راهنمای توپر",outlineTooltip:"راهنمای خطی",unreadMessages:"شما {{count}} پیام خواندهنشده دارید",longTooltip:"این یک راهنمای بلندتر با اطلاعات دقیقتر درباره المان مورد نظر است.",hoverDetails:"برای جزئیات هاور کن",disabledTooltip:"این راهنما غیرفعال است",noArrow:"بدون پیکان در این راهنما",interactive:"راهنمای تعاملی",demoTitle:"نمایش راهنما",demoDescription:"برای مشاهده راهنماها، روی دکمههای زیر هاور کنید",placementDemo:"نمایش موقعیتها",variantDemo:"نمایش واریانتها",sizeDemo:"نمایش اندازهها",longContentDemo:"نمایش متن بلند",badgeDemo:"نمایش با نشان",disabledDemo:"نمایش راهنمای غیرفعال",noArrowDemo:"نمایش بدون پیکان"},tabs:{title:"تبها",archive:"آرشیو",quests:"ماموریتها",stats:"آمار",settings:"تنظیمات",archiveContent:"مرور سوابق رمزنگاریشده جدای، هولوکرونها و گزارش ماموریتها از آرشیو کلگری.",questsContent:"ماموریتهای فعال، جایزهها و ماموریتهای جانبی منتظر توجه شما هستند، پادوان.",statsContent:"همترازی نیرو، افزایش XP و سطوح ارتقای سایبرنتیک خود را پیگیری کنید.",settingsContent:"هاد، تم و تنظیمات رمزنگاری آرشیو را پیکربندی کنید."},accordion:{title:"آکاردئون",mode:"حالت",single:"تکی",multiple:"چندگانه",singleDesc:"فقط یک آیتم میتواند در هر زمان باز باشد",multipleDesc:"چندین آیتم میتوانند همزمان باز باشند",controlled:"کنترلشده - آیتمهای باز:",withIcons:"با آیکونها",q1:"دارا UI چیست؟",a1:"دارا UI یک سیستم طراحی است که حس یک رابط کشفشده در آرشیوی آیندهنگرانه در زیر کلگری در طوفان برف را دارد. ترکیبی از شیشهای، سایبرپانک، گوتیک، مینیمالیسم اپل و عناصر هاد انیمهای.",q2:"چه تمهایی موجود است؟",a2:"آرشیو شب (پیشفرض)، کلگری برفی (روشن)، حالت سیت (سیاه + قرمز)، معبد جدای (سفید + آبی)، دراکولا (بنفش) و شراب (قرمز تیره).",q3:"چگونه نصب کنم؟",a3:"npm install dara-ui, بعدش import { Button, Card, Input } from 'dara-ui' رو اول کدت اضافه کن. این کتابخونه با Vite، Next.js، و CRA قابل استفادست.",dashboard:"داشبورد",projects:"پروژهها",settingsAccordion:"تنظیمات",dashboardContent:"نمای کلی داشبورد با معیارهای کلیدی و فعالیتهای اخیر.",projectsContent:"پروژههای فعال و وضعیت فعلی آنها.",settingsContentAccordion:"تنظیمات برنامه خود را پیکربندی کنید."},dropdown:{title:"دراپداون",basic:"پایه",withIcons:"با آیکونها",searchable:"قابل جستجو",controlled:"کنترلشده - انتخابشده:",selectFramework:"یک فریمورک انتخاب کنید...",withPlaceholder:"با جایگذاری",selectWithIcons:"با آیکون انتخاب کنید...",searchWithIcons:"با آیکون جستجو کنید...",searchOptions:"جستجوی گزینهها...",searchFrameworks:"جستجوی فریمورکها...",typeToFilter:"برای فیلتر کردن تایپ کنید",framework:"فریمورک",chooseFramework:"فریمورک مورد نظر خود را انتخاب کنید",setVue:"تنظیم Vue",setSvelte:"تنظیم Svelte",setSolid:"تنظیم Solid"},cards:{title:"کارتها",variants:"واریانتها",floatGlow:"شناور + درخشش",featureCards:"کارتهای ویژه",glassCard:"کارت شیشهای",solidCard:"کارت توپر",outlineCard:"کارت خطی",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",launch:"اجرا",analytics:"تحلیل",deployProject:"پروژه خود را با یک کلیک مستقر کنید.",trackPerformance:"معیارهای عملکرد خود را پیگیری کنید."},inputs:{title:"ورودیها",basic:"ورودیهای پایه",withLabels:"با برچسبها",withIconsTitle:"با آیکونها",validation:"وضعیتهای اعتبارسنجی",textInput:"ورودی متن",password:"رمز عبور",search:"جستجو",email:"ایمیل",username:"نام کاربری",enterUsername:"نام کاربری را وارد کنید",enterEmail:"ایمیل را وارد کنید",emailHelper:"ما هرگز ایمیل شما را به اشتراک نمیگذاریم.",success:"موفق",error:"خطا",validInput:"ورودی معتبر!",somethingWrong:"مشکلی پیش آمده است"},modal:{title:"مودال",openModal:"باز کردن مودال",viewContent:"مشاهده محتوا",archiveAccess:"دسترسی به آرشیو",acceptMission:"پذیرش ماموریت",decline:"رد کردن",modalDescription:"شما یک قطعه آرشیو جدای مهر و موم شده را کشف کردید. این مودال از استایل glass-heavy با blur(30px) استفاده میکند."},toast:{title:"اعلانهای توست",subtitle:"بالا-راست · مینیمال · اسلاید ۲۲۰ms · خودکار حذف",successToast:"توست موفق",errorToast:"توست خطا",warningToast:"توست اخطار",infoToast:"توست اطلاعات",successMsg:"ماموریت انجام شد! +۳۰۰ XP دریافت شد.",errorMsg:"اتصال قطع شد. تلاش مجدد...",warningMsg:"لطفا اتصال خود را بررسی کنید",infoMsg:"آرشیوها در حال ایندکس شدن هستند"},progress:{title:"پیشرفت",horizontal:"افقی",labelInside:"برچسب داخل نوار",displayTypes:"انواع نمایش",sizes:"اندازهها",radial:"دایرهای",radialCustom:"دایرهای با برچسب سفارشی",radialSizes:"اندازههای دایرهای",almostDone:"تقریبا تمام شد!",loading:"لودینگ...",done:"انجام شد!"},xpbar:{title:"نوار تجربه، سطح",rankProgress:"پیشرفت رتبه",missionProgress:"پیشرفت ماموریت",tier:"سطح",rank:"رتبه",points:"امتیاز",exp:"تجربه",score:"امتیاز",prestige:"اعتبار"},rank:{common:"معمولی",uncommon:"غیرمعمول",rare:"کمیاب",epic:"حماسی",legendary:"افسانهای",recruit:"تازهکار",soldier:"سرباز",veteran:"کهنهکار",elite:"نخبه",commander:"فرمانده"},glow:{title:"جلوههای درخشش",glowPrimary:"درخشش بنفش",glowSecondary:"درخشش فیروزهای",glowAccent:"درخشش صورتی"},quest:{title:"کارتهای ماموریت",buildCMS:"ساخت CMS",buildCMSDesc:"رابط آرشیو جدای را پیش از آب شدن برفها مستقر کنید.",secureArchives:"ایمنسازی آرشیو",secureArchivesDesc:"رمزنگاری سرتاسری برای تمام دادههای ذخیرهشده در آرشیو پیادهسازی کنید.",legendaryQuest:"ماموریت افسانهای: آرشیو گمشده",legendaryQuestDesc:"به اعماق طاق فراموششده سفر کنید و هولوکرون باستانی را بازیابی کنید.",mapNightCity:"نقشهبرداری شبشهر",mapNightCityDesc:"نقشه جامعی از منطقه سایبرپانکی قبل از پاکسازی داده ایجاد کنید.",requirements:"نیازمندیها",completeReviews:"تکمیل ۳ بازبینی کد",writeTests:"نوشتن ۵ تست واحد",deployStaging:"استقرار در محیط تست",reachLevel:"رسیدن به سطح ۲۵",defeatGuardian:"شکست دادن نگهبان سایه",collectArtifacts:"جمعآوری ۳ اثر باستانی",solveRiddle:"حل معما",scanLocations:"اسکن ۱۰ مکان",interviewNPCs:"مصاحبه با ۵ شخصیت",uploadArchive:"آپلود در آرشیو",deadline:"مهلت",deadlineToday:"مهلت: امروز",deadlineTomorrow:"مهلت: فردا",deadlineTonight:"مهلت: امشب",deadlineYesterday:"مهلت: دیروز",daysAgo:"روز پیش",days:"روز",week:"هفته",weeks:"هفته",month:"ماه",months:"ماه",years:"سال"},character:{title:"کارتهای شخصیت",vertical:"چیدمان عمودی (پیشفرض)",horizontal:"چیدمان افقی",daraName:"دارا",daraSubtitle:"بایگان جدای",daraQuote:"تاریکی ترسناک نیست - باید بایگانی شود.",cipherName:"سایفر",cipherSubtitle:"نترانر",cipherQuote:"کد کلید همه چیز است.",shadowName:"سایه",shadowSubtitle:"شکارچی شب",shadowQuote:"من در تاریکی حرکت میکنم جایی که آنها نمیتوانند ببینند.",force:"نیرو",combat:"رزمی",intelligence:"هوش",wisdom:"خرد",hacking:"هک",stealth:"مخفیکاری",agility:"چابکی",strength:"قدرت",speciesHumanCyborg:"انسان/سایبورگ",speciesCyborg:"سایبورگ",speciesVampire:"خونآشام",affiliationJedi:"فرقه جدای",affiliationNetwatch:"نتواچ",affiliationNightCouncil:"شورای شب",traitMbtiIntj:"MBTI: INTJ",traitMbtiIntp:"MBTI: INTP",traitMbtiIstp:"MBTI: ISTP",traitHumanCyborg:"انسان/سایبورگ",traitCyborg:"سایبورگ",traitVampire:"خونآشام"},statsWidget:{title:"ویجت آمار",radialVariant:"واریانت دایرهای",barVariant:"واریانت نواری",horizontalLayout:"چیدمان افقی",forceStats:"آمار نیرو",characterStats:"آمار شخصیت",progress:"پیشرفت",skills:"مهارتها",battleStats:"آمار نبرد",skillProgress:"پیشرفت مهارت",health:"سلامت",mana:"مانا",stamina:"استقامت",level:"سطح",endurance:"استقامت",luck:"شانس",statsSuffix:"آمار"},themeChanger:{title:"تغییر دهنده تم",default:"پیشفرض",iconOnly:"فقط آیکون",fixedWidth:"عرض ثابت (۱۶۰px)",small:"کوچک",smallIconOnly:"کوچک فقط آیکون",customThemes:"تمهای سفارشی",demo:"نمایش",themeChangerDesc:"تغییر دهنده تم با تشخیص خودکار، حالت فقط آیکون و پشتیبانی از عرض ثابت. برای استفاده فشرده در نوار ناوبری از iconOnly استفاده کنید، یا برای اندازهگیری ثابت از fixedWidth استفاده کنید."},languageChanger:{title:"تغییر دهنده زبان",default:"پیشفرض",iconOnly:"فقط آیکون",fixedWidth:"عرض ثابت (۱۶۰px)",small:"کوچک",smallIconOnly:"کوچک فقط آیکون",customLanguages:"زبانهای سفارشی",demo:"نمایش",languageChangerDesc:"تغییر دهنده زبان با ذخیرهسازی در localStorage، حالت فقط آیکون و پشتیبانی از عرض ثابت. برای استفاده فشرده در نوار ناوبری از iconOnly استفاده کنید، یا برای اندازهگیری ثابت از fixedWidth استفاده کنید. زبان در localStorage ذخیره شده و ویژگیهای lang و dir روی عنصر html بهروز میشوند."},gradients:{title:"گرادیانها",primary:"اصلی",accent:"متضاد",success:"موفق",danger:"خطر"},effects:{title:"جلوهها",glassEffect:"جلوه شیشهای",glowPrimary:"درخشش بنفش",glowAccent:"درخشش صورتی"},typography:{title:"تایپوگرافی",textSecondary:"متن ثانویه",regularBody:"متن معمولی با فونت Inter",gradientHeading:"عنوان گرادیان",accentText:"متن با رنگ متضاد",codeExample:'console.log("کد با فونت JetBrains Mono");'},persian:{title:"پشتیبانی از فارسی",persianText:"این متن با فونت وزیرمتن نمایش داده میشود",persianHeading:"عنوان فارسی با قلم Kook",persianDesc:"متن فارسی با اندازه کوچک و رنگ ثانویه"},checkbox:{title:"چکباکس",basic:"چکباکسهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",unchecked:"تیک نخورده",checked:"تیک خورده",glowChecked:"درخشش هنگام تیک خوردن",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",error:"حالت خطا",disabled:"غیرفعال",disabledChecked:"غیرفعال تیک خورده",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"حالت RTL - برچسب در سمت راست قرار میگیرد",controlledLabel:"چکباکس کنترلشده",status:"وضعیت",check:"تیک بزن",uncheck:"تیک بردار",groupLabel:"تنظیمات خود را انتخاب کنید:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",selectedCount:"انتخاب شده"},switch:{title:"سوئیچ",basic:"سوئیچهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",off:"خاموش",on:"روشن",glowOn:"درخشش هنگام روشن بودن",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",disabledOff:"غیرفعال خاموش",disabledOn:"غیرفعال روشن",rtlLabel1:"فعال سازی حالت شب",rtlLabel2:"فعال کردن اعلانها",rtlLabel3:"حالت خودکار",rtlNote:"حالت RTL - برچسب در بالا، سوئیچ جهت خود را تغییر میدهد",controlledLabel:"سوئیچ کنترلشده",status:"وضعیت",turnOn:"روشن کن",turnOff:"خاموش کن",groupLabel:"تنظیمات:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",enabledCount:"فعال",withIcons:"با آیکونها",notifications:"اعلانها",darkMode:"حالت شب",sound:"صدا"},radio:{title:"رادیو",basic:"رادیوهای پایه",sizes:"اندازهها",states:"وضعیتها",rtlSupport:"پشتیبانی از RTL",controlled:"کنترلشده",group:"مثال گروهی",unselected:"انتخاب نشده",selected:"انتخاب شده",glowSelected:"درخشش هنگام انتخاب",small:"کوچک",medium:"متوسط",large:"بزرگ",normal:"عادی",error:"حالت خطا",disabled:"غیرفعال",disabledChecked:"غیرفعال انتخاب شده",rtlLabel1:"پذیرش شرایط",rtlLabel2:"تایید اطلاعات",rtlLabel3:"فعال سازی حالت شب",rtlNote:"حالت RTL - برچسب در سمت راست قرار میگیرد",controlledLabel:"رادیو کنترلشده",status:"وضعیت",select:"انتخاب",deselect:"لغو انتخاب",groupLabel:"تنظیمات خود را انتخاب کنید:",groupOption1:"فعال کردن اعلانها",groupOption2:"حالت شب",groupOption3:"ذخیره خودکار",horizontalGroup:"گروه افقی",nightfall:"شب",daylight:"روز",dracula:"دراکولا"},range:{title:"لغزنده محدوده",basic:"لغزندههای پایه",colors:"واریانتهای رنگی",sizes:"اندازهها",customUnits:"واحدهای سفارشی",valuePositions:"موقعیتهای مقدار",sparkleAtMax:"جرقه در حداکثر",withoutGlow:"بدون درخشش",controlled:"حالت کنترلشده",volume:"صدا",brightness:"روشنایی",contrast:"کنتراست",primary:"اصلی",secondary:"ثانویه",accent:"متضاد",success:"موفق",danger:"خطر",warning:"اخطار",small:"کوچک",medium:"متوسط (پیشفرض)",large:"بزرگ",pixels:"پیکسل",price:"قیمت",rial:"ریال (تومان)",temperature:"دما",left:"چپ",right:"راست (پیشفرض)",top:"بالا",bottom:"پایین",almostMax:"نزدیک به حداکثر",atMax:"در حداکثر (جرقه!)",sparkleNote:"انفجار جرقه هنگام رسیدن به حداکثر مقدار",noGlow:"بدون جلوه درخشش",noGlow2:"ثانویه بدون درخشش",liveValue:"مقدار زنده",finalValue:"مقدار نهایی",controlledLabel:"لغزنده کنترلشده",set25:"تنظیم ۲۵٪",set75:"تنظیم ۷۵٪",set100:"تنظیم ۱۰۰٪",reset:"بازنشانی"},productCard:{title:"کارتهای محصول",variants:"واریانتها",layouts:"چیدمانها",glows:"جلوههای درخشش",withActions:"با اقدامات سریع",responsive:"واکنشگرا (عرض کامل در موبایل)",addToCart:"افزودن به سبد خرید",outOfStock:"ناموجود",sale:"تخفیف",new:"جدید",limited:"محدود",reviews:"نظرات",vertical:"عمودی",horizontal:"افقی",compact:"فشرده",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",product1:"سایبرپانک ۲۰۷۷ - نسخه کلکسیونی",product2:"هولوکرون جدای - نسخه محدود",product3:"کنترلر سامورایی نئون",product4:"شاخه داده - رمزنگاریشده",desc1:"مجموعه کلکسیونی نسخه محدود با کتاب هنری، قاب فلزی و محتوای دیجیتال اختصاصی.",desc2:"کپی معتبر هولوکرون جدای با جلوههای نور و صدا. محدود به ۵۰۰ دستگاه در سراسر جهان.",desc3:"کنترلر بیسیم با نورپردازی RGB، دکمههای پشتی قابل برنامهریزی و اتصال با تأخیر کم.",desc4:"شاخه داده رمزنگاریشده حاوی قطعات طبقهبندیشده آرشیو. نیاز به سطح ۵ دسترسی دارد.",category1:"بازی",category2:"کلکسیونی",category3:"لوازم جانبی",category4:"داده",tag1:"محدود",tag2:"کلکسیونی",tag3:"اختصاصی",tag4:"رمزنگاریشده"},blogCard:{title:"کارتهای وبلاگ",variants:"واریانتها",layouts:"چیدمانها",glows:"جلوههای درخشش",responsive:"واکنشگرا (عرض کامل در موبایل)",readMore:"ادامه مطلب",featured:"نوشته ویژه",vertical:"عمودی",horizontal:"افقی",primaryGlow:"درخشش با رنگ اولیه",secondaryGlow:"درخشش با رنگ دوم",accentGlow:"درخشش با رنگ اکسنت",post1:"آینده شیشهمورفیسم در طراحی رابط کاربری",post2:"ساخت یک سیستم طراحی از صفر",post3:"تسلط بر جلوههای هاور سهبعدی در React",post4:"هنر زیباییشناسی سایبرپانک",excerpt1:"بررسی تکامل شیشهمورفیسم و اینکه چرا به زیباییشناسی اصلی رابطهای مدرن در ۲۰۲۴ تبدیل میشود.",excerpt2:"راهنمای جامع ساخت یک سیستم طراحی که مقیاسپذیر باشد، از توکنها تا کامپوننتها.",excerpt3:"یادگیری ساخت جلوههای چرخش سهبعدی نرم برای کارتها، تصاویر و عناصر تعاملی.",excerpt4:"غواصی در زیباییشناسی سایبرپانک و تأثیر آن بر طراحی رابط کاربری مدرن.",author1:"جین دو",author2:"جان اسمیت",author3:"الکس ریورز",author4:"تیلور نایت",category1:"طراحی",category2:"توسعه",category3:"ریاکت",category4:"زیباییشناسی",tag1:"طراحی",tag2:"آموزشی",tag3:"ریاکت",tag4:"زیباییشناسی"},scrollReveal:{title:"نمایش با اسکرول",subtitle:"انیمیشن عناصر هنگام ورود به دید",animation:"انیمیشن",stagger:"نمایش پلکانی",allPresets:"همه پیشتنظیمهای انیمیشن",triggerAgain:"اجرای مجدد در اسکرول برگشتی",demoTip:"برای دیدن انیمیشن عناصر، به پایین اسکرول کنید"},pageLoader:{title:"لودر صفحه",subtitle:"پوشش تمامصفحه بارگذاری با اشکال مختلف",shapes:"اشکال لودر",spinner:"چرخان",ring:"حلقهای",dots:"نقطهای",pulse:"ضربان",bars:"میلهای",withBrand:"با نشان برند",withProgress:"با نوار پیشرفت",provider:"نمایش پرووایدر",loadingArchives:"در حال بارگذاری آرشیو...",downloading:"در حال دانلود داده...",navigating:"در حال انتقال...",fetchingData:"در حال دریافت داده...",uploading:"در حال آپلود...",simulateRoute:"شبیهسازی تغییر مسیر",simulateFetch:"شبیهسازی دریافت داده",simulateUpload:"شبیهسازی آپلود با پیشرفت"}},Vt={app:{title:"Composants Dara UI"},hero:{version:"v1.0 - Les Archives Numériques",title:"DARA UI",subtitle:"Un système de design découvert dans une archive futuriste cachée sous la neige."},navbar:{home:"Accueil",explore:"Explorer",settings:"Paramètres",dashboard:"Tableau de bord",projects:"Projets",team:"Équipe",analytics:"Analyses",more:"Plus"},common:{thenImport:"Ensuite, importez les composants :",hoverToFloat:"Survolez pour flotter",mission:"MISSION",requirements:"Prérequis :",complete:"Terminer",completeMission:"Terminer la mission",areYouSureComplete:"Êtes-vous sûr de vouloir terminer la mission :",youWillEarn:"Vous gagnerez",uponCompletion:"à la fin."},codeBlock:{install:"npm install dara-ui",or:"ou",yarnAdd:"yarn add dara-ui",thenImport:"Ensuite, importez les composants :",importExample:"import { Button, Card, Input } from 'dara-ui';"},characterLabels:{mbti:"MBTI",species:"Espèce",affiliation:"Affiliation"},productLabels:{addToCart:"Ajouter au panier",outOfStock:"En rupture de stock",sale:"Soldes",new:"Nouveau",limited:"Édition limitée"},blogLabels:{readMore:"Lire la suite",minRead:"{{count}} min"},sidebar:{title:"Barre latérale",hint:"Réductible · Groupes · Sous-menus · Prêt RTL",logout:"Déconnexion",main:"Principal",management:"Gestion",dashboard:"Tableau de bord",projects:"Projets",team:"Équipe",documents:"Documents",messages:"Messages",settings:"Paramètres",invoices:"Factures",reports:"Rapports",archive:"Archives",inbox:"Boîte de réception",sent:"Envoyés",drafts:"Brouillons",collapse:"Réduire",expand:"Développer",subtitle:"Navigation réductible avec groupes, sous-menus et support RTL",tip1:"Cliquez sur le bouton de réduction ou appuyez sur Ctrl+B pour basculer",tip2:"Les éléments avec sous-menus se développent au clic",tip3:"Les éléments actifs sont surlignés en violet",activeProjects:"Projets actifs",completedTasks:"Tâches terminées",teamMembers:"Membres de l'équipe",notifications:"Notifications",darkMode:"Mode sombre",language:"Langue",dashboardContent:"Bienvenue sur votre tableau de bord. Vous pouvez voir un aperçu de vos projets et de l'activité de votre équipe.",projectsContent:"Gérez tous vos projets au même endroit. Vous avez 12 projets actifs.",teamContent:"Les membres de votre équipe et leurs rôles. 5 membres en ligne.",invoicesContent:"Consultez et gérez toutes vos factures.",reportsContent:"Générez et consultez des rapports détaillés.",archiveContent:"Accédez aux documents et dossiers archivés.",inboxContent:"Vos messages non lus et vos conversations.",sentContent:"Messages que vous avez envoyés à d'autres.",draftsContent:"Vos brouillons enregistrés et messages en attente.",settingsContent:"Configurez les préférences de votre application et les paramètres de votre compte.",activeProjectsLabel:"Projets actifs",completedTasksLabel:"Tâches terminées",teamMembersLabel:"Membres de l'équipe",notificationsLabel:"Notifications",storageLabel:"Stockage",quickActionsLabel:"Actions rapides",recentActivityLabel:"Activité récente",deployAction:"Déployer",reviewAction:"Réviser",inviteAction:"Inviter",upgradeAction:"Mettre à niveau",projectAlpha:"Projet Alpha",projectBeta:"Projet Beta",projectGamma:"Projet Gamma",projectDelta:"Projet Delta",inProgress:"En cours",completed:"Terminé",onHold:"En pause",review:"En révision",memberRole1:"Développeur principal",memberRole2:"Designer",memberRole3:"Chef de produit",memberRole4:"Ingénieur QA",activityUpload:"A téléversé de nouveaux fichiers d'archive",activityComment:"A commenté le Projet Alpha",activityMerge:"A fusionné la pull request #42",activityDeploy:"A déployé en production",minutesAgo:"il y a {{count}} min",hoursAgo:"il y a {{count}} heures",invoiceNumber:"Facture #{{num}}",invoicePaid:"Payée",invoicePending:"En attente",invoiceOverdue:"En retard",reportWeekly:"Rapport hebdomadaire",reportMonthly:"Rapport mensuel",reportQuarterly:"Rapport trimestriel",mobileSidebarHint:"Glissez ou touchez le menu pour ouvrir la navigation",openMenu:"Ouvrir le menu",closeMenu:"Fermer le menu"},badges:{title:"Badges",variants:"Variantes",sizes:"Tailles",outline:"Variantes contour",withGlow:"Avec lueur",withIcons:"Avec icônes",primary:"Primaire",secondary:"Secondaire",success:"Succès",danger:"Danger",warning:"Avertissement",small:"Petit",medium:"Moyen",large:"Grand",glowPrimary:"Lueur Primaire",glowSuccess:"Lueur Succès",glowDanger:"Lueur Danger",package:"Paquet",done:"Terminé",pending:"En attente",failed:"Échoué"},buttons:{title:"Variantes de boutons",withGlow:"Avec lueur",withIcons:"Avec icônes",states:"États des boutons",sizesTitle:"Tailles des boutons",primary:"Primaire",secondary:"Secondaire",accent:"Accent",glass:"Verre",danger:"Danger",success:"Succès",outline:"Contour",normal:"Normal",hover:"Survol",pressed:"Appuyé",disabled:"Désactivé",loading:"Chargement",small:"Petit",medium:"Moyen",large:"Grand",glowPrimary:"Lueur Primaire",glowSecondary:"Lueur Secondaire",glowAccent:"Lueur Accent",launch:"Lancer",next:"Suivant",confirm:"Confirmer"},avatar:{title:"Avatar",sizes:"Tailles",shapes:"Formes",status:"Indicateurs de statut",glowEffects:"Effets de lueur",withImage:"Avec image",group:"Groupe",clickable:"Cliquable"},tooltip:{title:"Infobulle",placements:"Placements",variants:"Variantes",withBadge:"Avec badge",longContent:"Contenu long",solidLabel:"Solide",outlineLabel:"Contour",glassLabel:"Verre",top:"Haut",bottom:"Bas",left:"Gauche",right:"Droite",topLeft:"Haut gauche",topRight:"Haut droite",bottomLeft:"Bas gauche",bottomRight:"Bas droite",glassTooltip:"Infobulle en verre",solidTooltip:"Infobulle solide",outlineTooltip:"Infobulle contour",unreadMessages:"Vous avez {{count}} messages non lus",longTooltip:"Ceci est une infobulle plus longue avec des informations plus détaillées sur l'élément que vous survolez.",hoverDetails:"Survolez pour plus de détails",disabledTooltip:"Cette infobulle est désactivée",noArrow:"Pas de flèche sur cette infobulle",interactive:"Infobulle interactive",demoTitle:"Démo d'infobulle",demoDescription:"Survolez les boutons ci-dessous pour voir les infobulles en action",placementDemo:"Démo de placement",variantDemo:"Démo de variantes",sizeDemo:"Démo de tailles",longContentDemo:"Démo de contenu long",badgeDemo:"Démo avec badge",disabledDemo:"Démo d'infobulle désactivée",noArrowDemo:"Démo sans flèche"},tabs:{title:"Onglets",archive:"Archives",quests:"Quêtes",stats:"Statistiques",settings:"Paramètres",archiveContent:"Parcourez les enregistrements Jedi cryptés, les holocrons et les journaux de mission des archives.",questsContent:"Des missions actives, des primes et des quêtes secondaires vous attendent, Padawan.",statsContent:"Suivez votre alignement de la Force, vos gains d'XP et vos niveaux d'amélioration cybernétique.",settingsContent:"Configurez votre HUD, votre mode thème et vos préférences de cryptage d'archives."},accordion:{title:"Accordéon",mode:"Mode",single:"Unique",multiple:"Multiple",singleDesc:"Un seul élément peut être ouvert à la fois",multipleDesc:"Plusieurs éléments peuvent être ouverts simultanément",controlled:"Contrôlé - Éléments ouverts :",withIcons:"Avec icônes",q1:"Qu'est-ce que Dara UI ?",a1:"Dara UI est un système de design qui ressemble à une interface découverte dans une archive futuriste cachée sous lors d'une tempête de neige. Il mélange le glassmorphisme, le cyberpunk, l'esthétique gothique, le minimalisme d'Apple et des éléments d'interface anime.",q2:"Quels thèmes sont disponibles ?",a2:"Archive Nocturne (défaut), Enneigée (clair), Mode Sith (noir + rouge), Temple Jedi (blanc + bleu), Dracula (violet) et Vin (rouges profonds).",q3:"Comment l'installer ?",a3:"npm install dara-ui, puis import { Button, Card, Input } from 'dara-ui'. Fonctionne avec Vite, Next.js et CRA.",dashboard:"Tableau de bord",projects:"Projets",settingsAccordion:"Paramètres",dashboardContent:"Aperçu du tableau de bord avec les indicateurs clés et l'activité récente.",projectsContent:"Projets actifs et leur statut actuel.",settingsContentAccordion:"Configurez les préférences de votre application."},dropdown:{title:"Liste déroulante",basic:"Basique",withIcons:"Avec icônes",searchable:"Recherchable",controlled:"Contrôlé - Sélectionné :",selectFramework:"Sélectionnez un framework...",withPlaceholder:"Avec espace réservé",selectWithIcons:"Sélectionnez avec icônes...",searchWithIcons:"Recherchez avec icônes...",searchOptions:"Rechercher des options...",searchFrameworks:"Rechercher des frameworks...",typeToFilter:"Tapez pour filtrer les options",framework:"Framework",chooseFramework:"Choisissez votre framework préféré",setVue:"Définir Vue",setSvelte:"Définir Svelte",setSolid:"Définir Solid"},cards:{title:"Cartes",variants:"Variantes",floatGlow:"Flottant + Lueur",featureCards:"Cartes de fonctionnalités",glassCard:"Carte en verre",solidCard:"Carte solide",outlineCard:"Carte contour",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",launch:"Lancer",analytics:"Analyses",deployProject:"Déployez votre projet en un clic.",trackPerformance:"Suivez vos métriques de performance."},inputs:{title:"Champs de saisie",basic:"Champs de saisie basiques",withLabels:"Avec étiquettes",withIconsTitle:"Avec icônes",validation:"États de validation",textInput:"Saisie de texte",password:"Mot de passe",search:"Recherche",email:"Email",username:"Nom d'utilisateur",enterUsername:"Entrez le nom d'utilisateur",enterEmail:"Entrez l'email",emailHelper:"Nous ne partagerons jamais votre email.",success:"Succès",error:"Erreur",validInput:"Saisie valide !",somethingWrong:"Une erreur s'est produite"},modal:{title:"Modale",openModal:"Ouvrir la modale",viewContent:"Voir le contenu",archiveAccess:"Accès aux archives",acceptMission:"Accepter la mission",decline:"Refuser",modalDescription:"Vous avez découvert un fragment d'archive Jedi scellé. Cette modale utilise un style glass-heavy avec un arrière-plan flou à 30px."},toast:{title:"Notifications Toast",subtitle:"En haut à droite · Minimal · Glissement 220ms · Auto-fermeture",successToast:"Toast Succès",errorToast:"Toast Erreur",warningToast:"Toast Avertissement",infoToast:"Toast Info",successMsg:"Mission terminée ! +300 XP gagnés.",errorMsg:"Connexion perdue. Nouvel essai...",warningMsg:"Veuillez vérifier votre connexion",infoMsg:"Les archives sont en cours d'indexation"},progress:{title:"Progression",horizontal:"Horizontal",labelInside:"Étiquette à l'intérieur",displayTypes:"Types d'affichage",sizes:"Tailles",radial:"Radial",radialCustom:"Radial avec étiquette personnalisée",radialSizes:"Tailles radiales",almostDone:"Presque terminé !",loading:"Chargement...",done:"Terminé !"},xpbar:{title:"Barre d'XP, Niveau",rankProgress:"PROGRESSION DE RANG",missionProgress:"PROGRESSION DE MISSION",tier:"Niveau",rank:"Rang",points:"Points",exp:"EXP",score:"Score",prestige:"Prestige"},rank:{common:"Commun",uncommon:"Peu commun",rare:"Rare",epic:"Épique",legendary:"Légendaire",recruit:"Recrue",soldier:"Soldat",veteran:"Vétéran",elite:"Élite",commander:"Commandant"},glow:{title:"Effets de lueur",glowPrimary:"Lueur violette",glowSecondary:"Lueur Secondary",glowAccent:"Lueur rose"},quest:{title:"Cartes de quêtes",buildCMS:"Construire CMS",buildCMSDesc:"Déployez l'interface d'archives Jedi cryptée avant que la neige ne fonde.",secureArchives:"Sécuriser les archives",secureArchivesDesc:"Implémentez le chiffrement de bout en bout pour toutes les données stockées dans les archives.",legendaryQuest:"Quête légendaire : Les archives perdues",legendaryQuestDesc:"Voyagez dans les profondeurs du caveau oublié et récupérez l'ancien holocron.",mapNightCity:"Cartographier Night City",mapNightCityDesc:"Créez une carte complète du quartier cyberpunk avant la purge des données.",requirements:"Prérequis",completeReviews:"Compléter 3 revues de code",writeTests:"Écrire 5 tests unitaires",deployStaging:"Déployer en pré-production",reachLevel:"Atteindre le niveau 25",defeatGuardian:"Vaincre le Gardien de l'Ombre",collectArtifacts:"Collecter 3 artefacts anciens",solveRiddle:"Résoudre l'énigme du sphinx",scanLocations:"Scanner 10 emplacements",interviewNPCs:"Interviewer 5 PNJ",uploadArchive:"Téléverser vers l'archive",deadline:"Échéance",deadlineToday:"Échéance : Aujourd'hui",deadlineTomorrow:"Échéance : Demain",deadlineTonight:"Échéance : Ce soir",deadlineYesterday:"Échéance : Hier",daysAgo:"jours",days:"jours",week:"semaine",weeks:"semaines",month:"mois",months:"mois",years:"ans"},character:{title:"Cartes de personnage",vertical:"Disposition verticale (défaut)",horizontal:"Disposition horizontale",daraName:"Dara",daraSubtitle:"Archiviste Jedi",daraQuote:"L'obscurité n'est pas à craindre - elle doit être archivée.",cipherName:"Cipher",cipherSubtitle:"Netrunner",cipherQuote:"Le code est la clé de tout.",shadowName:"Ombre",shadowSubtitle:"Chasseur nocturne",shadowQuote:"Je me déplace dans l'obscurité là où ils ne peuvent pas voir.",force:"Force",combat:"Combat",intelligence:"Intelligence",wisdom:"Sagesse",hacking:"Piratage",stealth:"Furtivité",agility:"Agilité",strength:"Force",speciesHumanCyborg:"Humain/Cyborg",speciesCyborg:"Cyborg",speciesVampire:"Vampire",affiliationJedi:"Ordre Jedi",affiliationNetwatch:"Netwatch",affiliationNightCouncil:"Conseil de la Nuit",traitMbtiIntj:"MBTI : INTJ",traitMbtiIntp:"MBTI : INTP",traitMbtiIstp:"MBTI : ISTP",traitHumanCyborg:"Humain/Cyborg",traitCyborg:"Cyborg",traitVampire:"Vampire"},statsWidget:{title:"Widget de statistiques",radialVariant:"Variante radiale",barVariant:"Variante à barres",horizontalLayout:"Disposition horizontale",forceStats:"STATS DE LA FORCE",characterStats:"STATS DU PERSONNAGE",progress:"PROGRÈS",skills:"COMPÉTENCES",battleStats:"STATS DE COMBAT",skillProgress:"PROGRÈS DES COMPÉTENCES",health:"Santé",mana:"Mana",stamina:"Endurance",level:"Niveau",endurance:"Endurance",luck:"Chance",statsSuffix:"stats"},themeChanger:{title:"Changeur de thème",default:"Défaut",iconOnly:"Icône uniquement",fixedWidth:"Largeur fixe (160px)",small:"Petit",smallIconOnly:"Petit icône uniquement",customThemes:"Thèmes personnalisés",demo:"Démo",themeChangerDesc:"Changeur de thème avec détection automatique, mode icône uniquement et support de largeur fixe. Passez iconOnly pour une utilisation compacte dans la barre de navigation, ou fixedWidth pour une taille cohérente."},languageChanger:{title:"Changeur de langue",default:"Défaut",iconOnly:"Icône uniquement",fixedWidth:"Largeur fixe (160px)",small:"Petit",smallIconOnly:"Petit icône uniquement",customLanguages:"Langues personnalisées",demo:"Démo",languageChangerDesc:"Changeur de langue avec persistance localStorage, mode icône uniquement et support de largeur fixe. Passez iconOnly pour une utilisation compacte dans la barre de navigation, ou fixedWidth pour une taille cohérente. La langue est persistée via localStorage et met à jour les attributs lang et dir sur l'élément html."},gradients:{title:"Dégradés",primary:"Primaire",accent:"Accent",success:"Succès",danger:"Danger"},effects:{title:"Effets",glassEffect:"Effet verre",glowPrimary:"Lueur violette",glowAccent:"Lueur rose"},typography:{title:"Typographie",textSecondary:"Texte secondaire",regularBody:"Texte corporel régulier avec la police Inter",gradientHeading:"Titre dégradé",accentText:"Texte coloré accentué",codeExample:'console.log("Code avec JetBrains Mono");'},persian:{title:"Support persan",persianText:"Ce texte est affiché avec la police Vazirmatn",persianHeading:"Titre persan avec la police Kook",persianDesc:"Texte persan en petit format et couleur secondaire"},checkbox:{title:"Case à cocher",basic:"Cases à cocher de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlée",group:"Exemple de groupe",unchecked:"Décoché",checked:"Coché",glowChecked:"Lueur lorsqu'elle est cochée",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",error:"État d'erreur",disabled:"Désactivé",disabledChecked:"Désactivé coché",rtlLabel1:"Accepter les conditions",rtlLabel2:"Confirmer les informations",rtlLabel3:"Activer le mode nuit",rtlNote:"Mode RTL - l'étiquette apparaît à droite",controlledLabel:"Case à cocher contrôlée",status:"Statut",check:"Cocher",uncheck:"Décocher",groupLabel:"Sélectionnez vos préférences :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",selectedCount:"Sélectionné"},switch:{title:"Interrupteur",basic:"Interrupteurs de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlé",group:"Exemple de groupe",off:"Désactivé",on:"Activé",glowOn:"Lueur lorsqu'activé",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",disabledOff:"Désactivé éteint",disabledOn:"Désactivé allumé",rtlLabel1:"Activer le mode nuit",rtlLabel2:"Activer les notifications",rtlLabel3:"Mode automatique",rtlNote:"Mode RTL - l'étiquette reste en haut, l'interrupteur s'adapte",controlledLabel:"Interrupteur contrôlé",status:"Statut",turnOn:"Allumer",turnOff:"Éteindre",groupLabel:"Paramètres :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",enabledCount:"Activé",withIcons:"Avec icônes",notifications:"Notifications",darkMode:"Mode sombre",sound:"Son"},radio:{title:"Radio",basic:"Radios de base",sizes:"Tailles",states:"États",rtlSupport:"Support RTL",controlled:"Contrôlé",group:"Exemple de groupe",unselected:"Désélectionné",selected:"Sélectionné",glowSelected:"Lueur lorsqu'elle est sélectionnée",small:"Petit",medium:"Moyen",large:"Grand",normal:"Normal",error:"État d'erreur",disabled:"Désactivé",disabledChecked:"Désactivé sélectionné",rtlLabel1:"Accepter les conditions",rtlLabel2:"Confirmer les informations",rtlLabel3:"Activer le mode nuit",rtlNote:"Mode RTL - l'étiquette apparaît à droite",controlledLabel:"Radio contrôlée",status:"Statut",select:"Sélectionner",deselect:"Désélectionner",groupLabel:"Sélectionnez votre préférence :",groupOption1:"Activer les notifications",groupOption2:"Mode sombre",groupOption3:"Sauvegarde automatique",horizontalGroup:"Groupe horizontal",nightfall:"Nuit",daylight:"Jour",dracula:"Dracula"},range:{title:"Curseur de plage",basic:"Curseurs de base",colors:"Variantes de couleurs",sizes:"Tailles",customUnits:"Unités personnalisées",valuePositions:"Positions des valeurs",sparkleAtMax:"Étincelle au maximum",withoutGlow:"Sans lueur",controlled:"Mode contrôlé",volume:"Volume",brightness:"Luminosité",contrast:"Contraste",primary:"Primaire",secondary:"Secondaire",accent:"Accent",success:"Succès",danger:"Danger",warning:"Avertissement",small:"Petit",medium:"Moyen (défaut)",large:"Grand",pixels:"Pixels",price:"Prix",rial:"Rial (تومان)",temperature:"Température",left:"Gauche",right:"Droite (défaut)",top:"Haut",bottom:"Bas",almostMax:"Presque au maximum",atMax:"Au maximum (étincelle!)",sparkleNote:"Animation d'étincelles lors de l'atteinte de la valeur maximale",noGlow:"Sans effet de lueur",noGlow2:"Secondaire sans lueur",liveValue:"Valeur en direct",finalValue:"Valeur finale",controlledLabel:"Curseur contrôlé",set25:"Définir 25%",set75:"Définir 75%",set100:"Définir 100%",reset:"Réinitialiser"},productCard:{title:"Cartes de produit",variants:"Variantes",layouts:"Dispositions",glows:"Effets de lueur",withActions:"Avec actions rapides",responsive:"Responsive (pleine largeur sur mobile)",addToCart:"Ajouter au panier",outOfStock:"En rupture de stock",sale:"Soldes",new:"Nouveau",limited:"Édition limitée",reviews:"avis",vertical:"Vertical",horizontal:"Horizontal",compact:"Compact",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",accentGlow:"Lueur Accent",product1:"Cyberpunk 2077 - Édition Collector",product2:"Holocron Jedi - Édition Limitée",product3:"Manette Samouraï Neon",product4:"Fragment de données - Crypté",desc1:"Ensemble collector en édition limitée avec livre d'art, boîtier steelbook et contenu numérique exclusif.",desc2:"Réplique authentique d'holocron Jedi avec effets de lumière et son. Limité à 500 unités dans le monde.",desc3:"Manette sans fil avec éclairage RGB, boutons arrière programmables et connexion à faible latence.",desc4:"Fragment de données crypté contenant des fragments d'archives classifiés. Nécessite un niveau d'accès 5.",category1:"Jeux",category2:"Objets de collection",category3:"Accessoires",category4:"Données",tag1:"édition limitée",tag2:"collection",tag3:"exclusif",tag4:"crypté"},blogCard:{title:"Cartes de blog",variants:"Variantes",layouts:"Dispositions",glows:"Effets de lueur",responsive:"Responsive (pleine largeur sur mobile)",readMore:"Lire la suite",featured:"Article en vedette",vertical:"Vertical",horizontal:"Horizontal",primaryGlow:"Lueur Primaire",secondaryGlow:"Lueur Secondaire",accentGlow:"Lueur Accent",post1:"L'avenir du glassmorphisme dans le design UI",post2:"Construire un système de design à partir de zéro",post3:"Maîtriser les effets 3D au survol dans React",post4:"L'art de l'esthétique cyberpunk",excerpt1:"Découvrez comment le glassmorphisme évolue et pourquoi il devient l'esthétique de référence pour les interfaces modernes en 2024.",excerpt2:"Un guide complet pour construire un système de design qui s'adapte, des tokens aux composants.",excerpt3:"Apprenez à créer des effets de rotation 3D fluides pour les cartes, images et éléments interactifs.",excerpt4:"Plongez dans l'esthétique cyberpunk et son influence sur le design UI moderne.",author1:"Jane Doe",author2:"John Smith",author3:"Alex Rivers",author4:"Taylor Night",category1:"Design",category2:"Développement",category3:"React",category4:"Esthétique",tag1:"design",tag2:"tutoriel",tag3:"react",tag4:"esthétique"},scrollReveal:{title:"Révélation au défilement",subtitle:"Animez les éléments à l'entrée dans la vue",animation:"Animation",stagger:"Révélation échelonnée",allPresets:"Tous les préréglages d'animation",triggerAgain:"Re-déclencher au retour",demoTip:"Défilez vers le bas pour voir les éléments s'animer"},pageLoader:{title:"Chargeur de page",subtitle:"Superposition de chargement plein écran avec plusieurs formes",shapes:"Formes du chargeur",spinner:"Rotation",ring:"Anneau",dots:"Points",pulse:"Pulsation",bars:"Barres",withBrand:"Avec marque",withProgress:"Avec barre de progression",provider:"Démo du fournisseur",loadingArchives:"Chargement des archives...",downloading:"Téléchargement des données...",navigating:"Navigation...",fetchingData:"Récupération des données...",uploading:"Téléversement...",simulateRoute:"Simuler un changement de route",simulateFetch:"Simuler une récupération",simulateUpload:"Simuler un téléversement"}},Ht={en:Gt,fa:qt,fr:Vt},it=({name:r,subtitle:l,quote:s,portrait:u,icon:n,mbti:o,species:C,affiliation:m,traits:$=[],stats:N=[],glow:v="primary",layout:a="vertical",className:M=""})=>{const[c,g]=t.useState({x:0,y:0}),[x,R]=t.useState(!1),j=t.useRef(null),{t:p}=xe(),b=i=>{if(!j.current)return;const k=j.current.getBoundingClientRect(),L=i.clientX-k.left,w=i.clientY-k.top,h=k.width/2,d=k.height/2,P=(w-d)/d*-8,q=(L-h)/h*8;g({x:P,y:q})},f=()=>R(!0),T=()=>{R(!1),g({x:0,y:0})},I={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[v]||"",E=a==="horizontal",y=i=>{const k=Math.min(100,Math.max(0,i.value)),L=E?48:56,w=3.5,h=L/2-w/2,d=2*Math.PI*h,P=d-k/100*d,q=E?60:68,O=L+8*2,H=O/2,z=i.color==="secondary"?"var(--color-secondary)":i.color==="accent"?"var(--color-accent)":i.color==="success"?"var(--color-success)":i.color==="danger"?"var(--color-danger)":i.color==="warning"?"var(--color-warning)":"var(--color-primary)";return e.jsxs("div",{className:"flex flex-col items-center flex-shrink-0",style:{width:q},children:[e.jsx("div",{className:"relative",style:{width:L,height:L},role:"img","aria-label":`${i.label}: ${i.value}%`,children:e.jsxs("svg",{width:L,height:L,viewBox:`0 0 ${O} ${O}`,className:"block overflow-visible","aria-hidden":"true",style:{overflow:"visible"},children:[k>0&&e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:w+3,strokeDasharray:d,strokeDashoffset:P,strokeLinecap:"round",transform:`rotate(-90 ${H} ${H})`,style:{filter:"blur(4px)",opacity:.45}}),e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:"var(--color-border-secondary)",strokeWidth:w}),e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:w,strokeDasharray:d,strokeDashoffset:P,strokeLinecap:"round",transform:`rotate(-90 ${H} ${H})`,style:{transition:"stroke-dashoffset 0.8s ease"}}),e.jsxs("text",{x:H,y:H,textAnchor:"middle",dominantBaseline:"central",className:"font-heading font-bold",style:{fontSize:L<52?"11px":"13px",fill:"var(--color-text-primary)"},children:[i.value,e.jsx("tspan",{style:{fontSize:L<52?"8px":"9px",fill:"var(--color-text-secondary)"},children:"%"})]})]})}),e.jsx("p",{className:"text-[9px] uppercase tracking-wider text-[var(--color-text-secondary)] font-mono mt-1.5 text-center leading-tight max-w-full",children:i.label})]})};return e.jsxs("div",{ref:j,className:`
|
|
900
920
|
glass p-6 float-card
|
|
901
921
|
relative
|
|
902
922
|
transition-all duration-300
|
|
903
|
-
${
|
|
923
|
+
${I}
|
|
904
924
|
${E?"flex flex-col md:flex-row gap-6":"flex flex-col"}
|
|
905
|
-
${
|
|
906
|
-
`,style:{transform:
|
|
925
|
+
${M}
|
|
926
|
+
`,style:{transform:x?`perspective(800px) rotateX(${c.x}deg) rotateY(${c.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out, box-shadow 0.4s ease"},onMouseMove:b,onMouseEnter:f,onMouseLeave:T,children:[e.jsxs("div",{className:`
|
|
907
927
|
${E?"flex-shrink-0 md:w-48":"w-full"}
|
|
908
928
|
flex flex-col
|
|
909
|
-
`,style:{transform:"translateZ(20px)"},children:[e.jsxs("div",{className:"flex items-center gap-4",children:[u?e.jsx(
|
|
929
|
+
`,style:{transform:"translateZ(20px)"},children:[e.jsxs("div",{className:"flex items-center gap-4",children:[u?e.jsx(Se,{src:u,fallbackText:r,size:"lg",glow:v!=="none"?"primary":void 0,bordered:!0}):e.jsx("div",{className:`
|
|
910
930
|
flex items-center justify-center
|
|
911
931
|
w-12 h-12 rounded-full flex-shrink-0
|
|
912
932
|
bg-[var(--color-bg-tertiary)]
|
|
913
933
|
text-[var(--color-primary)]
|
|
914
934
|
border-2 border-[var(--color-border-secondary)]
|
|
915
|
-
${
|
|
916
|
-
`,"aria-hidden":"true",children:
|
|
935
|
+
${v!=="none"?"shadow-[var(--shadow-glow-primary)]":""}
|
|
936
|
+
`,"aria-hidden":"true",children:n||e.jsx(Oe,{className:"h-6 w-6"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h4",{className:"font-heading font-bold text-lg text-[var(--color-text-primary)] truncate",children:r}),l&&e.jsx("p",{className:"text-[var(--color-text-tertiary)] text-xs font-mono truncate",children:l})]})]}),s&&!E&&e.jsxs("p",{className:"text-[var(--color-text-secondary)] text-sm italic mt-4 leading-relaxed",style:{transform:"translateZ(10px)"},children:['"',s,'"']})]}),e.jsxs("div",{className:`
|
|
917
937
|
${E?"flex-1 min-w-0":"w-full mt-5"}
|
|
918
938
|
flex flex-col
|
|
919
|
-
`,style:{transform:"translateZ(15px)"},children:[
|
|
939
|
+
`,style:{transform:"translateZ(15px)"},children:[s&&E&&e.jsxs("p",{className:"text-[var(--color-text-secondary)] text-sm italic mb-4 leading-relaxed line-clamp-2",style:{transform:"translateZ(10px)"},children:['"',s,'"']}),e.jsxs("div",{className:`
|
|
920
940
|
${E?"flex flex-wrap gap-x-2 gap-y-1.5 mb-4":"grid grid-cols-2 gap-y-2.5 mb-5"}
|
|
921
|
-
`,style:{transform:"translateZ(8px)"},children:[
|
|
941
|
+
`,style:{transform:"translateZ(8px)"},children:[o&&e.jsxs("div",{className:`flex items-center gap-0.5 min-w-0 ${E?"max-w-[calc(50%-0.5rem)]":""}`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[p("characterLabels.mbti"),":"]}),e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:o})]}),C&&e.jsxs("div",{className:`flex items-center gap-0.5 min-w-0 ${E?"max-w-[calc(50%-0.5rem)]":""}`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[p("characterLabels.species"),":"]}),e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:C})]}),m&&e.jsxs("div",{className:`
|
|
922
942
|
flex items-center gap-1.5 min-w-0
|
|
923
943
|
${E?"max-w-full":"col-span-2"}
|
|
924
|
-
`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[
|
|
944
|
+
`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[p("characterLabels.affiliation"),":"]}),e.jsx("span",{className:"text-sm font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:m})]})]}),$.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2 mb-4",style:{transform:"translateZ(5px)"},children:$.map((i,k)=>e.jsx(he,{variant:"secondary",size:"sm",outline:!0,children:i},k))}),N.length>0&&e.jsx("div",{className:`
|
|
925
945
|
${E?"flex flex-wrap gap-3 justify-start":"flex flex-wrap gap-3 justify-center"}
|
|
926
946
|
pt-4 border-t border-[var(--color-border-secondary)]
|
|
927
|
-
`,style:{transform:"translateZ(5px)"},children:N.map((
|
|
947
|
+
`,style:{transform:"translateZ(5px)"},children:N.map((i,k)=>e.jsx(t.Fragment,{children:y(i)},`${i.label}-${k}`))})]})]})};it.displayName="CharacterCard";const lt=({title:r,description:l,xp:s=0,xpLabel:u="XP",deadline:n,rank:o,requirements:C=[],glow:m="none",done:$,onComplete:N,className:v=""})=>{const{t:a}=xe(),[M,c]=t.useState(!1),[g,x]=t.useState(!1),[R,j]=t.useState(!1),[p,b]=t.useState({x:0,y:0}),[f,T]=t.useState(!1),S=t.useRef(null),[I,E]=t.useState(!1);t.useEffect(()=>{const z=()=>E(document.documentElement.dir==="rtl");z();const X=new MutationObserver(z);return X.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>X.disconnect()},[]);const y=$!==void 0,i=y?$:M,k=z=>{if(!S.current)return;const X=S.current.getBoundingClientRect(),Q=z.clientX-X.left,F=z.clientY-X.top,W=X.width/2,B=X.height/2,_=(F-B)/B*-8,Z=(Q-W)/W*8;b({x:_,y:Z})},L=()=>{T(!0)},w=()=>{T(!1),b({x:0,y:0})},h=()=>{if(!n)return"";const z=new Date,X=new Date(n),Q=n.toLowerCase();if(Q==="tomorrow")return a("quest.deadlineTomorrow")||"Deadline: Tomorrow";if(Q==="tonight")return a("quest.deadlineTonight")||"Deadline: Tonight";if(isNaN(X.getTime()))return n;const F=X.getTime()-z.getTime(),W=Math.ceil(F/(1e3*60*60*24));return W===0?a("quest.deadlineToday")||"Deadline: Today":W===1?a("quest.deadlineTomorrow")||"Deadline: Tomorrow":W===-1?a("quest.deadlineYesterday")||"Deadline: Yesterday":W<0?`${Math.abs(W)} ${a("quest.daysAgo")||"days ago"}`:W<7?`${a("quest.deadline")||"Deadline"}: ${W} ${a("quest.days")||"days"}`:W<14?`${a("quest.deadline")||"Deadline"}: 1 ${a("quest.week")||"week"}`:W<30?`${a("quest.deadline")||"Deadline"}: ${Math.floor(W/7)} ${a("quest.weeks")||"weeks"}`:W<60?`${a("quest.deadline")||"Deadline"}: 1 ${a("quest.month")||"month"}`:W<365?`${a("quest.deadline")||"Deadline"}: ${Math.floor(W/30)} ${a("quest.months")||"months"}`:`${a("quest.deadline")||"Deadline"}: ${Math.floor(W/365)} ${a("quest.years")||"years"}`},d=()=>{if(!o)return"";const z=o.toUpperCase();return z==="S"||z==="S+"?"text-[var(--color-secondary)]":z==="A"||z==="A+"?"text-[var(--color-primary)]":z==="B"||z==="B+"?"text-[var(--color-accent)]":z==="C"||z==="C+"?"text-[var(--color-warning)]":"text-[var(--color-text-secondary)]"},P=()=>{i||x(!0)},q=()=>{x(!1),y||c(!0),N==null||N(),j(!0),setTimeout(()=>{j(!1)},1500)},O={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[m]||"",H=()=>{const z=[],X=["var(--color-warning)","var(--color-accent)","var(--color-accent)","var(--color-primary)","var(--color-secondary)","var(--color-success)","#ffffff"];for(let F=0;F<20;F++){const W=Math.random()*360,B=40+Math.random()*120,_=3+Math.random()*5,Z=Math.random()*.3,ee=.6+Math.random()*.6,K=X[Math.floor(Math.random()*X.length)];z.push(e.jsx("div",{className:"sparkle-drop",style:{left:`${30+Math.random()*40}%`,top:`${30+Math.random()*40}%`,width:`${_}px`,height:`${_}px`,backgroundColor:K,boxShadow:`0 0 ${_*2}px ${K}`,animationDelay:`${Z}s`,animationDuration:`${ee}s`,"--tx":`${Math.cos(W*Math.PI/180)*B}px`,"--ty":`${Math.sin(W*Math.PI/180)*B}px`}},F))}return z};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{ref:S,className:`
|
|
928
948
|
glass p-6 float-card cursor-pointer relative
|
|
929
949
|
h-full flex flex-col
|
|
930
|
-
${
|
|
931
|
-
${
|
|
950
|
+
${O}
|
|
951
|
+
${i?"opacity-80":""}
|
|
932
952
|
transition-all duration-300
|
|
933
|
-
${
|
|
934
|
-
`,style:{transform:
|
|
953
|
+
${v}
|
|
954
|
+
`,style:{transform:f?`perspective(800px) rotateX(${p.x}deg) rotateY(${p.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out"},onMouseMove:k,onMouseEnter:L,onMouseLeave:w,onClick:P,role:"button",tabIndex:0,"aria-label":`Quest: ${r}`,onKeyDown:z=>{(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),P())},children:[R&&e.jsx("div",{className:"absolute inset-0 pointer-events-none overflow-visible z-10",children:H()}),e.jsxs("p",{className:"font-mono text-xs text-[var(--color-secondary)] uppercase tracking-wider me-7 mb-3 flex items-center gap-1",style:{transform:"translateZ(20px)"},dir:"auto",children:[e.jsx(Ae,{className:"h-3 w-3 flex-shrink-0"}),a("common.mission")]}),e.jsx("h4",{className:"font-heading text-xl font-bold mb-2 text-[var(--color-text-primary)]",style:{transform:"translateZ(25px)"},dir:"auto",children:r}),e.jsx("p",{className:"text-[var(--color-text-secondary)] text-sm mb-3 flex-grow",style:{transform:"translateZ(15px)"},dir:"auto",children:l}),e.jsxs("div",{className:"flex items-center gap-4 flex-wrap flex-row-reverse",style:{transform:"translateZ(10px)"},children:[e.jsxs("span",{className:"font-accent text-sm text-[var(--color-success)]",dir:"auto",children:["+",s," ",u]}),n&&e.jsxs("span",{className:"font-mono text-xs text-[var(--color-danger)] flex items-center gap-1",dir:"auto",children:[e.jsx(St,{className:"h-3 w-3 flex-shrink-0"}),h()]})]}),C.length>0&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--color-border-secondary)]",style:{transform:"translateZ(5px)"},children:[e.jsx("p",{className:"text-xs text-[var(--color-text-tertiary)] font-mono mb-1.5",dir:"auto",children:a("common.requirements")}),e.jsx("ul",{className:"space-y-1",children:C.map((z,X)=>e.jsxs("li",{className:"text-xs text-[var(--color-text-secondary)] flex items-center gap-1.5",dir:"auto",children:[e.jsx("span",{className:"text-[var(--color-primary)]",children:"•"}),z]},X))})]}),o&&e.jsx("div",{className:`absolute top-4 ${I?"left-4":"right-4"}`,style:{transform:"translateZ(30px)"},children:e.jsx("span",{className:`
|
|
935
955
|
font-accent text-xs font-bold tracking-wider
|
|
936
956
|
px-2.5 py-1 rounded-full
|
|
937
957
|
bg-[var(--color-bg-tertiary)]/50
|
|
938
958
|
border border-[var(--color-border-primary)]
|
|
939
959
|
${d()}
|
|
940
|
-
`,children:
|
|
960
|
+
`,children:o.toUpperCase()})}),i&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-[var(--color-bg-primary)]/60 backdrop-blur-sm rounded-[var(--radius-standard)] z-20",children:e.jsxs("span",{className:"font-heading text-2xl font-bold text-[var(--color-success)] flex items-center gap-2",dir:"auto",children:[e.jsx("svg",{className:"h-6 w-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),a("common.complete").toUpperCase()]})})]}),e.jsxs(Te,{isOpen:g,onClose:()=>x(!1),title:a("common.completeMission"),confirmText:a("common.complete"),cancelText:a("modal.decline"),onConfirm:q,children:[e.jsxs("p",{className:"text-[var(--color-text-secondary)] mb-2 flex items-center gap-2",dir:"auto",children:[e.jsx(Ae,{className:"h-4 w-4 text-[var(--color-primary)] flex-shrink-0"}),a("common.areYouSureComplete")]}),e.jsxs("p",{className:"font-heading font-bold text-lg text-[var(--color-text-primary)] mb-3",dir:"auto",children:['"',r,'"']}),e.jsxs("p",{className:"text-[var(--color-text-secondary)] text-sm",dir:"auto",children:[a("common.youWillEarn")," ",e.jsxs("span",{className:"text-[var(--color-success)] font-bold",children:["+",s," ",u]})," ",a("common.uponCompletion")]}),C.length>0&&e.jsxs("div",{className:"mt-3 p-3 rounded-[var(--radius-md)] bg-[var(--color-bg-tertiary)]",children:[e.jsx("p",{className:"text-xs text-[var(--color-text-tertiary)] font-mono mb-1",dir:"auto",children:a("common.requirements")}),e.jsx("ul",{className:"space-y-1",children:C.map((z,X)=>e.jsxs("li",{className:"text-xs text-[var(--color-text-secondary)] flex items-center gap-1.5",dir:"auto",children:[e.jsx(bt,{className:"h-3 w-3 text-[var(--color-success)] flex-shrink-0"}),z]},X))})]})]}),e.jsx("style",{children:`
|
|
941
961
|
.sparkle-drop {
|
|
942
962
|
position: absolute;
|
|
943
963
|
border-radius: 50%;
|
|
@@ -956,28 +976,28 @@
|
|
|
956
976
|
opacity: 0;
|
|
957
977
|
}
|
|
958
978
|
}
|
|
959
|
-
`})]})};
|
|
979
|
+
`})]})};lt.displayName="QuestCard";const ct=({stats:r,variant:l="radial",title:s,glow:u="none",layout:n="vertical",className:o=""})=>{const{t:C}=xe(),[m,$]=t.useState({x:0,y:0}),[N,v]=t.useState(!1),a=t.useRef(null),M=f=>{if(!a.current)return;const T=a.current.getBoundingClientRect(),S=f.clientX-T.left,I=f.clientY-T.top,E=T.width/2,y=T.height/2,i=(I-y)/y*-6,k=(S-E)/E*6;$({x:i,y:k})},c=()=>{v(!0)},g=()=>{v(!1),$({x:0,y:0})},R={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[u]||"",j=n==="horizontal",p=f=>{if(f===void 0||f===0)return null;const T=f>0,S=T?"var(--color-success)":"var(--color-danger)",I=T?"▲":"▼";return e.jsxs("span",{className:"text-xs font-mono font-medium flex-shrink-0",style:{color:S},children:[I," ",Math.abs(f),"%"]})},b=(f,T)=>{const S=f.max?f.value/f.max*100:f.value,I=f.max?`${Math.round(f.value)} / ${f.max}`:`${Math.round(f.value)}`,E=f.unit||"%";if(l==="radial"){const i=j?56:64,k=f.color||"primary";return e.jsxs("div",{className:"flex flex-col items-center flex-shrink-0",style:{width:j?80:84},children:[e.jsx(ke,{variant:"radial",value:S,color:k,size:i<=56?"sm":i<=64?"md":"lg",radialSize:i,showLabel:!0}),e.jsxs("div",{className:"flex items-center gap-1.5 mt-1.5 max-w-full",children:[e.jsx("p",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono text-center leading-tight truncate min-w-0",children:f.label}),p(f.trend)]})]},T)}const y=f.color||"primary";return e.jsxs("div",{className:"flex flex-col gap-0.5 w-full",style:{transform:"translateZ(5px)"},children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-mono text-[var(--color-text-secondary)] truncate",children:f.label}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsxs("span",{className:"text-xs font-mono font-medium text-[var(--color-text-primary)]",children:[I,e.jsx("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:E})]}),p(f.trend)]})]}),e.jsx(ke,{variant:"horizontal",value:S,color:y,size:"sm",showLabel:!1,animated:!0})]},T)};return e.jsxs("div",{ref:a,className:`
|
|
960
980
|
glass p-6 float-card
|
|
961
981
|
relative
|
|
962
982
|
transition-all duration-300
|
|
963
983
|
${R}
|
|
964
|
-
${
|
|
965
|
-
${
|
|
966
|
-
`,style:{transform:N?`perspective(800px) rotateX(${
|
|
967
|
-
${
|
|
984
|
+
${j?"flex flex-col md:flex-row gap-6":"flex flex-col"}
|
|
985
|
+
${o}
|
|
986
|
+
`,style:{transform:N?`perspective(800px) rotateX(${m.x}deg) rotateY(${m.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out, box-shadow 0.4s ease"},onMouseMove:M,onMouseEnter:c,onMouseLeave:g,children:[s&&e.jsxs("div",{className:`
|
|
987
|
+
${j?"flex-shrink-0 md:w-48":"w-full"}
|
|
968
988
|
flex items-center justify-between
|
|
969
|
-
${
|
|
970
|
-
`,style:{transform:"translateZ(20px)"},children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider",children:
|
|
971
|
-
${
|
|
972
|
-
${
|
|
973
|
-
`,style:{transform:"translateZ(10px)"},children:r.map((h,I)=>v(h,I))})]})};lt.displayName="StatsWidget";const ct=({value:r=0,max:m=5e3,level:o=1,showLabel:u=!0,customLabel:i,levelLabel:n="Level",xpLabel:L="XP",ranks:f,className:M=""})=>{const[N,j]=t.useState({x:0,y:0}),[a,$]=t.useState(!1),c=t.useRef(null),x=w=>{if(!c.current)return;const C=c.current.getBoundingClientRect(),y=w.clientX-C.left,p=w.clientY-C.top,d=C.width/2,z=C.height/2,W=(p-z)/z*-6,q=(y-d)/d*6;j({x:W,y:q})},g=()=>{$(!0)},R=()=>{$(!1),j({x:0,y:0})},S=Math.max(0,Math.min(r,m)),l=S/m*100,v=m-S,I=(()=>{if(!f||f.length===0)return null;let w=f[0];for(const C of f)S>=C.requiredXP&&(w=C);return w})(),D=(()=>{if(!f||f.length===0)return null;for(const w of f)if(S<w.requiredXP)return w;return null})(),E=D?D.requiredXP-S:null,k=w=>w.toLocaleString(),s=()=>f&&D?`${k(E||0)} ${L} to ${D.label}`:`${k(v)} ${L} to next ${n}`;return e.jsxs("div",{ref:c,className:`glass p-6 float-card ${M}`,style:{transform:a?`perspective(800px) rotateX(${N.x}deg) rotateY(${N.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out, box-shadow 0.4s ease"},onMouseMove:x,onMouseEnter:g,onMouseLeave:R,children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider mb-4",style:{transform:"translateZ(20px)"},children:i||"XP Progress"}),e.jsxs("div",{className:"flex items-center justify-between mb-2",style:{transform:"translateZ(15px)"},children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx("span",{className:"font-accent text-sm text-[var(--color-text-secondary)]",children:f&&I?e.jsxs(e.Fragment,{children:[n," ",o," · ",I.label]}):e.jsxs(e.Fragment,{children:[n," ",o]})})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[k(S)," /"," ",k(f&&D?D.requiredXP:m)," ",L]})]}),e.jsx("div",{className:"xp-bar-track",dir:"ltr",style:{transform:"translateZ(10px)"},children:e.jsx("div",{className:"xp-bar-fill",style:{width:f&&D?`${S/D.requiredXP*100}%`:`${l}%`},role:"progressbar","aria-label":i||`${n} ${o}: ${k(S)} of ${k(f&&D?D.requiredXP:m)} ${L}`,"aria-valuenow":S,"aria-valuemin":0,"aria-valuemax":f&&D?D.requiredXP:m})}),u&&e.jsx("p",{className:"font-mono text-xs text-[var(--color-text-tertiary)] mt-2",style:{transform:"translateZ(5px)"},children:s()})]})};ct.displayName="XPBar";const Ht=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","#ffffff"],Ft=[.15,.5],Yt=[.5,2.5],Xt=[.1,.4],dt=t.memo(({count:r=60,colors:m=Ht,opacityRange:o=Ft,sizeRange:u=Yt,speedRange:i=Xt,className:n=""})=>{const L=t.useRef(null),f=t.useRef([]),M=t.useRef(0),N=t.useRef({count:r,colors:m,opacityRange:o,sizeRange:u,speedRange:i});N.current={count:r,colors:m,opacityRange:o,sizeRange:u,speedRange:i};const j=t.useCallback(()=>{const c=L.current;c&&(c.width=window.innerWidth,c.height=window.innerHeight)},[]),a=t.useCallback(()=>{if(typeof window>"u")return N.current.colors;const c=document.documentElement;return N.current.colors.map(x=>{const g=x.trim();if(g.startsWith("var(")){const R=g.slice(4,-1).trim();return getComputedStyle(c).getPropertyValue(R).trim()||"#ffffff"}return g})},[]),$=t.useCallback(()=>{const c=L.current;if(!c)return;const{count:x,opacityRange:g,sizeRange:R,speedRange:S}=N.current,l=a(),v=[];for(let h=0;h<x;h++)v.push({x:Math.random()*c.width,y:Math.random()*c.height,size:Math.random()*(R[1]-R[0])+R[0],speedY:Math.random()*(S[1]-S[0])+S[0],speedX:(Math.random()-.5)*.2,opacity:Math.random()*(g[1]-g[0])+g[0],color:l[Math.floor(Math.random()*l.length)]});f.current=v},[a]);return t.useEffect(()=>{const c=L.current;if(!c)return;const x=c.getContext("2d");if(!x)return;j(),$();const g=()=>$(),R=new MutationObserver(g);R.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});const S=()=>{x.clearRect(0,0,c.width,c.height),f.current.forEach(v=>{v.y+=v.speedY,v.x+=v.speedX,v.y>c.height+10&&(v.y=-10,v.x=Math.random()*c.width),v.x<-10&&(v.x=c.width+10),v.x>c.width+10&&(v.x=-10),x.beginPath(),x.arc(v.x,v.y,v.size,0,Math.PI*2),x.fillStyle=v.color,x.globalAlpha=v.opacity,x.fill(),x.globalAlpha=1}),M.current=requestAnimationFrame(S)};S();const l=()=>{j(),$()};return window.addEventListener("resize",l),()=>{cancelAnimationFrame(M.current),window.removeEventListener("resize",l),R.disconnect()}},[r,j,$]),e.jsx("canvas",{ref:L,className:`fixed inset-0 z-0 pointer-events-none ${n}`})});dt.displayName="Particles";const ut=({colors:r=["color-mix(in srgb, var(--color-primary) 25%, transparent)","color-mix(in srgb, var(--color-secondary) 20%, transparent)","color-mix(in srgb, var(--color-accent) 18%, transparent)"],sizes:m=[500,400,350],className:o=""})=>{const u=[{top:"-150px",left:"-100px",animDuration:"20s"},{top:"50%",right:"-120px",animDuration:"25s",animDirection:"reverse"},{bottom:"-100px",left:"30%",animDuration:"22s"}];return e.jsx("div",{className:`fixed inset-0 z-0 pointer-events-none overflow-hidden ${o}`,children:u.map((i,n)=>e.jsx("div",{className:"aurora-blob absolute rounded-full blur-[120px] opacity-35",style:{width:m[n],height:m[n],background:r[n],top:i.top,left:i.left,right:i.right,bottom:i.bottom,animationDuration:i.animDuration,animationDirection:i.animDirection,animationName:"drift",animationIterationCount:"infinite",animationTimingFunction:"ease-in-out"}},n))})};ut.displayName="AuroraBlobs";const mt=({size:r=280,colors:m=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","var(--color-primary)"],blur:o=60,opacity:u=.5,duration:i=15,className:n=""})=>{const L=`conic-gradient(from 0deg, ${m.join(", ")})`;return e.jsx("div",{className:`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none ${n}`,style:{width:r,height:r,borderRadius:"50%",background:L,filter:`blur(${o}px)`,opacity:u,animation:`spin ${i}s linear infinite`,zIndex:-1}})};mt.displayName="GradientRing";const pt=({opacity:r=.035,className:m=""})=>e.jsx("div",{className:`fixed inset-0 pointer-events-none z-[9998] ${m}`,style:{opacity:r,backgroundImage:`url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`,backgroundSize:"200px 200px"}});pt.displayName="NoiseOverlay";const ht=({children:r,animation:m="fade-up",delay:o=0,duration:u=600,distance:i=40,threshold:n=.15,once:L=!0,rootMargin:f="0px 0px -10% 0px",className:M=""})=>{const N=t.useRef(null),[j,a]=t.useState(!1),[$,c]=t.useState(!1),x=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.useEffect(()=>{const l=N.current;if(!l)return;if(x){a(!0),c(!0);return}const v=new IntersectionObserver(h=>{h.forEach(I=>{I.isIntersecting?(a(!0),c(!0),L&&v.unobserve(I.target)):L||a(!1)})},{threshold:n,rootMargin:f});return v.observe(l),()=>v.disconnect()},[n,f,L,x]);const g=()=>{if(x)return"none";switch(m){case"fade":return"none";case"fade-up":case"slide-up":return`translateY(${i}px)`;case"fade-down":case"slide-down":return`translateY(-${i}px)`;case"fade-left":return`translateX(${i}px)`;case"fade-right":return`translateX(-${i}px)`;case"zoom-in":return"scale(0.92)";case"zoom-out":return"scale(1.08)";case"flip-up":return"perspective(1000px) rotateX(-25deg)";case"flip-down":return"perspective(1000px) rotateX(25deg)";default:return`translateY(${i}px)`}},R=j||$,S=x?{}:{opacity:R?1:0,transform:R?"none":g(),transition:`opacity ${u}ms cubic-bezier(0.4, 0, 0.2, 1) ${o}ms, transform ${u}ms cubic-bezier(0.4, 0, 0.2, 1) ${o}ms`,willChange:R?"auto":"opacity, transform"};return e.jsx("div",{ref:N,className:M,style:S,"data-scroll-reveal":m,"data-scroll-reveal-visible":R?"true":"false",children:r})};ht.displayName="ScrollReveal";function _t(r={}){const{threshold:m=.15,once:o=!0,rootMargin:u="0px 0px -10% 0px"}=r,i=t.useRef(null),[n,L]=t.useState(!1);return t.useEffect(()=>{const f=i.current;if(!f)return;if(typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){L(!0);return}const M=new IntersectionObserver(N=>{N.forEach(j=>{j.isIntersecting?(L(!0),o&&M.unobserve(j.target)):o||L(!1)})},{threshold:m,rootMargin:u});return M.observe(f),()=>M.disconnect()},[m,o,u]),{ref:i,isVisible:n}}const De=({isLoading:r=!0,shape:m="spinner",color:o="primary",customColor:u,label:i,progress:n,showProgress:L=!1,size:f="md",blur:M=!0,showBrand:N=!1,minDuration:j=0,inline:a=!1,className:$=""})=>{const[c,x]=t.useState(r),[g,R]=t.useState(!1),[S]=t.useState(Date.now()),l=u||`var(--color-${o})`;if(t.useEffect(()=>{if(a){x(r),R(r);return}let y;if(r)x(!0),y=setTimeout(()=>R(!0),20);else{const p=Date.now()-S,d=Math.max(0,j-p);y=setTimeout(()=>{R(!1),setTimeout(()=>x(!1),300)},d)}return()=>clearTimeout(y)},[r,j,S,a]),t.useEffect(()=>{if(!a)return c?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}},[c,a]),!c)return null;const h={sm:{box:32,stroke:3,dots:6,bars:20},md:{box:48,stroke:4,dots:8,bars:28},lg:{box:64,stroke:5,dots:10,bars:36}}[f],I=`drop-shadow(0 0 6px ${l}) drop-shadow(0 0 12px color-mix(in srgb, ${l} 45%, transparent))`,b=`drop-shadow(0 0 5px ${l}) drop-shadow(0 0 10px color-mix(in srgb, ${l} 40%, transparent))`,D=()=>e.jsxs("svg",{className:"animate-spin",width:h.box,height:h.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{filter:I,overflow:"visible"},children:[e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"var(--color-border-primary)",strokeWidth:h.stroke}),e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:l,strokeWidth:h.stroke,strokeLinecap:"round",strokeDasharray:"90 150"})]}),E=()=>e.jsx("svg",{className:"animate-spin",width:h.box,height:h.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{animationDuration:"1.2s",filter:b,overflow:"visible"},children:Array.from({length:12}).map((y,p)=>{const d=p/12*360;return e.jsx("rect",{x:"24",y:"4",width:"2",height:"8",rx:"1",fill:l,opacity:.15+p/12*.85,transform:`rotate(${d} 25 25)`},p)})}),k=()=>e.jsx("div",{className:"flex items-center gap-2",style:{filter:b},children:[0,1,2].map(y=>e.jsx("span",{className:"rounded-full",style:{width:h.dots,height:h.dots,backgroundColor:l,animation:`pageLoaderDot 1.2s ease-in-out ${y*.15}s infinite`}},y))}),s=()=>e.jsxs("div",{className:"relative",style:{width:h.box,height:h.box,filter:b},children:[e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:l,animation:"pageLoaderPulse 1.5s ease-out infinite"}}),e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:l,animation:"pageLoaderPulse 1.5s ease-out 0.5s infinite"}}),e.jsx("span",{className:"absolute rounded-full",style:{top:"50%",left:"50%",width:h.dots*1.5,height:h.dots*1.5,backgroundColor:l,transform:"translate(-50%, -50%)"}})]}),w=()=>e.jsx("div",{className:"flex items-end gap-1.5",style:{height:h.bars,filter:b},children:[0,1,2,3,4].map(y=>e.jsx("span",{className:"rounded-full",style:{width:3,height:"100%",backgroundColor:l,animation:`pageLoaderBar 1s ease-in-out ${y*.1}s infinite`,transformOrigin:"bottom"}},y))}),C={spinner:e.jsx(D,{}),ring:e.jsx(E,{}),dots:e.jsx(k,{}),pulse:e.jsx(s,{}),bars:e.jsx(w,{})};if(a){const y=h.box+24;return e.jsxs("div",{className:`flex flex-col items-center justify-center gap-3 ${$}`,role:"status","aria-live":"polite","aria-busy":r,children:[N&&e.jsx("span",{className:"font-heading font-bold text-xl tracking-tight",style:{background:"var(--gradient-primary)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"DARA UI"}),e.jsx("div",{className:"relative flex items-center justify-center",style:{width:y,height:y},children:e.jsx("div",{className:"flex items-center justify-center",style:{opacity:r?1:0,transition:"opacity 220ms cubic-bezier(0.4, 0, 0.2, 1)",pointerEvents:r?"auto":"none"},children:C[m]})}),i&&e.jsx("p",{className:"text-xs text-[var(--color-text-secondary)] font-mono tracking-wide",children:i})]})}return e.jsxs("div",{className:`
|
|
989
|
+
${j?"md:flex-col md:items-start md:justify-start":"mb-4"}
|
|
990
|
+
`,style:{transform:"translateZ(20px)"},children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider",children:s}),j&&e.jsxs("span",{className:"text-[10px] text-[var(--color-text-tertiary)] font-mono md:mt-1",dir:"auto",children:[r.length," ",C("statsWidget.statsSuffix")]})]}),e.jsx("div",{className:`
|
|
991
|
+
${j?"flex-1 min-w-0":"w-full"}
|
|
992
|
+
${l==="radial"?j?"flex flex-wrap gap-4 justify-start":"flex flex-wrap gap-4 justify-center":"flex flex-col gap-4"}
|
|
993
|
+
`,style:{transform:"translateZ(10px)"},children:r.map((f,T)=>b(f,T))})]})};ct.displayName="StatsWidget";const dt=({value:r=0,max:l=5e3,level:s=1,showLabel:u=!0,customLabel:n,levelLabel:o="Level",xpLabel:C="XP",ranks:m,className:$=""})=>{const[N,v]=t.useState({x:0,y:0}),[a,M]=t.useState(!1),c=t.useRef(null),g=k=>{if(!c.current)return;const L=c.current.getBoundingClientRect(),w=k.clientX-L.left,h=k.clientY-L.top,d=L.width/2,P=L.height/2,q=(h-P)/P*-6,G=(w-d)/d*6;v({x:q,y:G})},x=()=>{M(!0)},R=()=>{M(!1),v({x:0,y:0})},j=Math.max(0,Math.min(r,l)),p=j/l*100,b=l-j,T=(()=>{if(!m||m.length===0)return null;let k=m[0];for(const L of m)j>=L.requiredXP&&(k=L);return k})(),I=(()=>{if(!m||m.length===0)return null;for(const k of m)if(j<k.requiredXP)return k;return null})(),E=I?I.requiredXP-j:null,y=k=>k.toLocaleString(),i=()=>m&&I?`${y(E||0)} ${C} to ${I.label}`:`${y(b)} ${C} to next ${o}`;return e.jsxs("div",{ref:c,className:`glass p-6 float-card ${$}`,style:{transform:a?`perspective(800px) rotateX(${N.x}deg) rotateY(${N.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out, box-shadow 0.4s ease"},onMouseMove:g,onMouseEnter:x,onMouseLeave:R,children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider mb-4",style:{transform:"translateZ(20px)"},children:n||"XP Progress"}),e.jsxs("div",{className:"flex items-center justify-between mb-2",style:{transform:"translateZ(15px)"},children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx("span",{className:"font-accent text-sm text-[var(--color-text-secondary)]",children:m&&T?e.jsxs(e.Fragment,{children:[o," ",s," · ",T.label]}):e.jsxs(e.Fragment,{children:[o," ",s]})})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[y(j)," /"," ",y(m&&I?I.requiredXP:l)," ",C]})]}),e.jsx("div",{className:"xp-bar-track",dir:"ltr",style:{transform:"translateZ(10px)"},children:e.jsx("div",{className:"xp-bar-fill",style:{width:m&&I?`${j/I.requiredXP*100}%`:`${p}%`},role:"progressbar","aria-label":n||`${o} ${s}: ${y(j)} of ${y(m&&I?I.requiredXP:l)} ${C}`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":m&&I?I.requiredXP:l})}),u&&e.jsx("p",{className:"font-mono text-xs text-[var(--color-text-tertiary)] mt-2",style:{transform:"translateZ(5px)"},children:i()})]})};dt.displayName="XPBar";const Ft=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","#ffffff"],Yt=[.15,.5],Xt=[.5,2.5],_t=[.1,.4],ut=t.memo(({count:r=60,colors:l=Ft,opacityRange:s=Yt,sizeRange:u=Xt,speedRange:n=_t,className:o=""})=>{const C=t.useRef(null),m=t.useRef([]),$=t.useRef(0),N=t.useRef({count:r,colors:l,opacityRange:s,sizeRange:u,speedRange:n});N.current={count:r,colors:l,opacityRange:s,sizeRange:u,speedRange:n};const v=t.useCallback(()=>{const c=C.current;c&&(c.width=window.innerWidth,c.height=window.innerHeight)},[]),a=t.useCallback(()=>{if(typeof window>"u")return N.current.colors;const c=document.documentElement;return N.current.colors.map(g=>{const x=g.trim();if(x.startsWith("var(")){const R=x.slice(4,-1).trim();return getComputedStyle(c).getPropertyValue(R).trim()||"#ffffff"}return x})},[]),M=t.useCallback(()=>{const c=C.current;if(!c)return;const{count:g,opacityRange:x,sizeRange:R,speedRange:j}=N.current,p=a(),b=[];for(let f=0;f<g;f++)b.push({x:Math.random()*c.width,y:Math.random()*c.height,size:Math.random()*(R[1]-R[0])+R[0],speedY:Math.random()*(j[1]-j[0])+j[0],speedX:(Math.random()-.5)*.2,opacity:Math.random()*(x[1]-x[0])+x[0],color:p[Math.floor(Math.random()*p.length)]});m.current=b},[a]);return t.useEffect(()=>{const c=C.current;if(!c)return;const g=c.getContext("2d");if(!g)return;v(),M();const x=()=>M(),R=new MutationObserver(x);R.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});const j=()=>{g.clearRect(0,0,c.width,c.height),m.current.forEach(b=>{b.y+=b.speedY,b.x+=b.speedX,b.y>c.height+10&&(b.y=-10,b.x=Math.random()*c.width),b.x<-10&&(b.x=c.width+10),b.x>c.width+10&&(b.x=-10),g.beginPath(),g.arc(b.x,b.y,b.size,0,Math.PI*2),g.fillStyle=b.color,g.globalAlpha=b.opacity,g.fill(),g.globalAlpha=1}),$.current=requestAnimationFrame(j)};j();const p=()=>{v(),M()};return window.addEventListener("resize",p),()=>{cancelAnimationFrame($.current),window.removeEventListener("resize",p),R.disconnect()}},[r,v,M]),e.jsx("canvas",{ref:C,className:`fixed inset-0 z-0 pointer-events-none ${o}`})});ut.displayName="Particles";const mt=({colors:r=["color-mix(in srgb, var(--color-primary) 25%, transparent)","color-mix(in srgb, var(--color-secondary) 20%, transparent)","color-mix(in srgb, var(--color-accent) 18%, transparent)"],sizes:l=[500,400,350],className:s=""})=>{const u=[{top:"-150px",left:"-100px",animDuration:"20s"},{top:"50%",right:"-120px",animDuration:"25s",animDirection:"reverse"},{bottom:"-100px",left:"30%",animDuration:"22s"}];return e.jsx("div",{className:`fixed inset-0 z-0 pointer-events-none overflow-hidden ${s}`,children:u.map((n,o)=>e.jsx("div",{className:"aurora-blob absolute rounded-full blur-[120px] opacity-35",style:{width:l[o],height:l[o],background:r[o],top:n.top,left:n.left,right:n.right,bottom:n.bottom,animationDuration:n.animDuration,animationDirection:n.animDirection,animationName:"drift",animationIterationCount:"infinite",animationTimingFunction:"ease-in-out"}},o))})};mt.displayName="AuroraBlobs";const pt=({size:r=280,colors:l=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","var(--color-primary)"],blur:s=60,opacity:u=.5,duration:n=15,className:o=""})=>{const C=`conic-gradient(from 0deg, ${l.join(", ")})`;return e.jsx("div",{className:`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none ${o}`,style:{width:r,height:r,borderRadius:"50%",background:C,filter:`blur(${s}px)`,opacity:u,animation:`spin ${n}s linear infinite`,zIndex:-1}})};pt.displayName="GradientRing";const ht=({opacity:r=.035,className:l=""})=>e.jsx("div",{className:`fixed inset-0 pointer-events-none z-[9998] ${l}`,style:{opacity:r,backgroundImage:`url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`,backgroundSize:"200px 200px"}});ht.displayName="NoiseOverlay";const xt=({children:r,animation:l="fade-up",delay:s=0,duration:u=600,distance:n=40,threshold:o=.15,once:C=!0,rootMargin:m="0px 0px -10% 0px",className:$=""})=>{const N=t.useRef(null),[v,a]=t.useState(!1),[M,c]=t.useState(!1),g=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.useEffect(()=>{const p=N.current;if(!p)return;if(g){a(!0),c(!0);return}const b=new IntersectionObserver(f=>{f.forEach(T=>{T.isIntersecting?(a(!0),c(!0),C&&b.unobserve(T.target)):C||a(!1)})},{threshold:o,rootMargin:m});return b.observe(p),()=>b.disconnect()},[o,m,C,g]);const x=()=>{if(g)return"none";switch(l){case"fade":return"none";case"fade-up":case"slide-up":return`translateY(${n}px)`;case"fade-down":case"slide-down":return`translateY(-${n}px)`;case"fade-left":return`translateX(${n}px)`;case"fade-right":return`translateX(-${n}px)`;case"zoom-in":return"scale(0.92)";case"zoom-out":return"scale(1.08)";case"flip-up":return"perspective(1000px) rotateX(-25deg)";case"flip-down":return"perspective(1000px) rotateX(25deg)";default:return`translateY(${n}px)`}},R=v||M,j=g?{}:{opacity:R?1:0,transform:R?"none":x(),transition:`opacity ${u}ms cubic-bezier(0.4, 0, 0.2, 1) ${s}ms, transform ${u}ms cubic-bezier(0.4, 0, 0.2, 1) ${s}ms`,willChange:R?"auto":"opacity, transform"};return e.jsx("div",{ref:N,className:$,style:j,"data-scroll-reveal":l,"data-scroll-reveal-visible":R?"true":"false",children:r})};xt.displayName="ScrollReveal";function Ut(r={}){const{threshold:l=.15,once:s=!0,rootMargin:u="0px 0px -10% 0px"}=r,n=t.useRef(null),[o,C]=t.useState(!1);return t.useEffect(()=>{const m=n.current;if(!m)return;if(typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){C(!0);return}const $=new IntersectionObserver(N=>{N.forEach(v=>{v.isIntersecting?(C(!0),s&&$.unobserve(v.target)):s||C(!1)})},{threshold:l,rootMargin:u});return $.observe(m),()=>$.disconnect()},[l,s,u]),{ref:n,isVisible:o}}const De=({isLoading:r=!0,shape:l="spinner",color:s="primary",customColor:u,label:n,progress:o,showProgress:C=!1,size:m="md",blur:$=!0,showBrand:N=!1,minDuration:v=0,inline:a=!1,className:M=""})=>{const[c,g]=t.useState(r),[x,R]=t.useState(!1),[j]=t.useState(Date.now()),p=u||`var(--color-${s})`;if(t.useEffect(()=>{if(a){g(r),R(r);return}let w;if(r)g(!0),w=setTimeout(()=>R(!0),20);else{const h=Date.now()-j,d=Math.max(0,v-h);w=setTimeout(()=>{R(!1),setTimeout(()=>g(!1),300)},d)}return()=>clearTimeout(w)},[r,v,j,a]),t.useEffect(()=>{if(!a)return c?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}},[c,a]),!c)return null;const f={sm:{box:32,stroke:3,dots:6,bars:20},md:{box:48,stroke:4,dots:8,bars:28},lg:{box:64,stroke:5,dots:10,bars:36}}[m],T=`drop-shadow(0 0 6px ${p}) drop-shadow(0 0 12px color-mix(in srgb, ${p} 45%, transparent))`,S=`drop-shadow(0 0 5px ${p}) drop-shadow(0 0 10px color-mix(in srgb, ${p} 40%, transparent))`,I=()=>e.jsxs("svg",{className:"animate-spin",width:f.box,height:f.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{filter:T,overflow:"visible"},children:[e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"var(--color-border-primary)",strokeWidth:f.stroke}),e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:p,strokeWidth:f.stroke,strokeLinecap:"round",strokeDasharray:"90 150"})]}),E=()=>e.jsx("svg",{className:"animate-spin",width:f.box,height:f.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{animationDuration:"1.2s",filter:S,overflow:"visible"},children:Array.from({length:12}).map((w,h)=>{const d=h/12*360;return e.jsx("rect",{x:"24",y:"4",width:"2",height:"8",rx:"1",fill:p,opacity:.15+h/12*.85,transform:`rotate(${d} 25 25)`},h)})}),y=()=>e.jsx("div",{className:"flex items-center gap-2",style:{filter:S},children:[0,1,2].map(w=>e.jsx("span",{className:"rounded-full",style:{width:f.dots,height:f.dots,backgroundColor:p,animation:`pageLoaderDot 1.2s ease-in-out ${w*.15}s infinite`}},w))}),i=()=>e.jsxs("div",{className:"relative",style:{width:f.box,height:f.box,filter:S},children:[e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:p,animation:"pageLoaderPulse 1.5s ease-out infinite"}}),e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:p,animation:"pageLoaderPulse 1.5s ease-out 0.5s infinite"}}),e.jsx("span",{className:"absolute rounded-full",style:{top:"50%",left:"50%",width:f.dots*1.5,height:f.dots*1.5,backgroundColor:p,transform:"translate(-50%, -50%)"}})]}),k=()=>e.jsx("div",{className:"flex items-end gap-1.5",style:{height:f.bars,filter:S},children:[0,1,2,3,4].map(w=>e.jsx("span",{className:"rounded-full",style:{width:3,height:"100%",backgroundColor:p,animation:`pageLoaderBar 1s ease-in-out ${w*.1}s infinite`,transformOrigin:"bottom"}},w))}),L={spinner:e.jsx(I,{}),ring:e.jsx(E,{}),dots:e.jsx(y,{}),pulse:e.jsx(i,{}),bars:e.jsx(k,{})};if(a){const w=f.box+24;return e.jsxs("div",{className:`flex flex-col items-center justify-center gap-3 ${M}`,role:"status","aria-live":"polite","aria-busy":r,children:[N&&e.jsx("span",{className:"font-heading font-bold text-xl tracking-tight",style:{background:"var(--gradient-primary)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"DARA UI"}),e.jsx("div",{className:"relative flex items-center justify-center",style:{width:w,height:w},children:e.jsx("div",{className:"flex items-center justify-center",style:{opacity:r?1:0,transition:"opacity 220ms cubic-bezier(0.4, 0, 0.2, 1)",pointerEvents:r?"auto":"none"},children:L[l]})}),n&&e.jsx("p",{className:"text-xs text-[var(--color-text-secondary)] font-mono tracking-wide",children:n})]})}return e.jsxs("div",{className:`
|
|
974
994
|
fixed inset-0 z-[10000]
|
|
975
995
|
flex items-center justify-center
|
|
976
996
|
transition-opacity duration-300
|
|
977
|
-
${
|
|
978
|
-
${
|
|
979
|
-
${
|
|
980
|
-
`,style:{background
|
|
997
|
+
${x?"opacity-100":"opacity-0"}
|
|
998
|
+
${$?"backdrop-blur-[12px]":""}
|
|
999
|
+
${M}
|
|
1000
|
+
`,style:{background:$?"color-mix(in srgb, var(--color-bg-primary) 75%, transparent)":"var(--color-bg-primary)"},role:"status","aria-live":"polite","aria-busy":"true",children:[e.jsxs("div",{className:"flex flex-col items-center gap-5",children:[N&&e.jsx("span",{className:"font-heading font-bold text-2xl tracking-tight mb-2",style:{background:"var(--gradient-primary)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"DARA UI"}),L[l],n&&e.jsx("p",{className:"text-sm text-[var(--color-text-secondary)] font-mono tracking-wide",children:n}),C&&o!==void 0&&e.jsxs("div",{className:"w-56 flex flex-col items-center gap-2",children:[e.jsx("div",{className:"w-full h-1.5 rounded-full bg-[var(--color-bg-tertiary)] overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${Math.max(0,Math.min(100,o))}%`,backgroundColor:p,filter:S}})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[Math.round(o),"%"]})]})]}),e.jsx("style",{children:`
|
|
981
1001
|
@keyframes pageLoaderDot {
|
|
982
1002
|
0%, 80%, 100% { transform: scale(0.5); opacity: 0.4; }
|
|
983
1003
|
40% { transform: scale(1); opacity: 1; }
|
|
@@ -990,4 +1010,4 @@
|
|
|
990
1010
|
0%, 100% { transform: scaleY(0.3); opacity: 0.5; }
|
|
991
1011
|
50% { transform: scaleY(1); opacity: 1; }
|
|
992
1012
|
}
|
|
993
|
-
`})]})};De.displayName="PageLoader";const ft=t.createContext(void 0),
|
|
1013
|
+
`})]})};De.displayName="PageLoader";const ft=t.createContext(void 0),Qt=({children:r})=>{const[l,s]=t.useState(!1),[u,n]=t.useState({}),[o,C]=t.useState(void 0),m=t.useRef(null),$=t.useCallback(c=>{m.current&&(clearTimeout(m.current),m.current=null),n(c||{}),C(c!=null&&c.showProgress?0:void 0),s(!0)},[]),N=t.useCallback(()=>{s(!1)},[]),v=t.useCallback(c=>{C(Math.max(0,Math.min(100,c)))},[]),a=t.useCallback(async(c,g)=>{$({minDuration:400,...g});try{return await c()}finally{N()}},[$,N]),M={show:$,hide:N,isLoading:l,setProgress:v,wrap:a};return e.jsxs(ft.Provider,{value:M,children:[r,e.jsx(De,{isLoading:l,shape:u.shape,label:u.label,progress:o,showProgress:u.showProgress,showBrand:u.showBrand,minDuration:u.minDuration})]})},Jt=()=>{const r=t.useContext(ft);if(!r)throw new Error("usePageLoader must be used within a PageLoaderProvider");return r};function Zt(r="ltr"){const[l,s]=t.useState(r);t.useEffect(()=>{document.documentElement.dir=l,document.documentElement.lang=l==="rtl"?"fa":"en"},[l]);const u=t.useCallback(()=>{s(o=>o==="ltr"?"rtl":"ltr")},[]),n=t.useCallback(o=>{s(o)},[]);return{direction:l,setDirection:n,toggleDirection:u}}const Kt="0.1.0";exports.Accordion=qe;exports.AuroraBlobs=mt;exports.Avatar=Se;exports.Badge=he;exports.BlogCard=at;exports.Button=ge;exports.Card=We;exports.CharacterCard=it;exports.Checkbox=He;exports.Dropdown=Ve;exports.Footer=Ze;exports.GradientRing=pt;exports.I18nProvider=Dt;exports.Input=fe;exports.LanguageChanger=Ue;exports.Modal=Te;exports.Navbar=Qe;exports.NoiseOverlay=ht;exports.PageLoader=De;exports.PageLoaderProvider=Qt;exports.Particles=ut;exports.ProductCard=rt;exports.Progress=ke;exports.QuestCard=lt;exports.Radio=Ye;exports.Range=Xe;exports.ScrollReveal=xt;exports.Sidebar=Je;exports.SocialMedia=Ke;exports.StatsWidget=ct;exports.Switch=Fe;exports.Tabs=Ge;exports.ThemeChanger=nt;exports.ThemeProvider=Ot;exports.Toast=Ie;exports.ToastContainer=Ee;exports.ToastProvider=zt;exports.Tooltip=tt;exports.XPBar=dt;exports.translations=Ht;exports.useDirection=Zt;exports.useI18n=xe;exports.usePageLoader=Jt;exports.useScrollReveal=Ut;exports.useToast=Bt;exports.version=Kt;
|