+
-
-
-
-
-
-
+
+
+ Hello! I'm your Marketplace Assistant. How can I help you today? You can select one of the quick actions below or upload a file to analyze.
+
-
+
-
+
+ draw() {
+ ctx.save();
+ ctx.translate(this.x, this.y);
+ ctx.fillStyle = this.color;
+
+ ctx.beginPath();
+ const startAngle = this.angles[this.numPoints - 1];
+ const startRadius = this.radii[this.numPoints - 1] * this.size;
+ ctx.moveTo(Math.cos(startAngle) * startRadius, Math.sin(startAngle) * startRadius);
+
+ for (let i = 0; i < this.numPoints; i++) {
+ const radius = this.radii[i] * this.size;
+ const nextRadius = this.radii[(i + 1) % this.numPoints] * this.size;
+ const angle = this.angles[i];
+ const nextAngle = this.angles[(i + 1) % this.numPoints];
+
+ const xc = (Math.cos(angle) * radius + Math.cos(nextAngle) * nextRadius) / 2;
+ const yc = (Math.sin(angle) * radius + Math.sin(nextAngle) * nextRadius) / 2;
+
+ ctx.quadraticCurveTo(Math.cos(angle) * radius, Math.sin(angle) * radius, xc, yc);
+ }
+ ctx.closePath();
+ ctx.fill();
+ ctx.restore();
+ }
+ }
+
+ let blobs = [];
+ const colors = [
+ 'rgba(234, 234, 234, 0.4)',
+ 'rgba(209, 227, 243, 0.4)',
+ 'rgba(192, 217, 234, 0.4)',
+ 'rgba(175, 207, 225, 0.4)'
+ ];
+
+ function init() {
+ blobs = [];
+ let numBlobs = Math.floor(window.innerWidth / 150);
+ for (let i = 0; i < numBlobs; i++) {
+ let size = Math.random() * 80 + 80;
+ let x = Math.random() * (canvas.width - size * 2) + size;
+ let y = Math.random() * (canvas.height - size * 2) + size;
+ let color = colors[i % colors.length];
+ blobs.push(new Blob(x, y, size, color));
+ }
+ }
+
+ function animate() {
+ requestAnimationFrame(animate);
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+
+ ctx.globalCompositeOperation = 'lighter';
+
+ blobs.forEach(blob => {
+ blob.update();
+ blob.draw();
+ });
+ }
+
+ window.addEventListener('resize', () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+ init();
+ });
+
+ init();
+ animate();
+
+
+
-