dara-ui 0.4.6 → 0.4.8
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/Avatar/Avatar.d.ts +3 -2
- package/dist/dara-ui.cjs.js +183 -183
- package/dist/dara-ui.es.js +950 -939
- package/dist/style.css +1 -1
- package/dist/translations/en.d.ts +3 -0
- package/dist/translations/fa.d.ts +3 -0
- package/dist/translations/fr.d.ts +3 -0
- package/dist/translations/index.d.ts +9 -0
- package/package.json +1 -1
package/dist/dara-ui.cjs.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
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((r,l)=>{const{as:a="button",children:m,variant:n="primary",size:s="md",fullWidth:C=!1,loading:p=!1,glow:$,leftIcon:k,rightIcon:g,className:o="",...M}=r,c=a==="button"&&"disabled"in M?M.disabled:void 0,{disabled:b,...x}=M,R=a==="button"?{...x,disabled:c||p}:x,w="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 no-underline hover:no-underline",u={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)]"},v={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]"},f={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)]"},T=[w,u[n],v[s],C?"w-full":"",p?"opacity-80 pointer-events-none":"",$?f[$]:"",o].filter(Boolean).join(" "),S=a,I=l;return e.jsxs(S,{ref:I,className:T,...R,children:[p&&e.jsx("span",{className:"spinner inline-block w-4 h-4 border-2 border-transparent border-t-current rounded-full animate-spin"}),k&&e.jsx("span",{className:"flex-shrink-0",children:k}),m,g&&e.jsx("span",{className:"flex-shrink-0",children:g})]})});ge.displayName="Button";const he=t.forwardRef(({variant:r="primary",size:l="md",glow:a=!1,outline:m=!1,className:n="",children:s,...C},p)=>{const $="inline-flex items-center justify-center font-accent font-medium transition-all duration-180 rounded-full",k={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"},g={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"},o={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=m?o[r]:g[r],b=a?M[r]:"",x=[$,c,k[l],b,n].filter(Boolean).join(" ");return e.jsx("span",{ref:p,className:x,dir:"auto",...C,children:s})});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:a,errorMessage:m,successMessage:n,leftIcon:s,rightIcon:C,glowFocus:p=!0,label:$,helperText:k,fullWidth:g=!1,disabled:o=!1,className:M="",placeholder:c,value:b,onChange:x,onFocus:R,onBlur:w,id:u,...v},f)=>{const[T,S]=t.useState(!1),[I,E]=t.useState(!1),y=t.useId(),i=u||y,N="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)]",j={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=p?{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)]"}[a||"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"},V={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},W=[N,L,j[a||"default"],h,d,P[l],g?"w-full":"",s?l==="sm"?"pl-9":l==="md"?"pl-11":"pl-14":"",C||r==="password"?l==="sm"?"pr-9":l==="md"?"pr-11":"pr-14":"",o?"opacity-60 cursor-not-allowed":"",M].filter(Boolean).join(" "),O=Q=>{E(!0),R==null||R(Q)},H=Q=>{E(!1),w==null||w(Q)},z=()=>o?"text-[var(--color-text-tertiary)]":a==="error"?"text-[var(--color-danger)]":a==="success"?"text-[var(--color-success)]":a==="warning"?"text-[var(--color-warning)]":I?"text-[var(--color-primary)]":"text-[var(--color-text-secondary)]",X=()=>o?"text-[var(--color-text-tertiary)]":a==="error"?"text-[var(--color-danger)]":a==="success"?"text-[var(--color-success)]":a==="warning"?"text-[var(--color-warning)]":I?"text-[var(--color-primary)]":"text-[var(--color-text-tertiary)]";return e.jsxs("div",{className:`${g?"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:[s&&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:V[l],children:s})}),e.jsx("input",{ref:f,id:i,type:r==="password"&&T?"text":r,className:W,placeholder:c,value:b,onChange:x,onFocus:O,onBlur:H,disabled:o,"aria-label":$?void 0:c||"Input",...v}),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"})})})]}),(k||m||n)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[a==="error"&&m&&e.jsxs("span",{className:"text-[var(--color-danger)] flex items-center",children:[e.jsx(Be,{})," ",m]}),a==="success"&&n&&e.jsxs("span",{className:"text-[var(--color-success)] flex items-center",children:[e.jsx(ze,{})," ",n]}),!a&&k&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:k})]})]})});fe.displayName="Input";const Ge=t.forwardRef(({variant:r="glass",padding:l="md",radius:a="standard",float:m=!1,glow:n,className:s="",children:C,style:p,...$},k)=>{const[g,o]=t.useState({x:0,y:0}),[M,c]=t.useState(!1),b=t.useRef(null),x=y=>{if(!b.current||!m)return;const i=b.current.getBoundingClientRect(),N=y.clientX-i.left,L=y.clientY-i.top,j=i.width/2,h=i.height/2,d=(L-h)/h*-6,P=(N-j)/j*6;o({x:d,y:P})},R=()=>{m&&c(!0)},w=()=>{c(!1),o({x:0,y:0})},u={glass:"glass",solid:"glass-solid",outline:"glass-outline"},v={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=m?"float-card":"",I=n?T[n]:"",E=[u[r],v[l],S,I,s].filter(Boolean).join(" ");return e.jsx("div",{ref:y=>{typeof k=="function"?k(y):k&&(k.current=y),b.current=y},className:E,style:{borderRadius:f[a],transform:m&&M?`perspective(800px) rotateX(${g.x}deg) rotateY(${g.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:m?"preserve-3d":"flat",transition:m?"transform 0.2s ease-out, box-shadow 0.4s ease, border-radius 0.2s ease":"border-radius 0.2s ease",...p},onMouseMove:x,onMouseEnter:R,onMouseLeave:w,...$,children:C})});Ge.displayName="Card";const We=({items:r,activeValue:l,defaultValue:a,onChange:m,align:n="left",size:s="md",glowColor:C="primary",fullWidth:p=!1,className:$=""})=>{var N,L;const k=l!==void 0,[g,o]=t.useState(a||((N=r[0])==null?void 0:N.value)||((L=r[0])==null?void 0:L.label)||""),M=k?l:g,[c,b]=t.useState({}),x=t.useRef(null),R=t.useRef(null),w=t.useRef(null),u=t.useRef(null),v=t.useRef(!0),f=(j,h)=>j.value||j.label||`tab-${h}`,T=t.useCallback(j=>{k||o(j),m==null||m(j)},[k,m]),S=t.useCallback(()=>{w.current&&(clearTimeout(w.current),w.current=null),requestAnimationFrame(()=>{if(R.current&&x.current){const j=R.current.getBoundingClientRect(),h=x.current.getBoundingClientRect(),d=j.left-h.left,P=j.width;b(V=>V.left===d&&V.width===P?V:{left:d,width:P})}})},[]);t.useEffect(()=>{if(v.current){v.current=!1,setTimeout(S,100);return}return w.current=setTimeout(()=>{S()},30),()=>{w.current&&(clearTimeout(w.current),w.current=null)}},[M,r,S]),t.useEffect(()=>{const j=()=>{u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{S()},150)};return window.addEventListener("resize",j),window.addEventListener("orientationchange",j),()=>{window.removeEventListener("resize",j),window.removeEventListener("orientationchange",j),u.current&&(clearTimeout(u.current),u.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 j;return(j=r.find((h,d)=>f(h,d)===M))==null?void 0:j.content},[r,M]);return e.jsxs("div",{className:`w-full ${$}`,children:[e.jsxs("div",{ref:x,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((r,l)=>{const{as:a="button",children:m,variant:n="primary",size:s="md",fullWidth:C=!1,loading:p=!1,glow:L,leftIcon:k,rightIcon:v,className:o="",...$}=r,c=a==="button"&&"disabled"in $?$.disabled:void 0,{disabled:y,...f}=$,T=a==="button"?{...f,disabled:c||p}:f,j="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 no-underline hover:no-underline",u={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)]"},b={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)]"},M=[j,u[n],b[s],C?"w-full":"",p?"opacity-80 pointer-events-none":"",L?g[L]:"",o].filter(Boolean).join(" "),S=a,R=l;return e.jsxs(S,{ref:R,className:M,...T,children:[p&&e.jsx("span",{className:"spinner inline-block w-4 h-4 border-2 border-transparent border-t-current rounded-full animate-spin"}),k&&e.jsx("span",{className:"flex-shrink-0",children:k}),m,v&&e.jsx("span",{className:"flex-shrink-0",children:v})]})});ge.displayName="Button";const he=t.forwardRef(({variant:r="primary",size:l="md",glow:a=!1,outline:m=!1,className:n="",children:s,...C},p)=>{const L="inline-flex items-center justify-center font-accent font-medium transition-all duration-180 rounded-full",k={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"},o={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=m?o[r]:v[r],y=a?$[r]:"",f=[L,c,k[l],y,n].filter(Boolean).join(" ");return e.jsx("span",{ref:p,className:f,dir:"auto",...C,children:s})});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:a,errorMessage:m,successMessage:n,leftIcon:s,rightIcon:C,glowFocus:p=!0,label:L,helperText:k,fullWidth:v=!1,disabled:o=!1,className:$="",placeholder:c,value:y,onChange:f,onFocus:T,onBlur:j,id:u,...b},g)=>{const[M,S]=t.useState(!1),[R,E]=t.useState(!1),w=t.useId(),i=u||w,N="w-full font-sans transition-all duration-180 outline-none disabled:opacity-60 disabled:cursor-not-allowed placeholder:text-[var(--color-text-tertiary)]",I="bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-bg-elevated)] focus:bg-[var(--color-bg-elevated)]",x={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=p?{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)]"}[a||"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"},V={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},W=[N,I,x[a||"default"],h,d,P[l],v?"w-full":"",s?l==="sm"?"pl-9":l==="md"?"pl-11":"pl-14":"",C||r==="password"?l==="sm"?"pr-9":l==="md"?"pr-11":"pr-14":"",o?"opacity-60 cursor-not-allowed":"",$].filter(Boolean).join(" "),O=Q=>{E(!0),T==null||T(Q)},H=Q=>{E(!1),j==null||j(Q)},z=()=>o?"text-[var(--color-text-tertiary)]":a==="error"?"text-[var(--color-danger)]":a==="success"?"text-[var(--color-success)]":a==="warning"?"text-[var(--color-warning)]":R?"text-[var(--color-primary)]":"text-[var(--color-text-secondary)]",X=()=>o?"text-[var(--color-text-tertiary)]":a==="error"?"text-[var(--color-danger)]":a==="success"?"text-[var(--color-success)]":a==="warning"?"text-[var(--color-warning)]":R?"text-[var(--color-primary)]":"text-[var(--color-text-tertiary)]";return e.jsxs("div",{className:`${v?"w-full":""} flex flex-col gap-1.5`,children:[L&&e.jsx("label",{htmlFor:i,className:`text-sm font-medium font-sans transition-colors duration-180 ${z()}`,children:L}),e.jsxs("div",{className:"relative group w-full",children:[s&&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:V[l],children:s})}),e.jsx("input",{ref:g,id:i,type:r==="password"&&M?"text":r,className:W,placeholder:c,value:y,onChange:f,onFocus:O,onBlur:H,disabled:o,"aria-label":L?void 0:c||"Input",...b}),r==="password"&&e.jsx("button",{type:"button",onClick:()=>S(!M),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":M?"Hide password":"Show password",children:M?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"})})})]}),(k||m||n)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[a==="error"&&m&&e.jsxs("span",{className:"text-[var(--color-danger)] flex items-center",children:[e.jsx(Be,{})," ",m]}),a==="success"&&n&&e.jsxs("span",{className:"text-[var(--color-success)] flex items-center",children:[e.jsx(ze,{})," ",n]}),!a&&k&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:k})]})]})});fe.displayName="Input";const Ge=t.forwardRef(({variant:r="glass",padding:l="md",radius:a="standard",float:m=!1,glow:n,className:s="",children:C,style:p,...L},k)=>{const[v,o]=t.useState({x:0,y:0}),[$,c]=t.useState(!1),y=t.useRef(null),f=w=>{if(!y.current||!m)return;const i=y.current.getBoundingClientRect(),N=w.clientX-i.left,I=w.clientY-i.top,x=i.width/2,h=i.height/2,d=(I-h)/h*-6,P=(N-x)/x*6;o({x:d,y:P})},T=()=>{m&&c(!0)},j=()=>{c(!1),o({x:0,y:0})},u={glass:"glass",solid:"glass-solid",outline:"glass-outline"},b={sm:"p-4",md:"p-6",lg:"p-8",none:"p-0"},g={sm:"var(--radius-sm)",md:"var(--radius-md)",standard:"var(--radius-standard)",large:"var(--radius-large)",xl:"var(--radius-xl)",full:"var(--radius-full)"},M={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent"},S=m?"float-card":"",R=n?M[n]:"",E=[u[r],b[l],S,R,s].filter(Boolean).join(" ");return e.jsx("div",{ref:w=>{typeof k=="function"?k(w):k&&(k.current=w),y.current=w},className:E,style:{borderRadius:g[a],transform:m&&$?`perspective(800px) rotateX(${v.x}deg) rotateY(${v.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:m?"preserve-3d":"flat",transition:m?"transform 0.2s ease-out, box-shadow 0.4s ease, border-radius 0.2s ease":"border-radius 0.2s ease",...p},onMouseMove:f,onMouseEnter:T,onMouseLeave:j,...L,children:C})});Ge.displayName="Card";const We=({items:r,activeValue:l,defaultValue:a,onChange:m,align:n="left",size:s="md",glowColor:C="primary",fullWidth:p=!1,className:L=""})=>{var N,I;const k=l!==void 0,[v,o]=t.useState(a||((N=r[0])==null?void 0:N.value)||((I=r[0])==null?void 0:I.label)||""),$=k?l:v,[c,y]=t.useState({}),f=t.useRef(null),T=t.useRef(null),j=t.useRef(null),u=t.useRef(null),b=t.useRef(!0),g=(x,h)=>x.value||x.label||`tab-${h}`,M=t.useCallback(x=>{k||o(x),m==null||m(x)},[k,m]),S=t.useCallback(()=>{j.current&&(clearTimeout(j.current),j.current=null),requestAnimationFrame(()=>{if(T.current&&f.current){const x=T.current.getBoundingClientRect(),h=f.current.getBoundingClientRect(),d=x.left-h.left,P=x.width;y(V=>V.left===d&&V.width===P?V:{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)}},[$,r,S]),t.useEffect(()=>{const x=()=>{u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{S()},150)};return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),()=>{window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),u.current&&(clearTimeout(u.current),u.current=null)}},[S]);const R=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)]"}),[]),w=t.useMemo(()=>({left:"justify-start",center:"justify-center",right:"justify-end"}),[]),i=t.useMemo(()=>{var x;return(x=r.find((h,d)=>g(h,d)===$))==null?void 0:x.content},[r,$]);return e.jsxs("div",{className:`w-full ${L}`,children:[e.jsxs("div",{ref:f,className:`
|
|
2
2
|
relative flex border-b border-[var(--color-border-secondary)]
|
|
3
|
-
${
|
|
3
|
+
${w[n]}
|
|
4
4
|
${p?"w-full":""}
|
|
5
|
-
`,role:"tablist",children:[r.map((
|
|
5
|
+
`,role:"tablist",children:[r.map((x,h)=>{const d=g(x,h),P=d===$;return e.jsxs("button",{ref:P?T: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
|
-
${
|
|
9
|
+
${R[s]}
|
|
10
10
|
${p?"flex-1 justify-center":""}
|
|
11
11
|
${P?"text-[var(--color-text-primary)]":"text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}
|
|
12
|
-
${
|
|
12
|
+
${x.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:()=>!x.disabled&&M(d),role:"tab","aria-selected":P,"aria-disabled":x.disabled,tabIndex:P?0:-1,disabled:x.disabled,children:[x.icon&&e.jsx("span",{className:"flex-shrink-0",children:x.icon}),e.jsx("span",{children:x.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
19
|
${E[C]}
|
|
@@ -22,7 +22,7 @@
|
|
|
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:i}
|
|
25
|
+
`,children:i},$)}),e.jsx("style",{children:`
|
|
26
26
|
@keyframes fadeSlideIn {
|
|
27
27
|
0% {
|
|
28
28
|
opacity: 0;
|
|
@@ -37,31 +37,31 @@
|
|
|
37
37
|
.animate-fade-slide-in {
|
|
38
38
|
animation: fadeSlideIn 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
39
39
|
}
|
|
40
|
-
`})]})};We.displayName="Tabs";const Ve=({items:r,openItems:l,defaultOpenItems:a=[],onOpenChange:m,multiple:n=!1,glass:s=!0,className:C="",size:p="md"})=>{const
|
|
40
|
+
`})]})};We.displayName="Tabs";const Ve=({items:r,openItems:l,defaultOpenItems:a=[],onOpenChange:m,multiple:n=!1,glass:s=!0,className:C="",size:p="md"})=>{const L=l!==void 0,[k,v]=t.useState(a),o=L?l:k,$=t.useRef(new Map),[c,y]=t.useState({}),f=t.useCallback(u=>{let b;n?o.includes(u)?b=o.filter(g=>g!==u):b=[...o,u]:o.includes(u)&&o.length===1?b=[]:b=[u],L||v(b),m==null||m(b)},[o,n,L,m]);t.useEffect(()=>{const u={};r.forEach(b=>{const g=$.current.get(b.id);g&&(g.style.maxHeight="none",u[b.id]=g.scrollHeight,g.style.maxHeight="0px")}),y(u)},[r]);const T={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:`${s?"glass":""} overflow-hidden ${C}`,children:r.map((u,b)=>{const g=o.includes(u.id),M=b===0,S=b===r.length-1,R=r.length===1,E=c[u.id]||0;let w="";return R?w="rounded-[--radius-md]":M?w="rounded-t-[--radius-md]":S&&(w="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
|
+
${w}
|
|
44
|
+
`,children:[e.jsxs("button",{onClick:()=>f(u.id),disabled:u.disabled,className:`
|
|
45
45
|
w-full flex items-center justify-between
|
|
46
46
|
font-heading font-semibold
|
|
47
47
|
transition-colors duration-180
|
|
48
|
-
${
|
|
48
|
+
${T[p]}
|
|
49
49
|
${u.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer"}
|
|
50
|
-
${
|
|
50
|
+
${g?"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":g,"aria-disabled":u.disabled,children:[e.jsxs("span",{className:"flex items-center gap-2",children:[u.icon&&e.jsx("span",{className:"flex-shrink-0",children:u.icon}),u.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:i=>{i
|
|
55
|
+
${g?"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?$.current.set(u.id,i):$.current.delete(u.id)},className:`
|
|
57
57
|
overflow-hidden
|
|
58
58
|
transition-[max-height,padding] duration-350 ease-[var(--ease-in-out)]
|
|
59
|
-
${
|
|
60
|
-
`,style:{maxHeight:
|
|
59
|
+
${g?"border-t border-[var(--color-border-secondary)]":""}
|
|
60
|
+
`,style:{maxHeight:g?`${E}px`:"0px",paddingTop:"0",paddingBottom:"0"},children:e.jsx("div",{className:`${j[p]} text-[var(--color-text-secondary)]`,children:u.content})})]},u.id)})})};Ve.displayName="Accordion";const qe=t.forwardRef(({options:r,value:l,defaultValue:a,onChange:m,placeholder:n="Select an option...",searchable:s=!1,searchPlaceholder:C="Search...",disabled:p=!1,fullWidth:L=!1,size:k="md",className:v="",label:o,helperText:$,error:c=!1,errorMessage:y},f)=>{const T=l!==void 0,[j,u]=t.useState(a),[b,g]=t.useState(!1),[M,S]=t.useState(""),R=t.useRef(null),E=t.useRef(null),w=T?l:j,i=r.find(O=>O.value===w),N=s?r.filter(O=>O.label.toLowerCase().includes(M.toLowerCase())):r,I=t.useId(),x=t.useCallback(()=>{p||(g(O=>!O),b||S(""))},[p,b]),h=t.useCallback(O=>{T||u(O),m==null||m(O),g(!1),S("")},[T,m]);t.useEffect(()=>{const O=H=>{R.current&&!R.current.contains(H.target)&&(g(!1),S(""))};return b&&document.addEventListener("mousedown",O),()=>{document.removeEventListener("mousedown",O)}},[b]),t.useEffect(()=>{b&&s&&E.current&&E.current.focus()},[b,s]);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"},V={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},W=(i==null?void 0:i.label)||n;return e.jsxs("div",{ref:f,className:`
|
|
61
61
|
flex flex-col gap-1.5
|
|
62
|
-
${
|
|
63
|
-
${
|
|
64
|
-
`,children:[o&&e.jsx("label",{className:"text-sm font-medium text-[var(--color-text-secondary)] font-sans",children:o}),e.jsxs("div",{ref:
|
|
62
|
+
${L?"w-full":P[k]}
|
|
63
|
+
${v}
|
|
64
|
+
`,children:[o&&e.jsx("label",{className:"text-sm font-medium text-[var(--color-text-secondary)] font-sans",children:o}),e.jsxs("div",{ref:R,className:"relative w-full",children:[e.jsxs("button",{type:"button",onClick:x,disabled:p,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)]
|
|
@@ -70,21 +70,21 @@
|
|
|
70
70
|
${p?"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":p,children:[e.jsxs("span",{className:`
|
|
75
75
|
flex items-center gap-2 min-w-0 truncate
|
|
76
76
|
${i?"":"text-[var(--color-text-tertiary)]"}
|
|
77
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:W})]}),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
82
|
`,children:e.jsx("svg",{className:V[k],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:[s&&e.jsxs("div",{className:"px-2 pb-1.5 border-b border-[var(--color-border-secondary)]",children:[e.jsx("label",{htmlFor:`${
|
|
86
|
+
${b?"opacity-100 translate-y-0 pointer-events-auto":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
87
|
+
`,style:{position:"absolute"},children:[s&&e.jsxs("div",{className:"px-2 pb-1.5 border-b border-[var(--color-border-secondary)]",children:[e.jsx("label",{htmlFor:`${I}-search`,className:"sr-only",children:C}),e.jsx("input",{ref:E,id:`${I}-search`,type:"text",value:M,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,44 +93,44 @@
|
|
|
93
93
|
outline-none
|
|
94
94
|
focus:border-[var(--color-primary)]
|
|
95
95
|
${d[k].search}
|
|
96
|
-
`,onClick:O=>O.stopPropagation()})]}),e.jsx("div",{className:"py-1",role:"listbox","aria-label":o||"Dropdown options",children:N.length===0?e.jsx("div",{className:`${d[k].option} text-[var(--color-text-tertiary)] text-center`,children:"No options found"}):N.map(O=>{const H=O.value===
|
|
96
|
+
`,onClick:O=>O.stopPropagation()})]}),e.jsx("div",{className:"py-1",role:"listbox","aria-label":o||"Dropdown options",children:N.length===0?e.jsx("div",{className:`${d[k].option} text-[var(--color-text-tertiary)] text-center`,children:"No options found"}):N.map(O=>{const H=O.value===w;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[k].option}
|
|
99
99
|
${O.disabled?"opacity-40 cursor-not-allowed":"cursor-pointer hover:bg-[var(--color-bg-elevated)]/50"}
|
|
100
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:[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:`${V[k]} 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)})})]})]}),(
|
|
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:`${V[k]} 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)})})]})]}),($||y)&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-sans",children:[c&&y&&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:y})]}),!c&&$&&e.jsx("span",{className:"text-[var(--color-text-tertiary)]",children:$})]})]})});qe.displayName="Dropdown";const Et=300,Te=({isOpen:r,onClose:l,title:a,children:m,size:n="md",closeOnBackdropClick:s=!0,closeOnEscape:C=!0,confirmText:p,cancelText:L,onConfirm:k,className:v=""})=>{const o=t.useRef(null),$=t.useRef(null),[c,y]=t.useState(!1),[f,T]=t.useState(!1),j={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl"};t.useEffect(()=>{let g;return r?(y(!0),T(!1),g=setTimeout(()=>{T(!0)},20)):(T(!1),g=setTimeout(()=>{y(!1)},Et)),()=>clearTimeout(g)},[r]),t.useEffect(()=>{if(!r||!C)return;const g=M=>{M.key==="Escape"&&l()};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[r,C,l]),t.useEffect(()=>{var S;if(!r){(S=$.current)==null||S.focus();return}$.current=document.activeElement;const g=setTimeout(()=>{var R;return(R=o.current)==null?void 0:R.focus()},30),M=R=>{if(R.key!=="Tab"||!o.current)return;const E=o.current.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])');if(E.length===0)return;const w=E[0],i=E[E.length-1],N=document.activeElement;R.shiftKey&&N===w?(R.preventDefault(),i.focus()):!R.shiftKey&&N===i&&(R.preventDefault(),w.focus())};return document.addEventListener("keydown",M),()=>{clearTimeout(g),document.removeEventListener("keydown",M)}},[r]);const u=t.useCallback(g=>{s&&g.target===g.currentTarget&&l()},[s,l]),b=t.useCallback(()=>{k==null||k(),l()},[k,l]);return c?Me.createPortal(e.jsx("div",{ref:o,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
|
-
${
|
|
107
|
+
${f?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
108
108
|
`,onClick:u,role:"dialog","aria-modal":"true","aria-labelledby":a?"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
|
+
${f?"scale-100 opacity-100":"scale-90 opacity-0"}
|
|
113
|
+
${v}
|
|
114
|
+
`,onClick:g=>g.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a&&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)]"}),a]}),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:m}),(p||L)&&e.jsxs("div",{className:"flex gap-3 mt-6",children:[p&&e.jsx(ge,{variant:"primary",onClick:b,children:p}),L&&e.jsx(ge,{variant:"glass",onClick:l,children:L})]})]})}),document.body):null};Te.displayName="Modal";const He=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:a,label:m,size:n="md",glow:s=!1,error:C=!1,disabled:p=!1,className:L="",id:k,...v},o)=>{const $=r!==void 0,[c,y]=t.useState(l),[f,T]=t.useState(!1),j=t.useRef(null),u=$?r:c,b=t.useId(),g=k||b,M=I=>{const x=I.target.checked;$||y(x),a==null||a(x),x&&(T(!0),setTimeout(()=>T(!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"}},R=S[n]||S.md,E=s&&u?"shadow-[var(--shadow-glow-primary)] ring-2 ring-[var(--color-primary)]/30":"",w=C?"border-[var(--color-danger)]":"border-[var(--color-border-primary)]",i=()=>e.jsx("svg",{className:`${R.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"})}),N=()=>{const I=["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,V=12+Math.random()*20,W=2+Math.random()*3,O=I[Math.floor(Math.random()*I.length)],H=Math.random()*.15;return e.jsx("div",{className:"sparkle-particle",style:{left:"50%",top:"50%",width:`${W}px`,height:`${W}px`,backgroundColor:O,borderRadius:"50%",position:"absolute",transform:"translate(-50%, -50%)","--angle":`${P}deg`,"--distance":`${V}px`,animationDelay:`${H}s`}},d)})})};return e.jsxs("label",{htmlFor:g,className:`
|
|
115
115
|
inline-flex items-center
|
|
116
|
-
${
|
|
116
|
+
${R.gap}
|
|
117
117
|
cursor-pointer
|
|
118
118
|
${p?"opacity-50 cursor-not-allowed":""}
|
|
119
|
-
${
|
|
119
|
+
${L}
|
|
120
120
|
align-middle
|
|
121
121
|
w-fit
|
|
122
|
-
`,children:[e.jsx("input",{ref:
|
|
122
|
+
`,children:[e.jsx("input",{ref:I=>{typeof o=="function"?o(I):o&&(o.current=I),j.current=I},id:g,type:"checkbox",checked:u,onChange:M,disabled:p,className:"sr-only","aria-invalid":C,...v}),e.jsxs("div",{className:`
|
|
123
123
|
relative flex-shrink-0
|
|
124
|
-
${
|
|
124
|
+
${R.box}
|
|
125
125
|
rounded-[var(--radius-sm)]
|
|
126
126
|
transition-all duration-[var(--transition-med)]
|
|
127
|
-
${
|
|
127
|
+
${w}
|
|
128
128
|
${p?"bg-[var(--color-bg-tertiary)]":""}
|
|
129
129
|
${u?`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:u&&s?"var(--shadow-glow-primary)":"none",alignSelf:"center"},children:[u&&e.jsx("div",{className:"flex items-center justify-center w-full h-full",style:{animation:"checkScale 0.25s ease-out"},children:e.jsx(i,{})}),u&&
|
|
133
|
-
${
|
|
132
|
+
`,style:{boxShadow:u&&s?"var(--shadow-glow-primary)":"none",alignSelf:"center"},children:[u&&e.jsx("div",{className:"flex items-center justify-center w-full h-full",style:{animation:"checkScale 0.25s ease-out"},children:e.jsx(i,{})}),u&&f&&e.jsx(N,{})]}),m&&e.jsx("span",{className:`
|
|
133
|
+
${R.label}
|
|
134
134
|
text-[var(--color-text-primary)]
|
|
135
135
|
font-sans font-medium
|
|
136
136
|
${p?"text-[var(--color-text-tertiary)]":""}
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
transform: scale(1);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
`})]})});He.displayName="Checkbox";const Fe=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:a,label:m,size:n="md",glow:s=!1,disabled:C=!1,onIcon:p,offIcon
|
|
171
|
+
`})]})});He.displayName="Checkbox";const Fe=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:a,label:m,size:n="md",glow:s=!1,disabled:C=!1,onIcon:p,offIcon:L,className:k="",id:v,...o},$)=>{const c=r!==void 0,[y,f]=t.useState(l),[T,j]=t.useState(!1),u=t.useRef(null),[b,g]=t.useState(!1);t.useEffect(()=>{const I=()=>{g(document.documentElement.dir==="rtl")};I();const x=new MutationObserver(I);return x.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>x.disconnect()},[]);const M=c?r:y,S=t.useId(),R=v||S,E=I=>{const x=I.target.checked;c||f(x),a==null||a(x),x&&(j(!0),setTimeout(()=>j(!1),700))},w={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=w[n]||w.md;let N=0;return M?N=b?-i.travel:i.travel:N=0,e.jsxs("label",{htmlFor:R,className:`
|
|
172
172
|
inline-flex flex-col items-start
|
|
173
173
|
${i.gap}
|
|
174
174
|
${C?"opacity-50 pointer-events-none":"cursor-pointer"}
|
|
@@ -184,14 +184,14 @@
|
|
|
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:I=>{typeof $=="function"?$(I):$&&($.current=I),u.current=I},id:R,type:"checkbox",role:"switch",checked:M,onChange:E,disabled:C,className:"sr-only","aria-checked":M,...o}),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
|
+
${M?`
|
|
195
195
|
bg-[var(--color-primary)]
|
|
196
196
|
border-[var(--color-primary)]
|
|
197
197
|
backdrop-blur-[12px]
|
|
@@ -200,11 +200,11 @@
|
|
|
200
200
|
border-[var(--color-border-primary)]
|
|
201
201
|
backdrop-blur-[10px]
|
|
202
202
|
`}
|
|
203
|
-
${s&&
|
|
204
|
-
`,style:{boxShadow:s&&
|
|
203
|
+
${s&&M?"shadow-[var(--shadow-glow-primary)] ring-2 ring-[var(--color-primary)]/25":"shadow-[var(--shadow-float)]"}
|
|
204
|
+
`,style:{boxShadow:s&&M?"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
|
+
${M?"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}
|
|
@@ -212,22 +212,22 @@
|
|
|
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
|
+
${M?`
|
|
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%",[
|
|
222
|
+
`,style:{top:"50%",[b?"right":"left"]:0,transform:`translateY(-50%) translateX(${N}px)`},children:[M&&p&&e.jsx("span",{className:`
|
|
223
223
|
${i.icon}
|
|
224
224
|
flex items-center justify-center leading-none
|
|
225
225
|
text-[var(--color-primary)]
|
|
226
|
-
`,children:p}),!
|
|
226
|
+
`,children:p}),!M&&L&&e.jsx("span",{className:`
|
|
227
227
|
${i.icon}
|
|
228
228
|
flex items-center justify-center leading-none
|
|
229
229
|
text-[var(--color-text-tertiary)]
|
|
230
|
-
`,children
|
|
230
|
+
`,children:L})]}),M&&T&&e.jsx("div",{className:"absolute inset-0 pointer-events-none overflow-visible",children:Array.from({length:10}).map((I,x)=>{const h=x/10*360+Math.random()*24,d=14+Math.random()*18,P=2+Math.random()*2.5,V=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","#ffffff"],W=V[Math.floor(Math.random()*V.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:W,borderRadius:"50%","--angle":`${h}deg`,"--distance":`${d}px`,animationDelay:`${O}s`}},x)})})]})]}),e.jsx("style",{children:`
|
|
231
231
|
.switch-sparkle {
|
|
232
232
|
animation: switchSparkleBurst 0.65s ease-out forwards;
|
|
233
233
|
}
|
|
@@ -244,17 +244,17 @@
|
|
|
244
244
|
opacity: 0;
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
`})]})});Fe.displayName="Switch";const Ye=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:a,onChange:m,label:n,size:s="md",glow:C=!1,error:p=!1,disabled
|
|
247
|
+
`})]})});Fe.displayName="Switch";const Ye=t.forwardRef(({checked:r,defaultChecked:l=!1,onCheckedChange:a,onChange:m,label:n,size:s="md",glow:C=!1,error:p=!1,disabled:L=!1,value:k,name:v,className:o="",id:$,...c},y)=>{const f=r!==void 0,[T,j]=t.useState(l),[u,b]=t.useState(f?!!r:l),g=t.useRef(null);t.useEffect(()=>{f&&b(!!r)},[r,f]);const M=t.useId(),S=$||M,R=N=>{const I=N.target.checked;b(I),f||j(I),a==null||a(I),m==null||m(N)};t.useEffect(()=>{if(f||!v)return;const N=()=>{const I=g.current;I&&b(I.checked)};return document.addEventListener("change",N,!0),()=>document.removeEventListener("change",N,!0)},[f,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"}},w=E[s]||E.md,i=u;return e.jsxs("label",{htmlFor:S,className:`
|
|
248
248
|
inline-flex items-center
|
|
249
|
-
${
|
|
249
|
+
${w.gap}
|
|
250
250
|
cursor-pointer
|
|
251
|
-
${
|
|
251
|
+
${L?"opacity-50 cursor-not-allowed":""}
|
|
252
252
|
${o}
|
|
253
253
|
align-middle
|
|
254
254
|
w-fit
|
|
255
|
-
`,children:[e.jsx("input",{ref:N=>{typeof
|
|
255
|
+
`,children:[e.jsx("input",{ref:N=>{typeof y=="function"?y(N):y&&(y.current=N),g.current=N},id:S,type:"radio",checked:f?r:T,onChange:R,disabled:L,value:k,name:v,className:"sr-only","aria-invalid":p,...c}),e.jsxs("span",{className:`
|
|
256
256
|
relative flex-shrink-0
|
|
257
|
-
${
|
|
257
|
+
${w.ring}
|
|
258
258
|
rounded-full
|
|
259
259
|
flex items-center justify-center
|
|
260
260
|
border-2
|
|
@@ -264,18 +264,18 @@
|
|
|
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
|
+
${w.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
272
|
${i?"scale-100":"scale-0"}
|
|
273
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
|
-
${
|
|
274
|
+
${w.label}
|
|
275
275
|
font-sans font-medium
|
|
276
276
|
text-[var(--color-text-primary)]
|
|
277
277
|
select-none
|
|
278
|
-
${
|
|
278
|
+
${L?"text-[var(--color-text-tertiary)]":""}
|
|
279
279
|
align-middle
|
|
280
280
|
`,children:n}),e.jsx("style",{children:`
|
|
281
281
|
.radio-pulse-ring {
|
|
@@ -291,18 +291,18 @@
|
|
|
291
291
|
opacity: 0;
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
-
`})]})});Ye.displayName="Radio";const Xe=t.forwardRef(({value:r,defaultValue:l=0,min:a=0,max:m=100,step:n=1,onChange:s,onChangeComplete:C,label:p,suffix
|
|
294
|
+
`})]})});Ye.displayName="Radio";const Xe=t.forwardRef(({value:r,defaultValue:l=0,min:a=0,max:m=100,step:n=1,onChange:s,onChangeComplete:C,label:p,suffix:L="%",prefix:k="",showValue:v=!0,valuePosition:o="right",size:$="md",color:c="primary",glow:y=!0,disabled:f=!1,fullWidth:T=!0,className:j=""},u)=>{const b=r!==void 0,[g,M]=t.useState(l),[S,R]=t.useState(!1),[E,w]=t.useState(null),[i,N]=t.useState(!1),I=t.useRef(null),x=t.useRef(null),h=t.useRef(null),d=t.useRef(0),V=Math.max(a,Math.min(m,b?r:g)),W=E!==null?Math.max(a,Math.min(m,E)):V,O=(W-a)/(m-a)*100,H=W>=m,[z,X]=t.useState(!1);t.useEffect(()=>{const U=()=>{X(document.documentElement.dir==="rtl")};U();const oe=new MutationObserver(U);return oe.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>oe.disconnect()},[]),t.useEffect(()=>{const U=d.current;if(H&&U<m&&W>a){N(!0);const oe=setTimeout(()=>N(!1),800);return()=>clearTimeout(oe)}d.current=W},[H,W,m,a]);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"}}[$],_=t.useCallback(U=>{if(!I.current)return W;const oe=I.current.getBoundingClientRect();let ne=(U-oe.left)/oe.width;z&&(ne=1-ne);const D=ne*(m-a)+a,q=Math.round(D/n)*n;return Math.max(a,Math.min(m,q))},[a,m,n,W,z]),Z=t.useCallback(U=>{h.current!==U&&(h.current=U,b||M(U),s==null||s(U))},[b,s]),ee=t.useCallback(U=>{if(f)return;R(!0);const oe=_(U);w(oe),Z(oe)},[f,_,Z]),K=t.useCallback(U=>{if(!S||f)return;const oe=_(U);w(oe),Z(oe)},[S,f,_,Z]),ae=t.useCallback(()=>{if(!S)return;R(!1);const U=E!==null?E:V;w(null),C==null||C(U)},[S,E,V,C]),A=U=>{ee(U.clientX),U.preventDefault()};t.useEffect(()=>{if(!S)return;const U=ne=>K(ne.clientX),oe=()=>ae();return document.addEventListener("mousemove",U),document.addEventListener("mouseup",oe),()=>{document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",oe)}},[S,K,ae]);const re=U=>{ee(U.touches[0].clientX)};t.useEffect(()=>{if(!S)return;const U=ne=>K(ne.touches[0].clientX),oe=()=>ae();return document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",oe),()=>{document.removeEventListener("touchmove",U),document.removeEventListener("touchend",oe)}},[S,K,ae]);const J=()=>`${k}${W}${L}`,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},(oe,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=o==="top"||o==="bottom",pe=ue?B.minHeight:"auto",be=ue?"32px":"auto";return e.jsxs("div",{ref:u,className:`${T?"w-full":"inline-block"} ${j}`,style:{minWidth:ue?"140px":"120px",minHeight:pe},children:[p&&e.jsx("label",{className:`block ${B.label} font-medium text-[var(--color-text-secondary)] font-sans mb-1.5`,children:p}),e.jsxs("div",{className:`flex ${te[o]||te.right}`,style:{minHeight:ue?B.minHeight:"auto"},children:[v&&(o==="left"||o==="top")&&e.jsx("span",{className:`
|
|
295
295
|
${B.value}
|
|
296
296
|
${se[o]}
|
|
297
297
|
font-mono font-medium
|
|
298
298
|
${F.text}
|
|
299
299
|
min-w-[2.5rem]
|
|
300
300
|
${ue?"mb-0.5":""}
|
|
301
|
-
`,children:J()}),e.jsxs("div",{ref:
|
|
301
|
+
`,children:J()}),e.jsxs("div",{ref:I,className:`
|
|
302
302
|
relative flex-1
|
|
303
303
|
${B.gap}
|
|
304
304
|
cursor-pointer
|
|
305
|
-
${
|
|
305
|
+
${f?"opacity-50 cursor-not-allowed":""}
|
|
306
306
|
py-2
|
|
307
307
|
`,style:{minHeight:be},onMouseDown:A,onTouchStart:re,children:[e.jsx("div",{className:`
|
|
308
308
|
absolute left-0 right-0 w-full
|
|
@@ -314,8 +314,8 @@
|
|
|
314
314
|
${B.track}
|
|
315
315
|
rounded-full
|
|
316
316
|
${F.track}
|
|
317
|
-
${
|
|
318
|
-
`,style:{...le,width:`${O}%`,[z?"right":"left"]:0,transition:me}}),e.jsxs("div",{ref:
|
|
317
|
+
${y?F.glow:""}
|
|
318
|
+
`,style:{...le,width:`${O}%`,[z?"right":"left"]:0,transition:me}}),e.jsxs("div",{ref:x,className:`
|
|
319
319
|
absolute
|
|
320
320
|
${B.thumb}
|
|
321
321
|
rounded-full
|
|
@@ -324,13 +324,13 @@
|
|
|
324
324
|
${F.thumb}
|
|
325
325
|
flex items-center justify-center
|
|
326
326
|
shadow-[var(--shadow-float)]
|
|
327
|
-
${
|
|
327
|
+
${f?"cursor-not-allowed":"cursor-grab active:cursor-grabbing"}
|
|
328
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
329
|
${B.thumbInner}
|
|
330
330
|
rounded-full
|
|
331
331
|
${F.track}
|
|
332
|
-
${
|
|
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))})]})]}),
|
|
332
|
+
${y?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&&(o==="right"||o==="bottom")&&e.jsx("span",{className:`
|
|
334
334
|
${B.value}
|
|
335
335
|
${se[o]}
|
|
336
336
|
font-mono font-medium
|
|
@@ -354,7 +354,7 @@
|
|
|
354
354
|
opacity: 0;
|
|
355
355
|
}
|
|
356
356
|
}
|
|
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:a,children:m})=>{var c;const n="dara-ui-language",s=a||we,C=()=>{var
|
|
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:a,children:m})=>{var c;const n="dara-ui-language",s=a||we,C=()=>{var f;const y=localStorage.getItem(n);return y&&s.some(T=>T.value===y)?y:r||((f=s[0])==null?void 0:f.value)||"en"},[p,L]=t.useState(C),k=t.useCallback((y,f)=>{const T=l[p]||l.en||{},j=y.split(".");let u=T;for(const b of j)if(u&&typeof u=="object"&&b in u)u=u[b];else{let M=l.en||{};for(const S of j)if(M&&typeof M=="object"&&S in M)M=M[S];else return y;u=M;break}return typeof u!="string"?y:f?u.replace(/\{\{(\w+)\}\}/g,(b,g)=>String(f[g]??`{{${g}}}`)):u},[p,l]),v=t.useCallback(y=>{const f=s.find(T=>T.value===y);f&&(L(y),document.documentElement.lang=y,document.documentElement.dir=f.dir||"ltr",localStorage.setItem(n,y),window.dispatchEvent(new CustomEvent("dara-language-change",{detail:{lang:y}})))},[s]);t.useEffect(()=>{const y=C(),f=s.find(T=>T.value===y);f&&(document.documentElement.lang=y,document.documentElement.dir=f.dir||"ltr")},[s]),t.useEffect(()=>{const y=f=>{const{lang:T}=f.detail;T&&T!==p&&L(T)};return window.addEventListener("dara-language-change",y),()=>{window.removeEventListener("dara-language-change",y)}},[p]);const o=((c=s.find(y=>y.value===p))==null?void 0:c.dir)||"ltr",$=t.useMemo(()=>({language:p,setLanguage:v,t:k,languages:s,dir:o}),[p,v,k,s,o]);return e.jsx(Re.Provider,{value:$,children:m})},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[a,m]=t.useState(!1),n=_e(r);return a?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:()=>m(!0),loading:"lazy"})},Ue=({value:r,defaultValue:l,onChange:a,availableLanguages:m,size:n="md",iconOnly:s=!1,fixedWidth:C,className:p="",placement:L="bottom",openUpward:k=!1,useContext:v=!0})=>{const[o,$]=t.useState(!1),[c,y]=t.useState(we),f=t.useRef(null),T="dara-ui-language",j=t.useContext(Re),u=v&&j!==void 0,b=r!==void 0,[g,M]=t.useState(()=>{var P;const d=localStorage.getItem(T);return d&&we.find(W=>W.value===d)?d:l||((P=we[0])==null?void 0:P.value)||"en"});let S;b?S=r:u?S=j.language:S=g,t.useEffect(()=>{m&&y(m)},[m]);const R=t.useCallback(d=>{const P=c.find(V=>V.value===d);document.documentElement.lang=d,document.documentElement.dir=(P==null?void 0:P.dir)||"ltr",localStorage.setItem(T,d),window.dispatchEvent(new CustomEvent("dara-language-change",{detail:{lang:d}}))},[c]);t.useEffect(()=>{R(S)},[S,R]),t.useEffect(()=>{const d=P=>{f.current&&!f.current.contains(P.target)&&$(!1)};return o&&document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}},[o]);const E=t.useCallback(d=>{u?j.setLanguage(d):b||M(d),R(d),a==null||a(d),$(!1)},[u,j,b,a,R]),w=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"}},N=w.find(d=>d.value===S),I=s?i[n].iconOnlyWidth:C||"140px",x=()=>k||L==="top"?"bottom-full mb-1.5":"top-full mt-1.5",h=(d,P)=>{const V=_e(d);return e.jsx("img",{src:V,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:W=>{var H;W.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=W.currentTarget.parentNode)==null||H.appendChild(O)},loading:"lazy"})};return s?e.jsxs("div",{ref:f,className:`relative inline-flex ${p}`,children:[e.jsx("button",{type:"button",onClick:()=>$(!o),className:`
|
|
358
358
|
inline-flex items-center justify-center
|
|
359
359
|
bg-[var(--color-bg-tertiary)]
|
|
360
360
|
text-[var(--color-text-primary)]
|
|
@@ -369,7 +369,7 @@
|
|
|
369
369
|
`,style:{width:C||i[n].iconOnlyWidth,minWidth:C||i[n].iconOnlyWidth,height:C||i[n].iconOnlyWidth,minHeight:C||i[n].iconOnlyWidth},"aria-expanded":o,"aria-haspopup":"listbox","aria-label":`Current language: ${(N==null?void 0:N.label)||"Language"}`,children:(N==null?void 0:N.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
|
+
${x()}
|
|
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
|
${o?"opacity-100 translate-y-0 pointer-events-auto":k?"opacity-0 translate-y-2 pointer-events-none":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
380
|
-
`,style:{width:
|
|
380
|
+
`,style:{width:I,minWidth:I,position:"absolute",top:k?"auto":"100%",bottom:k?"100%":"auto",marginTop:k?"0":"6px",marginBottom:k?"6px":"0"},role:"listbox",children:w.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
382
|
${i[n].option}
|
|
383
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":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:V=>{V.currentTarget.style.display="none"},loading:"lazy"}):d.icon||h(d.value,"w-4 h-3")},d.value)})})]}):e.jsxs("div",{ref:
|
|
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:V=>{V.currentTarget.style.display="none"},loading:"lazy"}):d.icon||h(d.value,"w-4 h-3")},d.value)})})]}):e.jsxs("div",{ref:f,className:`relative ${p}`,children:[e.jsxs("button",{type:"button",onClick:()=>$(!o),className:`
|
|
386
386
|
inline-flex items-center
|
|
387
387
|
bg-[var(--color-bg-tertiary)]
|
|
388
388
|
text-[var(--color-text-primary)]
|
|
@@ -401,9 +401,9 @@
|
|
|
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
|
+
${x()}
|
|
405
405
|
pointer-events-none
|
|
406
|
-
`,style:{width:
|
|
406
|
+
`,style:{width:I,minWidth:I,top:"100%",marginTop:"6px"},children:e.jsx("div",{className:`
|
|
407
407
|
glass
|
|
408
408
|
rounded-[var(--radius-md)]
|
|
409
409
|
py-1
|
|
@@ -411,32 +411,32 @@
|
|
|
411
411
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
412
412
|
overflow-hidden
|
|
413
413
|
${o?"opacity-100 translate-y-0 pointer-events-auto":"opacity-0 -translate-y-2 pointer-events-none"}
|
|
414
|
-
`,children:
|
|
414
|
+
`,children:w.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
416
|
${i[n].option}
|
|
417
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":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:V=>{V.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:a=!1,secondaryLinks:m=[],showSearch:n=!0,searchPlaceholder:s="Search...",onSearch:C,showLanguageChanger:p=!1,showThemeChanger
|
|
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:V=>{V.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:a=!1,secondaryLinks:m=[],showSearch:n=!0,searchPlaceholder:s="Search...",onSearch:C,showLanguageChanger:p=!1,showThemeChanger:L=!1,languageChanger:k,themeChanger:v,languageChangerMobile:o,themeChangerMobile:$,rightContent:c,className:y="",scrollSpy:f=!1,scrollSpyOffset:T=140,onActiveChange:j})=>{const{t:u}=xe(),[b,g]=t.useState(!1),[M,S]=t.useState(!1),[R,E]=t.useState(!1),[w,i]=t.useState(""),[N,I]=t.useState(!1),[x,h]=t.useState(!1),[d,P]=t.useState(""),V=t.useRef(null),W=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(()=>{g(window.scrollY>20)},50)};return window.addEventListener("scroll",A,{passive:!0}),()=>{window.removeEventListener("scroll",A),H.current&&clearTimeout(H.current)}},[]),t.useEffect(()=>{if(!f||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<T||me.top>window.innerHeight)return;const ue=Math.abs(me.top-T),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:`-${T}px 0px -50% 0px`,threshold:[0,.1,.25,.5,.75,1]});return re.forEach(se=>te.observe(se)),()=>te.disconnect()},[f,T,l,d,j]),t.useEffect(()=>{const A=re=>{re.key==="Escape"&&M&&S(!1)};return document.addEventListener("keydown",A),()=>document.removeEventListener("keydown",A)},[M]),t.useEffect(()=>(M?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[M]),t.useEffect(()=>{R&&W.current&&W.current.focus()},[R]);const X=t.useCallback(A=>{A.preventDefault(),w.trim()&&C&&C(w)},[w,C]),Q=t.useCallback(()=>{S(A=>!A)},[]),F=t.useCallback(()=>{E(A=>!A),R||setTimeout(()=>{var A;return(A=W.current)==null?void 0:A.focus()},100)},[R]),G=t.useCallback(()=>{x&&!w&&E(!1)},[x,w]),B=t.useCallback(()=>{S(!1)},[]),_=t.useCallback(()=>{I(!0)},[]),Z=t.useCallback(()=>{I(!1)},[]),ee=t.useCallback(A=>{if(!f)return!!A.active;const re=A.href.replace(/^#/,"");return re!==""&&re===d},[f,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"}),ae=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:V,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
|
+
${y}
|
|
424
|
+
`,style:{paddingTop:b?"12px":"0",paddingBottom:b?"12px":"0"},children:e.jsxs("div",{className:`
|
|
425
425
|
mx-auto
|
|
426
426
|
transition-[padding,border-radius,box-shadow,background-color,border-color]
|
|
427
427
|
duration-300 ease-[var(--ease-in-out)]
|
|
428
428
|
bg-[var(--color-bg-secondary)]/80 backdrop-blur-[20px]
|
|
429
429
|
border-b
|
|
430
|
-
${
|
|
430
|
+
${b?"rounded-full shadow-[var(--shadow-float)] py-2 px-5 md:px-8 border-transparent":"border-[var(--color-border-primary)] py-3 px-5 md:px-8 rounded-none"}
|
|
431
431
|
`,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:ae()})}),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:`
|
|
432
432
|
px-4 py-1.5 rounded-full text-sm font-medium
|
|
433
433
|
transition-all duration-180
|
|
434
434
|
flex items-center gap-2
|
|
435
435
|
${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"}
|
|
436
|
-
`,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&&!
|
|
436
|
+
`,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&&!x&&e.jsx("form",{onSubmit:X,className:"relative",children:e.jsx(fe,{ref:W,type:"search",placeholder:s,value:w,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&&x&&e.jsxs("div",{className:`
|
|
437
437
|
flex items-center transition-all duration-300 ease-[var(--ease-in-out)]
|
|
438
|
-
${
|
|
439
|
-
`,children:[
|
|
438
|
+
${R?"w-40":"w-8"}
|
|
439
|
+
`,children:[R&&e.jsx("form",{onSubmit:X,className:"w-full mr-1",children:e.jsx(fe,{ref:W,type:"search",placeholder:s,value:w,onChange:A=>i(A.target.value),onBlur:G,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":R?"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:R?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"})})})]}),!x&&p&&k,!x&&L&&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":M,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)] ${M?"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)] ${M?"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)] ${M?"-rotate-45":"translate-y-1.5"}`})]})]})]}),a&&!x&&e.jsx("div",{className:`overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)] ${N?"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:m.map((A,re)=>e.jsxs("a",{href:A.href,className:`
|
|
440
440
|
px-3 py-1 rounded-full text-xs font-medium transition-all duration-180 flex items-center gap-1.5
|
|
441
441
|
${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"}
|
|
442
442
|
`,onClick:B,children:[A.icon&&e.jsx("span",{className:"flex-shrink-0",children:A.icon}),A.label]},re))})})]})}),e.jsx("div",{className:`
|
|
@@ -444,7 +444,7 @@
|
|
|
444
444
|
bg-black/60 backdrop-blur-[6px]
|
|
445
445
|
transition-all duration-300 ease-[var(--ease-in-out)]
|
|
446
446
|
md:hidden
|
|
447
|
-
${
|
|
447
|
+
${M?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
448
448
|
`,onClick:Q,"aria-hidden":"true"}),e.jsxs("div",{ref:O,className:`
|
|
449
449
|
fixed top-0 z-[60]
|
|
450
450
|
${z?"left-0 rounded-r-[var(--radius-large)]":"right-0 rounded-l-[var(--radius-large)]"}
|
|
@@ -456,8 +456,8 @@
|
|
|
456
456
|
transition-all duration-400 ease-[var(--ease-in-out)]
|
|
457
457
|
md:hidden
|
|
458
458
|
flex flex-col
|
|
459
|
-
${
|
|
460
|
-
`,style:{transform:
|
|
459
|
+
${M?"translate-x-0 opacity-100":z?"-translate-x-full opacity-0":"translate-x-full opacity-0"}
|
|
460
|
+
`,style:{transform:M?"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:ae()}),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:`
|
|
461
461
|
flex items-center gap-3 px-4 py-3.5 rounded-[var(--radius-md)]
|
|
462
462
|
transition-all duration-180
|
|
463
463
|
${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"}
|
|
@@ -465,7 +465,7 @@
|
|
|
465
465
|
flex items-center gap-3 px-4 py-3 rounded-[var(--radius-md)]
|
|
466
466
|
transition-all duration-180
|
|
467
467
|
${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"}
|
|
468
|
-
`,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:s,value:
|
|
468
|
+
`,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:s,value:w,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:[p&&(o||k),L&&($||v)]}),c&&e.jsx("div",{className:"pt-1",children:c})]})]})]})};Qe.displayName="Navbar";const Je=({brand:r,groups:l=[],collapsible:a=!0,defaultCollapsed:m=!1,collapsed:n,onCollapseChange:s,iconOnly:C=!1,showGroupLabels:p=!0,activeItemId:L,defaultActiveItemId:k,onItemClick:v,expandedWidth:o="260px",collapsedWidth:$="64px",className:c="",footer:y,fixed:f=!1,height:T="100%",mobileBreakpoint:j=768,forceMobile:u=!1})=>{var oe,ne;const[b,g]=t.useState(!1);t.useEffect(()=>{if(u){g(!0);return}const D=()=>g(window.innerWidth<j);return D(),window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[j,u]);const M=n!==void 0,[S,R]=t.useState(m),E=M?n:S,w=C||E,i=L!==void 0,[N,I]=t.useState(k||((ne=(oe=l[0])==null?void 0:oe.items[0])==null?void 0:ne.id)),x=i?L:N,[h,d]=t.useState(!1);t.useEffect(()=>{const D=()=>d(document.documentElement.dir==="rtl");D();const q=new MutationObserver(D);return q.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>q.disconnect()},[]);const{activeItem:P,activeParent:V}=t.useMemo(()=>{for(const D of l)for(const q of D.items){if(q.id===x)return{activeItem:q,activeParent:null};if(q.subItems){for(const Y of q.subItems)if(Y.id===x)return{activeItem:Y,activeParent:q}}}return{activeItem:null,activeParent:null}},[l,x]),[W,O]=t.useState(()=>{const D=new Set;return l.forEach((q,Y)=>{q.defaultExpanded!==!1&&D.add(`group-${Y}`)}),D}),[H,z]=t.useState(new Set),X=t.useRef(null),[Q,F]=t.useState(!1),[G,B]=t.useState(!1),_=(P==null?void 0:P.content)??(V==null?void 0:V.content)??null,[Z,ee]=t.useState(_),[K,ae]=t.useState(!0),A=t.useCallback(()=>{const D=X.current;if(!D)return;const{scrollLeft:q,scrollWidth:Y,clientWidth:ie}=D;if(Y-ie<=1){F(!1),B(!1);return}h?(F(q<-1),B(q>-(Y-ie)+1)):(F(q>1),B(q<Y-ie-1))},[h]),re=t.useCallback(D=>{const q=X.current;if(!q)return;const Y=Math.max(q.clientWidth*.7,200),ie=D==="start"?h?Y:-Y:h?-Y:Y;q.scrollBy({left:ie,behavior:"smooth"})},[h]),J=t.useCallback((D,q)=>{i||I(D),v==null||v(D),q==null||q()},[i,v]),te=t.useCallback(()=>{if(!a)return;const D=!E;M||R(D),s==null||s(D)},[a,E,M,s]),se=t.useCallback(D=>{O(q=>{const Y=new Set(q);return Y.has(D)?Y.delete(D):Y.add(D),Y})},[]),ce=t.useCallback(D=>{z(q=>{const Y=new Set(q);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 q;return typeof ResizeObserver<"u"&&(q=new ResizeObserver(()=>A()),q.observe(D)),()=>{D.removeEventListener("scroll",A),window.removeEventListener("resize",A),q==null||q.disconnect()}},[b,A,l]),t.useEffect(()=>{var q;if(!b)return;const D=(q=X.current)==null?void 0:q.querySelector(`[data-sidebar-id="${x}"]`);D==null||D.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},[x,b]),t.useEffect(()=>{if(_===Z)return;ae(!1);const D=setTimeout(()=>{ee(_),requestAnimationFrame(()=>ae(!0))},160);return()=>clearTimeout(D)},[_,Z]),t.useEffect(()=>{if(b)return;const D=q=>{(q.ctrlKey||q.metaKey)&&q.key==="b"&&(q.preventDefault(),te())};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[b,te]);const le=(D,q=0,Y)=>{const ie=x===D.id,de=!!(D.subItems&&D.subItems.length>0),ye=`${Y||D.id}-sub`,Ce=H.has(ye),gt=w?0:q*16;return w?e.jsx("div",{className:"relative",children:e.jsxs("button",{onClick:()=>J(D.id,D.onClick),disabled:D.disabled,className:`
|
|
469
469
|
w-full flex items-center justify-center
|
|
470
470
|
px-2 py-3 rounded-[var(--radius-md)]
|
|
471
471
|
transition-all duration-180 relative
|
|
@@ -504,13 +504,13 @@
|
|
|
504
504
|
top-1/2 -translate-y-1/2
|
|
505
505
|
w-0.5 h-6 rounded-full
|
|
506
506
|
bg-[var(--color-primary)] shadow-[var(--shadow-glow-primary)]
|
|
507
|
-
`})]}),de&&!
|
|
507
|
+
`})]}),de&&!w&&e.jsx("div",{className:`
|
|
508
508
|
overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)]
|
|
509
509
|
${Ce?"max-h-[9999px] opacity-100":"max-h-0 opacity-0"}
|
|
510
510
|
`,children:e.jsx("div",{className:`
|
|
511
511
|
relative space-y-0.5 py-1
|
|
512
512
|
${h?"mr-4 pr-4 border-r border-[var(--color-border-secondary)]":"ml-4 pl-4 border-l border-[var(--color-border-secondary)]"}
|
|
513
|
-
`,children:D.subItems.map(vt=>le(vt,q+1,D.id))})})]},D.id)},me=(D,q)=>{const Y=`group-${q}`,ie=W.has(Y);return
|
|
513
|
+
`,children:D.subItems.map(vt=>le(vt,q+1,D.id))})})]},D.id)},me=(D,q)=>{const Y=`group-${q}`,ie=W.has(Y);return w?e.jsx("div",{className:"space-y-1",children:D.items.map(de=>le(de))},Y):e.jsxs("div",{className:"mb-2",children:[p&&e.jsxs("button",{onClick:()=>se(Y),className:`
|
|
514
514
|
w-full flex items-center gap-2 px-3 py-2
|
|
515
515
|
text-xs font-mono uppercase tracking-wider
|
|
516
516
|
text-[var(--color-text-tertiary)]
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
`,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:`
|
|
523
523
|
overflow-hidden transition-all duration-300 ease-[var(--ease-in-out)]
|
|
524
524
|
${ie?"max-h-[9999px] opacity-100":"max-h-0 opacity-0"}
|
|
525
|
-
`,children:e.jsx("div",{className:"space-y-1 py-1",children:D.items.map(de=>le(de))})})]},Y)};if(
|
|
525
|
+
`,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
|
|
526
526
|
flex-shrink-0 w-8 self-stretch\r
|
|
527
527
|
flex items-center justify-center\r
|
|
528
528
|
rounded-[var(--radius-md)]\r
|
|
@@ -546,7 +546,7 @@
|
|
|
546
546
|
text-[var(--color-text-tertiary)]\r
|
|
547
547
|
border-e border-[var(--color-border-secondary)]\r
|
|
548
548
|
me-1\r
|
|
549
|
-
`,dir:"auto",children:D.label}),D.items.map(Y=>{const ie=!!(Y.subItems&&Y.subItems.length>0),de=
|
|
549
|
+
`,dir:"auto",children:D.label}),D.items.map(Y=>{const ie=!!(Y.subItems&&Y.subItems.length>0),de=x===Y.id||ie&&Y.subItems.some(ye=>ye.id===x);return e.jsxs("button",{type:"button","data-sidebar-id":Y.id,onClick:()=>J(Y.id,Y.onClick),disabled:Y.disabled,className:`
|
|
550
550
|
flex-shrink-0
|
|
551
551
|
flex items-center gap-2
|
|
552
552
|
px-4 py-2 rounded-full
|
|
@@ -570,7 +570,7 @@
|
|
|
570
570
|
outline-none focus:outline-none focus-visible:outline-none\r
|
|
571
571
|
shadow-none hover:shadow-none focus:shadow-none\r
|
|
572
572
|
disabled:opacity-0 disabled:pointer-events-none\r
|
|
573
|
-
`,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"})})})]}),V&&V.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:[V.label,":"]}),V.subItems.map(D=>{const q=
|
|
573
|
+
`,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"})})})]}),V&&V.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:[V.label,":"]}),V.subItems.map(D=>{const q=x===D.id;return e.jsxs("button",{type:"button",onClick:()=>J(D.id,D.onClick),disabled:D.disabled,className:`
|
|
574
574
|
flex items-center gap-1.5
|
|
575
575
|
px-3 py-1 rounded-full
|
|
576
576
|
text-xs font-medium whitespace-nowrap
|
|
@@ -588,11 +588,11 @@
|
|
|
588
588
|
background: var(--color-border-primary);
|
|
589
589
|
border-radius: 4px;
|
|
590
590
|
}
|
|
591
|
-
`})]});const ue=
|
|
591
|
+
`})]});const ue=f?"fixed top-0 z-40":`relative overflow-hidden ${f?"":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:`
|
|
592
592
|
flex ${h?"flex-row-reverse":""} transition-all duration-300 ease-[var(--ease-in-out)]
|
|
593
|
-
${
|
|
593
|
+
${f?"min-h-screen":""}
|
|
594
594
|
${c}
|
|
595
|
-
`,style:{height:
|
|
595
|
+
`,style:{height:f?"100%":T,maxHeight:f?"100%":T},children:[e.jsx("style",{children:`
|
|
596
596
|
.sidebar-scroll::-webkit-scrollbar { width: 4px; }
|
|
597
597
|
.sidebar-scroll::-webkit-scrollbar-track { background: transparent; }
|
|
598
598
|
.sidebar-scroll::-webkit-scrollbar-thumb {
|
|
@@ -611,13 +611,13 @@
|
|
|
611
611
|
flex flex-col
|
|
612
612
|
${h?"border-l":"border-r"}
|
|
613
613
|
border-[var(--color-border-primary)]
|
|
614
|
-
${
|
|
615
|
-
`,style:{width:E
|
|
614
|
+
${f?"":"shadow-[var(--shadow-float)]"}
|
|
615
|
+
`,style:{width:E?$:o,[h?"right":"left"]:f?0:"auto",flexShrink:0,height:"100%",maxHeight:"100%"},role:"navigation","aria-label":"Sidebar navigation",children:[r&&e.jsx("div",{className:`
|
|
616
616
|
flex items-center gap-3 px-4 py-4
|
|
617
617
|
border-b border-[var(--color-border-primary)]
|
|
618
618
|
min-h-[64px] flex-shrink-0
|
|
619
619
|
${E?"justify-center px-2":""}
|
|
620
|
-
`,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,q)=>me(D,q))})}),e.jsxs("div",{className:"border-t border-[var(--color-border-primary)] flex-shrink-0",children:[
|
|
620
|
+
`,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,q)=>me(D,q))})}),e.jsxs("div",{className:"border-t border-[var(--color-border-primary)] flex-shrink-0",children:[y&&e.jsx("div",{className:`p-3 ${E?"flex justify-center":""}`,children:e.jsx("div",{className:`
|
|
621
621
|
w-full
|
|
622
622
|
${E?`
|
|
623
623
|
flex justify-center
|
|
@@ -627,7 +627,7 @@
|
|
|
627
627
|
[&>a]:!w-10 [&>a]:!h-10 [&>a]:!px-0 [&>a]:!gap-0 [&>a]:justify-center
|
|
628
628
|
[&>a>span:not(:first-child)]:hidden
|
|
629
629
|
`:""}
|
|
630
|
-
`,style:pe,dir:h&&!E?"rtl":"ltr",children:
|
|
630
|
+
`,style:pe,dir:h&&!E?"rtl":"ltr",children:y})}),a&&e.jsx("div",{className:`px-3 pb-3 ${E?"flex justify-center":""}`,children:e.jsxs("button",{onClick:te,className:`
|
|
631
631
|
flex items-center justify-center
|
|
632
632
|
rounded-[var(--radius-md)] glass
|
|
633
633
|
text-[var(--color-text-secondary)]
|
|
@@ -654,20 +654,20 @@
|
|
|
654
654
|
backdrop-blur-[20px]
|
|
655
655
|
pt-12 pb-6 px-6
|
|
656
656
|
${C}
|
|
657
|
-
`,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}),a&&e.jsx("p",{className:"text-sm text-[var(--color-text-secondary)] leading-relaxed max-w-xs",dir:"auto",children:a}),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:m.map((p
|
|
657
|
+
`,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}),a&&e.jsx("p",{className:"text-sm text-[var(--color-text-secondary)] leading-relaxed max-w-xs",dir:"auto",children:a}),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:m.map((p,L)=>{var k;return e.jsxs("div",{className:"flex flex-col gap-3",children:[p.title&&e.jsx("h4",{className:"font-heading font-semibold text-xs uppercase tracking-wider text-[var(--color-text-tertiary)]",dir:"auto",children:p.title}),p.content?e.jsx("div",{className:"text-sm text-[var(--color-text-secondary)]",children:p.content}):e.jsx("ul",{className:"flex flex-col gap-2",children:(k=p.links)==null?void 0:k.map((v,o)=>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
|
|
658
658
|
inline-flex items-center gap-2\r
|
|
659
659
|
text-sm text-[var(--color-text-secondary)]\r
|
|
660
660
|
hover:text-[var(--color-primary)]\r
|
|
661
661
|
transition-colors duration-180\r
|
|
662
|
-
`,dir:"auto",children:[
|
|
662
|
+
`,dir:"auto",children:[v.icon&&e.jsx("span",{className:"flex-shrink-0",children:v.icon}),v.label]})},o))})]},L)})})]}),s&&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:s})})]})});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:"#000000"},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:a=5,verticalOffset:m="50%",size:n="md",showLabels:s=!1,className:C=""})=>{const[p,L]=t.useState(!1),[k,v]=t.useState(!1),o=t.useRef(null),$=w=>{const i=w.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=w=>{const i=w.toLowerCase();return Pe[i]||Pe.github},y={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}},f=()=>{p?(v(!0),setTimeout(()=>{L(!1),v(!1)},300)):(L(!0),v(!1))};t.useEffect(()=>{const w=i=>{o.current&&!o.current.contains(i.target)&&p&&!k&&f()};return p&&document.addEventListener("mousedown",w),()=>{document.removeEventListener("mousedown",w)}},[p,k]);const T=()=>typeof m=="number"?`${m}px`:m,j=l==="left",u=y[n]||y.md,g={left:{container:"left-0",chevron:`left-[${a}px]`,menu:`left-[${a}px]`,transform:"translateX(0)"},right:{container:"right-0",chevron:`right-[${a}px]`,menu:`right-[${a}px]`,transform:"translateX(0)"}}[l],M=u.buttonPx,S=8,R=(w,i)=>{const N=$(w.url),I=c(N);if(w.icon&&t.isValidElement(w.icon)){const h=w.icon;return t.cloneElement(h,{className:`${i} flex-shrink-0`})}const x=I.icon;if(t.isValidElement(x)){const h=x;return t.cloneElement(h,{className:`${i} flex-shrink-0`})}return x},E=w=>w.color?w.color:c($(w.url)).color;return e.jsx("div",{ref:o,className:`fixed z-40 ${g.container} ${C}`,style:{top:T(),transform:"translateY(-50%)",...j?{left:`${a+5}px`}:{right:`${a}px`}},children:e.jsxs("div",{className:"relative flex items-center",children:[e.jsx("div",{className:`
|
|
663
663
|
absolute top-1/2 -translate-y-1/2
|
|
664
664
|
flex items-center
|
|
665
665
|
${u.gap}
|
|
666
666
|
transition-opacity duration-300 ease-[var(--ease-in-out)]
|
|
667
667
|
${p?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}
|
|
668
668
|
${k?"opacity-0":""}
|
|
669
|
-
${
|
|
670
|
-
`,style:{paddingRight:
|
|
669
|
+
${j?"left-0":"right-0"}
|
|
670
|
+
`,style:{paddingRight:j?"0":`${M+S}px`,paddingLeft:j?`${M+S}px`:"0"},children:r.map((w,i)=>{const N=w.label||$(w.url).charAt(0).toUpperCase()+$(w.url).slice(1),I=E(w);return e.jsxs("a",{href:w.url,target:"_blank",rel:"noopener noreferrer","aria-label":`${N} (opens in new tab)`,className:`
|
|
671
671
|
flex items-center justify-center
|
|
672
672
|
${u.button}
|
|
673
673
|
rounded-full
|
|
@@ -680,7 +680,7 @@
|
|
|
680
680
|
${s?"px-4":""}
|
|
681
681
|
group
|
|
682
682
|
relative
|
|
683
|
-
`,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 ${
|
|
683
|
+
`,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 ${I}44`,borderRadius:"50%",transition:"border-color 0.25s ease, box-shadow 0.25s ease, scale 0.25s ease"},onMouseEnter:x=>{x.currentTarget.style.borderColor=I,x.currentTarget.style.boxShadow=`0 0 24px ${I}44`},onMouseLeave:x=>{x.currentTarget.style.borderColor=`${I}44`,x.currentTarget.style.boxShadow="none"},children:[e.jsx("span",{className:`${u.icon} flex-shrink-0 flex items-center justify-center`,style:{color:I},children:R(w,u.icon)}),s&&e.jsx("span",{className:"text-xs font-medium truncate max-w-[80px] text-[var(--color-text-primary)]",children:N})]},i)})}),e.jsx("button",{onClick:f,className:`
|
|
684
684
|
${u.chevron}
|
|
685
685
|
rounded-full
|
|
686
686
|
flex items-center justify-center
|
|
@@ -695,7 +695,7 @@
|
|
|
695
695
|
text-[var(--color-text-primary)]
|
|
696
696
|
transition-transform duration-300
|
|
697
697
|
${p?"rotate-180":"rotate-0"}
|
|
698
|
-
`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,"aria-hidden":"true",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:
|
|
698
|
+
`,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:a=3e3,onDismiss:m})=>{const[n,s]=t.useState(!1),[C,p]=t.useState(!1),L={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 o=setTimeout(()=>{s(!0)},10);return()=>clearTimeout(o)},[]),t.useEffect(()=>{if(a<=0)return;const o=setTimeout(()=>{k()},a);return()=>clearTimeout(o)},[a]);const k=t.useCallback(()=>{p(!0),s(!1),setTimeout(()=>{m==null||m()},300)},[m]),v=L[l];return e.jsxs("div",{className:`
|
|
699
699
|
glass-heavy
|
|
700
700
|
px-5 py-3.5
|
|
701
701
|
rounded-[14px]
|
|
@@ -705,42 +705,42 @@
|
|
|
705
705
|
flex items-center gap-3
|
|
706
706
|
w-[360px] max-w-[90vw]
|
|
707
707
|
transition-all duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
708
|
-
${
|
|
709
|
-
${
|
|
708
|
+
${v.bg}
|
|
709
|
+
${v.border}
|
|
710
710
|
${n?"translate-x-0 opacity-100":"translate-x-[calc(100%+24px)] opacity-0"}
|
|
711
711
|
${C?"scale-95 opacity-0":""}
|
|
712
|
-
`,role:"alert","aria-live":"polite",children:[e.jsx("span",{className:`${
|
|
712
|
+
`,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:k,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(a=>e.jsx("div",{className:"pointer-events-auto",children:e.jsx(Ie,{...a,onDismiss:()=>l(a.id)})},a.id))}),document.body);Ee.displayName="ToastContainer";const et=t.createContext(void 0),zt=({children:r})=>{const[a,m]=t.useState([]),n=t.useCallback($=>{m(c=>c.filter(y=>y.id!==$))},[]),s=t.useCallback($=>{const c=`toast-${Date.now()}-${Math.random().toString(36).substring(2,6)}`;m(f=>{const T=[...f,{...$,id:c}];return T.length>5?T.slice(1):T});const y=$.duration||3e3;setTimeout(()=>{n(c)},y+350)},[n]),C=t.useCallback(($,c)=>{s({message:$,type:"success",duration:c})},[s]),p=t.useCallback(($,c)=>{s({message:$,type:"error",duration:c})},[s]),L=t.useCallback(($,c)=>{s({message:$,type:"warning",duration:c})},[s]),k=t.useCallback(($,c)=>{s({message:$,type:"info",duration:c})},[s]),v=t.useCallback(()=>{m([])},[]),o={showToast:s,success:C,error:p,warning:L,info:k,clearAll:v};return e.jsxs(et.Provider,{value:o,children:[r,e.jsx(Ee,{toasts:a,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:a="md",fallback:m=!1,fallbackText:n,shape:s="circle",bordered:C=!1,glow:p,status:L,group:k=!1,onClick:v,className:o="",children:$,...c},y)=>{const[f,T]=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",hero:"w-40 h-40 text-4xl"},u={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)]"},g={online:"bg-[var(--color-success)]",offline:"bg-[var(--color-text-tertiary)]",away:"bg-[var(--color-warning)]",busy:"bg-[var(--color-danger)]"},M={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",hero:"w-6 h-6"},S=a==="hero"?"ring-4":"ring-2",R=C?"border-2 border-[var(--color-border-secondary)]":"",E=p?b[p]:"",w=()=>{v&&v()},i=()=>{if(!n)return"";const x=n.trim().split(" ");return x.length===1?x[0].charAt(0).toUpperCase():(x[0].charAt(0)+x[x.length-1].charAt(0)).toUpperCase()},N=r&&!m&&!f,I=()=>N?e.jsx("img",{src:r,alt:l,className:"w-full h-full object-cover",onError:()=>T(!0)}):n?e.jsx("span",{className:"font-heading font-semibold text-inherit",children:i()}):e.jsx(Oe,{});return k?e.jsx("div",{ref:y,className:`flex -space-x-2 ${o}`,...c,children:t.Children.map($,x=>t.isValidElement(x)?t.cloneElement(x,{size:a,shape:s,bordered:!0,className:`${u[s]} ring-2 ring-[var(--color-bg-primary)] ${x.props.className||""}`}):x)}):e.jsxs("div",{ref:y,className:`
|
|
713
713
|
relative inline-flex items-center justify-center
|
|
714
714
|
flex-shrink-0
|
|
715
|
-
${
|
|
715
|
+
${v?"cursor-pointer hover:opacity-80":""}
|
|
716
716
|
${o}
|
|
717
|
-
`,onClick:
|
|
717
|
+
`,onClick:w,...c,children:[e.jsx("div",{className:`
|
|
718
718
|
flex items-center justify-center
|
|
719
719
|
bg-[var(--color-bg-tertiary)]
|
|
720
720
|
text-[var(--color-text-secondary)]
|
|
721
721
|
transition-all duration-[var(--transition-fast)]
|
|
722
|
-
${
|
|
722
|
+
${j[a]}
|
|
723
723
|
${u[s]}
|
|
724
|
-
${
|
|
725
|
-
${
|
|
724
|
+
${R}
|
|
725
|
+
${E}
|
|
726
726
|
overflow-hidden
|
|
727
|
-
`,children:
|
|
727
|
+
`,children:I()}),L&&e.jsx("span",{className:`
|
|
728
728
|
absolute bottom-0 right-0
|
|
729
729
|
rounded-full
|
|
730
|
-
|
|
731
|
-
${
|
|
732
|
-
${
|
|
733
|
-
`})]})});Se.displayName="Avatar";const tt=({content:r,children:l,placement:a="top",delay:m=300,hideDelay:n=0,maxWidth:s="240px",arrow:C=!0,variant:p="glass",size
|
|
730
|
+
${S} ring-[var(--color-bg-primary)]
|
|
731
|
+
${g[L]}
|
|
732
|
+
${M[a]}
|
|
733
|
+
`})]})});Se.displayName="Avatar";const tt=({content:r,children:l,placement:a="top",delay:m=300,hideDelay:n=0,maxWidth:s="240px",arrow:C=!0,variant:p="glass",size:L="md",disabled:k=!1,open:v,onOpen:o,onClose:$,className:c=""})=>{const[y,f]=t.useState(!1),[T,j]=t.useState(!1),[u,b]=t.useState(!1),[g,M]=t.useState({top:-9999,left:-9999}),[S,R]=t.useState(!1),E=t.useId(),w=t.useRef(null),i=t.useRef(null),N=t.useRef(null),I=t.useRef(null),x=v!==void 0,h=x?v:y;t.useEffect(()=>{const Q=()=>{R(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=p==="solid"?"glass-solid":p==="outline"?"glass-outline":"glass",V=150,W=t.useCallback(()=>{const Q=w.current,F=i.current;if(!Q||!F)return!1;const G=Q.getBoundingClientRect(),B=F.offsetWidth,_=F.offsetHeight;if(B===0||_===0)return!1;const Z=8;let ee=0,K=0;const ae=G.left+G.width/2,A=G.top+G.height/2;switch((()=>{if(S){if(a==="left")return"right";if(a==="right")return"left";if(a==="top-left")return"top-right";if(a==="top-right")return"top-left";if(a==="bottom-left")return"bottom-right";if(a==="bottom-right")return"bottom-left"}return a})()){case"top":ee=G.top-_-Z,K=ae-B/2;break;case"bottom":ee=G.bottom+Z,K=ae-B/2;break;case"left":ee=A-_/2,K=G.left-B-Z;break;case"right":ee=A-_/2,K=G.right+Z;break;case"top-left":ee=G.top-_-Z,K=G.left;break;case"top-right":ee=G.top-_-Z,K=G.right-B;break;case"bottom-left":ee=G.bottom+Z,K=G.left;break;case"bottom-right":ee=G.bottom+Z,K=G.right-B;break;default:ee=G.top-_-Z,K=ae-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),M({top:ee,left:K}),!0},[a,S]);t.useLayoutEffect(()=>{if(!h){b(!1);const B=setTimeout(()=>{j(!1),M({top:-9999,left:-9999})},V);return()=>clearTimeout(B)}j(!0),b(!1);let Q=0,F=0;const G=()=>{if(Q+=1,W()){b(!0);return}Q<8?F=requestAnimationFrame(G):b(!0)};return F=requestAnimationFrame(G),()=>cancelAnimationFrame(F)},[h,W]),t.useEffect(()=>{h&&T&&W()},[S,h,T,W]),t.useEffect(()=>{if(!h)return;const Q=()=>W();return window.addEventListener("resize",Q),window.addEventListener("scroll",Q,!0),()=>{window.removeEventListener("resize",Q),window.removeEventListener("scroll",Q,!0)}},[h,W]);const O=t.useCallback(()=>{k||(N.current&&(clearTimeout(N.current),N.current=null),I.current&&(clearTimeout(I.current),I.current=null),N.current=setTimeout(()=>{x||f(!0),o==null||o()},m))},[k,m,x,o]),H=t.useCallback(()=>{N.current&&(clearTimeout(N.current),N.current=null),I.current=setTimeout(()=>{x||f(!1),$==null||$()},n)},[n,x,$]);t.useEffect(()=>()=>{N.current&&clearTimeout(N.current),I.current&&clearTimeout(I.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(a==="left")return z.right;if(a==="right")return z.left;if(a==="top-left")return z["top-right"];if(a==="top-right")return z["top-left"];if(a==="bottom-left")return z["bottom-right"];if(a==="bottom-right")return z["bottom-left"]}return z[a]||z.top};return e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:w,className:"inline-flex",onMouseEnter:O,onMouseLeave:H,onFocus:O,onBlur:H,"aria-describedby":h?E:void 0,children:l}),T&&Me.createPortal(e.jsxs("div",{ref:i,className:`
|
|
734
734
|
z-[10002]
|
|
735
735
|
font-sans text-[var(--color-text-primary)]
|
|
736
736
|
transition-opacity duration-150 ease-out
|
|
737
737
|
pointer-events-none
|
|
738
738
|
${u?"opacity-100":"opacity-0"}
|
|
739
739
|
${P}
|
|
740
|
-
${d[
|
|
740
|
+
${d[L]}
|
|
741
741
|
${c}
|
|
742
742
|
${S?"text-right":"text-left"}
|
|
743
|
-
`,style:{position:"fixed",top:
|
|
743
|
+
`,style:{position:"fixed",top:g.top,left:g.left,maxWidth:s,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:a="horizontal",size:m="md",color:n="primary",showLabel:s=!1,labelFormat:C,label:p,labelPosition:L="inside",animated:k=!0,thickness:v=8,radialSize:o=80,displayType:$="percentage",glow:c=!1,className:y="",...f},T)=>{const j=Math.max(0,Math.min(r,l)),u=j/l*100,b={sm:"h-1.5",md:"h-2.5",lg:"h-4"},g={sm:64,md:80,lg:100},M={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(p)return p;if(C)return C(j,l);switch($){case"ratio":return`${Math.round(j)} / ${l}`;case"custom":return p||`${Math.round(j)}`;case"percentage":default:return`${Math.round(u)}%`}})();if(a==="horizontal"){const V=k?"transition-all duration-[var(--transition-base)] ease-[var(--ease-in-out)]":"",W=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[L]||O.right,X=H[L]||H.right,Q=L==="left"||L==="top",F=L==="inside",G=b[m]||b.md,B=S[n]||S.primary;return e.jsxs("div",{className:`w-full ${z} ${y}`,style:{minWidth:"100px"},...f,children:[s&&Q&&e.jsx("span",{className:`
|
|
744
744
|
font-mono text-xs font-medium text-[var(--color-text-secondary)]
|
|
745
745
|
flex-shrink-0
|
|
746
746
|
${X}
|
|
@@ -750,7 +750,7 @@
|
|
|
750
750
|
${G}
|
|
751
751
|
overflow-hidden
|
|
752
752
|
relative z-10
|
|
753
|
-
`,style:{height:`${F?Math.max(W,m==="lg"?22:m==="sm"?16:18):W}px`},role:"progressbar","aria-label":`${p||"Progress"}: ${Math.round(u)}%`,"aria-valuenow":
|
|
753
|
+
`,style:{height:`${F?Math.max(W,m==="lg"?22:m==="sm"?16:18):W}px`},role:"progressbar","aria-label":`${p||"Progress"}: ${Math.round(u)}%`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":l,children:e.jsx("div",{className:`h-full rounded-full ${M[n]} ${V} relative flex items-center justify-end`,style:{width:`${u}%`,transition:k?"width 0.4s ease":"none"},children:s&&F&&u>15&&e.jsx("span",{className:`
|
|
754
754
|
font-mono font-semibold text-[var(--color-text-inverse)]
|
|
755
755
|
truncate
|
|
756
756
|
ml-auto
|
|
@@ -766,7 +766,7 @@
|
|
|
766
766
|
font-mono text-xs font-medium text-[var(--color-text-secondary)]
|
|
767
767
|
flex-shrink-0
|
|
768
768
|
${X}
|
|
769
|
-
`,children:E})]})}const
|
|
769
|
+
`,children:E})]})}const w=o||g[m]||80,i=w/2,N=(w-v)/2,I=2*Math.PI*N,x=I-u/100*I,h=s?E:"",d=()=>n==="gradient"?"url(#radialGradient)":`var(--color-${n})`,P=()=>n==="gradient"?"url(#glowGradient)":`var(--color-${n})`;return e.jsx("div",{ref:T,className:`relative inline-flex flex-col items-center justify-center ${y}`,...f,children:e.jsxs("div",{className:"relative",style:{width:w,height:w},role:"progressbar","aria-label":`${p||"Progress"}: ${Math.round(u)}%`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":l,children:[e.jsxs("svg",{className:"relative w-full h-full",viewBox:`0 0 ${w} ${w}`,"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&&u>0&&e.jsx("circle",{cx:i,cy:i,r:N+v/2,fill:"none",stroke:P(),strokeWidth:v+6,strokeDasharray:I,strokeDashoffset:x,strokeLinecap:"round",transform:`rotate(-90 ${i} ${i})`,style:{filter:"blur(10px)",opacity:.35,transition:k?"stroke-dashoffset 0.6s ease":"none"}}),e.jsx("circle",{cx:i,cy:i,r:N,fill:"none",stroke:"var(--color-bg-tertiary)",strokeWidth:v}),e.jsx("circle",{cx:i,cy:i,r:N,fill:"none",stroke:d(),strokeWidth:v,strokeDasharray:I,strokeDashoffset:x,strokeLinecap:"round",transform:`rotate(-90 ${i} ${i})`,style:{transition:k?"stroke-dashoffset 0.6s ease":"none"}})]}),s&&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:w<60?"0.65rem":w<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:a="$",image:m,description:n,rating:s=0,reviewCount:C=0,category:p,tags:L=[],onSale:k=!1,originalPrice:v,inStock:o=!0,badge:$,badgeVariant:c="primary",link:y,onAddToCart:f,onClick:T,layout:j="vertical",glow:u="none",showQuickActions:b=!0,className:g="",fullWidthMobile:M=!1})=>{const{t:S}=xe(),[R,E]=t.useState({x:0,y:0}),[w,i]=t.useState(!1),[N,I]=t.useState(!1),x=t.useRef(null),h=j==="horizontal",d=j==="compact",P=j==="vertical",[V,W]=t.useState(!1);t.useEffect(()=>{const J=()=>{W(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(!x.current||d)return;const te=x.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)"}[u],F="var(--shadow-float, 0 8px 24px rgba(0,0,0,0.18))",G=`0 16px 40px rgba(0,0,0,0.28), ${Q}`,B=J=>typeof J=="string"?J:`${a}${J.toFixed(2)}`,_=()=>Array.from({length:5},(J,te)=>e.jsx("span",{className:te<Math.round(s)?"text-[var(--color-warning)]":"text-[var(--color-text-tertiary)]","aria-hidden":"true",children:te<Math.round(s)?"★":"☆"},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?w?"translateY(-4px) scale(1.03)":"translateY(0) scale(1)":w?`perspective(900px) rotateX(${R.x}deg) rotateY(${R.y}deg) translateY(-6px) scale(1.02)`:"perspective(900px) rotateX(0) rotateY(0) translateY(0) scale(1)",ae=!b&&T,A=!!y,re=k&&d&&e.jsx("div",{className:`
|
|
770
770
|
absolute top-0 z-20 w-[4.5rem] h-[4.5rem]
|
|
771
771
|
overflow-hidden pointer-events-none
|
|
772
772
|
${V?"left-0":"right-0"}
|
|
@@ -776,36 +776,36 @@
|
|
|
776
776
|
text-[10px] font-bold uppercase tracking-wider
|
|
777
777
|
py-0.5 text-center shadow-sm
|
|
778
778
|
${V?"left-[-2.35rem] -rotate-45 origin-center":"right-[-2.35rem] rotate-45 origin-center"}
|
|
779
|
-
`,children:S("productLabels.sale")})});return e.jsxs("div",{ref:
|
|
779
|
+
`,children:S("productLabels.sale")})});return e.jsxs("div",{ref:x,className:`
|
|
780
780
|
glass relative overflow-hidden
|
|
781
781
|
${d?"p-3":"p-4"}
|
|
782
782
|
${X[u]}
|
|
783
|
-
${
|
|
783
|
+
${M?"w-full sm:w-auto":""}
|
|
784
784
|
${P?"flex flex-col h-full":""}
|
|
785
785
|
${h?"flex flex-row gap-4 items-stretch":""}
|
|
786
786
|
${d?"flex flex-row items-center gap-3":""}
|
|
787
|
-
${
|
|
787
|
+
${g}
|
|
788
788
|
${ae?"cursor-pointer":""}
|
|
789
|
-
`,style:{transform:K,transformStyle:"preserve-3d",boxShadow:
|
|
789
|
+
`,style:{transform:K,transformStyle:"preserve-3d",boxShadow:w?G:F,transition:"transform 0.22s ease-out, box-shadow 0.3s ease, border-color 0.25s ease",borderColor:w?"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:T,role:ae?"button":void 0,tabIndex:ae?0:void 0,"aria-label":ae?`Product: ${r}`:void 0,onKeyDown:ae?J=>{(J.key==="Enter"||J.key===" ")&&(T==null||T())}:void 0,children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 rounded-[inherit] transition-opacity duration-300",style:{opacity:w?1:0,background:"radial-gradient(ellipse at 30% 0%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 55%)"}}),re,d&&!o&&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:`
|
|
790
790
|
${ee}
|
|
791
791
|
rounded-[var(--radius-md)] overflow-hidden
|
|
792
792
|
bg-[var(--color-bg-tertiary)] relative
|
|
793
793
|
transition-transform duration-300
|
|
794
|
-
${
|
|
794
|
+
${w&&d?"scale-105":""}
|
|
795
795
|
`,children:[m&&!N?e.jsx("img",{src:m,alt:r,className:`
|
|
796
796
|
w-full h-full object-cover transition-transform duration-500
|
|
797
|
-
${
|
|
798
|
-
`,onError:()=>
|
|
797
|
+
${w&&!d?"scale-105":"scale-100"}
|
|
798
|
+
`,onError:()=>I(!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:[$&&!d&&e.jsx(he,{variant:c,size:"sm",glow:!0,children:$}),k&&!d&&!$&&e.jsx(he,{variant:"danger",size:"sm",glow:!0,children:"Sale"}),k&&!d&&$&&e.jsx(he,{variant:"danger",size:"sm",glow:!0,children:$})]}),!o&&!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:`
|
|
799
799
|
flex flex-col min-w-0 relative z-[1]
|
|
800
800
|
${P?"flex-1 mt-3":"flex-1"}
|
|
801
801
|
`,children:[p&&!d&&e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wider text-[var(--color-text-tertiary)] mb-1",children:p}),e.jsx("h3",{className:`
|
|
802
802
|
font-heading font-bold text-[var(--color-text-primary)]
|
|
803
803
|
${d?"text-sm":"text-base"}
|
|
804
804
|
line-clamp-2 leading-snug
|
|
805
|
-
${A||
|
|
805
|
+
${A||w?"hover:text-[var(--color-primary)]":""}
|
|
806
806
|
transition-colors duration-180
|
|
807
|
-
${
|
|
808
|
-
`,onClick:J=>{
|
|
807
|
+
${w?"text-[var(--color-primary)]":""}
|
|
808
|
+
`,onClick:J=>{y&&(J.stopPropagation(),window.open(y,"_blank"))},children:r}),n&&!d&&e.jsx("p",{className:"text-[var(--color-text-secondary)] text-sm mt-1.5 line-clamp-2",children:n}),L.length>0&&!d&&e.jsxs("div",{className:"flex flex-wrap gap-1 mt-2",children:[L.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)),L.length>3&&e.jsxs("span",{className:"text-[10px] font-mono text-[var(--color-text-tertiary)]",children:["+",L.length-3]})]}),e.jsxs("div",{className:`
|
|
809
809
|
flex items-center justify-between gap-3
|
|
810
810
|
${P?"mt-auto pt-3":"mt-2"}
|
|
811
811
|
${d?"mt-1":""}
|
|
@@ -813,51 +813,51 @@
|
|
|
813
813
|
font-heading font-bold
|
|
814
814
|
${d?"text-sm":"text-lg"}
|
|
815
815
|
${k?"text-[var(--color-danger)]":"text-[var(--color-text-primary)]"}
|
|
816
|
-
`,children:B(l)}),k&&
|
|
816
|
+
`,children:B(l)}),k&&v&&e.jsx("span",{className:`
|
|
817
817
|
absolute line-through text-[var(--color-text-tertiary)] font-mono
|
|
818
818
|
pointer-events-none whitespace-nowrap
|
|
819
819
|
${d?"text-[8px] -top-2.5 start-0":"text-[10px] -top-3 start-0.5"}
|
|
820
|
-
`,children:B(
|
|
820
|
+
`,children:B(v)})]}),s>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:!o,onClick:J=>{J.stopPropagation(),f==null||f()},children:S(o?"productLabels.addToCart":"productLabels.outOfStock")})})]}),d&&b&&e.jsx("button",{type:"button",onClick:J=>{J.stopPropagation(),o&&(f==null||f())},disabled:!o,className:`
|
|
821
821
|
flex-shrink-0 w-9 h-9 rounded-full
|
|
822
822
|
flex items-center justify-center relative z-10
|
|
823
823
|
transition-all duration-200
|
|
824
824
|
${o?"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"}
|
|
825
|
-
${
|
|
826
|
-
`,"aria-label":S(o?"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 ot=({title:r,excerpt:l,coverImage:a,author:m,authorAvatar:n,date:s,readTime:C,category:p,tags
|
|
825
|
+
${w&&o?"scale-110 shadow-[var(--shadow-glow-primary)]":"scale-100"}
|
|
826
|
+
`,"aria-label":S(o?"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 ot=({title:r,excerpt:l,coverImage:a,author:m,authorAvatar:n,date:s,readTime:C,category:p,tags:L=[],link:k,onClick:v,featured:o=!1,layout:$="vertical",glow:c="none",showCategory:y=!0,showAuthor:f=!0,showReadTime:T=!0,className:j="",fullWidthMobile:u=!1})=>{const{t:b,language:g}=xe(),[M,S]=t.useState({x:0,y:0}),[R,E]=t.useState(!1),[w,i]=t.useState(!1),N=t.useRef(null),I=$==="horizontal",x=B=>{if(!N.current)return;const _=N.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:""},V={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],W="var(--shadow-float, 0 8px 24px rgba(0,0,0,0.18))",O=`0 16px 40px rgba(0,0,0,0.28), ${V}`,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"}[g]||"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=I?"w-full sm:w-44 sm:h-44 md:w-52 md:h-52 flex-shrink-0 aspect-video sm:aspect-square":o?"w-full aspect-[16/9]":"w-full aspect-video",F=o?4:3,G=!!v;return e.jsxs("div",{ref:N,className:`
|
|
827
827
|
glass relative overflow-hidden
|
|
828
828
|
${o?"p-5":"p-4"}
|
|
829
829
|
${P[c]}
|
|
830
830
|
${u?"w-full sm:w-auto":""}
|
|
831
|
-
${
|
|
832
|
-
${
|
|
831
|
+
${I?"flex flex-col sm:flex-row gap-4":"flex flex-col h-full"}
|
|
832
|
+
${j}
|
|
833
833
|
${G?"cursor-pointer":""}
|
|
834
|
-
`,style:{transform:
|
|
834
|
+
`,style:{transform:R?`perspective(900px) rotateX(${M.x}deg) rotateY(${M.y}deg) translateY(-6px) scale(1.02)`:"perspective(900px) rotateX(0) rotateY(0) translateY(0) scale(1)",transformStyle:"preserve-3d",boxShadow:R?O:W,transition:"transform 0.22s ease-out, box-shadow 0.3s ease, border-color 0.25s ease",borderColor:R?"color-mix(in srgb, var(--color-primary) 35%, var(--color-border-primary))":void 0},onMouseMove:x,onMouseEnter:h,onMouseLeave:d,onClick:v,role:G?"button":void 0,tabIndex:G?0:void 0,"aria-label":G?`Blog post: ${r}`:void 0,onKeyDown:G?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:R?1:0,background:"radial-gradient(ellipse at 30% 0%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 55%)"}}),e.jsxs("div",{className:`
|
|
835
835
|
${Q}
|
|
836
836
|
rounded-[var(--radius-md)] overflow-hidden
|
|
837
837
|
bg-[var(--color-bg-tertiary)] relative z-[1]
|
|
838
|
-
`,children:[a&&!
|
|
838
|
+
`,children:[a&&!w?e.jsx("img",{src:a,alt:r,className:`
|
|
839
839
|
w-full h-full object-cover transition-transform duration-500
|
|
840
|
-
${
|
|
841
|
-
`,onError:()=>i(!0),loading:"lazy"}):e.jsx(X,{}),p&&
|
|
840
|
+
${R?"scale-105":"scale-100"}
|
|
841
|
+
`,onError:()=>i(!0),loading:"lazy"}):e.jsx(X,{}),p&&y&&e.jsx("span",{className:"absolute top-2.5 start-2.5 z-10",children:e.jsx(he,{variant:"primary",size:"sm",glow:!0,children:p})})]}),e.jsxs("div",{className:`
|
|
842
842
|
flex flex-col flex-1 min-w-0 relative z-[1]
|
|
843
|
-
${
|
|
843
|
+
${I?"":"mt-3"}
|
|
844
844
|
`,children:[e.jsx("h3",{className:`
|
|
845
845
|
font-heading font-bold leading-snug line-clamp-2
|
|
846
|
-
${o?"text-2xl":
|
|
846
|
+
${o?"text-2xl":I?"text-lg":"text-xl"}
|
|
847
847
|
transition-colors duration-180
|
|
848
|
-
${
|
|
848
|
+
${R?"text-[var(--color-primary)]":"text-[var(--color-text-primary)]"}
|
|
849
849
|
`,onClick:B=>{k&&(B.stopPropagation(),window.open(k,"_blank"))},children:r}),e.jsx("p",{className:`
|
|
850
850
|
text-[var(--color-text-secondary)] mt-2 flex-1
|
|
851
851
|
${o?"text-base line-clamp-3":"text-sm line-clamp-2"}
|
|
852
|
-
`,children:l})
|
|
852
|
+
`,children:l}),L.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1.5 mt-3",children:[L.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)),L.length>F&&e.jsxs("span",{className:"text-[10px] font-mono text-[var(--color-text-tertiary)]",children:["+",L.length-F]})]}),e.jsxs("div",{className:"flex flex-col gap-3 mt-4 pt-3 border-t border-[var(--color-border-secondary)]",children:[f&&m&&e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(Se,{src:n,fallbackText:m,size:"sm"}),e.jsx("span",{className:"text-sm font-medium text-[var(--color-text-primary)] truncate",children:m})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-[var(--color-text-tertiary)]",children:[s&&e.jsx("time",{dateTime:z(s),children:H(s)}),T&&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})]})]}),k&&e.jsx("div",{children:e.jsxs("span",{className:`
|
|
853
853
|
text-sm font-medium text-[var(--color-primary)]
|
|
854
854
|
inline-flex items-center gap-1
|
|
855
855
|
transition-all duration-200
|
|
856
|
-
${
|
|
857
|
-
`,children:[
|
|
856
|
+
${R?"opacity-100 translate-x-0.5":"opacity-70"}
|
|
857
|
+
`,children:[b("blogLabels.readMore"),e.jsx("svg",{className:`
|
|
858
858
|
h-4 w-4 transition-transform duration-200 rtl:-scale-x-100
|
|
859
|
-
${
|
|
860
|
-
`,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"})})]})})]})]})]})};ot.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"})]}),at=()=>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(at,{})}],st=t.createContext(void 0),$e=r=>({nightfall:e.jsx(je,{}),daylight:e.jsx(Le,{}),dracula:e.jsx(at,{}),dark:e.jsx(je,{}),light:e.jsx(Le,{})})[r]||e.jsx(je,{}),Ot=({defaultTheme:r,themes:l,autoDetect:a=!0,children:m})=>{const n="dara-ui-theme",s=()=>{var
|
|
859
|
+
${R?"translate-x-0.5 rtl:-translate-x-0.5":""}
|
|
860
|
+
`,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"})})]})})]})]})]})};ot.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"})]}),at=()=>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(at,{})}],st=t.createContext(void 0),$e=r=>({nightfall:e.jsx(je,{}),daylight:e.jsx(Le,{}),dracula:e.jsx(at,{}),dark:e.jsx(je,{}),light:e.jsx(Le,{})})[r]||e.jsx(je,{}),Ot=({defaultTheme:r,themes:l,autoDetect:a=!0,children:m})=>{const n="dara-ui-theme",s=()=>{var y;const c=localStorage.getItem(n);return c||r||((y=Ne[0])==null?void 0:y.value)||"nightfall"},[C,p]=t.useState(Ne),[L,k]=t.useState(s);t.useEffect(()=>{var f,T;if(!a&&l){p(l);return}if(l){p(l);return}const c=[],y=document.styleSheets;try{for(const j of y)try{const u=j.cssRules||j.rules;for(const b of u)if(b instanceof CSSStyleRule){const g=(f=b.selectorText)==null?void 0:f.match(/\[data-theme="([^"]+)"\]/);if(g&&g[1]){const M=g[1],S=M.split("-").map(R=>R.charAt(0).toUpperCase()+R.slice(1)).join(" ");c.some(R=>R.value===M)||c.push({value:M,label:S,icon:$e(M)})}}}catch{continue}}catch{}if(c.length>0){if(p(c),!c.some(j=>j.value===L)){const j=((T=c[0])==null?void 0:T.value)||"nightfall";k(j),v(j)}}else l&&p(l)},[a,l]);const v=t.useCallback(c=>{document.documentElement.setAttribute("data-theme",c)},[]);t.useEffect(()=>{v(L)},[L,v]);const o=t.useCallback(c=>{C.find(f=>f.value===c)&&(k(c),v(c),localStorage.setItem(n,c),window.dispatchEvent(new CustomEvent("dara-theme-change",{detail:{theme:c}})))},[C,v]);t.useEffect(()=>{const c=s();C.find(f=>f.value===c)&&v(c)},[C,v]),t.useEffect(()=>{const c=y=>{const{theme:f}=y.detail;f&&f!==L&&k(f)};return window.addEventListener("dara-theme-change",c),()=>{window.removeEventListener("dara-theme-change",c)}},[L]);const $=t.useMemo(()=>({theme:L,setTheme:o,themes:C}),[L,o,C]);return e.jsx(st.Provider,{value:$,children:m})},Gt=()=>{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:a,availableThemes:m,autoDetect:n=!0,size:s="md",iconOnly:C=!1,fixedWidth:p,className:L="",useContext:k=!0,openUpward:v=!1})=>{const[o,$]=t.useState(!1),[c,y]=t.useState(Ne),f=t.useRef(null),T="dara-ui-theme";let j=null,u=!1;try{j=Gt(),u=k&&!0}catch{u=!1,j=null}const b=r!==void 0,[g,M]=t.useState(()=>{var d;const h=localStorage.getItem(T);return h||l||((d=Ne[0])==null?void 0:d.value)||"nightfall"});let S;b?S=r:u&&j?S=j.theme:S=g,t.useEffect(()=>{var P,V;if(!n&&m){y(m);return}if(m){y(m);return}const h=[],d=document.styleSheets;try{for(const W of d)try{const O=W.cssRules||W.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(y(h),!h.some(W=>W.value===S)){const W=((V=h[0])==null?void 0:V.value)||"nightfall";!b&&!u&&M(W),R(W)}}else m&&y(m)},[n,m]);const R=t.useCallback(h=>{document.documentElement.setAttribute("data-theme",h)},[]);t.useEffect(()=>{R(S)},[S,R]),t.useEffect(()=>{const h=d=>{f.current&&!f.current.contains(d.target)&&$(!1)};return o&&document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[o]);const E=t.useCallback(h=>{u&&j?j.setTheme(h):b||M(h),R(h),a==null||a(h),$(!1),window.dispatchEvent(new CustomEvent("dara-theme-change",{detail:{theme:h}}))},[u,j,b,a,R]),w=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"}},N=w.find(h=>h.value===S),I=C?i[s].iconOnlyWidth:p||"140px",x=h=>{if(t.isValidElement(h)){const d=h;return t.cloneElement(d,{className:`flex-shrink-0 ${s==="sm"?"w-4 h-4":s==="lg"?"w-6 h-6":"w-5 h-5"} ${d.props.className||""}`,width:s==="sm"?"16":s==="lg"?"24":"20",height:s==="sm"?"16":s==="lg"?"24":"20",viewBox:d.props.viewBox||"0 0 24 24"})}return h};return C?e.jsxs("div",{ref:f,className:`relative inline-flex ${L}`,children:[e.jsx("button",{type:"button",onClick:()=>$(!o),className:`
|
|
861
861
|
inline-flex items-center justify-center
|
|
862
862
|
bg-[var(--color-bg-tertiary)]
|
|
863
863
|
text-[var(--color-text-primary)]
|
|
@@ -869,23 +869,23 @@
|
|
|
869
869
|
active:scale-95
|
|
870
870
|
${i[s].trigger}
|
|
871
871
|
flex-shrink-0
|
|
872
|
-
`,style:{width:p||i[s].iconOnlyWidth,minWidth:p||i[s].iconOnlyWidth,height:p||i[s].iconOnlyWidth,minHeight:p||i[s].iconOnlyWidth},"aria-expanded":o,"aria-haspopup":"listbox","aria-label":`Current theme: ${(N==null?void 0:N.label)||"Theme"}`,children:(N==null?void 0:N.icon)&&
|
|
872
|
+
`,style:{width:p||i[s].iconOnlyWidth,minWidth:p||i[s].iconOnlyWidth,height:p||i[s].iconOnlyWidth,minHeight:p||i[s].iconOnlyWidth},"aria-expanded":o,"aria-haspopup":"listbox","aria-label":`Current theme: ${(N==null?void 0:N.label)||"Theme"}`,children:(N==null?void 0:N.icon)&&x(N.icon)}),e.jsx("div",{className:`
|
|
873
873
|
absolute z-50
|
|
874
874
|
left-1/2 -translate-x-1/2
|
|
875
|
-
${
|
|
875
|
+
${v?"bottom-full mb-1.5":"top-full mt-1.5"}
|
|
876
876
|
glass
|
|
877
877
|
rounded-[var(--radius-md)]
|
|
878
878
|
py-1
|
|
879
879
|
shadow-[var(--shadow-float)]
|
|
880
880
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
881
881
|
overflow-hidden
|
|
882
|
-
${o?"opacity-100 translate-y-0 pointer-events-auto":
|
|
883
|
-
`,style:{width:
|
|
882
|
+
${o?"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"}
|
|
883
|
+
`,style:{width:I,minWidth:I,position:"absolute",top:v?"auto":"100%",bottom:v?"100%":"auto",marginTop:v?"0":"6px",marginBottom:v?"6px":"0"},role:"listbox",children:w.map(h=>{const d=h.value===S;return e.jsx("button",{type:"button",onClick:()=>E(h.value),className:`
|
|
884
884
|
w-full flex items-center justify-center gap-2
|
|
885
885
|
${i[s].option}
|
|
886
886
|
${d?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
887
887
|
transition-colors duration-150
|
|
888
|
-
`,role:"option","aria-selected":d,title:h.label,children:h.icon&&
|
|
888
|
+
`,role:"option","aria-selected":d,title:h.label,children:h.icon&&x(h.icon)},h.value)})})]}):e.jsxs("div",{ref:f,className:`relative ${L}`,children:[e.jsxs("button",{type:"button",onClick:()=>$(!o),className:`
|
|
889
889
|
inline-flex items-center
|
|
890
890
|
bg-[var(--color-bg-tertiary)]
|
|
891
891
|
text-[var(--color-text-primary)]
|
|
@@ -896,7 +896,7 @@
|
|
|
896
896
|
transition-all duration-180
|
|
897
897
|
active:scale-95
|
|
898
898
|
${i[s].trigger}
|
|
899
|
-
`,style:{width:p||"auto",minWidth:p||"auto"},"aria-expanded":o,"aria-haspopup":"listbox",children:[e.jsxs("span",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(N==null?void 0:N.icon)&&
|
|
899
|
+
`,style:{width:p||"auto",minWidth:p||"auto"},"aria-expanded":o,"aria-haspopup":"listbox",children:[e.jsxs("span",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(N==null?void 0:N.icon)&&x(N.icon),e.jsx("span",{className:"font-mono tracking-wide truncate",children:(N==null?void 0:N.label)||"Theme"})]}),e.jsx("svg",{className:`
|
|
900
900
|
flex-shrink-0 ml-2
|
|
901
901
|
transition-transform duration-[var(--transition-med)] ease-[var(--ease-in-out)]
|
|
902
902
|
${o?"rotate-180":"rotate-0"}
|
|
@@ -904,38 +904,38 @@
|
|
|
904
904
|
`,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:`
|
|
905
905
|
absolute z-50
|
|
906
906
|
left-1/2 -translate-x-1/2
|
|
907
|
-
${
|
|
907
|
+
${v?"bottom-full mb-1.5":"top-full mt-1.5"}
|
|
908
908
|
pointer-events-none
|
|
909
|
-
`,style:{width:
|
|
909
|
+
`,style:{width:I,minWidth:I,top:v?"auto":"100%",bottom:v?"100%":"auto",marginTop:v?"0":"6px",marginBottom:v?"6px":"0"},children:e.jsx("div",{className:`
|
|
910
910
|
glass
|
|
911
911
|
rounded-[var(--radius-md)]
|
|
912
912
|
py-1
|
|
913
913
|
shadow-[var(--shadow-float)]
|
|
914
914
|
transition-all duration-[var(--transition-fast)] ease-[var(--ease-in-out)]
|
|
915
915
|
overflow-hidden
|
|
916
|
-
${o?"opacity-100 translate-y-0 pointer-events-auto":
|
|
917
|
-
`,children:
|
|
916
|
+
${o?"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"}
|
|
917
|
+
`,children:w.map(h=>{const d=h.value===S;return e.jsxs("button",{type:"button",onClick:()=>E(h.value),className:`
|
|
918
918
|
w-full flex items-center gap-2 text-left
|
|
919
919
|
${i[s].option}
|
|
920
920
|
${d?"bg-[var(--color-primary-light)] text-[var(--color-primary)]":"text-[var(--color-text-primary)] hover:bg-[var(--color-bg-elevated)]/50"}
|
|
921
921
|
transition-colors duration-150
|
|
922
|
-
`,role:"option","aria-selected":d,children:[h.icon&&j(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 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",asLink:"Button as Link",visitSite:"Visit Site",viewOnGithub:"View on GitHub"},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"}},Vt={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:"تأیید",asLink:"دکمه به عنوان لینک",visitSite:"مشاهده سایت",viewOnGithub:"مشاهده در گیتهاب"},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",asLink:"Bouton en tant que lien",visitSite:"Visiter le site",viewOnGithub:"Voir sur GitHub"},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:Wt,fa:Vt,fr:qt},it=({name:r,subtitle:l,quote:a,portrait:m,icon:n,mbti:s,species:C,affiliation:p,traits:$=[],stats:k=[],glow:g="primary",layout:o="vertical",className:M=""})=>{const[c,b]=t.useState({x:0,y:0}),[x,R]=t.useState(!1),w=t.useRef(null),{t:u}=xe(),v=i=>{if(!w.current)return;const N=w.current.getBoundingClientRect(),L=i.clientX-N.left,j=i.clientY-N.top,h=N.width/2,d=N.height/2,P=(j-d)/d*-8,V=(L-h)/h*8;b({x:P,y:V})},f=()=>R(!0),T=()=>{R(!1),b({x:0,y:0})},I={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[g]||"",E=o==="horizontal",y=i=>{const N=Math.min(100,Math.max(0,i.value)),L=E?48:56,j=3.5,h=L/2-j/2,d=2*Math.PI*h,P=d-N/100*d,V=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:V},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:[N>0&&e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:j+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:j}),e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:j,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:w,className:`
|
|
922
|
+
`,role:"option","aria-selected":d,children:[h.icon&&x(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 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",asLink:"Button as Link",visitSite:"Visit Site",viewOnGithub:"View on GitHub"},avatar:{title:"Avatar",sizes:"Sizes",shapes:"Shapes",status:"Status Indicators",glowEffects:"Glow Effects",withImage:"With Image",group:"Group",clickable:"Clickable",heroProfile:"Hero Profile Block",profileName:"Dara",profileBio:"Building futuristic interfaces one glassmorphism card at a time. Archivist of the digital snowstorm."},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"}},Vt={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:"تأیید",asLink:"دکمه به عنوان لینک",visitSite:"مشاهده سایت",viewOnGithub:"مشاهده در گیتهاب"},avatar:{title:"آواتار",sizes:"اندازهها",shapes:"اشکال",status:"وضعیتها",glowEffects:"جلوههای درخشش",withImage:"با تصویر",group:"گروه",clickable:"قابل کلیک",heroProfile:"بلوک پروفایل قهرمان",profileName:"دارا",profileBio:"ساخت رابطهای آیندهنگرانه، یک کارت شیشهای در هر لحظه. بایگان طوفان برفی دیجیتال."},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",asLink:"Bouton en tant que lien",visitSite:"Visiter le site",viewOnGithub:"Voir sur GitHub"},avatar:{title:"Avatar",sizes:"Tailles",shapes:"Formes",status:"Indicateurs de statut",glowEffects:"Effets de lueur",withImage:"Avec image",group:"Groupe",clickable:"Cliquable",heroProfile:"Bloc de profil héros",profileName:"Dara",profileBio:"Construction d'interfaces futuristes, une carte glassmorphique à la fois. Archiviste de la tempête de neige numérique."},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:Wt,fa:Vt,fr:qt},it=({name:r,subtitle:l,quote:a,portrait:m,icon:n,mbti:s,species:C,affiliation:p,traits:L=[],stats:k=[],glow:v="primary",layout:o="vertical",className:$=""})=>{const[c,y]=t.useState({x:0,y:0}),[f,T]=t.useState(!1),j=t.useRef(null),{t:u}=xe(),b=i=>{if(!j.current)return;const N=j.current.getBoundingClientRect(),I=i.clientX-N.left,x=i.clientY-N.top,h=N.width/2,d=N.height/2,P=(x-d)/d*-8,V=(I-h)/h*8;y({x:P,y:V})},g=()=>T(!0),M=()=>{T(!1),y({x:0,y:0})},R={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[v]||"",E=o==="horizontal",w=i=>{const N=Math.min(100,Math.max(0,i.value)),I=E?48:56,x=3.5,h=I/2-x/2,d=2*Math.PI*h,P=d-N/100*d,V=E?60:68,O=I+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:V},children:[e.jsx("div",{className:"relative",style:{width:I,height:I},role:"img","aria-label":`${i.label}: ${i.value}%`,children:e.jsxs("svg",{width:I,height:I,viewBox:`0 0 ${O} ${O}`,className:"block overflow-visible","aria-hidden":"true",style:{overflow:"visible"},children:[N>0&&e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:x+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:x}),e.jsx("circle",{cx:H,cy:H,r:h,fill:"none",stroke:z,strokeWidth:x,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:I<52?"11px":"13px",fill:"var(--color-text-primary)"},children:[i.value,e.jsx("tspan",{style:{fontSize:I<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:`
|
|
923
923
|
glass p-6 float-card
|
|
924
924
|
relative
|
|
925
925
|
transition-all duration-300
|
|
926
|
-
${
|
|
926
|
+
${R}
|
|
927
927
|
${E?"flex flex-col md:flex-row gap-6":"flex flex-col"}
|
|
928
|
-
${
|
|
929
|
-
`,style:{transform:
|
|
928
|
+
${$}
|
|
929
|
+
`,style:{transform:f?`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:g,onMouseLeave:M,children:[e.jsxs("div",{className:`
|
|
930
930
|
${E?"flex-shrink-0 md:w-48":"w-full"}
|
|
931
931
|
flex flex-col
|
|
932
|
-
`,style:{transform:"translateZ(20px)"},children:[e.jsxs("div",{className:"flex items-center gap-4",children:[m?e.jsx(Se,{src:m,fallbackText:r,size:"lg",glow:
|
|
932
|
+
`,style:{transform:"translateZ(20px)"},children:[e.jsxs("div",{className:"flex items-center gap-4",children:[m?e.jsx(Se,{src:m,fallbackText:r,size:"lg",glow:v!=="none"?"primary":void 0,bordered:!0}):e.jsx("div",{className:`
|
|
933
933
|
flex items-center justify-center
|
|
934
934
|
w-12 h-12 rounded-full flex-shrink-0
|
|
935
935
|
bg-[var(--color-bg-tertiary)]
|
|
936
936
|
text-[var(--color-primary)]
|
|
937
937
|
border-2 border-[var(--color-border-secondary)]
|
|
938
|
-
${
|
|
938
|
+
${v!=="none"?"shadow-[var(--shadow-glow-primary)]":""}
|
|
939
939
|
`,"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})]})]}),a&&!E&&e.jsxs("p",{className:"text-[var(--color-text-secondary)] text-sm italic mt-4 leading-relaxed",style:{transform:"translateZ(10px)"},children:['"',a,'"']})]}),e.jsxs("div",{className:`
|
|
940
940
|
${E?"flex-1 min-w-0":"w-full mt-5"}
|
|
941
941
|
flex flex-col
|
|
@@ -944,23 +944,23 @@
|
|
|
944
944
|
`,style:{transform:"translateZ(8px)"},children:[s&&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:[u("characterLabels.mbti"),":"]}),e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:s})]}),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:[u("characterLabels.species"),":"]}),e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:C})]}),p&&e.jsxs("div",{className:`
|
|
945
945
|
flex items-center gap-1.5 min-w-0
|
|
946
946
|
${E?"max-w-full":"col-span-2"}
|
|
947
|
-
`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[u("characterLabels.affiliation"),":"]}),e.jsx("span",{className:"text-sm font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:p})]})]})
|
|
947
|
+
`,children:[e.jsxs("span",{className:"text-[10px] uppercase tracking-wider text-[var(--color-text-tertiary)] font-mono flex-shrink-0",children:[u("characterLabels.affiliation"),":"]}),e.jsx("span",{className:"text-sm font-medium text-[var(--color-text-secondary)] truncate min-w-0",children:p})]})]}),L.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2 mb-4",style:{transform:"translateZ(5px)"},children:L.map((i,N)=>e.jsx(he,{variant:"secondary",size:"sm",outline:!0,children:i},N))}),k.length>0&&e.jsx("div",{className:`
|
|
948
948
|
${E?"flex flex-wrap gap-3 justify-start":"flex flex-wrap gap-3 justify-center"}
|
|
949
949
|
pt-4 border-t border-[var(--color-border-secondary)]
|
|
950
|
-
`,style:{transform:"translateZ(5px)"},children:k.map((i,N)=>e.jsx(t.Fragment,{children:
|
|
950
|
+
`,style:{transform:"translateZ(5px)"},children:k.map((i,N)=>e.jsx(t.Fragment,{children:w(i)},`${i.label}-${N}`))})]})]})};it.displayName="CharacterCard";const lt=({title:r,description:l,xp:a=0,xpLabel:m="XP",deadline:n,rank:s,requirements:C=[],glow:p="none",done:L,onComplete:k,className:v=""})=>{const{t:o}=xe(),[$,c]=t.useState(!1),[y,f]=t.useState(!1),[T,j]=t.useState(!1),[u,b]=t.useState({x:0,y:0}),[g,M]=t.useState(!1),S=t.useRef(null),[R,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 w=L!==void 0,i=w?L:$,N=z=>{if(!S.current)return;const X=S.current.getBoundingClientRect(),Q=z.clientX-X.left,F=z.clientY-X.top,G=X.width/2,B=X.height/2,_=(F-B)/B*-8,Z=(Q-G)/G*8;b({x:_,y:Z})},I=()=>{M(!0)},x=()=>{M(!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 o("quest.deadlineTomorrow")||"Deadline: Tomorrow";if(Q==="tonight")return o("quest.deadlineTonight")||"Deadline: Tonight";if(isNaN(X.getTime()))return n;const F=X.getTime()-z.getTime(),G=Math.ceil(F/(1e3*60*60*24));return G===0?o("quest.deadlineToday")||"Deadline: Today":G===1?o("quest.deadlineTomorrow")||"Deadline: Tomorrow":G===-1?o("quest.deadlineYesterday")||"Deadline: Yesterday":G<0?`${Math.abs(G)} ${o("quest.daysAgo")||"days ago"}`:G<7?`${o("quest.deadline")||"Deadline"}: ${G} ${o("quest.days")||"days"}`:G<14?`${o("quest.deadline")||"Deadline"}: 1 ${o("quest.week")||"week"}`:G<30?`${o("quest.deadline")||"Deadline"}: ${Math.floor(G/7)} ${o("quest.weeks")||"weeks"}`:G<60?`${o("quest.deadline")||"Deadline"}: 1 ${o("quest.month")||"month"}`:G<365?`${o("quest.deadline")||"Deadline"}: ${Math.floor(G/30)} ${o("quest.months")||"months"}`:`${o("quest.deadline")||"Deadline"}: ${Math.floor(G/365)} ${o("quest.years")||"years"}`},d=()=>{if(!s)return"";const z=s.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||f(!0)},V=()=>{f(!1),w||c(!0),k==null||k(),j(!0),setTimeout(()=>{j(!1)},1500)},O={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[p]||"",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 G=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(G*Math.PI/180)*B}px`,"--ty":`${Math.sin(G*Math.PI/180)*B}px`}},F))}return z};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{ref:S,className:`
|
|
951
951
|
glass p-6 float-card cursor-pointer relative
|
|
952
952
|
h-full flex flex-col
|
|
953
953
|
${O}
|
|
954
954
|
${i?"opacity-80":""}
|
|
955
955
|
transition-all duration-300
|
|
956
|
-
${
|
|
957
|
-
`,style:{transform:
|
|
956
|
+
${v}
|
|
957
|
+
`,style:{transform:g?`perspective(800px) rotateX(${u.x}deg) rotateY(${u.y}deg) scale(1.02)`:"perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)",transformStyle:"preserve-3d",transition:"transform 0.2s ease-out"},onMouseMove:N,onMouseEnter:I,onMouseLeave:x,onClick:P,role:"button",tabIndex:0,"aria-label":`Quest: ${r}`,onKeyDown:z=>{(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),P())},children:[T&&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"}),o("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:["+",a," ",m]}),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:o("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))})]}),s&&e.jsx("div",{className:`absolute top-4 ${R?"left-4":"right-4"}`,style:{transform:"translateZ(30px)"},children:e.jsx("span",{className:`
|
|
958
958
|
font-accent text-xs font-bold tracking-wider
|
|
959
959
|
px-2.5 py-1 rounded-full
|
|
960
960
|
bg-[var(--color-bg-tertiary)]/50
|
|
961
961
|
border border-[var(--color-border-primary)]
|
|
962
962
|
${d()}
|
|
963
|
-
`,children:s.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"})}),o("common.complete").toUpperCase()]})})]}),e.jsxs(Te,{isOpen:
|
|
963
|
+
`,children:s.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"})}),o("common.complete").toUpperCase()]})})]}),e.jsxs(Te,{isOpen:y,onClose:()=>f(!1),title:o("common.completeMission"),confirmText:o("common.complete"),cancelText:o("modal.decline"),onConfirm:V,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"}),o("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:[o("common.youWillEarn")," ",e.jsxs("span",{className:"text-[var(--color-success)] font-bold",children:["+",a," ",m]})," ",o("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:o("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:`
|
|
964
964
|
.sparkle-drop {
|
|
965
965
|
position: absolute;
|
|
966
966
|
border-radius: 50%;
|
|
@@ -979,28 +979,28 @@
|
|
|
979
979
|
opacity: 0;
|
|
980
980
|
}
|
|
981
981
|
}
|
|
982
|
-
`})]})};lt.displayName="QuestCard";const ct=({stats:r,variant:l="radial",title:a,glow:m="none",layout:n="vertical",className:s=""})=>{const{t:C}=xe(),[p
|
|
982
|
+
`})]})};lt.displayName="QuestCard";const ct=({stats:r,variant:l="radial",title:a,glow:m="none",layout:n="vertical",className:s=""})=>{const{t:C}=xe(),[p,L]=t.useState({x:0,y:0}),[k,v]=t.useState(!1),o=t.useRef(null),$=g=>{if(!o.current)return;const M=o.current.getBoundingClientRect(),S=g.clientX-M.left,R=g.clientY-M.top,E=M.width/2,w=M.height/2,i=(R-w)/w*-6,N=(S-E)/E*6;L({x:i,y:N})},c=()=>{v(!0)},y=()=>{v(!1),L({x:0,y:0})},T={primary:"glow-primary",secondary:"glow-secondary",accent:"glow-accent",none:""}[m]||"",j=n==="horizontal",u=g=>{if(g===void 0||g===0)return null;const M=g>0,S=M?"var(--color-success)":"var(--color-danger)",R=M?"▲":"▼";return e.jsxs("span",{className:"text-xs font-mono font-medium flex-shrink-0",style:{color:S},children:[R," ",Math.abs(g),"%"]})},b=(g,M)=>{const S=g.max?g.value/g.max*100:g.value,R=g.max?`${Math.round(g.value)} / ${g.max}`:`${Math.round(g.value)}`,E=g.unit||"%";if(l==="radial"){const i=j?56:64,N=g.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:N,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:g.label}),u(g.trend)]})]},M)}const w=g.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:g.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:[R,e.jsx("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:E})]}),u(g.trend)]})]}),e.jsx(ke,{variant:"horizontal",value:S,color:w,size:"sm",showLabel:!1,animated:!0})]},M)};return e.jsxs("div",{ref:o,className:`
|
|
983
983
|
glass p-6 float-card
|
|
984
984
|
relative
|
|
985
985
|
transition-all duration-300
|
|
986
|
-
${
|
|
987
|
-
${
|
|
986
|
+
${T}
|
|
987
|
+
${j?"flex flex-col md:flex-row gap-6":"flex flex-col"}
|
|
988
988
|
${s}
|
|
989
|
-
`,style:{transform:k?`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, box-shadow 0.4s ease"},onMouseMove
|
|
990
|
-
${
|
|
989
|
+
`,style:{transform:k?`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, box-shadow 0.4s ease"},onMouseMove:$,onMouseEnter:c,onMouseLeave:y,children:[a&&e.jsxs("div",{className:`
|
|
990
|
+
${j?"flex-shrink-0 md:w-48":"w-full"}
|
|
991
991
|
flex items-center justify-between
|
|
992
|
-
${
|
|
993
|
-
`,style:{transform:"translateZ(20px)"},children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider",children:a}),
|
|
994
|
-
${
|
|
995
|
-
${l==="radial"?
|
|
996
|
-
`,style:{transform:"translateZ(10px)"},children:r.map((f,T)=>v(f,T))})]})};ct.displayName="StatsWidget";const dt=({value:r=0,max:l=5e3,level:a=1,showLabel:m=!0,customLabel:n,levelLabel:s="Level",xpLabel:C="XP",ranks:p,className:$=""})=>{const[k,g]=t.useState({x:0,y:0}),[o,M]=t.useState(!1),c=t.useRef(null),b=N=>{if(!c.current)return;const L=c.current.getBoundingClientRect(),j=N.clientX-L.left,h=N.clientY-L.top,d=L.width/2,P=L.height/2,V=(h-P)/P*-6,W=(j-d)/d*6;g({x:V,y:W})},x=()=>{M(!0)},R=()=>{M(!1),g({x:0,y:0})},w=Math.max(0,Math.min(r,l)),u=w/l*100,v=l-w,T=(()=>{if(!p||p.length===0)return null;let N=p[0];for(const L of p)w>=L.requiredXP&&(N=L);return N})(),I=(()=>{if(!p||p.length===0)return null;for(const N of p)if(w<N.requiredXP)return N;return null})(),E=I?I.requiredXP-w:null,y=N=>N.toLocaleString(),i=()=>p&&I?`${y(E||0)} ${C} to ${I.label}`:`${y(v)} ${C} to next ${s}`;return e.jsxs("div",{ref:c,className:`glass p-6 float-card ${$}`,style:{transform:o?`perspective(800px) rotateX(${k.x}deg) rotateY(${k.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: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:p&&T?e.jsxs(e.Fragment,{children:[s," ",a," · ",T.label]}):e.jsxs(e.Fragment,{children:[s," ",a]})})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[y(w)," /"," ",y(p&&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:p&&I?`${w/I.requiredXP*100}%`:`${u}%`},role:"progressbar","aria-label":n||`${s} ${a}: ${y(w)} of ${y(p&&I?I.requiredXP:l)} ${C}`,"aria-valuenow":w,"aria-valuemin":0,"aria-valuemax":p&&I?I.requiredXP:l})}),m&&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:a=Yt,sizeRange:m=Xt,speedRange:n=_t,className:s=""})=>{const C=t.useRef(null),p=t.useRef([]),$=t.useRef(0),k=t.useRef({count:r,colors:l,opacityRange:a,sizeRange:m,speedRange:n});k.current={count:r,colors:l,opacityRange:a,sizeRange:m,speedRange:n};const g=t.useCallback(()=>{const c=C.current;c&&(c.width=window.innerWidth,c.height=window.innerHeight)},[]),o=t.useCallback(()=>{if(typeof window>"u")return k.current.colors;const c=document.documentElement;return k.current.colors.map(b=>{const x=b.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:b,opacityRange:x,sizeRange:R,speedRange:w}=k.current,u=o(),v=[];for(let f=0;f<b;f++)v.push({x:Math.random()*c.width,y:Math.random()*c.height,size:Math.random()*(R[1]-R[0])+R[0],speedY:Math.random()*(w[1]-w[0])+w[0],speedX:(Math.random()-.5)*.2,opacity:Math.random()*(x[1]-x[0])+x[0],color:u[Math.floor(Math.random()*u.length)]});p.current=v},[o]);return t.useEffect(()=>{const c=C.current;if(!c)return;const b=c.getContext("2d");if(!b)return;g(),M();const x=()=>M(),R=new MutationObserver(x);R.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});const w=()=>{b.clearRect(0,0,c.width,c.height),p.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),b.beginPath(),b.arc(v.x,v.y,v.size,0,Math.PI*2),b.fillStyle=v.color,b.globalAlpha=v.opacity,b.fill(),b.globalAlpha=1}),$.current=requestAnimationFrame(w)};w();const u=()=>{g(),M()};return window.addEventListener("resize",u),()=>{cancelAnimationFrame($.current),window.removeEventListener("resize",u),R.disconnect()}},[r,g,M]),e.jsx("canvas",{ref:C,className:`fixed inset-0 z-0 pointer-events-none ${s}`})});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:a=""})=>{const m=[{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 ${a}`,children:m.map((n,s)=>e.jsx("div",{className:"aurora-blob absolute rounded-full blur-[120px] opacity-35",style:{width:l[s],height:l[s],background:r[s],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"}},s))})};mt.displayName="AuroraBlobs";const pt=({size:r=280,colors:l=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","var(--color-primary)"],blur:a=60,opacity:m=.5,duration:n=15,className:s=""})=>{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 ${s}`,style:{width:r,height:r,borderRadius:"50%",background:C,filter:`blur(${a}px)`,opacity:m,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:a=0,duration:m=600,distance:n=40,threshold:s=.15,once:C=!0,rootMargin:p="0px 0px -10% 0px",className:$=""})=>{const k=t.useRef(null),[g,o]=t.useState(!1),[M,c]=t.useState(!1),b=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.useEffect(()=>{const u=k.current;if(!u)return;if(b){o(!0),c(!0);return}const v=new IntersectionObserver(f=>{f.forEach(T=>{T.isIntersecting?(o(!0),c(!0),C&&v.unobserve(T.target)):C||o(!1)})},{threshold:s,rootMargin:p});return v.observe(u),()=>v.disconnect()},[s,p,C,b]);const x=()=>{if(b)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=g||M,w=b?{}:{opacity:R?1:0,transform:R?"none":x(),transition:`opacity ${m}ms cubic-bezier(0.4, 0, 0.2, 1) ${a}ms, transform ${m}ms cubic-bezier(0.4, 0, 0.2, 1) ${a}ms`,willChange:R?"auto":"opacity, transform"};return e.jsx("div",{ref:k,className:$,style:w,"data-scroll-reveal":l,"data-scroll-reveal-visible":R?"true":"false",children:r})};xt.displayName="ScrollReveal";function Ut(r={}){const{threshold:l=.15,once:a=!0,rootMargin:m="0px 0px -10% 0px"}=r,n=t.useRef(null),[s,C]=t.useState(!1);return t.useEffect(()=>{const p=n.current;if(!p)return;if(typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){C(!0);return}const $=new IntersectionObserver(k=>{k.forEach(g=>{g.isIntersecting?(C(!0),a&&$.unobserve(g.target)):a||C(!1)})},{threshold:l,rootMargin:m});return $.observe(p),()=>$.disconnect()},[l,a,m]),{ref:n,isVisible:s}}const De=({isLoading:r=!0,shape:l="spinner",color:a="primary",customColor:m,label:n,progress:s,showProgress:C=!1,size:p="md",blur:$=!0,showBrand:k=!1,minDuration:g=0,inline:o=!1,className:M=""})=>{const[c,b]=t.useState(r),[x,R]=t.useState(!1),[w]=t.useState(Date.now()),u=m||`var(--color-${a})`;if(t.useEffect(()=>{if(o){b(r),R(r);return}let j;if(r)b(!0),j=setTimeout(()=>R(!0),20);else{const h=Date.now()-w,d=Math.max(0,g-h);j=setTimeout(()=>{R(!1),setTimeout(()=>b(!1),300)},d)}return()=>clearTimeout(j)},[r,g,w,o]),t.useEffect(()=>{if(!o)return c?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}},[c,o]),!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}}[p],T=`drop-shadow(0 0 6px ${u}) drop-shadow(0 0 12px color-mix(in srgb, ${u} 45%, transparent))`,S=`drop-shadow(0 0 5px ${u}) drop-shadow(0 0 10px color-mix(in srgb, ${u} 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:u,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((j,h)=>{const d=h/12*360;return e.jsx("rect",{x:"24",y:"4",width:"2",height:"8",rx:"1",fill:u,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(j=>e.jsx("span",{className:"rounded-full",style:{width:f.dots,height:f.dots,backgroundColor:u,animation:`pageLoaderDot 1.2s ease-in-out ${j*.15}s infinite`}},j))}),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:u,animation:"pageLoaderPulse 1.5s ease-out infinite"}}),e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:u,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:u,transform:"translate(-50%, -50%)"}})]}),N=()=>e.jsx("div",{className:"flex items-end gap-1.5",style:{height:f.bars,filter:S},children:[0,1,2,3,4].map(j=>e.jsx("span",{className:"rounded-full",style:{width:3,height:"100%",backgroundColor:u,animation:`pageLoaderBar 1s ease-in-out ${j*.1}s infinite`,transformOrigin:"bottom"}},j))}),L={spinner:e.jsx(I,{}),ring:e.jsx(E,{}),dots:e.jsx(y,{}),pulse:e.jsx(i,{}),bars:e.jsx(N,{})};if(o){const j=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:[k&&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:j,height:j},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:`
|
|
992
|
+
${j?"md:flex-col md:items-start md:justify-start":"mb-4"}
|
|
993
|
+
`,style:{transform:"translateZ(20px)"},children:[e.jsx("p",{className:"font-mono text-xs text-[var(--color-primary)] uppercase tracking-wider",children:a}),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:`
|
|
994
|
+
${j?"flex-1 min-w-0":"w-full"}
|
|
995
|
+
${l==="radial"?j?"flex flex-wrap gap-4 justify-start":"flex flex-wrap gap-4 justify-center":"flex flex-col gap-4"}
|
|
996
|
+
`,style:{transform:"translateZ(10px)"},children:r.map((g,M)=>b(g,M))})]})};ct.displayName="StatsWidget";const dt=({value:r=0,max:l=5e3,level:a=1,showLabel:m=!0,customLabel:n,levelLabel:s="Level",xpLabel:C="XP",ranks:p,className:L=""})=>{const[k,v]=t.useState({x:0,y:0}),[o,$]=t.useState(!1),c=t.useRef(null),y=N=>{if(!c.current)return;const I=c.current.getBoundingClientRect(),x=N.clientX-I.left,h=N.clientY-I.top,d=I.width/2,P=I.height/2,V=(h-P)/P*-6,W=(x-d)/d*6;v({x:V,y:W})},f=()=>{$(!0)},T=()=>{$(!1),v({x:0,y:0})},j=Math.max(0,Math.min(r,l)),u=j/l*100,b=l-j,M=(()=>{if(!p||p.length===0)return null;let N=p[0];for(const I of p)j>=I.requiredXP&&(N=I);return N})(),R=(()=>{if(!p||p.length===0)return null;for(const N of p)if(j<N.requiredXP)return N;return null})(),E=R?R.requiredXP-j:null,w=N=>N.toLocaleString(),i=()=>p&&R?`${w(E||0)} ${C} to ${R.label}`:`${w(b)} ${C} to next ${s}`;return e.jsxs("div",{ref:c,className:`glass p-6 float-card ${L}`,style:{transform:o?`perspective(800px) rotateX(${k.x}deg) rotateY(${k.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:y,onMouseEnter:f,onMouseLeave:T,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:p&&M?e.jsxs(e.Fragment,{children:[s," ",a," · ",M.label]}):e.jsxs(e.Fragment,{children:[s," ",a]})})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[w(j)," /"," ",w(p&&R?R.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:p&&R?`${j/R.requiredXP*100}%`:`${u}%`},role:"progressbar","aria-label":n||`${s} ${a}: ${w(j)} of ${w(p&&R?R.requiredXP:l)} ${C}`,"aria-valuenow":j,"aria-valuemin":0,"aria-valuemax":p&&R?R.requiredXP:l})}),m&&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:a=Yt,sizeRange:m=Xt,speedRange:n=_t,className:s=""})=>{const C=t.useRef(null),p=t.useRef([]),L=t.useRef(0),k=t.useRef({count:r,colors:l,opacityRange:a,sizeRange:m,speedRange:n});k.current={count:r,colors:l,opacityRange:a,sizeRange:m,speedRange:n};const v=t.useCallback(()=>{const c=C.current;c&&(c.width=window.innerWidth,c.height=window.innerHeight)},[]),o=t.useCallback(()=>{if(typeof window>"u")return k.current.colors;const c=document.documentElement;return k.current.colors.map(y=>{const f=y.trim();if(f.startsWith("var(")){const T=f.slice(4,-1).trim();return getComputedStyle(c).getPropertyValue(T).trim()||"#ffffff"}return f})},[]),$=t.useCallback(()=>{const c=C.current;if(!c)return;const{count:y,opacityRange:f,sizeRange:T,speedRange:j}=k.current,u=o(),b=[];for(let g=0;g<y;g++)b.push({x:Math.random()*c.width,y:Math.random()*c.height,size:Math.random()*(T[1]-T[0])+T[0],speedY:Math.random()*(j[1]-j[0])+j[0],speedX:(Math.random()-.5)*.2,opacity:Math.random()*(f[1]-f[0])+f[0],color:u[Math.floor(Math.random()*u.length)]});p.current=b},[o]);return t.useEffect(()=>{const c=C.current;if(!c)return;const y=c.getContext("2d");if(!y)return;v(),$();const f=()=>$(),T=new MutationObserver(f);T.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});const j=()=>{y.clearRect(0,0,c.width,c.height),p.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),y.beginPath(),y.arc(b.x,b.y,b.size,0,Math.PI*2),y.fillStyle=b.color,y.globalAlpha=b.opacity,y.fill(),y.globalAlpha=1}),L.current=requestAnimationFrame(j)};j();const u=()=>{v(),$()};return window.addEventListener("resize",u),()=>{cancelAnimationFrame(L.current),window.removeEventListener("resize",u),T.disconnect()}},[r,v,$]),e.jsx("canvas",{ref:C,className:`fixed inset-0 z-0 pointer-events-none ${s}`})});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:a=""})=>{const m=[{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 ${a}`,children:m.map((n,s)=>e.jsx("div",{className:"aurora-blob absolute rounded-full blur-[120px] opacity-35",style:{width:l[s],height:l[s],background:r[s],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"}},s))})};mt.displayName="AuroraBlobs";const pt=({size:r=280,colors:l=["var(--color-primary)","var(--color-secondary)","var(--color-accent)","var(--color-primary)"],blur:a=60,opacity:m=.5,duration:n=15,className:s=""})=>{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 ${s}`,style:{width:r,height:r,borderRadius:"50%",background:C,filter:`blur(${a}px)`,opacity:m,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:a=0,duration:m=600,distance:n=40,threshold:s=.15,once:C=!0,rootMargin:p="0px 0px -10% 0px",className:L=""})=>{const k=t.useRef(null),[v,o]=t.useState(!1),[$,c]=t.useState(!1),y=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.useEffect(()=>{const u=k.current;if(!u)return;if(y){o(!0),c(!0);return}const b=new IntersectionObserver(g=>{g.forEach(M=>{M.isIntersecting?(o(!0),c(!0),C&&b.unobserve(M.target)):C||o(!1)})},{threshold:s,rootMargin:p});return b.observe(u),()=>b.disconnect()},[s,p,C,y]);const f=()=>{if(y)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)`}},T=v||$,j=y?{}:{opacity:T?1:0,transform:T?"none":f(),transition:`opacity ${m}ms cubic-bezier(0.4, 0, 0.2, 1) ${a}ms, transform ${m}ms cubic-bezier(0.4, 0, 0.2, 1) ${a}ms`,willChange:T?"auto":"opacity, transform"};return e.jsx("div",{ref:k,className:L,style:j,"data-scroll-reveal":l,"data-scroll-reveal-visible":T?"true":"false",children:r})};xt.displayName="ScrollReveal";function Ut(r={}){const{threshold:l=.15,once:a=!0,rootMargin:m="0px 0px -10% 0px"}=r,n=t.useRef(null),[s,C]=t.useState(!1);return t.useEffect(()=>{const p=n.current;if(!p)return;if(typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){C(!0);return}const L=new IntersectionObserver(k=>{k.forEach(v=>{v.isIntersecting?(C(!0),a&&L.unobserve(v.target)):a||C(!1)})},{threshold:l,rootMargin:m});return L.observe(p),()=>L.disconnect()},[l,a,m]),{ref:n,isVisible:s}}const De=({isLoading:r=!0,shape:l="spinner",color:a="primary",customColor:m,label:n,progress:s,showProgress:C=!1,size:p="md",blur:L=!0,showBrand:k=!1,minDuration:v=0,inline:o=!1,className:$=""})=>{const[c,y]=t.useState(r),[f,T]=t.useState(!1),[j]=t.useState(Date.now()),u=m||`var(--color-${a})`;if(t.useEffect(()=>{if(o){y(r),T(r);return}let x;if(r)y(!0),x=setTimeout(()=>T(!0),20);else{const h=Date.now()-j,d=Math.max(0,v-h);x=setTimeout(()=>{T(!1),setTimeout(()=>y(!1),300)},d)}return()=>clearTimeout(x)},[r,v,j,o]),t.useEffect(()=>{if(!o)return c?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}},[c,o]),!c)return null;const g={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}}[p],M=`drop-shadow(0 0 6px ${u}) drop-shadow(0 0 12px color-mix(in srgb, ${u} 45%, transparent))`,S=`drop-shadow(0 0 5px ${u}) drop-shadow(0 0 10px color-mix(in srgb, ${u} 40%, transparent))`,R=()=>e.jsxs("svg",{className:"animate-spin",width:g.box,height:g.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{filter:M,overflow:"visible"},children:[e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"var(--color-border-primary)",strokeWidth:g.stroke}),e.jsx("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:u,strokeWidth:g.stroke,strokeLinecap:"round",strokeDasharray:"90 150"})]}),E=()=>e.jsx("svg",{className:"animate-spin",width:g.box,height:g.box,viewBox:"0 0 50 50","aria-hidden":"true",style:{animationDuration:"1.2s",filter:S,overflow:"visible"},children:Array.from({length:12}).map((x,h)=>{const d=h/12*360;return e.jsx("rect",{x:"24",y:"4",width:"2",height:"8",rx:"1",fill:u,opacity:.15+h/12*.85,transform:`rotate(${d} 25 25)`},h)})}),w=()=>e.jsx("div",{className:"flex items-center gap-2",style:{filter:S},children:[0,1,2].map(x=>e.jsx("span",{className:"rounded-full",style:{width:g.dots,height:g.dots,backgroundColor:u,animation:`pageLoaderDot 1.2s ease-in-out ${x*.15}s infinite`}},x))}),i=()=>e.jsxs("div",{className:"relative",style:{width:g.box,height:g.box,filter:S},children:[e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:u,animation:"pageLoaderPulse 1.5s ease-out infinite"}}),e.jsx("span",{className:"absolute inset-0 rounded-full",style:{backgroundColor:u,animation:"pageLoaderPulse 1.5s ease-out 0.5s infinite"}}),e.jsx("span",{className:"absolute rounded-full",style:{top:"50%",left:"50%",width:g.dots*1.5,height:g.dots*1.5,backgroundColor:u,transform:"translate(-50%, -50%)"}})]}),N=()=>e.jsx("div",{className:"flex items-end gap-1.5",style:{height:g.bars,filter:S},children:[0,1,2,3,4].map(x=>e.jsx("span",{className:"rounded-full",style:{width:3,height:"100%",backgroundColor:u,animation:`pageLoaderBar 1s ease-in-out ${x*.1}s infinite`,transformOrigin:"bottom"}},x))}),I={spinner:e.jsx(R,{}),ring:e.jsx(E,{}),dots:e.jsx(w,{}),pulse:e.jsx(i,{}),bars:e.jsx(N,{})};if(o){const x=g.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:[k&&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:x,height:x},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:I[l]})}),n&&e.jsx("p",{className:"text-xs text-[var(--color-text-secondary)] font-mono tracking-wide",children:n})]})}return e.jsxs("div",{className:`
|
|
997
997
|
fixed inset-0 z-[10000]
|
|
998
998
|
flex items-center justify-center
|
|
999
999
|
transition-opacity duration-300
|
|
1000
|
-
${
|
|
1001
|
-
${
|
|
1002
|
-
${
|
|
1003
|
-
`,style:{background
|
|
1000
|
+
${f?"opacity-100":"opacity-0"}
|
|
1001
|
+
${L?"backdrop-blur-[12px]":""}
|
|
1002
|
+
${$}
|
|
1003
|
+
`,style:{background:L?"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:[k&&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"}),I[l],n&&e.jsx("p",{className:"text-sm text-[var(--color-text-secondary)] font-mono tracking-wide",children:n}),C&&s!==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,s))}%`,backgroundColor:u,filter:S}})}),e.jsxs("span",{className:"font-mono text-xs text-[var(--color-text-tertiary)]",children:[Math.round(s),"%"]})]})]}),e.jsx("style",{children:`
|
|
1004
1004
|
@keyframes pageLoaderDot {
|
|
1005
1005
|
0%, 80%, 100% { transform: scale(0.5); opacity: 0.4; }
|
|
1006
1006
|
40% { transform: scale(1); opacity: 1; }
|
|
@@ -1013,4 +1013,4 @@
|
|
|
1013
1013
|
0%, 100% { transform: scaleY(0.3); opacity: 0.5; }
|
|
1014
1014
|
50% { transform: scaleY(1); opacity: 1; }
|
|
1015
1015
|
}
|
|
1016
|
-
`})]})};De.displayName="PageLoader";const ft=t.createContext(void 0),Qt=({children:r})=>{const[l,a]=t.useState(!1),[m,n]=t.useState({}),[s,C]=t.useState(void 0),p=t.useRef(null)
|
|
1016
|
+
`})]})};De.displayName="PageLoader";const ft=t.createContext(void 0),Qt=({children:r})=>{const[l,a]=t.useState(!1),[m,n]=t.useState({}),[s,C]=t.useState(void 0),p=t.useRef(null),L=t.useCallback(c=>{p.current&&(clearTimeout(p.current),p.current=null),n(c||{}),C(c!=null&&c.showProgress?0:void 0),a(!0)},[]),k=t.useCallback(()=>{a(!1)},[]),v=t.useCallback(c=>{C(Math.max(0,Math.min(100,c)))},[]),o=t.useCallback(async(c,y)=>{L({minDuration:400,...y});try{return await c()}finally{k()}},[L,k]),$={show:L,hide:k,isLoading:l,setProgress:v,wrap:o};return e.jsxs(ft.Provider,{value:$,children:[r,e.jsx(De,{isLoading:l,shape:m.shape,label:m.label,progress:s,showProgress:m.showProgress,showBrand:m.showBrand,minDuration:m.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,a]=t.useState(r);t.useEffect(()=>{document.documentElement.dir=l,document.documentElement.lang=l==="rtl"?"fa":"en"},[l]);const m=t.useCallback(()=>{a(s=>s==="ltr"?"rtl":"ltr")},[]),n=t.useCallback(s=>{a(s)},[]);return{direction:l,setDirection:n,toggleDirection:m}}const Kt="0.1.0";exports.Accordion=Ve;exports.AuroraBlobs=mt;exports.Avatar=Se;exports.Badge=he;exports.BlogCard=ot;exports.Button=ge;exports.Card=Ge;exports.CharacterCard=it;exports.Checkbox=He;exports.Dropdown=qe;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=We;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;
|