""" 🎹 Outils de crĂ©ation d'Ă©lĂ©ments Figma Design """ from .config import figma_config, make_figma_request def create_figma_rectangle(x: str, y: str, width: str, height: str, name: str = "Rectangle", color: str = "#FF0000") -> str: """ CrĂ©e un rectangle dans Figma via commentaire pour notification. Args: x (str): Position X du rectangle en pixels y (str): Position Y du rectangle en pixels width (str): Largeur du rectangle en pixels height (str): Hauteur du rectangle en pixels name (str): Nom du rectangle (dĂ©faut: Rectangle) color (str): Couleur du rectangle en format hex (dĂ©faut: #FF0000) Returns: str: Message de confirmation ou d'erreur """ if not figma_config["file_id"]: return "❌ ID du fichier requis. Utilisez configure_figma_file_id() d'abord." try: x_pos, y_pos = float(x), float(y) w, h = float(width), float(height) # Message simple sans code JavaScript complexe comment_text = f"Rectangle a creer: {name} a ({x_pos}, {y_pos}) taille {w}x{h} couleur {color}" comment_data = { "message": comment_text, "client_meta": { "x": x_pos, "y": y_pos } } result = make_figma_request(f"files/{figma_config['file_id']}/comments", "POST", comment_data) if "error" in result: return f"❌ Erreur lors de la crĂ©ation du commentaire : {result['error']}" return f"✅ Rectangle {name} créé Ă  ({x_pos}, {y_pos}) avec la taille {w}x{h}" except ValueError: return "❌ Les coordonnĂ©es et dimensions doivent ĂȘtre des nombres" def create_figma_frame(x: str, y: str, width: str, height: str, name: str = "Frame") -> str: """ CrĂ©e un frame dans Figma via commentaire pour notification. Args: x (str): Position X du frame en pixels y (str): Position Y du frame en pixels width (str): Largeur du frame en pixels height (str): Hauteur du frame en pixels name (str): Nom du frame (dĂ©faut: Frame) Returns: str: Message de confirmation ou d'erreur """ if not figma_config["file_id"]: return "❌ ID du fichier requis. Utilisez configure_figma_file_id() d'abord." try: x_pos, y_pos = float(x), float(y) w, h = float(width), float(height) comment_text = f"Frame a creer: {name} a ({x_pos}, {y_pos}) taille {w}x{h}" comment_data = { "message": comment_text, "client_meta": { "x": x_pos, "y": y_pos } } result = make_figma_request(f"files/{figma_config['file_id']}/comments", "POST", comment_data) if "error" in result: return f"❌ Erreur lors de la crĂ©ation du commentaire : {result['error']}" return f"✅ Frame {name} créé Ă  ({x_pos}, {y_pos}) avec la taille {w}x{h}" except ValueError: return "❌ Les coordonnĂ©es et dimensions doivent ĂȘtre des nombres" def create_figma_text(x: str, y: str, text: str, name: str = "Text", font_size: str = "16") -> str: """ CrĂ©e un Ă©lĂ©ment texte dans Figma via commentaire pour notification. Args: x (str): Position X du texte en pixels y (str): Position Y du texte en pixels text (str): Contenu du texte Ă  afficher name (str): Nom de l'Ă©lĂ©ment texte (dĂ©faut: Text) font_size (str): Taille de la police en pixels (dĂ©faut: 16) Returns: str: Message de confirmation ou d'erreur """ if not figma_config["file_id"]: return "❌ ID du fichier requis. Utilisez configure_figma_file_id() d'abord." try: x_pos, y_pos = float(x), float(y) size = float(font_size) comment_text = f"Texte a creer: {name} a ({x_pos}, {y_pos}) contenu: {text} taille: {size}px" comment_data = { "message": comment_text, "client_meta": { "x": x_pos, "y": y_pos } } result = make_figma_request(f"files/{figma_config['file_id']}/comments", "POST", comment_data) if "error" in result: return f"❌ Erreur lors de la crĂ©ation du commentaire : {result['error']}" return f"✅ Texte {text} créé Ă  ({x_pos}, {y_pos})" except ValueError: return "❌ Les coordonnĂ©es et la taille doivent ĂȘtre des nombres"