@pinepaper.studio/mcp-server 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/taxonomy/classifier.d.ts +74 -0
  2. package/dist/taxonomy/classifier.d.ts.map +1 -0
  3. package/dist/taxonomy/classifier.js +448 -0
  4. package/dist/taxonomy/classifier.js.map +1 -0
  5. package/dist/taxonomy/error-recovery.d.ts +55 -0
  6. package/dist/taxonomy/error-recovery.d.ts.map +1 -0
  7. package/dist/taxonomy/error-recovery.js +205 -0
  8. package/dist/taxonomy/error-recovery.js.map +1 -0
  9. package/dist/taxonomy/index.d.ts +24 -0
  10. package/dist/taxonomy/index.d.ts.map +1 -0
  11. package/dist/taxonomy/index.js +25 -0
  12. package/dist/taxonomy/index.js.map +1 -0
  13. package/dist/taxonomy/matcher.d.ts +104 -0
  14. package/dist/taxonomy/matcher.d.ts.map +1 -0
  15. package/dist/taxonomy/matcher.js +473 -0
  16. package/dist/taxonomy/matcher.js.map +1 -0
  17. package/dist/taxonomy/registry.d.ts +56 -0
  18. package/dist/taxonomy/registry.d.ts.map +1 -0
  19. package/dist/taxonomy/registry.js +950 -0
  20. package/dist/taxonomy/registry.js.map +1 -0
  21. package/dist/taxonomy/types.d.ts +207 -0
  22. package/dist/taxonomy/types.d.ts.map +1 -0
  23. package/dist/taxonomy/types.js +29 -0
  24. package/dist/taxonomy/types.js.map +1 -0
  25. package/dist/tools/definitions.d.ts.map +1 -1
  26. package/dist/tools/definitions.js +266 -0
  27. package/dist/tools/definitions.js.map +1 -1
  28. package/dist/tools/handlers.d.ts.map +1 -1
  29. package/dist/tools/handlers.js +19 -1
  30. package/dist/tools/handlers.js.map +1 -1
  31. package/dist/tools/p5-compat/index.d.ts +8 -0
  32. package/dist/tools/p5-compat/index.d.ts.map +1 -0
  33. package/dist/tools/p5-compat/index.js +8 -0
  34. package/dist/tools/p5-compat/index.js.map +1 -0
  35. package/dist/tools/p5-compat/p5-helpers.d.ts +25 -0
  36. package/dist/tools/p5-compat/p5-helpers.d.ts.map +1 -0
  37. package/dist/tools/p5-compat/p5-helpers.js +399 -0
  38. package/dist/tools/p5-compat/p5-helpers.js.map +1 -0
  39. package/dist/types/code-generator.d.ts +9 -1
  40. package/dist/types/code-generator.d.ts.map +1 -1
  41. package/dist/types/code-generator.js +176 -1
  42. package/dist/types/code-generator.js.map +1 -1
  43. package/dist/types/schemas.d.ts +227 -0
  44. package/dist/types/schemas.d.ts.map +1 -1
  45. package/dist/types/schemas.js +57 -0
  46. package/dist/types/schemas.js.map +1 -1
  47. package/manifest.json +9 -1
  48. package/package.json +1 -1
