File size: 4,648 Bytes
a4d9764
 
 
 
 
 
fb84cc7
 
 
 
 
 
 
 
 
 
 
 
 
 
a4d9764
 
 
 
 
 
 
98b6105
 
a4d9764
 
 
 
 
 
 
 
 
 
 
 
 
 
98b6105
a4d9764
 
 
 
 
fb84cc7
 
 
 
 
 
 
 
 
 
 
 
 
a4d9764
 
 
 
 
 
 
98b6105
a4d9764
 
 
 
 
 
 
 
 
 
 
 
 
 
98b6105
a4d9764
 
 
 
 
fb84cc7
 
 
 
 
 
 
 
 
 
 
 
 
a4d9764
 
 
 
 
 
 
98b6105
a4d9764
 
 
 
 
 
 
 
 
 
 
 
 
 
98b6105
a4d9764
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
"""
🎨 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"