treste 2.4.8 → 2.5.0
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.
- package/INSTALL.md +35 -4
- package/README.md +2 -2
- package/dist/ast.d.ts +1 -1
- package/dist/ast.d.ts.map +1 -1
- package/dist/cli.js +178 -0
- package/dist/cli.js.map +1 -1
- package/dist/compiler/exe.d.ts.map +1 -1
- package/dist/compiler/exe.js +143 -18
- package/dist/compiler/exe.js.map +1 -1
- package/dist/compiler/web.d.ts +1 -0
- package/dist/compiler/web.d.ts.map +1 -1
- package/dist/compiler/web.js +31 -0
- package/dist/compiler/web.js.map +1 -1
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +152 -14
- package/dist/interpreter.js.map +1 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +3 -0
- package/dist/lexer.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +43 -13
- package/dist/parser.js.map +1 -1
- package/dist/scripts/create-app.js +408 -0
- package/dist/std/gui.trest +5 -0
- package/dist/std-native.d.ts +59 -9
- package/dist/std-native.d.ts.map +1 -1
- package/dist/std-native.js +887 -40
- package/dist/std-native.js.map +1 -1
- package/package.json +98 -95
- package/src/std/gui.trest +5 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* create-trest-app / create-treste-app
|
|
4
|
+
* Script para criar um novo projeto Trest localmente
|
|
5
|
+
* Similar ao create-next-app do Next.js
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const { execSync, spawn } = require('child_process');
|
|
11
|
+
const readline = require('readline');
|
|
12
|
+
|
|
13
|
+
// Cores para terminal
|
|
14
|
+
const colors = {
|
|
15
|
+
reset: '\x1b[0m',
|
|
16
|
+
bright: '\x1b[1m',
|
|
17
|
+
green: '\x1b[32m',
|
|
18
|
+
yellow: '\x1b[33m',
|
|
19
|
+
blue: '\x1b[34m',
|
|
20
|
+
cyan: '\x1b[36m',
|
|
21
|
+
red: '\x1b[31m',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
function log(message, color = 'reset') {
|
|
25
|
+
console.log(`${colors[color]}${message}${colors.reset}`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function getProjectName() {
|
|
29
|
+
const projectName = process.argv[2];
|
|
30
|
+
if (projectName) {
|
|
31
|
+
return projectName;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function validateProjectName(name) {
|
|
37
|
+
if (!name || name.trim().length === 0) {
|
|
38
|
+
return { valid: false, error: 'Nome do projeto não pode estar vazio' };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Validar caracteres permitidos
|
|
42
|
+
const validNameRegex = /^[a-zA-Z0-9-_]+$/;
|
|
43
|
+
if (!validNameRegex.test(name)) {
|
|
44
|
+
return {
|
|
45
|
+
valid: false,
|
|
46
|
+
error: 'Nome do projeto pode conter apenas letras, números, hífens e underscores'
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Não pode começar com número
|
|
51
|
+
if (/^[0-9]/.test(name)) {
|
|
52
|
+
return {
|
|
53
|
+
valid: false,
|
|
54
|
+
error: 'Nome do projeto não pode começar com número'
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return { valid: true };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function askQuestion(question) {
|
|
62
|
+
const rl = readline.createInterface({
|
|
63
|
+
input: process.stdin,
|
|
64
|
+
output: process.stdout,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
return new Promise((resolve) => {
|
|
68
|
+
rl.question(question, (answer) => {
|
|
69
|
+
rl.close();
|
|
70
|
+
resolve(answer.trim());
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function showHelp() {
|
|
76
|
+
log('\n🚀 Create Trest App', 'bright');
|
|
77
|
+
log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
|
|
78
|
+
log('Cria um novo projeto Trest localmente', 'cyan');
|
|
79
|
+
log('\nUso:', 'bright');
|
|
80
|
+
log(' npx create-trest-app <nome-projeto>', 'cyan');
|
|
81
|
+
log(' npx create-treste-app <nome-projeto>', 'cyan');
|
|
82
|
+
log('\nExemplos:', 'bright');
|
|
83
|
+
log(' npx create-trest-app meu-projeto', 'cyan');
|
|
84
|
+
log(' npx create-trest-app calculadora-app', 'cyan');
|
|
85
|
+
log('\nSe o nome do projeto não for fornecido, será solicitado interativamente.', 'yellow');
|
|
86
|
+
log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
|
|
87
|
+
process.exit(0);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async function main() {
|
|
91
|
+
// Verificar argumentos de ajuda
|
|
92
|
+
const args = process.argv.slice(2);
|
|
93
|
+
if (args.includes('--help') || args.includes('-h') || args.includes('help')) {
|
|
94
|
+
showHelp();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
log('\n🚀 Create Trest App', 'bright');
|
|
98
|
+
log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
|
|
99
|
+
|
|
100
|
+
let projectName = getProjectName();
|
|
101
|
+
|
|
102
|
+
// Se não fornecido, perguntar
|
|
103
|
+
if (!projectName) {
|
|
104
|
+
projectName = await askQuestion('📁 Nome do projeto: ');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Validar novamente após perguntar
|
|
108
|
+
if (!projectName || projectName.trim().length === 0) {
|
|
109
|
+
log('\n❌ Erro: Nome do projeto não pode estar vazio', 'red');
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
projectName = projectName.trim();
|
|
114
|
+
|
|
115
|
+
// Validar nome
|
|
116
|
+
const validation = validateProjectName(projectName);
|
|
117
|
+
if (!validation.valid) {
|
|
118
|
+
log(`\n❌ Erro: ${validation.error}`, 'red');
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Obter diretório atual de forma mais confiável
|
|
123
|
+
let currentDir = process.cwd();
|
|
124
|
+
|
|
125
|
+
// Verificar se estamos no diretório correto (pode haver problemas com npx)
|
|
126
|
+
if (!currentDir || currentDir === '/' || currentDir === '\\') {
|
|
127
|
+
// Fallback: usar diretório do usuário
|
|
128
|
+
currentDir = process.env.USERPROFILE || process.env.HOME || process.cwd();
|
|
129
|
+
log(`⚠️ Usando diretório: ${currentDir}`, 'yellow');
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const projectPath = path.resolve(currentDir, projectName);
|
|
133
|
+
|
|
134
|
+
// Verificar se a pasta já existe
|
|
135
|
+
if (fs.existsSync(projectPath)) {
|
|
136
|
+
log(`\n❌ Erro: A pasta "${projectName}" já existe!`, 'red');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
log(`\n📦 Criando projeto: ${projectName}`, 'cyan');
|
|
141
|
+
log(`📂 Caminho: ${projectPath}\n`, 'cyan');
|
|
142
|
+
|
|
143
|
+
try {
|
|
144
|
+
// Criar pasta do projeto
|
|
145
|
+
fs.mkdirSync(projectPath, { recursive: true });
|
|
146
|
+
log('✅ Pasta do projeto criada', 'green');
|
|
147
|
+
|
|
148
|
+
// Criar estrutura de pastas
|
|
149
|
+
fs.mkdirSync(path.join(projectPath, 'src'), { recursive: true });
|
|
150
|
+
fs.mkdirSync(path.join(projectPath, 'exemplos'), { recursive: true });
|
|
151
|
+
log('✅ Estrutura de pastas criada', 'green');
|
|
152
|
+
|
|
153
|
+
// Criar package.json
|
|
154
|
+
const packageJson = {
|
|
155
|
+
name: projectName,
|
|
156
|
+
version: '1.0.0',
|
|
157
|
+
description: `Projeto Trest: ${projectName}`,
|
|
158
|
+
main: 'src/main.trest',
|
|
159
|
+
scripts: {
|
|
160
|
+
start: 'trest src/main.trest',
|
|
161
|
+
dev: 'trest src/main.trest --verbose',
|
|
162
|
+
build: 'trestc src/main.trest --mode web --output dist/app.js',
|
|
163
|
+
'build:exe': 'trestc src/main.trest --mode exe --output dist/app.exe',
|
|
164
|
+
},
|
|
165
|
+
keywords: ['trest', 'trest-language'],
|
|
166
|
+
author: '',
|
|
167
|
+
license: 'MIT',
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
fs.writeFileSync(
|
|
171
|
+
path.join(projectPath, 'package.json'),
|
|
172
|
+
JSON.stringify(packageJson, null, 2)
|
|
173
|
+
);
|
|
174
|
+
log('✅ package.json criado', 'green');
|
|
175
|
+
|
|
176
|
+
// Criar arquivo main.trest
|
|
177
|
+
const mainTrestContent = `# Aplicação Trest
|
|
178
|
+
# Arquivo principal do projeto
|
|
179
|
+
|
|
180
|
+
печать("Olá, Mundo!")
|
|
181
|
+
печать("Bem-vindo ao projeto ${projectName}!")
|
|
182
|
+
|
|
183
|
+
# Exemplo básico
|
|
184
|
+
пусть mensagem = "Trest Language"
|
|
185
|
+
пусть versão = "2.4.9"
|
|
186
|
+
|
|
187
|
+
печать("Usando " + mensagem + " v" + versão)
|
|
188
|
+
печать("")
|
|
189
|
+
печать("Para executar: npm start")
|
|
190
|
+
печать("Para desenvolvimento: npm run dev")
|
|
191
|
+
печать("Para compilar: npm run build")
|
|
192
|
+
`;
|
|
193
|
+
|
|
194
|
+
fs.writeFileSync(
|
|
195
|
+
path.join(projectPath, 'src', 'main.trest'),
|
|
196
|
+
mainTrestContent
|
|
197
|
+
);
|
|
198
|
+
log('✅ src/main.trest criado', 'green');
|
|
199
|
+
|
|
200
|
+
// Criar exemplo.trest
|
|
201
|
+
const exemploContent = `# Exemplo de código Trest
|
|
202
|
+
# Este arquivo demonstra algumas funcionalidades básicas
|
|
203
|
+
|
|
204
|
+
# Variáveis
|
|
205
|
+
пусть nome = "Trest"
|
|
206
|
+
пусть numero = 42
|
|
207
|
+
пусть ativo = истина
|
|
208
|
+
|
|
209
|
+
# Arrays
|
|
210
|
+
пусть lista = [1, 2, 3, 4, 5]
|
|
211
|
+
|
|
212
|
+
# Objetos
|
|
213
|
+
пусть pessoa = {
|
|
214
|
+
nome = "João",
|
|
215
|
+
idade = 30,
|
|
216
|
+
cidade = "São Paulo"
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
# Funções
|
|
220
|
+
функция somar(a, b) {
|
|
221
|
+
вернуть a + b
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
# Estruturas condicionais
|
|
225
|
+
если (numero > 10) {
|
|
226
|
+
печать("Número é maior que 10")
|
|
227
|
+
} иначе {
|
|
228
|
+
печать("Número é menor ou igual a 10")
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
# Loops
|
|
232
|
+
для (пусть i = 0; i < 5; i = i + 1) {
|
|
233
|
+
печать("Iteração: " + i)
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
печать("")
|
|
237
|
+
печать("Resultado da soma: " + somar(10, 20))
|
|
238
|
+
`;
|
|
239
|
+
|
|
240
|
+
fs.writeFileSync(
|
|
241
|
+
path.join(projectPath, 'exemplos', 'exemplo.trest'),
|
|
242
|
+
exemploContent
|
|
243
|
+
);
|
|
244
|
+
log('✅ exemplos/exemplo.trest criado', 'green');
|
|
245
|
+
|
|
246
|
+
// Criar README.md
|
|
247
|
+
const readmeContent = `# ${projectName}
|
|
248
|
+
|
|
249
|
+
Projeto criado com [Trest Language](https://trest-site.vercel.app)
|
|
250
|
+
|
|
251
|
+
## 🚀 Como Usar
|
|
252
|
+
|
|
253
|
+
### Instalar Trest (se ainda não tiver instalado globalmente)
|
|
254
|
+
|
|
255
|
+
\`\`\`bash
|
|
256
|
+
npm install -g treste@latest
|
|
257
|
+
\`\`\`
|
|
258
|
+
|
|
259
|
+
### Executar o projeto
|
|
260
|
+
|
|
261
|
+
\`\`\`bash
|
|
262
|
+
npm start
|
|
263
|
+
\`\`\`
|
|
264
|
+
|
|
265
|
+
### Modo desenvolvimento (verbose)
|
|
266
|
+
|
|
267
|
+
\`\`\`bash
|
|
268
|
+
npm run dev
|
|
269
|
+
\`\`\`
|
|
270
|
+
|
|
271
|
+
### Compilar para JavaScript
|
|
272
|
+
|
|
273
|
+
\`\`\`bash
|
|
274
|
+
npm run build
|
|
275
|
+
\`\`\`
|
|
276
|
+
|
|
277
|
+
### Compilar para executável
|
|
278
|
+
|
|
279
|
+
\`\`\`bash
|
|
280
|
+
npm run build:exe
|
|
281
|
+
\`\`\`
|
|
282
|
+
|
|
283
|
+
## 📁 Estrutura do Projeto
|
|
284
|
+
|
|
285
|
+
\`\`\`
|
|
286
|
+
${projectName}/
|
|
287
|
+
├── src/
|
|
288
|
+
│ └── main.trest # Arquivo principal
|
|
289
|
+
├── exemplos/
|
|
290
|
+
│ └── exemplo.trest # Exemplos de código
|
|
291
|
+
├── package.json # Configuração do projeto
|
|
292
|
+
└── README.md # Este arquivo
|
|
293
|
+
\`\`\`
|
|
294
|
+
|
|
295
|
+
## 📚 Documentação
|
|
296
|
+
|
|
297
|
+
Para mais informações sobre a linguagem Trest:
|
|
298
|
+
- [Documentação Completa](https://trest-site.vercel.app)
|
|
299
|
+
- [GitHub](https://github.com/poktweb/treste)
|
|
300
|
+
|
|
301
|
+
## 📝 Notas
|
|
302
|
+
|
|
303
|
+
- Todos os arquivos Trest devem ter extensão \`.trest\`
|
|
304
|
+
- O arquivo principal está em \`src/main.trest\`
|
|
305
|
+
- Exemplos estão na pasta \`exemplos/\`
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
Criado com ❤️ usando Trest Language v2.4.9
|
|
310
|
+
`;
|
|
311
|
+
|
|
312
|
+
fs.writeFileSync(
|
|
313
|
+
path.join(projectPath, 'README.md'),
|
|
314
|
+
readmeContent
|
|
315
|
+
);
|
|
316
|
+
log('✅ README.md criado', 'green');
|
|
317
|
+
|
|
318
|
+
// Criar .gitignore
|
|
319
|
+
const gitignoreContent = `# Dependências
|
|
320
|
+
node_modules/
|
|
321
|
+
package-lock.json
|
|
322
|
+
|
|
323
|
+
# Build
|
|
324
|
+
dist/
|
|
325
|
+
*.exe
|
|
326
|
+
*.js.map
|
|
327
|
+
|
|
328
|
+
# Logs
|
|
329
|
+
*.log
|
|
330
|
+
npm-debug.log*
|
|
331
|
+
|
|
332
|
+
# Sistema operacional
|
|
333
|
+
.DS_Store
|
|
334
|
+
Thumbs.db
|
|
335
|
+
|
|
336
|
+
# IDE
|
|
337
|
+
.vscode/
|
|
338
|
+
.idea/
|
|
339
|
+
*.swp
|
|
340
|
+
*.swo
|
|
341
|
+
*~
|
|
342
|
+
|
|
343
|
+
# Trest
|
|
344
|
+
*.trest.js
|
|
345
|
+
*.trest.map
|
|
346
|
+
`;
|
|
347
|
+
|
|
348
|
+
fs.writeFileSync(
|
|
349
|
+
path.join(projectPath, '.gitignore'),
|
|
350
|
+
gitignoreContent
|
|
351
|
+
);
|
|
352
|
+
log('✅ .gitignore criado', 'green');
|
|
353
|
+
|
|
354
|
+
// Instalar treste localmente
|
|
355
|
+
log('\n📦 Instalando Trest Language localmente...', 'cyan');
|
|
356
|
+
log(' (Isso pode levar alguns segundos)\n', 'yellow');
|
|
357
|
+
|
|
358
|
+
try {
|
|
359
|
+
execSync(`npm install treste@latest`, {
|
|
360
|
+
stdio: 'inherit',
|
|
361
|
+
cwd: projectPath,
|
|
362
|
+
shell: process.platform === 'win32'
|
|
363
|
+
});
|
|
364
|
+
log('\n✅ Trest Language instalado localmente!', 'green');
|
|
365
|
+
} catch (error) {
|
|
366
|
+
log('\n⚠️ Aviso: Não foi possível instalar treste automaticamente.', 'yellow');
|
|
367
|
+
log(` Erro: ${error.message}`, 'yellow');
|
|
368
|
+
log(' Execute manualmente: npm install treste@latest', 'yellow');
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Mensagem final
|
|
372
|
+
log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'cyan');
|
|
373
|
+
log('\n✅ Projeto criado com sucesso!', 'green');
|
|
374
|
+
log(`\n📂 Localização: ${projectPath}`, 'cyan');
|
|
375
|
+
log('\n🚀 Próximos passos:', 'bright');
|
|
376
|
+
log(`\n cd ${projectName}`, 'cyan');
|
|
377
|
+
log(' npm start', 'cyan');
|
|
378
|
+
log('\n💡 Dica: Use "npm run dev" para modo desenvolvimento', 'yellow');
|
|
379
|
+
log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
|
|
380
|
+
|
|
381
|
+
} catch (error) {
|
|
382
|
+
log(`\n❌ Erro ao criar projeto: ${error.message}`, 'red');
|
|
383
|
+
if (error.stack) {
|
|
384
|
+
console.error(error.stack);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
// Limpar pasta se houver erro
|
|
388
|
+
if (fs.existsSync(projectPath)) {
|
|
389
|
+
try {
|
|
390
|
+
fs.rmSync(projectPath, { recursive: true, force: true });
|
|
391
|
+
log('🗑️ Pasta do projeto removida devido ao erro', 'yellow');
|
|
392
|
+
} catch (cleanupError) {
|
|
393
|
+
// Ignorar erros de limpeza
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
process.exit(1);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// Executar
|
|
402
|
+
main().catch((error) => {
|
|
403
|
+
log(`\n❌ Erro fatal: ${error.message}`, 'red');
|
|
404
|
+
if (error.stack) {
|
|
405
|
+
console.error(error.stack);
|
|
406
|
+
}
|
|
407
|
+
process.exit(1);
|
|
408
|
+
});
|
package/dist/std/gui.trest
CHANGED
package/dist/std-native.d.ts
CHANGED
|
@@ -76,30 +76,38 @@ export declare class StdAsync {
|
|
|
76
76
|
*/
|
|
77
77
|
static clearTimer(id: number): void;
|
|
78
78
|
}
|
|
79
|
-
/**
|
|
80
|
-
* ========================================
|
|
81
|
-
* GUI Module - Interface Gráfica
|
|
82
|
-
* ========================================
|
|
83
|
-
*/
|
|
84
79
|
export declare class StdGUI {
|
|
80
|
+
private static windows;
|
|
81
|
+
private static windowCounter;
|
|
82
|
+
private static appReady;
|
|
83
|
+
private static _windowWrappers;
|
|
84
|
+
private static _ipcHandlersRegistered;
|
|
85
|
+
/**
|
|
86
|
+
* Initialize Electron app
|
|
87
|
+
*/
|
|
88
|
+
private static ensureAppReady;
|
|
85
89
|
/**
|
|
86
90
|
* Create Terminal
|
|
87
91
|
*/
|
|
88
92
|
static createTerminal(): any;
|
|
89
93
|
/**
|
|
90
|
-
* Create Window
|
|
94
|
+
* Create Desktop Window with Electron
|
|
91
95
|
*/
|
|
92
96
|
static createWindow(options: any): any;
|
|
93
97
|
/**
|
|
94
|
-
*
|
|
98
|
+
* Fallback window (quando Electron não está disponível)
|
|
99
|
+
*/
|
|
100
|
+
private static createFallbackWindow;
|
|
101
|
+
/**
|
|
102
|
+
* Create Button (HTML-based)
|
|
95
103
|
*/
|
|
96
104
|
static createButton(text: string, onClick: Function): any;
|
|
97
105
|
/**
|
|
98
|
-
* Create Text Input
|
|
106
|
+
* Create Text Input (HTML-based)
|
|
99
107
|
*/
|
|
100
108
|
static createText(placeholder: string, onChange: Function): any;
|
|
101
109
|
/**
|
|
102
|
-
* Create List
|
|
110
|
+
* Create List (HTML-based)
|
|
103
111
|
*/
|
|
104
112
|
static createList(data: any[], onSelect: Function): any;
|
|
105
113
|
/**
|
|
@@ -114,6 +122,48 @@ export declare class StdGUI {
|
|
|
114
122
|
* Component Image
|
|
115
123
|
*/
|
|
116
124
|
static componentImage(src: string): any;
|
|
125
|
+
/**
|
|
126
|
+
* Helper: Render components to HTML
|
|
127
|
+
*/
|
|
128
|
+
static renderComponentToHTML(component: any): string;
|
|
129
|
+
/**
|
|
130
|
+
* Keep app running (prevents Electron from closing)
|
|
131
|
+
*/
|
|
132
|
+
static keepRunning(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Create Widget (base class for all GUI components)
|
|
135
|
+
* Allows creating GUI programmatically without HTML
|
|
136
|
+
*/
|
|
137
|
+
static Widget(type: string, props?: any): any;
|
|
138
|
+
/**
|
|
139
|
+
* Create Button Widget (programmatic)
|
|
140
|
+
*/
|
|
141
|
+
static Button(text: string, onClick?: Function): any;
|
|
142
|
+
/**
|
|
143
|
+
* Create Label Widget (programmatic)
|
|
144
|
+
*/
|
|
145
|
+
static Label(text: string): any;
|
|
146
|
+
/**
|
|
147
|
+
* Create Input Widget (programmatic)
|
|
148
|
+
*/
|
|
149
|
+
static Input(placeholder?: string, onChange?: Function): any;
|
|
150
|
+
/**
|
|
151
|
+
* Create VBox Layout (vertical box - like PySide6)
|
|
152
|
+
*/
|
|
153
|
+
static VBox(children?: any[], spacing?: number): any;
|
|
154
|
+
/**
|
|
155
|
+
* Create HBox Layout (horizontal box - like PySide6)
|
|
156
|
+
*/
|
|
157
|
+
static HBox(children?: any[], spacing?: number): any;
|
|
158
|
+
/**
|
|
159
|
+
* Create Grid Layout (like PySide6)
|
|
160
|
+
*/
|
|
161
|
+
static Grid(rows?: number, cols?: number, spacing?: number): any;
|
|
162
|
+
/**
|
|
163
|
+
* Create Programmatic Window (without HTML dependency)
|
|
164
|
+
* This allows creating windows and adding widgets programmatically
|
|
165
|
+
*/
|
|
166
|
+
static createProgrammaticWindow(options: any): any;
|
|
117
167
|
}
|
|
118
168
|
/**
|
|
119
169
|
* ========================================
|
package/dist/std-native.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"std-native.d.ts","sourceRoot":"","sources":["../src/std-native.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;GAIG;AACH,qBAAa,OAAO;IAClB;;OAEG;WACU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D;;OAEG;WACU,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1E;;OAEG;WACU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE;;OAEG;WACU,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAgEtB;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,GAAG;
|
|
1
|
+
{"version":3,"file":"std-native.d.ts","sourceRoot":"","sources":["../src/std-native.ts"],"names":[],"mappings":"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"}
|