Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
65 lines
1.4 KiB
TypeScript
65 lines
1.4 KiB
TypeScript
export default function DotLoadingIcon({ className = 'size-6' }: { className?: string }) {
|
|
return (
|
|
<svg
|
|
className={className}
|
|
viewBox="0 0 200 200"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
>
|
|
<circle
|
|
cx="40"
|
|
cy="100"
|
|
fill="currentColor"
|
|
r="15"
|
|
stroke="currentColor"
|
|
strokeWidth="16"
|
|
>
|
|
<animate
|
|
attributeName="opacity"
|
|
begin="-.4"
|
|
calcMode="spline"
|
|
dur="2"
|
|
keySplines=".5 0 .5 1;.5 0 .5 1"
|
|
repeatCount="indefinite"
|
|
values="1;0;1;"
|
|
/>
|
|
</circle>
|
|
<circle
|
|
cx="100"
|
|
cy="100"
|
|
fill="currentColor"
|
|
r="15"
|
|
stroke="currentColor"
|
|
strokeWidth="16"
|
|
>
|
|
<animate
|
|
attributeName="opacity"
|
|
begin="-.2"
|
|
calcMode="spline"
|
|
dur="2"
|
|
keySplines=".5 0 .5 1;.5 0 .5 1"
|
|
repeatCount="indefinite"
|
|
values="1;0;1;"
|
|
/>
|
|
</circle>
|
|
<circle
|
|
cx="160"
|
|
cy="100"
|
|
fill="currentColor"
|
|
r="15"
|
|
stroke="currentColor"
|
|
strokeWidth="16"
|
|
>
|
|
<animate
|
|
attributeName="opacity"
|
|
begin="0"
|
|
calcMode="spline"
|
|
dur="2"
|
|
keySplines=".5 0 .5 1;.5 0 .5 1"
|
|
repeatCount="indefinite"
|
|
values="1;0;1;"
|
|
/>
|
|
</circle>
|
|
</svg>
|
|
)
|
|
}
|