@@ -0,0 +1,950 @@
1
+ /**
2
+ * Multilingual Semantic Taxonomy Registry
3
+ *
4
+ * Comprehensive registry of concepts mapped to MCP tools.
5
+ * Each concept has terms in 41+ languages for robust intent detection.
6
+ *
7
+ * Schema.org References:
8
+ * - Actions: https://schema.org/Action
9
+ * - Creative Work: https://schema.org/CreativeWork
10
+ * - Visual Artwork: https://schema.org/VisualArtwork
11
+ * - Drawing: https://schema.org/Drawing
12
+ * - Thing: https://schema.org/Thing
13
+ *
14
+ * Wikidata References (for concepts not in schema.org):
15
+ * - Animation: https://www.wikidata.org/wiki/Q11425
16
+ * - Rotation: https://www.wikidata.org/wiki/Q7397
17
+ * - Orbit: https://www.wikidata.org/wiki/Q54363
18
+ */
19
+ /**
20
+ * Common Schema.org type definitions for reuse
21
+ */
22
+ const SCHEMA_TYPES = {
23
+ // Actions
24
+ CreateAction: {
25
+ '@type': 'CreateAction',
26
+ '@id': 'https://schema.org/CreateAction',
27
+ },
28
+ UpdateAction: {
29
+ '@type': 'UpdateAction',
30
+ '@id': 'https://schema.org/UpdateAction',
31
+ },
32
+ MoveAction: {
33
+ '@type': 'MoveAction',
34
+ '@id': 'https://schema.org/MoveAction',
35
+ },
36
+ DrawAction: {
37
+ '@type': 'DrawAction',
38
+ '@id': 'https://schema.org/DrawAction',
39
+ },
40
+ // Things
41
+ VisualArtwork: {
42
+ '@type': 'VisualArtwork',
43
+ '@id': 'https://schema.org/VisualArtwork',
44
+ },
45
+ Drawing: {
46
+ '@type': 'Drawing',
47
+ '@id': 'https://schema.org/Drawing',
48
+ },
49
+ // Wikidata concepts (for items not in schema.org)
50
+ Animation: {
51
+ '@type': 'Thing',
52
+ '@id': 'https://www.wikidata.org/wiki/Q11425',
53
+ sameAs: ['https://dbpedia.org/resource/Animation'],
54
+ },
55
+ Rotation: {
56
+ '@type': 'Thing',
57
+ '@id': 'https://www.wikidata.org/wiki/Q7397',
58
+ sameAs: ['https://dbpedia.org/resource/Rotation'],
59
+ },
60
+ OrbitalMotion: {
61
+ '@type': 'Thing',
62
+ '@id': 'https://www.wikidata.org/wiki/Q54363',
63
+ sameAs: ['https://dbpedia.org/resource/Orbit'],
64
+ },
65
+ Circle: {
66
+ '@type': 'Thing',
67
+ '@id': 'https://www.wikidata.org/wiki/Q17278',
68
+ sameAs: ['https://dbpedia.org/resource/Circle'],
69
+ },
70
+ Rectangle: {
71
+ '@type': 'Thing',
72
+ '@id': 'https://www.wikidata.org/wiki/Q209',
73
+ sameAs: ['https://dbpedia.org/resource/Rectangle'],
74
+ },
75
+ Star: {
76
+ '@type': 'Thing',
77
+ '@id': 'https://www.wikidata.org/wiki/Q58043',
78
+ sameAs: ['https://dbpedia.org/resource/Star_polygon'],
79
+ },
80
+ Polygon: {
81
+ '@type': 'Thing',
82
+ '@id': 'https://www.wikidata.org/wiki/Q37555',
83
+ sameAs: ['https://dbpedia.org/resource/Polygon'],
84
+ },
85
+ Line: {
86
+ '@type': 'Thing',
87
+ '@id': 'https://www.wikidata.org/wiki/Q37105',
88
+ sameAs: ['https://dbpedia.org/resource/Line_(geometry)'],
89
+ },
90
+ Text: {
91
+ '@type': 'Text',
92
+ '@id': 'https://schema.org/Text',
93
+ },
94
+ Wave: {
95
+ '@type': 'Thing',
96
+ '@id': 'https://www.wikidata.org/wiki/Q11396',
97
+ sameAs: ['https://dbpedia.org/resource/Wave'],
98
+ },
99
+ Grid: {
100
+ '@type': 'Thing',
101
+ '@id': 'https://www.wikidata.org/wiki/Q2221906',
102
+ sameAs: ['https://dbpedia.org/resource/Grid_(graphic_design)'],
103
+ },
104
+ ElectronicCircuit: {
105
+ '@type': 'Thing',
106
+ '@id': 'https://www.wikidata.org/wiki/Q163255',
107
+ sameAs: ['https://dbpedia.org/resource/Electronic_circuit'],
108
+ },
109
+ };
110
+ /**
111
+ * Motion-related taxonomy nodes
112
+ */
113
+ export const MOTION_TAXONOMY = [
114
+ // Circular Motion
115
+ {
116
+ id: 'orbital_motion',
117
+ parent: 'circular_motion',
118
+ category: 'motion',
119
+ priority: 10,
120
+ schema: SCHEMA_TYPES.OrbitalMotion,
121
+ tool: {
122
+ tool: 'pinepaper_add_relation',
123
+ defaultParams: { relationType: 'orbits' },
124
+ parameterExtractors: [
125
+ {
126
+ param: 'radius',
127
+ patterns: {
128
+ en: [/(\d+)\s*(?:px|pixels?)?\s*(?:radius|away|from|distance)/i, /radius\s*(?:of\s*)?(\d+)/i],
129
+ es: [/(\d+)\s*(?:px|píxeles?)?\s*(?:radio|lejos|distancia)/i],
130
+ fr: [/(\d+)\s*(?:px|pixels?)?\s*(?:rayon|distance)/i],
131
+ de: [/(\d+)\s*(?:px|Pixel)?\s*(?:Radius|Abstand)/i],
132
+ 'zh-CN': [/(\d+)\s*(?:像素|px)?\s*(?:半径|距离)/],
133
+ ja: [/(\d+)\s*(?:ピクセル|px)?\s*(?:半径|距離)/],
134
+ },
135
+ transform: (match) => parseInt(match, 10),
136
+ },
137
+ {
138
+ param: 'speed',
139
+ patterns: {
140
+ en: [/speed\s*(?:of\s*)?(\d+(?:\.\d+)?)/i, /(\d+(?:\.\d+)?)\s*speed/i],
141
+ es: [/velocidad\s*(?:de\s*)?(\d+(?:\.\d+)?)/i],
142
+ fr: [/vitesse\s*(?:de\s*)?(\d+(?:\.\d+)?)/i],
143
+ },
144
+ transform: (match) => parseFloat(match),
145
+ },
146
+ ],
147
+ },
148
+ terms: {
149
+ en: ['orbit', 'revolve', 'circle around', 'go around', 'revolve around', 'orbital motion', 'orbiting'],
150
+ es: ['orbitar', 'girar alrededor', 'dar vueltas alrededor', 'revolucionar', 'orbita', 'órbita'],
151
+ fr: ['orbiter', 'tourner autour', 'graviter', 'faire le tour', 'orbite', 'révolution'],
152
+ de: ['umkreisen', 'kreisen um', 'umlaufen', 'Orbit', 'Umlaufbahn'],
153
+ it: ['orbitare', 'girare intorno', 'ruotare attorno', 'orbita'],
154
+ pt: ['orbitar', 'girar em torno', 'dar volta', 'órbita'],
155
+ 'pt-BR': ['orbitar', 'girar em torno', 'dar volta ao redor', 'órbita'],
156
+ nl: ['draaien om', 'cirkelen rond', 'omcirkelen', 'baan'],
157
+ pl: ['orbitować', 'krążyć wokół', 'obiegać', 'orbita'],
158
+ ru: ['орбита', 'вращаться вокруг', 'кружить вокруг', 'облетать'],
159
+ uk: ['орбіта', 'обертатися навколо', 'кружляти навколо'],
160
+ 'zh-CN': ['轨道', '环绕', '围绕', '绕着转', '公转'],
161
+ 'zh-TW': ['軌道', '環繞', '圍繞', '繞著轉'],
162
+ ja: ['軌道を回る', '周回する', '回る', '公転', 'オービット'],
163
+ ko: ['궤도를 돌다', '공전하다', '돌다', '궤도'],
164
+ th: ['โคจร', 'หมุนรอบ', 'วงโคจร'],
165
+ vi: ['quỹ đạo', 'quay quanh', 'xoay quanh'],
166
+ id: ['mengorbit', 'berputar mengelilingi', 'orbit'],
167
+ ms: ['mengorbit', 'berputar mengelilingi', 'orbit'],
168
+ tl: ['umiinog', 'paikutin', 'orbita'],
169
+ hi: ['कक्षा में घूमना', 'परिक्रमा करना', 'चारों ओर घूमना', 'कक्षा'],
170
+ bn: ['কক্ষপথে ঘোরা', 'পরিক্রমা করা', 'চারপাশে ঘোরা'],
171
+ ta: ['சுற்றுப்பாதை', 'சுற்றி வர', 'வட்டமிட'],
172
+ te: ['కక్ష్యలో తిరగడం', 'చుట్టూ తిరగడం'],
173
+ mr: ['कक्षेत फिरणे', 'भोवती फिरणे'],
174
+ gu: ['ભ્રમણકક્ષામાં ફરવું', 'આસપાસ ફરવું'],
175
+ kn: ['ಕಕ್ಷೆಯಲ್ಲಿ ಸುತ್ತು', 'ಸುತ್ತಲೂ ತಿರುಗು'],
176
+ ml: ['ഭ്രമണപഥത്തിൽ കറങ്ങുക', 'ചുറ്റും കറങ്ങുക'],
177
+ pa: ['ਔਰਬਿਟ ਵਿੱਚ ਘੁੰਮਣਾ', 'ਆਲੇ-ਦੁਆਲੇ ਘੁੰਮਣਾ'],
178
+ ar: ['يدور حول', 'يحوم حول', 'مدار', 'الدوران حول'],
179
+ he: ['להקיף', 'לסובב סביב', 'מסלול'],
180
+ fa: ['مدار', 'چرخیدن دور', 'گردش'],
181
+ tr: ['yörünge', 'etrafında dönmek', 'çevresinde dönmek'],
182
+ sv: ['kretsa runt', 'cirkla kring', 'omloppsbana'],
183
+ da: ['kredse om', 'cirkle rundt', 'bane'],
184
+ no: ['kretse rundt', 'sirkle rundt', 'bane'],
185
+ fi: ['kiertää', 'pyöriä ympäri', 'rata'],
186
+ cs: ['obíhat', 'kroužit kolem', 'oběžná dráha'],
187
+ el: ['τροχιά', 'περιστρέφομαι γύρω', 'κινούμαι σε τροχιά'],
188
+ hu: ['keringeni', 'körözni', 'pálya'],
189
+ ro: ['orbita', 'a se roti în jurul', 'a înconjura'],
190
+ },
191
+ },
192
+ {
193
+ id: 'rotation',
194
+ parent: 'circular_motion',
195
+ category: 'transformation',
196
+ priority: 8,
197
+ schema: SCHEMA_TYPES.Rotation,
198
+ tool: {
199
+ tool: 'pinepaper_animate',
200
+ defaultParams: { animationType: 'rotate' },
201
+ parameterExtractors: [
202
+ {
203
+ param: 'speed',
204
+ patterns: {
205
+ en: [/speed\s*(?:of\s*)?(\d+(?:\.\d+)?)/i, /(\d+(?:\.\d+)?)\s*(?:rpm|rotations)/i],
206
+ es: [/velocidad\s*(?:de\s*)?(\d+(?:\.\d+)?)/i],
207
+ fr: [/vitesse\s*(?:de\s*)?(\d+(?:\.\d+)?)/i],
208
+ },
209
+ transform: (match) => parseFloat(match),
210
+ },
211
+ ],
212
+ },
213
+ terms: {
214
+ en: ['rotate', 'spin', 'turn', 'twirl', 'revolve on axis', 'spinning', 'rotation'],
215
+ es: ['rotar', 'girar', 'dar vueltas', 'hacer girar', 'rotación', 'giro'],
216
+ fr: ['tourner', 'pivoter', 'faire tourner', 'rotation', 'tournoyer'],
217
+ de: ['drehen', 'rotieren', 'sich drehen', 'kreiseln', 'Rotation'],
218
+ it: ['ruotare', 'girare', 'roteare', 'rotazione'],
219
+ pt: ['rodar', 'girar', 'rotacionar', 'rotação'],
220
+ 'pt-BR': ['rodar', 'girar', 'rotacionar', 'rotação'],
221
+ nl: ['draaien', 'roteren', 'tollen', 'rotatie'],
222
+ pl: ['obracać', 'kręcić', 'wirować', 'rotacja'],
223
+ ru: ['вращать', 'крутить', 'поворачивать', 'вращение'],
224
+ uk: ['обертати', 'крутити', 'повертати', 'обертання'],
225
+ 'zh-CN': ['旋转', '转动', '打转', '自转'],
226
+ 'zh-TW': ['旋轉', '轉動', '打轉'],
227
+ ja: ['回転', '回す', 'スピン', '自転'],
228
+ ko: ['회전', '돌리다', '스핀', '자전'],
229
+ th: ['หมุน', 'หมุนรอบตัวเอง'],
230
+ vi: ['xoay', 'quay', 'xoay tròn'],
231
+ id: ['memutar', 'berputar', 'rotasi'],
232
+ ms: ['memutar', 'berputar', 'putaran'],
233
+ tl: ['iikot', 'paikutin', 'umikot'],
234
+ hi: ['घूमना', 'घुमाना', 'चक्कर लगाना'],
235
+ bn: ['ঘোরা', 'ঘোরানো', 'আবর্তন'],
236
+ ar: ['يدور', 'دوران', 'تدوير'],
237
+ he: ['לסובב', 'להסתובב', 'סיבוב'],
238
+ fa: ['چرخیدن', 'دوران', 'چرخش'],
239
+ tr: ['döndürmek', 'dönmek', 'rotasyon'],
240
+ sv: ['rotera', 'snurra', 'vrida'],
241
+ da: ['rotere', 'dreje', 'snurre'],
242
+ no: ['rotere', 'dreie', 'snurre'],
243
+ fi: ['pyörittää', 'kiertää', 'rotaatio'],
244
+ cs: ['otáčet', 'rotovat', 'točit'],
245
+ el: ['περιστρέφω', 'γυρίζω', 'περιστροφή'],
246
+ hu: ['forgatni', 'pörgetni', 'forgás'],
247
+ ro: ['a roti', 'a învârti', 'rotație'],
248
+ },
249
+ },
250
+ // Linear Motion
251
+ {
252
+ id: 'slide',
253
+ parent: 'linear_motion',
254
+ category: 'motion',
255
+ priority: 7,
256
+ schema: SCHEMA_TYPES.MoveAction,
257
+ tool: {
258
+ tool: 'pinepaper_animate',
259
+ defaultParams: { animationType: 'slide' },
260
+ },
261
+ terms: {
262
+ en: ['slide', 'glide', 'move sideways', 'drift', 'sliding', 'pan'],
263
+ es: ['deslizar', 'mover', 'desplazar', 'deslizamiento'],
264
+ fr: ['glisser', 'coulisser', 'déplacer', 'glissement'],
265
+ de: ['gleiten', 'schieben', 'rutschen', 'Gleiten'],
266
+ it: ['scivolare', 'scorrere', 'spostare'],
267
+ pt: ['deslizar', 'mover', 'escorregar'],
268
+ 'pt-BR': ['deslizar', 'mover', 'escorregar'],
269
+ nl: ['glijden', 'schuiven', 'verschuiven'],
270
+ pl: ['przesuwać', 'ślizgać', 'sunąć'],
271
+ ru: ['скользить', 'двигать', 'сдвигать'],
272
+ uk: ['ковзати', 'рухати', 'зсувати'],
273
+ 'zh-CN': ['滑动', '移动', '平移'],
274
+ 'zh-TW': ['滑動', '移動', '平移'],
275
+ ja: ['スライド', '滑る', '移動'],
276
+ ko: ['슬라이드', '미끄러지다', '이동'],
277
+ ar: ['انزلاق', 'تحريك', 'زحف'],
278
+ he: ['להחליק', 'לגלוש', 'להזיז'],
279
+ tr: ['kaydırmak', 'sürmek', 'hareket ettirmek'],
280
+ },
281
+ },
282
+ {
283
+ id: 'bounce',
284
+ parent: 'linear_motion',
285
+ category: 'motion',
286
+ priority: 7,
287
+ schema: SCHEMA_TYPES.Animation,
288
+ tool: {
289
+ tool: 'pinepaper_animate',
290
+ defaultParams: { animationType: 'bounce' },
291
+ },
292
+ terms: {
293
+ en: ['bounce', 'hop', 'jump', 'bouncing', 'spring', 'boing'],
294
+ es: ['rebotar', 'saltar', 'brincar', 'rebote'],
295
+ fr: ['rebondir', 'sauter', 'bondir', 'rebond'],
296
+ de: ['hüpfen', 'springen', 'prallen', 'Sprung'],
297
+ it: ['rimbalzare', 'saltare', 'balzare'],
298
+ pt: ['saltar', 'pular', 'quicar'],
299
+ 'pt-BR': ['pular', 'quicar', 'saltar'],
300
+ nl: ['stuiteren', 'springen', 'opspringen'],
301
+ pl: ['skakać', 'odbijać się', 'podskakiwać'],
302
+ ru: ['прыгать', 'подпрыгивать', 'отскакивать'],
303
+ uk: ['стрибати', 'підстрибувати', 'відскакувати'],
304
+ 'zh-CN': ['弹跳', '跳动', '蹦'],
305
+ 'zh-TW': ['彈跳', '跳動'],
306
+ ja: ['バウンス', '跳ねる', '弾む'],
307
+ ko: ['튀다', '바운스', '점프'],
308
+ ar: ['ارتداد', 'قفز', 'نط'],
309
+ he: ['לקפוץ', 'לנתר', 'קפיצה'],
310
+ tr: ['zıplamak', 'sıçramak', 'sekme'],
311
+ },
312
+ },
313
+ {
314
+ id: 'follow',
315
+ parent: 'linear_motion',
316
+ category: 'relation',
317
+ priority: 9,
318
+ schema: {
319
+ '@type': 'FollowAction',
320
+ '@id': 'https://schema.org/FollowAction',
321
+ },
322
+ tool: {
323
+ tool: 'pinepaper_add_relation',
324
+ defaultParams: { relationType: 'follows' },
325
+ },
326
+ terms: {
327
+ en: ['follow', 'track', 'chase', 'pursue', 'following', 'trail'],
328
+ es: ['seguir', 'perseguir', 'rastrear', 'seguimiento'],
329
+ fr: ['suivre', 'poursuivre', 'pister', 'traquer'],
330
+ de: ['folgen', 'verfolgen', 'nachgehen', 'Verfolgung'],
331
+ it: ['seguire', 'inseguire', 'tracciare'],
332
+ pt: ['seguir', 'perseguir', 'rastrear'],
333
+ 'pt-BR': ['seguir', 'perseguir', 'rastrear'],
334
+ nl: ['volgen', 'achtervolgen', 'nastreven'],
335
+ pl: ['śledzić', 'podążać', 'tropić'],
336
+ ru: ['следовать', 'преследовать', 'идти за'],
337
+ uk: ['слідувати', 'переслідувати', 'йти за'],
338
+ 'zh-CN': ['跟随', '追踪', '跟着'],
339
+ 'zh-TW': ['跟隨', '追蹤', '跟著'],
340
+ ja: ['追従', '追跡', 'フォロー'],
341
+ ko: ['따라가다', '추적', '따르다'],
342
+ ar: ['يتبع', 'يلاحق', 'تتبع'],
343
+ he: ['לעקוב', 'לרדוף', 'מעקב'],
344
+ tr: ['takip etmek', 'izlemek', 'peşinden gitmek'],
345
+ },
346
+ },
347
+ {
348
+ id: 'attached',
349
+ parent: 'relation',
350
+ category: 'relation',
351
+ priority: 9,
352
+ schema: {
353
+ '@type': 'Action',
354
+ '@id': 'https://schema.org/Action',
355
+ properties: { actionStatus: 'ConnectAction' },
356
+ },
357
+ tool: {
358
+ tool: 'pinepaper_add_relation',
359
+ defaultParams: { relationType: 'attached_to' },
360
+ },
361
+ terms: {
362
+ en: ['attach', 'stick', 'connect', 'parent', 'attached to', 'linked', 'join'],
363
+ es: ['adjuntar', 'pegar', 'conectar', 'unir', 'vincular'],
364
+ fr: ['attacher', 'coller', 'lier', 'connecter', 'joindre'],
365
+ de: ['anhängen', 'kleben', 'verbinden', 'anschließen'],
366
+ it: ['allegare', 'attaccare', 'collegare', 'connettere'],
367
+ pt: ['anexar', 'colar', 'conectar', 'ligar'],
368
+ 'pt-BR': ['anexar', 'colar', 'conectar', 'ligar'],
369
+ nl: ['bevestigen', 'plakken', 'verbinden', 'koppelen'],
370
+ pl: ['dołączyć', 'przykleić', 'połączyć', 'przymocować'],
371
+ ru: ['прикрепить', 'присоединить', 'связать', 'привязать'],
372
+ uk: ['прикріпити', 'приєднати', 'зв\'язати'],
373
+ 'zh-CN': ['附加', '连接', '粘贴', '绑定'],
374
+ 'zh-TW': ['附加', '連接', '貼上', '綁定'],
375
+ ja: ['アタッチ', '接続', '結合', 'くっつける'],
376
+ ko: ['붙이다', '연결', '부착'],
377
+ ar: ['إرفاق', 'لصق', 'ربط', 'توصيل'],
378
+ he: ['לצרף', 'להדביק', 'לחבר'],
379
+ tr: ['bağlamak', 'yapıştırmak', 'eklemek'],
380
+ },
381
+ },
382
+ ];
383
+ /**
384
+ * Transformation-related taxonomy nodes
385
+ */
386
+ export const TRANSFORMATION_TAXONOMY = [
387
+ {
388
+ id: 'pulse',
389
+ category: 'transformation',
390
+ priority: 7,
391
+ schema: SCHEMA_TYPES.Animation,
392
+ tool: {
393
+ tool: 'pinepaper_animate',
394
+ defaultParams: { animationType: 'pulse' },
395
+ },
396
+ terms: {
397
+ en: ['pulse', 'throb', 'beat', 'pulsate', 'pulsing', 'heartbeat', 'breathe'],
398
+ es: ['pulsar', 'latir', 'palpitar', 'pulso'],
399
+ fr: ['pulser', 'battre', 'palpiter', 'pulsation'],
400
+ de: ['pulsieren', 'pochen', 'schlagen', 'Puls'],
401
+ it: ['pulsare', 'battere', 'palpitare'],
402
+ pt: ['pulsar', 'bater', 'palpitar'],
403
+ 'pt-BR': ['pulsar', 'bater', 'palpitar'],
404
+ nl: ['pulseren', 'kloppen', 'slaan'],
405
+ pl: ['pulsować', 'bić', 'tętnić'],
406
+ ru: ['пульсировать', 'биться', 'пульс'],
407
+ uk: ['пульсувати', 'битися', 'пульс'],
408
+ 'zh-CN': ['脉冲', '跳动', '脉动', '呼吸效果'],
409
+ 'zh-TW': ['脈衝', '跳動', '脈動'],
410
+ ja: ['パルス', '脈動', '鼓動'],
411
+ ko: ['펄스', '맥박', '박동'],
412
+ ar: ['نبض', 'خفقان', 'نبضة'],
413
+ he: ['פועם', 'דופק', 'פעימה'],
414
+ tr: ['nabız', 'atım', 'titreşim'],
415
+ },
416
+ },
417
+ {
418
+ id: 'fade',
419
+ category: 'transformation',
420
+ priority: 7,
421
+ schema: SCHEMA_TYPES.Animation,
422
+ tool: {
423
+ tool: 'pinepaper_animate',
424
+ defaultParams: { animationType: 'fade' },
425
+ },
426
+ terms: {
427
+ en: ['fade', 'fade in', 'fade out', 'appear', 'disappear', 'vanish', 'transparent', 'opacity'],
428
+ es: ['desvanecer', 'aparecer', 'desaparecer', 'fundido', 'transparente'],
429
+ fr: ['fondu', 'apparaître', 'disparaître', 'estomper', 'transparent'],
430
+ de: ['einblenden', 'ausblenden', 'verblassen', 'erscheinen', 'verschwinden'],
431
+ it: ['sfumare', 'apparire', 'scomparire', 'dissolvenza'],
432
+ pt: ['desvanecer', 'aparecer', 'desaparecer', 'fade'],
433
+ 'pt-BR': ['desvanecer', 'aparecer', 'desaparecer', 'fade'],
434
+ nl: ['vervagen', 'verschijnen', 'verdwijnen', 'fade'],
435
+ pl: ['zanikać', 'pojawiać się', 'znikać', 'fade'],
436
+ ru: ['затухать', 'появляться', 'исчезать', 'прозрачность'],
437
+ uk: ['затухати', 'з\'являтися', 'зникати'],
438
+ 'zh-CN': ['淡入', '淡出', '渐变', '透明度', '消失'],
439
+ 'zh-TW': ['淡入', '淡出', '漸變', '透明度'],
440
+ ja: ['フェード', '表示', '消える', '透明度'],
441
+ ko: ['페이드', '나타나다', '사라지다', '투명도'],
442
+ ar: ['تلاشي', 'ظهور', 'اختفاء', 'شفافية'],
443
+ he: ['דעיכה', 'להופיע', 'להיעלם', 'שקיפות'],
444
+ tr: ['solmak', 'belirmek', 'kaybolmak', 'saydamlık'],
445
+ },
446
+ },
447
+ {
448
+ id: 'wobble',
449
+ category: 'transformation',
450
+ priority: 6,
451
+ schema: SCHEMA_TYPES.Animation,
452
+ tool: {
453
+ tool: 'pinepaper_animate',
454
+ defaultParams: { animationType: 'wobble' },
455
+ },
456
+ terms: {
457
+ en: ['wobble', 'shake', 'jiggle', 'wiggle', 'quiver', 'tremble', 'vibrate'],
458
+ es: ['tambalear', 'agitar', 'temblar', 'vibrar'],
459
+ fr: ['vaciller', 'secouer', 'trembler', 'vibrer'],
460
+ de: ['wackeln', 'schütteln', 'zittern', 'vibrieren'],
461
+ it: ['oscillare', 'scuotere', 'tremare', 'vibrare'],
462
+ pt: ['balançar', 'agitar', 'tremer', 'vibrar'],
463
+ 'pt-BR': ['balançar', 'agitar', 'tremer', 'vibrar'],
464
+ nl: ['wiebelen', 'schudden', 'trillen'],
465
+ pl: ['chwiać się', 'trząść', 'drgać'],
466
+ ru: ['дрожать', 'трястись', 'вибрировать'],
467
+ uk: ['хитатися', 'трястися', 'вібрувати'],
468
+ 'zh-CN': ['摇晃', '抖动', '震动', '颤抖'],
469
+ 'zh-TW': ['搖晃', '抖動', '震動'],
470
+ ja: ['ゆらゆら', '震える', '振動'],
471
+ ko: ['흔들리다', '떨다', '진동'],
472
+ ar: ['اهتزاز', 'رجفة', 'ارتعاش'],
473
+ he: ['להתנדנד', 'לרעוד', 'רטט'],
474
+ tr: ['sallanmak', 'titremek', 'titreşmek'],
475
+ },
476
+ },
477
+ ];
478
+ /**
479
+ * Item creation taxonomy nodes
480
+ */
481
+ export const ITEM_TAXONOMY = [
482
+ {
483
+ id: 'create_circle',
484
+ category: 'item',
485
+ priority: 8,
486
+ schema: SCHEMA_TYPES.Circle,
487
+ tool: {
488
+ tool: 'pinepaper_create_item',
489
+ defaultParams: { itemType: 'circle' },
490
+ },
491
+ terms: {
492
+ en: ['circle', 'dot', 'ball', 'sphere', 'round', 'orb'],
493
+ es: ['círculo', 'punto', 'bola', 'esfera', 'redondo'],
494
+ fr: ['cercle', 'point', 'boule', 'sphère', 'rond'],
495
+ de: ['Kreis', 'Punkt', 'Kugel', 'Ball', 'rund'],
496
+ it: ['cerchio', 'punto', 'palla', 'sfera', 'rotondo'],
497
+ pt: ['círculo', 'ponto', 'bola', 'esfera'],
498
+ 'pt-BR': ['círculo', 'ponto', 'bola', 'bolinha'],
499
+ nl: ['cirkel', 'punt', 'bal', 'bol', 'rond'],
500
+ pl: ['koło', 'okrąg', 'kula', 'punkt'],
501
+ ru: ['круг', 'точка', 'шар', 'сфера'],
502
+ uk: ['коло', 'точка', 'куля', 'сфера'],
503
+ 'zh-CN': ['圆', '圆形', '球', '点'],
504
+ 'zh-TW': ['圓', '圓形', '球', '點'],
505
+ ja: ['円', '丸', 'サークル', '球'],
506
+ ko: ['원', '동그라미', '구', '점'],
507
+ hi: ['वृत्त', 'गोला', 'बिंदु'],
508
+ ar: ['دائرة', 'نقطة', 'كرة'],
509
+ he: ['עיגול', 'נקודה', 'כדור'],
510
+ tr: ['daire', 'çember', 'nokta', 'top'],
511
+ },
512
+ },
513
+ {
514
+ id: 'create_rectangle',
515
+ category: 'item',
516
+ priority: 8,
517
+ schema: SCHEMA_TYPES.Rectangle,
518
+ tool: {
519
+ tool: 'pinepaper_create_item',
520
+ defaultParams: { itemType: 'rectangle' },
521
+ },
522
+ terms: {
523
+ en: ['rectangle', 'square', 'box', 'rect', 'block', 'card'],
524
+ es: ['rectángulo', 'cuadrado', 'caja', 'bloque'],
525
+ fr: ['rectangle', 'carré', 'boîte', 'bloc'],
526
+ de: ['Rechteck', 'Quadrat', 'Box', 'Block'],
527
+ it: ['rettangolo', 'quadrato', 'scatola', 'blocco'],
528
+ pt: ['retângulo', 'quadrado', 'caixa', 'bloco'],
529
+ 'pt-BR': ['retângulo', 'quadrado', 'caixa', 'bloco'],
530
+ nl: ['rechthoek', 'vierkant', 'doos', 'blok'],
531
+ pl: ['prostokąt', 'kwadrat', 'pudełko', 'blok'],
532
+ ru: ['прямоугольник', 'квадрат', 'коробка', 'блок'],
533
+ uk: ['прямокутник', 'квадрат', 'коробка', 'блок'],
534
+ 'zh-CN': ['矩形', '长方形', '正方形', '方块'],
535
+ 'zh-TW': ['矩形', '長方形', '正方形', '方塊'],
536
+ ja: ['四角形', '長方形', '正方形', 'ボックス'],
537
+ ko: ['사각형', '직사각형', '정사각형', '상자'],
538
+ ar: ['مستطيل', 'مربع', 'صندوق'],
539
+ he: ['מלבן', 'ריבוע', 'קופסה'],
540
+ tr: ['dikdörtgen', 'kare', 'kutu'],
541
+ },
542
+ },
543
+ {
544
+ id: 'create_star',
545
+ category: 'item',
546
+ priority: 8,
547
+ schema: SCHEMA_TYPES.Star,
548
+ tool: {
549
+ tool: 'pinepaper_create_item',
550
+ defaultParams: { itemType: 'star' },
551
+ },
552
+ terms: {
553
+ en: ['star', 'asterisk', 'sparkle', 'starburst'],
554
+ es: ['estrella', 'asterisco', 'destello'],
555
+ fr: ['étoile', 'astérisque', 'étincelle'],
556
+ de: ['Stern', 'Sternchen', 'Funkeln'],
557
+ it: ['stella', 'asterisco', 'scintilla'],
558
+ pt: ['estrela', 'asterisco', 'brilho'],
559
+ 'pt-BR': ['estrela', 'asterisco', 'brilho'],
560
+ nl: ['ster', 'sterretje', 'schittering'],
561
+ pl: ['gwiazda', 'gwiazdka', 'iskra'],
562
+ ru: ['звезда', 'звёздочка', 'искра'],
563
+ uk: ['зірка', 'зірочка', 'іскра'],
564
+ 'zh-CN': ['星', '星形', '星星'],
565
+ 'zh-TW': ['星', '星形', '星星'],
566
+ ja: ['星', 'スター', '星形'],
567
+ ko: ['별', '스타', '별모양'],
568
+ ar: ['نجمة', 'نجم'],
569
+ he: ['כוכב', 'כוכבית'],
570
+ tr: ['yıldız', 'yıldızcık'],
571
+ },
572
+ },
573
+ {
574
+ id: 'create_text',
575
+ category: 'item',
576
+ priority: 9,
577
+ schema: SCHEMA_TYPES.Text,
578
+ tool: {
579
+ tool: 'pinepaper_create_item',
580
+ defaultParams: { itemType: 'text' },
581
+ },
582
+ terms: {
583
+ en: ['text', 'label', 'title', 'heading', 'caption', 'words', 'write', 'type'],
584
+ es: ['texto', 'etiqueta', 'título', 'encabezado', 'escribir'],
585
+ fr: ['texte', 'étiquette', 'titre', 'en-tête', 'écrire'],
586
+ de: ['Text', 'Beschriftung', 'Titel', 'Überschrift', 'schreiben'],
587
+ it: ['testo', 'etichetta', 'titolo', 'intestazione', 'scrivere'],
588
+ pt: ['texto', 'rótulo', 'título', 'cabeçalho', 'escrever'],
589
+ 'pt-BR': ['texto', 'rótulo', 'título', 'cabeçalho', 'escrever'],
590
+ nl: ['tekst', 'label', 'titel', 'kop', 'schrijven'],
591
+ pl: ['tekst', 'etykieta', 'tytuł', 'nagłówek', 'pisać'],
592
+ ru: ['текст', 'метка', 'заголовок', 'надпись', 'писать'],
593
+ uk: ['текст', 'мітка', 'заголовок', 'напис', 'писати'],
594
+ 'zh-CN': ['文本', '文字', '标题', '标签', '写'],
595
+ 'zh-TW': ['文本', '文字', '標題', '標籤', '寫'],
596
+ ja: ['テキスト', '文字', 'タイトル', 'ラベル', '書く'],
597
+ ko: ['텍스트', '글자', '제목', '라벨', '쓰다'],
598
+ ar: ['نص', 'عنوان', 'تسمية', 'كتابة'],
599
+ he: ['טקסט', 'כותרת', 'תווית', 'לכתוב'],
600
+ tr: ['metin', 'başlık', 'etiket', 'yazmak'],
601
+ },
602
+ },
603
+ {
604
+ id: 'create_polygon',
605
+ category: 'item',
606
+ priority: 7,
607
+ schema: SCHEMA_TYPES.Polygon,
608
+ tool: {
609
+ tool: 'pinepaper_create_item',
610
+ defaultParams: { itemType: 'polygon' },
611
+ },
612
+ terms: {
613
+ en: ['polygon', 'triangle', 'hexagon', 'pentagon', 'octagon', 'shape'],
614
+ es: ['polígono', 'triángulo', 'hexágono', 'pentágono', 'forma'],
615
+ fr: ['polygone', 'triangle', 'hexagone', 'pentagone', 'forme'],
616
+ de: ['Polygon', 'Dreieck', 'Sechseck', 'Fünfeck', 'Form'],
617
+ it: ['poligono', 'triangolo', 'esagono', 'pentagono', 'forma'],
618
+ pt: ['polígono', 'triângulo', 'hexágono', 'pentágono', 'forma'],
619
+ 'pt-BR': ['polígono', 'triângulo', 'hexágono', 'pentágono', 'forma'],
620
+ nl: ['veelhoek', 'driehoek', 'zeshoek', 'vijfhoek', 'vorm'],
621
+ pl: ['wielokąt', 'trójkąt', 'sześciokąt', 'pięciokąt', 'kształt'],
622
+ ru: ['многоугольник', 'треугольник', 'шестиугольник', 'пятиугольник', 'форма'],
623
+ uk: ['багатокутник', 'трикутник', 'шестикутник', 'форма'],
624
+ 'zh-CN': ['多边形', '三角形', '六边形', '五边形', '形状'],
625
+ 'zh-TW': ['多邊形', '三角形', '六邊形', '五邊形', '形狀'],
626
+ ja: ['多角形', '三角形', '六角形', '五角形', '形'],
627
+ ko: ['다각형', '삼각형', '육각형', '오각형', '모양'],
628
+ ar: ['مضلع', 'مثلث', 'سداسي', 'خماسي', 'شكل'],
629
+ he: ['מצולע', 'משולש', 'משושה', 'מחומש', 'צורה'],
630
+ tr: ['çokgen', 'üçgen', 'altıgen', 'beşgen', 'şekil'],
631
+ },
632
+ },
633
+ {
634
+ id: 'create_line',
635
+ category: 'item',
636
+ priority: 7,
637
+ schema: SCHEMA_TYPES.Line,
638
+ tool: {
639
+ tool: 'pinepaper_create_item',
640
+ defaultParams: { itemType: 'line' },
641
+ },
642
+ terms: {
643
+ en: ['line', 'stroke', 'dash', 'connector', 'segment'],
644
+ es: ['línea', 'trazo', 'guión', 'conector'],
645
+ fr: ['ligne', 'trait', 'tiret', 'connecteur'],
646
+ de: ['Linie', 'Strich', 'Bindestrich', 'Verbindung'],
647
+ it: ['linea', 'tratto', 'trattino', 'connettore'],
648
+ pt: ['linha', 'traço', 'traçado', 'conector'],
649
+ 'pt-BR': ['linha', 'traço', 'traçado', 'conector'],
650
+ nl: ['lijn', 'streep', 'verbinder'],
651
+ pl: ['linia', 'kreska', 'łącznik'],
652
+ ru: ['линия', 'черта', 'штрих', 'соединитель'],
653
+ uk: ['лінія', 'риска', 'штрих'],
654
+ 'zh-CN': ['线', '线条', '直线', '连接线'],
655
+ 'zh-TW': ['線', '線條', '直線', '連接線'],
656
+ ja: ['線', 'ライン', '直線'],
657
+ ko: ['선', '라인', '직선'],
658
+ ar: ['خط', 'شرطة', 'موصل'],
659
+ he: ['קו', 'מקף', 'מחבר'],
660
+ tr: ['çizgi', 'hat', 'bağlayıcı'],
661
+ },
662
+ },
663
+ ];
664
+ /**
665
+ * Background and generator taxonomy nodes
666
+ */
667
+ export const BACKGROUND_TAXONOMY = [
668
+ {
669
+ id: 'sunburst',
670
+ category: 'background',
671
+ priority: 6,
672
+ schema: {
673
+ '@type': 'Thing',
674
+ '@id': 'https://www.wikidata.org/wiki/Q121855785',
675
+ sameAs: ['https://en.wikipedia.org/wiki/Sunburst_(projection)'],
676
+ },
677
+ tool: {
678
+ tool: 'pinepaper_execute_generator',
679
+ defaultParams: { generatorName: 'drawSunburst' },
680
+ },
681
+ terms: {
682
+ en: ['sunburst', 'sun rays', 'radial rays', 'starburst background', 'rays'],
683
+ es: ['resplandor solar', 'rayos de sol', 'rayos radiales'],
684
+ fr: ['rayon de soleil', 'rayonnement', 'rayons radiaux'],
685
+ de: ['Sonnenstrahlen', 'Strahlen', 'Strahlenkranz'],
686
+ it: ['raggiera', 'raggi di sole', 'raggi radiali'],
687
+ pt: ['raios de sol', 'explosão solar', 'raios'],
688
+ 'pt-BR': ['raios de sol', 'explosão solar', 'raios'],
689
+ nl: ['zonnestralen', 'stralen', 'straalkrans'],
690
+ pl: ['promienie słoneczne', 'promienie', 'rozbłysk'],
691
+ ru: ['солнечные лучи', 'лучи', 'сияние'],
692
+ uk: ['сонячні промені', 'промені', 'сяйво'],
693
+ 'zh-CN': ['太阳光芒', '放射状', '阳光'],
694
+ 'zh-TW': ['太陽光芒', '放射狀', '陽光'],
695
+ ja: ['サンバースト', '太陽光線', '放射状'],
696
+ ko: ['선버스트', '햇살', '방사형'],
697
+ ar: ['أشعة الشمس', 'انفجار شمسي'],
698
+ he: ['קרני שמש', 'התפרצות שמש'],
699
+ tr: ['güneş ışınları', 'patlaması'],
700
+ },
701
+ },
702
+ {
703
+ id: 'waves',
704
+ category: 'background',
705
+ priority: 6,
706
+ schema: SCHEMA_TYPES.Wave,
707
+ tool: {
708
+ tool: 'pinepaper_execute_generator',
709
+ defaultParams: { generatorName: 'drawWaves' },
710
+ },
711
+ terms: {
712
+ en: ['waves', 'wave pattern', 'wavy', 'ocean', 'ripples', 'undulation'],
713
+ es: ['ondas', 'olas', 'ondulado', 'océano', 'ondulaciones'],
714
+ fr: ['vagues', 'ondulations', 'ondulé', 'océan'],
715
+ de: ['Wellen', 'wellig', 'Ozean', 'Wellenmuster'],
716
+ it: ['onde', 'ondulato', 'oceano', 'increspature'],
717
+ pt: ['ondas', 'ondulado', 'oceano', 'ondulações'],
718
+ 'pt-BR': ['ondas', 'ondulado', 'oceano', 'ondulações'],
719
+ nl: ['golven', 'golfpatroon', 'golvend'],
720
+ pl: ['fale', 'faliste', 'ocean', 'zmarszczki'],
721
+ ru: ['волны', 'волнистый', 'океан', 'рябь'],
722
+ uk: ['хвилі', 'хвилястий', 'океан'],
723
+ 'zh-CN': ['波浪', '波纹', '海浪', '涟漪'],
724
+ 'zh-TW': ['波浪', '波紋', '海浪', '漣漪'],
725
+ ja: ['波', 'ウェーブ', '波模様'],
726
+ ko: ['파도', '물결', '웨이브'],
727
+ ar: ['أمواج', 'موجات', 'متموج'],
728
+ he: ['גלים', 'גלי', 'אוקיינוס'],
729
+ tr: ['dalgalar', 'dalga deseni', 'dalgalı'],
730
+ },
731
+ },
732
+ {
733
+ id: 'grid',
734
+ category: 'background',
735
+ priority: 6,
736
+ schema: SCHEMA_TYPES.Grid,
737
+ tool: {
738
+ tool: 'pinepaper_execute_generator',
739
+ defaultParams: { generatorName: 'drawGrid' },
740
+ },
741
+ terms: {
742
+ en: ['grid', 'gridlines', 'graph paper', 'mesh', 'lattice', 'squares'],
743
+ es: ['cuadrícula', 'rejilla', 'malla', 'celosía'],
744
+ fr: ['grille', 'quadrillage', 'maillage', 'treillis'],
745
+ de: ['Gitter', 'Raster', 'Netz', 'Gitternetz'],
746
+ it: ['griglia', 'reticolo', 'maglia', 'reticolato'],
747
+ pt: ['grade', 'grelha', 'malha', 'quadriculado'],
748
+ 'pt-BR': ['grade', 'grelha', 'malha', 'quadriculado'],
749
+ nl: ['raster', 'rooster', 'maas', 'grid'],
750
+ pl: ['siatka', 'krata', 'kratka'],
751
+ ru: ['сетка', 'решётка', 'клетка'],
752
+ uk: ['сітка', 'решітка', 'клітинка'],
753
+ 'zh-CN': ['网格', '格子', '方格'],
754
+ 'zh-TW': ['網格', '格子', '方格'],
755
+ ja: ['グリッド', '格子', '方眼'],
756
+ ko: ['그리드', '격자', '모눈'],
757
+ ar: ['شبكة', 'مربعات'],
758
+ he: ['רשת', 'סריג'],
759
+ tr: ['ızgara', 'kafes', 'grid'],
760
+ },
761
+ },
762
+ {
763
+ id: 'circuit',
764
+ category: 'background',
765
+ priority: 5,
766
+ schema: SCHEMA_TYPES.ElectronicCircuit,
767
+ tool: {
768
+ tool: 'pinepaper_execute_generator',
769
+ defaultParams: { generatorName: 'drawCircuit' },
770
+ },
771
+ terms: {
772
+ en: ['circuit', 'circuit board', 'pcb', 'electronics', 'tech', 'digital'],
773
+ es: ['circuito', 'placa de circuito', 'electrónica', 'tecnología'],
774
+ fr: ['circuit', 'carte de circuit', 'électronique', 'technologie'],
775
+ de: ['Schaltkreis', 'Platine', 'Elektronik', 'Technik'],
776
+ it: ['circuito', 'scheda', 'elettronica', 'tecnologia'],
777
+ pt: ['circuito', 'placa de circuito', 'eletrônica', 'tecnologia'],
778
+ 'pt-BR': ['circuito', 'placa de circuito', 'eletrônica', 'tecnologia'],
779
+ nl: ['circuit', 'printplaat', 'elektronica', 'technologie'],
780
+ pl: ['obwód', 'płytka drukowana', 'elektronika', 'technologia'],
781
+ ru: ['схема', 'плата', 'электроника', 'технология'],
782
+ uk: ['схема', 'плата', 'електроніка', 'технологія'],
783
+ 'zh-CN': ['电路', '电路板', '电子', '科技'],
784
+ 'zh-TW': ['電路', '電路板', '電子', '科技'],
785
+ ja: ['回路', '基板', 'エレクトロニクス', 'テクノロジー'],
786
+ ko: ['회로', '회로판', '전자', '기술'],
787
+ ar: ['دائرة كهربائية', 'لوحة دوائر', 'إلكترونيات'],
788
+ he: ['מעגל', 'לוח מעגלים', 'אלקטרוניקה'],
789
+ tr: ['devre', 'devre kartı', 'elektronik', 'teknoloji'],
790
+ },
791
+ },
792
+ ];
793
+ /**
794
+ * Timing and behavior modifiers
795
+ */
796
+ export const MODIFIER_NODES = [
797
+ {
798
+ id: 'duration',
799
+ category: 'timing',
800
+ modifications: { useKeyframes: true },
801
+ terms: {
802
+ en: ['over * seconds', 'in * seconds', 'takes * seconds', '* second duration', 'for * seconds', 'lasting * seconds'],
803
+ es: ['en * segundos', 'durante * segundos', 'toma * segundos', 'por * segundos'],
804
+ fr: ['en * secondes', 'pendant * secondes', 'prend * secondes', 'durant * secondes'],
805
+ de: ['in * Sekunden', 'für * Sekunden', 'dauert * Sekunden', 'über * Sekunden'],
806
+ it: ['in * secondi', 'per * secondi', 'dura * secondi'],
807
+ pt: ['em * segundos', 'durante * segundos', 'por * segundos'],
808
+ 'pt-BR': ['em * segundos', 'durante * segundos', 'por * segundos'],
809
+ nl: ['in * seconden', 'gedurende * seconden', 'voor * seconden'],
810
+ pl: ['w * sekund', 'przez * sekund', 'trwa * sekund'],
811
+ ru: ['за * секунд', 'в течение * секунд', '* секунд'],
812
+ uk: ['за * секунд', 'протягом * секунд'],
813
+ 'zh-CN': ['* 秒内', '持续 * 秒', '* 秒钟'],
814
+ 'zh-TW': ['* 秒內', '持續 * 秒', '* 秒鐘'],
815
+ ja: ['* 秒で', '* 秒間', '* 秒かけて'],
816
+ ko: ['* 초 동안', '* 초 안에', '* 초간'],
817
+ ar: ['في * ثانية', 'خلال * ثانية', '* ثواني'],
818
+ he: ['ב-* שניות', 'במשך * שניות'],
819
+ tr: ['* saniyede', '* saniye boyunca', '* saniye süren'],
820
+ },
821
+ },
822
+ {
823
+ id: 'continuous',
824
+ category: 'timing',
825
+ modifications: { loop: true },
826
+ terms: {
827
+ en: ['forever', 'continuously', 'always', 'infinite', 'non-stop', 'endlessly', 'perpetually', 'keep going', 'never stop'],
828
+ es: ['siempre', 'continuamente', 'infinito', 'sin parar', 'perpetuamente'],
829
+ fr: ['toujours', 'continuellement', 'infini', 'sans arrêt', 'perpétuellement'],
830
+ de: ['immer', 'kontinuierlich', 'unendlich', 'ohne Ende', 'ewig'],
831
+ it: ['sempre', 'continuamente', 'infinito', 'senza sosta', 'perpetuamente'],
832
+ pt: ['sempre', 'continuamente', 'infinito', 'sem parar', 'perpetuamente'],
833
+ 'pt-BR': ['sempre', 'continuamente', 'infinito', 'sem parar', 'perpetuamente'],
834
+ nl: ['altijd', 'continu', 'oneindig', 'non-stop', 'eindeloos'],
835
+ pl: ['zawsze', 'ciągle', 'nieskończenie', 'bez przerwy', 'wiecznie'],
836
+ ru: ['всегда', 'постоянно', 'бесконечно', 'непрерывно', 'вечно'],
837
+ uk: ['завжди', 'постійно', 'нескінченно', 'безперервно'],
838
+ 'zh-CN': ['永远', '持续', '无限', '不停', '一直'],
839
+ 'zh-TW': ['永遠', '持續', '無限', '不停', '一直'],
840
+ ja: ['永遠に', '継続的に', '無限に', 'ずっと', '止まらない'],
841
+ ko: ['영원히', '계속', '무한히', '끊임없이'],
842
+ ar: ['دائماً', 'باستمرار', 'لا نهائي', 'بلا توقف'],
843
+ he: ['לנצח', 'ברציפות', 'אינסופי', 'ללא הפסקה'],
844
+ tr: ['sonsuza kadar', 'sürekli', 'sonsuz', 'durmadan'],
845
+ },
846
+ },
847
+ {
848
+ id: 'sequential',
849
+ category: 'timing',
850
+ modifications: { useSequence: true },
851
+ terms: {
852
+ en: ['then', 'after', 'next', 'followed by', 'afterwards', 'subsequently', 'first then'],
853
+ es: ['entonces', 'después', 'luego', 'seguido de', 'posteriormente'],
854
+ fr: ['puis', 'ensuite', 'après', 'suivi de', 'par la suite'],
855
+ de: ['dann', 'danach', 'anschließend', 'gefolgt von', 'nachher'],
856
+ it: ['poi', 'dopo', 'quindi', 'seguito da', 'successivamente'],
857
+ pt: ['então', 'depois', 'em seguida', 'seguido por'],
858
+ 'pt-BR': ['então', 'depois', 'em seguida', 'seguido por'],
859
+ nl: ['dan', 'daarna', 'vervolgens', 'gevolgd door'],
860
+ pl: ['potem', 'następnie', 'po tym', 'a potem'],
861
+ ru: ['затем', 'потом', 'после', 'следом'],
862
+ uk: ['потім', 'після', 'далі'],
863
+ 'zh-CN': ['然后', '接着', '之后', '随后'],
864
+ 'zh-TW': ['然後', '接著', '之後', '隨後'],
865
+ ja: ['それから', '次に', 'その後', '続いて'],
866
+ ko: ['그런 다음', '후에', '이어서', '그 다음'],
867
+ ar: ['ثم', 'بعد ذلك', 'يليه', 'لاحقاً'],
868
+ he: ['אז', 'אחר כך', 'בעקבות', 'לאחר מכן'],
869
+ tr: ['sonra', 'ardından', 'akabinde', 'takiben'],
870
+ },
871
+ },
872
+ {
873
+ id: 'slow',
874
+ category: 'behavior',
875
+ modifications: { speed: 0.3 },
876
+ terms: {
877
+ en: ['slow', 'slowly', 'gradual', 'gentle', 'leisurely'],
878
+ es: ['lento', 'lentamente', 'gradual', 'suave'],
879
+ fr: ['lent', 'lentement', 'graduel', 'doux'],
880
+ de: ['langsam', 'allmählich', 'sanft'],
881
+ it: ['lento', 'lentamente', 'graduale', 'dolce'],
882
+ pt: ['lento', 'devagar', 'gradual', 'suave'],
883
+ 'pt-BR': ['lento', 'devagar', 'gradual', 'suave'],
884
+ nl: ['langzaam', 'geleidelijk', 'zacht'],
885
+ pl: ['wolno', 'powoli', 'stopniowo'],
886
+ ru: ['медленно', 'постепенно', 'плавно'],
887
+ uk: ['повільно', 'поступово', 'плавно'],
888
+ 'zh-CN': ['慢', '缓慢', '渐进', '轻柔'],
889
+ 'zh-TW': ['慢', '緩慢', '漸進', '輕柔'],
890
+ ja: ['ゆっくり', 'ゆっくりと', '緩やか'],
891
+ ko: ['천천히', '느리게', '서서히'],
892
+ ar: ['ببطء', 'تدريجياً', 'بلطف'],
893
+ he: ['לאט', 'בהדרגה', 'בעדינות'],
894
+ tr: ['yavaş', 'yavaşça', 'kademeli'],
895
+ },
896
+ },
897
+ {
898
+ id: 'fast',
899
+ category: 'behavior',
900
+ modifications: { speed: 2.0 },
901
+ terms: {
902
+ en: ['fast', 'quick', 'rapid', 'swift', 'speedy', 'quickly'],
903
+ es: ['rápido', 'veloz', 'ágil', 'rápidamente'],
904
+ fr: ['rapide', 'vite', 'rapidement', 'prompt'],
905
+ de: ['schnell', 'rasch', 'zügig', 'flink'],
906
+ it: ['veloce', 'rapido', 'svelto', 'pronto'],
907
+ pt: ['rápido', 'veloz', 'ágil', 'rapidamente'],
908
+ 'pt-BR': ['rápido', 'veloz', 'ágil', 'rapidamente'],
909
+ nl: ['snel', 'vlug', 'rap', 'vlot'],
910
+ pl: ['szybko', 'prędko', 'błyskawicznie'],
911
+ ru: ['быстро', 'стремительно', 'скоро'],
912
+ uk: ['швидко', 'стрімко', 'скоро'],
913
+ 'zh-CN': ['快', '迅速', '快速', '敏捷'],
914
+ 'zh-TW': ['快', '迅速', '快速', '敏捷'],
915
+ ja: ['速く', '素早く', '迅速に'],
916
+ ko: ['빠르게', '신속하게', '재빨리'],
917
+ ar: ['سريع', 'بسرعة', 'عاجل'],
918
+ he: ['מהר', 'במהירות', 'חיש'],
919
+ tr: ['hızlı', 'çabuk', 'süratli'],
920
+ },
921
+ },
922
+ ];
923
+ /**
924
+ * Complete taxonomy - all nodes combined
925
+ */
926
+ export const ANIMATION_TAXONOMY = [
927
+ ...MOTION_TAXONOMY,
928
+ ...TRANSFORMATION_TAXONOMY,
929
+ ...ITEM_TAXONOMY,
930
+ ...BACKGROUND_TAXONOMY,
931
+ ];
932
+ /**
933
+ * Get a taxonomy node by ID
934
+ */
935
+ export function getTaxonomyNode(id) {
936
+ return ANIMATION_TAXONOMY.find((node) => node.id === id);
937
+ }
938
+ /**
939
+ * Get all nodes in a category
940
+ */
941
+ export function getNodesByCategory(category) {
942
+ return ANIMATION_TAXONOMY.filter((node) => node.category === category);
943
+ }
944
+ /**
945
+ * Get modifier by ID
946
+ */
947
+ export function getModifier(id) {
948
+ return MODIFIER_NODES.find((mod) => mod.id === id);
949
+ }
950
+ //# sourceMappingURL=registry.js.map