Spaces:
Running
Running
""" | |
🎨 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" |