sigma / tools /figma_design.py
Aktraiser
probleme init2
98b6105
"""
🎨 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"