@semacode/cli 1.5.31 → 1.5.32

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 (157) hide show
  1. package/AGENTS.md +294 -0
  2. package/AGENT_CONTEXT_PACK.json +164 -0
  3. package/LICENSE +22 -0
  4. package/README.md +85 -144
  5. package/SEMA_BRIEF.curto.txt +11 -0
  6. package/SEMA_BRIEF.md +616 -0
  7. package/SEMA_BRIEF.micro.txt +9 -0
  8. package/SEMA_INDEX.json +9393 -0
  9. package/dist/billing/index.d.ts +46 -0
  10. package/dist/billing/index.js +143 -0
  11. package/dist/billing/index.js.map +1 -0
  12. package/dist/controleComercialSupabase.d.ts +7 -0
  13. package/dist/controleComercialSupabase.js +6 -0
  14. package/dist/controleComercialSupabase.js.map +1 -0
  15. package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
  16. package/dist/controleComercialSupabaseAdmin.js +138 -0
  17. package/dist/controleComercialSupabaseAdmin.js.map +1 -0
  18. package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
  19. package/dist/controleComercialSupabaseCadastro.js +85 -0
  20. package/dist/controleComercialSupabaseCadastro.js.map +1 -0
  21. package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
  22. package/dist/controleComercialSupabaseConstantes.js +44 -0
  23. package/dist/controleComercialSupabaseConstantes.js.map +1 -0
  24. package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
  25. package/dist/controleComercialSupabaseConsumo.js +77 -0
  26. package/dist/controleComercialSupabaseConsumo.js.map +1 -0
  27. package/dist/controleComercialSupabaseConta.d.ts +11 -0
  28. package/dist/controleComercialSupabaseConta.js +157 -0
  29. package/dist/controleComercialSupabaseConta.js.map +1 -0
  30. package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
  31. package/dist/controleComercialSupabaseProfiles.js +55 -0
  32. package/dist/controleComercialSupabaseProfiles.js.map +1 -0
  33. package/dist/controleComercialSupabaseTipos.d.ts +3 -0
  34. package/dist/controleComercialSupabaseTipos.js +2 -0
  35. package/dist/controleComercialSupabaseTipos.js.map +1 -0
  36. package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
  37. package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
  38. package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
  39. package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
  40. package/dist/controleComercialSupabaseTiposBase.js +2 -0
  41. package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
  42. package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
  43. package/dist/controleComercialSupabaseTiposConta.js +2 -0
  44. package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
  45. package/dist/index.js +222 -46
  46. package/dist/index.js.map +1 -1
  47. package/dist/runnerValidacaoRemota.d.ts +9 -0
  48. package/dist/runnerValidacaoRemota.js +9 -0
  49. package/dist/runnerValidacaoRemota.js.map +1 -0
  50. package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
  51. package/dist/runnerValidacaoRemotaBateria.js +115 -0
  52. package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
  53. package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
  54. package/dist/runnerValidacaoRemotaCli.js +86 -0
  55. package/dist/runnerValidacaoRemotaCli.js.map +1 -0
  56. package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
  57. package/dist/runnerValidacaoRemotaComandos.js +123 -0
  58. package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
  59. package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
  60. package/dist/runnerValidacaoRemotaEscopo.js +79 -0
  61. package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
  62. package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
  63. package/dist/runnerValidacaoRemotaExecucao.js +102 -0
  64. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
  65. package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
  66. package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
  67. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
  68. package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
  69. package/dist/runnerValidacaoRemotaServidor.js +157 -0
  70. package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
  71. package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
  72. package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
  73. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
  74. package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
  75. package/dist/runnerValidacaoRemotaTipos.js +35 -0
  76. package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
  77. package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
  78. package/dist/runnerValidacaoRemotaUtil.js +18 -0
  79. package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
  80. package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
  81. package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
  82. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
  83. package/docs/AGENT_STARTER.md +109 -0
  84. package/docs/api.md +82 -0
  85. package/docs/cli.md +93 -0
  86. package/docs/como-ensinar-a-sema-para-ia.md +30 -0
  87. package/docs/deploy.md +45 -0
  88. package/docs/documentacao.md +88 -0
  89. package/docs/env.md +115 -0
  90. package/docs/extensao-vscode.md +42 -0
  91. package/docs/fluxo-pratico-ia-sema.md +187 -0
  92. package/docs/instalacao-e-primeiro-uso.md +48 -0
  93. package/docs/integracao-com-ia.md +24 -0
  94. package/docs/mcp.md +48 -0
  95. package/docs/pagamento-ponta-a-ponta.md +171 -0
  96. package/docs/persistencia-vendor-first.md +151 -0
  97. package/docs/prompt-base-ia-sema.md +111 -0
  98. package/docs/repositories.md +69 -0
  99. package/docs/rollback.md +24 -0
  100. package/docs/seguranca.md +126 -0
  101. package/docs/sintaxe.md +218 -0
  102. package/exemplos/profile_conversas.sema +165 -0
  103. package/llms-full.txt +35 -0
  104. package/llms.txt +18 -0
  105. package/node_modules/@sema/gerador-css/package.json +7 -14
  106. package/node_modules/@sema/gerador-dart/package.json +7 -14
  107. package/node_modules/@sema/gerador-html/package.json +7 -14
  108. package/node_modules/@sema/gerador-javascript/package.json +7 -14
  109. package/node_modules/@sema/gerador-lua/package.json +7 -14
  110. package/node_modules/@sema/gerador-python/package.json +7 -14
  111. package/node_modules/@sema/gerador-typescript/package.json +7 -14
  112. package/node_modules/@sema/nucleo/package.json +7 -10
  113. package/node_modules/@sema/padroes/package.json +7 -10
  114. package/package.json +75 -74
  115. package/exemplos/.prepack-generated +0 -1
  116. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  117. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  118. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  119. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  120. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  121. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  122. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  123. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  124. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  125. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  126. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  127. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  128. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  129. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  130. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  131. package/node_modules/@sema/gerador-python/src/index.ts +0 -850
  132. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  133. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  134. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
  135. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  136. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  137. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
  138. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  139. package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +0 -130
  140. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
  141. package/node_modules/@sema/nucleo/src/index.ts +0 -184
  142. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
  143. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
  144. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  145. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
  146. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
  147. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
  148. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
  149. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
  150. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
  151. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  152. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  153. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  154. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  155. package/node_modules/@sema/padroes/src/index.ts +0 -382
  156. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  157. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
@@ -1,605 +0,0 @@
1
- // @ts-nocheck
2
- import type { IrModulo } from "@sema/nucleo";
3
- import {
4
- normalizarNomeModulo,
5
- normalizarNomeParaSimbolo,
6
- type ArquivoGerado,
7
- } from "@sema/padroes";
8
-
9
- function gerarEstilosEntity(entity) {
10
- const nome = normalizarNomeParaSimbolo(entity.nome);
11
- return `.sema-entity[data-entity="${entity.nome}"] {
12
- border-left: 3px solid var(--sema-cor-entidade);
13
- }
14
- `;
15
- }
16
-
17
- function gerarEstilosTask(task) {
18
- const erros = Object.keys(task.errors);
19
- const erroEstilos = erros.map((nomeErro) => `.sema-erro[data-erro="${nomeErro}"] {
20
- display: block;
21
- color: var(--sema-cor-erro-texto);
22
- background: var(--sema-cor-erro-fundo);
23
- border-left: 3px solid var(--sema-cor-erro);
24
- padding: 0.5rem 0.75rem;
25
- margin-top: 0.5rem;
26
- border-radius: var(--sema-raio);
27
- font-size: 0.875rem;
28
- animation: sema-surgir 0.3s ease;
29
- }
30
- `).join("\n");
31
- return erroEstilos;
32
- }
33
-
34
- function gerarEstilosState(state) {
35
- const estilos = [];
36
- for (const transicao of state.transicoes) {
37
- estilos.push(`.sema-estado-origem:has(+ .sema-estado-destino) { font-weight: 600; }`);
38
- }
39
- return estilos.join("\n");
40
- }
41
-
42
- function gerarEstilosEnum(enumeracao) {
43
- return enumeracao.valores.map((valor) => `.sema-select option[value="${valor}"] {
44
- color: var(--sema-cor-texto);
45
- }
46
- `).join("");
47
- }
48
-
49
- export function gerarCss(modulo: IrModulo): ArquivoGerado[] {
50
- const nomeBase = normalizarNomeModulo(modulo.nome).replace(/\./g, "_");
51
-
52
- const entidades = modulo.entities.map(gerarEstilosEntity).join("\n");
53
- const tasks = modulo.tasks.map(gerarEstilosTask).join("\n");
54
- const enums = modulo.enums.map(gerarEstilosEnum).join("\n");
55
-
56
- const css = `/* Arquivo gerado automaticamente pela Sema. */
57
- /* Modulo de origem: ${modulo.nome} */
58
-
59
- /* ========================================
60
- Design System — Variaveis
61
- ======================================== */
62
-
63
- :root {
64
- /* Cores principais */
65
- --sema-cor-primaria: #6366f1;
66
- --sema-cor-primaria-hover: #4f46e5;
67
- --sema-cor-primaria-suave: #eef2ff;
68
- --sema-cor-sucesso: #10b981;
69
- --sema-cor-sucesso-fundo: #ecfdf5;
70
- --sema-cor-erro: #ef4444;
71
- --sema-cor-erro-texto: #991b1b;
72
- --sema-cor-erro-fundo: #fef2f2;
73
- --sema-cor-aviso: #f59e0b;
74
- --sema-cor-info: #3b82f6;
75
-
76
- /* Neutros */
77
- --sema-cor-fundo: #fafafa;
78
- --sema-cor-superficie: #ffffff;
79
- --sema-cor-texto: #18181b;
80
- --sema-cor-texto-secundario: #71717a;
81
- --sema-cor-borda: #e4e4e7;
82
- --sema-cor-borda-foco: #a5b4fc;
83
- --sema-cor-entidade: #8b5cf6;
84
-
85
- /* Tipografia */
86
- --sema-fonte: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
87
- --sema-fonte-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;
88
- --sema-tamanho-base: 0.9375rem;
89
- --sema-tamanho-titulo: 1.75rem;
90
- --sema-tamanho-subtitulo: 1.25rem;
91
- --sema-tamanho-pequeno: 0.8125rem;
92
-
93
- /* Espacamento */
94
- --sema-espacamento-xs: 0.25rem;
95
- --sema-espacamento-sm: 0.5rem;
96
- --sema-espacamento-md: 1rem;
97
- --sema-espacamento-lg: 1.5rem;
98
- --sema-espacamento-xl: 2rem;
99
-
100
- /* Bordas e sombras */
101
- --sema-raio: 0.5rem;
102
- --sema-raio-lg: 0.75rem;
103
- --sema-sombra: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
104
- --sema-sombra-lg: 0 4px 12px rgba(0, 0, 0, 0.1);
105
-
106
- /* Transicoes */
107
- --sema-transicao: 150ms ease;
108
- --sema-transicao-lenta: 300ms ease;
109
- }
110
-
111
- /* ========================================
112
- Dark Mode
113
- ======================================== */
114
-
115
- @media (prefers-color-scheme: dark) {
116
- :root {
117
- --sema-cor-primaria: #818cf8;
118
- --sema-cor-primaria-hover: #a5b4fc;
119
- --sema-cor-primaria-suave: #1e1b4b;
120
- --sema-cor-sucesso: #34d399;
121
- --sema-cor-sucesso-fundo: #064e3b;
122
- --sema-cor-erro: #f87171;
123
- --sema-cor-erro-texto: #fecaca;
124
- --sema-cor-erro-fundo: #450a0a;
125
- --sema-cor-fundo: #09090b;
126
- --sema-cor-superficie: #18181b;
127
- --sema-cor-texto: #fafafa;
128
- --sema-cor-texto-secundario: #a1a1aa;
129
- --sema-cor-borda: #3f3f46;
130
- --sema-cor-borda-foco: #6366f1;
131
- --sema-cor-entidade: #a78bfa;
132
- }
133
- }
134
-
135
- /* ========================================
136
- Base
137
- ======================================== */
138
-
139
- *, *::before, *::after {
140
- box-sizing: border-box;
141
- margin: 0;
142
- padding: 0;
143
- }
144
-
145
- body {
146
- font-family: var(--sema-fonte);
147
- font-size: var(--sema-tamanho-base);
148
- line-height: 1.6;
149
- color: var(--sema-cor-texto);
150
- background-color: var(--sema-cor-fundo);
151
- -webkit-font-smoothing: antialiased;
152
- }
153
-
154
- /* ========================================
155
- Layout
156
- ======================================== */
157
-
158
- .sema-header {
159
- background: var(--sema-cor-superficie);
160
- border-bottom: 1px solid var(--sema-cor-borda);
161
- padding: var(--sema-espacamento-xl) var(--sema-espacamento-lg);
162
- text-align: center;
163
- }
164
-
165
- .sema-header h1 {
166
- font-size: var(--sema-tamanho-titulo);
167
- font-weight: 700;
168
- color: var(--sema-cor-primaria);
169
- letter-spacing: -0.02em;
170
- }
171
-
172
- .sema-subtitulo {
173
- color: var(--sema-cor-texto-secundario);
174
- font-size: var(--sema-tamanho-pequeno);
175
- margin-top: var(--sema-espacamento-xs);
176
- }
177
-
178
- .sema-main {
179
- max-width: 64rem;
180
- margin: 0 auto;
181
- padding: var(--sema-espacamento-xl) var(--sema-espacamento-lg);
182
- display: flex;
183
- flex-direction: column;
184
- gap: var(--sema-espacamento-lg);
185
- }
186
-
187
- .sema-footer {
188
- text-align: center;
189
- padding: var(--sema-espacamento-lg);
190
- color: var(--sema-cor-texto-secundario);
191
- font-size: var(--sema-tamanho-pequeno);
192
- border-top: 1px solid var(--sema-cor-borda);
193
- }
194
-
195
- .sema-footer code {
196
- font-family: var(--sema-fonte-mono);
197
- background: var(--sema-cor-primaria-suave);
198
- padding: 0.125rem 0.375rem;
199
- border-radius: 0.25rem;
200
- font-size: 0.8125rem;
201
- }
202
-
203
- /* ========================================
204
- Entities
205
- ======================================== */
206
-
207
- .sema-entity,
208
- .sema-task,
209
- .sema-enum,
210
- .sema-state,
211
- .sema-flow,
212
- .sema-route {
213
- background: var(--sema-cor-superficie);
214
- border: 1px solid var(--sema-cor-borda);
215
- border-radius: var(--sema-raio-lg);
216
- padding: var(--sema-espacamento-lg);
217
- box-shadow: var(--sema-sombra);
218
- transition: box-shadow var(--sema-transicao);
219
- }
220
-
221
- .sema-entity:hover,
222
- .sema-task:hover,
223
- .sema-route:hover {
224
- box-shadow: var(--sema-sombra-lg);
225
- }
226
-
227
- .sema-entity h3,
228
- .sema-task h3,
229
- .sema-enum h3,
230
- .sema-state h3,
231
- .sema-flow h3,
232
- .sema-route h3 {
233
- font-size: var(--sema-tamanho-subtitulo);
234
- font-weight: 600;
235
- margin-bottom: var(--sema-espacamento-md);
236
- color: var(--sema-cor-texto);
237
- }
238
-
239
- /* ========================================
240
- Tabelas de Entity
241
- ======================================== */
242
-
243
- .sema-tabela {
244
- width: 100%;
245
- border-collapse: collapse;
246
- font-size: var(--sema-tamanho-pequeno);
247
- }
248
-
249
- .sema-tabela th {
250
- text-align: left;
251
- padding: var(--sema-espacamento-sm) var(--sema-espacamento-md);
252
- background: var(--sema-cor-primaria-suave);
253
- border-bottom: 2px solid var(--sema-cor-borda);
254
- font-weight: 600;
255
- white-space: nowrap;
256
- }
257
-
258
- .sema-tabela th small {
259
- color: var(--sema-cor-texto-secundario);
260
- font-weight: 400;
261
- margin-left: 0.25rem;
262
- }
263
-
264
- .sema-tabela td {
265
- padding: var(--sema-espacamento-sm) var(--sema-espacamento-md);
266
- border-bottom: 1px solid var(--sema-cor-borda);
267
- color: var(--sema-cor-texto-secundario);
268
- }
269
-
270
- /* ========================================
271
- Formularios de Task
272
- ======================================== */
273
-
274
- .sema-formulario fieldset {
275
- border: 1px solid var(--sema-cor-borda);
276
- border-radius: var(--sema-raio);
277
- padding: var(--sema-espacamento-md);
278
- margin-bottom: var(--sema-espacamento-md);
279
- }
280
-
281
- .sema-formulario legend {
282
- font-weight: 600;
283
- font-size: var(--sema-tamanho-pequeno);
284
- color: var(--sema-cor-texto-secundario);
285
- padding: 0 var(--sema-espacamento-xs);
286
- text-transform: uppercase;
287
- letter-spacing: 0.05em;
288
- }
289
-
290
- .sema-campo {
291
- margin-bottom: var(--sema-espacamento-md);
292
- }
293
-
294
- .sema-campo label {
295
- display: block;
296
- font-weight: 500;
297
- font-size: var(--sema-tamanho-pequeno);
298
- margin-bottom: var(--sema-espacamento-xs);
299
- color: var(--sema-cor-texto);
300
- }
301
-
302
- .sema-obrigatorio {
303
- color: var(--sema-cor-erro);
304
- }
305
-
306
- .sema-campo input[type="text"],
307
- .sema-campo input[type="number"],
308
- .sema-campo input[type="email"],
309
- .sema-campo input[type="url"],
310
- .sema-campo input[type="date"],
311
- .sema-campo input[type="datetime-local"],
312
- .sema-campo textarea {
313
- width: 100%;
314
- padding: 0.5rem 0.75rem;
315
- font-family: var(--sema-fonte);
316
- font-size: var(--sema-tamanho-base);
317
- color: var(--sema-cor-texto);
318
- background: var(--sema-cor-fundo);
319
- border: 1px solid var(--sema-cor-borda);
320
- border-radius: var(--sema-raio);
321
- outline: none;
322
- transition: border-color var(--sema-transicao), box-shadow var(--sema-transicao);
323
- }
324
-
325
- .sema-campo input:focus,
326
- .sema-campo textarea:focus {
327
- border-color: var(--sema-cor-borda-foco);
328
- box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
329
- }
330
-
331
- .sema-campo textarea {
332
- min-height: 5rem;
333
- resize: vertical;
334
- }
335
-
336
- .sema-campo-checkbox label {
337
- display: flex;
338
- align-items: center;
339
- gap: var(--sema-espacamento-sm);
340
- cursor: pointer;
341
- }
342
-
343
- .sema-campo-checkbox input[type="checkbox"] {
344
- width: 1.125rem;
345
- height: 1.125rem;
346
- accent-color: var(--sema-cor-primaria);
347
- }
348
-
349
- /* ========================================
350
- Botoes
351
- ======================================== */
352
-
353
- .sema-botao {
354
- display: inline-flex;
355
- align-items: center;
356
- justify-content: center;
357
- padding: 0.625rem 1.25rem;
358
- font-family: var(--sema-fonte);
359
- font-size: var(--sema-tamanho-base);
360
- font-weight: 600;
361
- color: #fff;
362
- background: var(--sema-cor-primaria);
363
- border: none;
364
- border-radius: var(--sema-raio);
365
- cursor: pointer;
366
- transition: background var(--sema-transicao), transform var(--sema-transicao);
367
- }
368
-
369
- .sema-botao:hover {
370
- background: var(--sema-cor-primaria-hover);
371
- transform: translateY(-1px);
372
- }
373
-
374
- .sema-botao:active {
375
- transform: translateY(0);
376
- }
377
-
378
- /* ========================================
379
- Erros
380
- ======================================== */
381
-
382
- .sema-erros {
383
- margin-top: var(--sema-espacamento-sm);
384
- }
385
-
386
- .sema-erro[hidden] {
387
- display: none;
388
- }
389
-
390
- /* ========================================
391
- Saida
392
- ======================================== */
393
-
394
- .sema-saida {
395
- margin-top: var(--sema-espacamento-md);
396
- padding: var(--sema-espacamento-md);
397
- background: var(--sema-cor-sucesso-fundo);
398
- border: 1px solid var(--sema-cor-sucesso);
399
- border-radius: var(--sema-raio);
400
- }
401
-
402
- .sema-saida[hidden] {
403
- display: none;
404
- }
405
-
406
- .sema-saida h4 {
407
- font-size: var(--sema-tamanho-pequeno);
408
- font-weight: 600;
409
- text-transform: uppercase;
410
- letter-spacing: 0.05em;
411
- color: var(--sema-cor-sucesso);
412
- margin-bottom: var(--sema-espacamento-sm);
413
- }
414
-
415
- .sema-campo-saida {
416
- padding: var(--sema-espacamento-xs) 0;
417
- font-size: var(--sema-tamanho-pequeno);
418
- }
419
-
420
- /* ========================================
421
- Selects (Enums)
422
- ======================================== */
423
-
424
- .sema-select {
425
- width: 100%;
426
- padding: 0.5rem 0.75rem;
427
- font-family: var(--sema-fonte);
428
- font-size: var(--sema-tamanho-base);
429
- color: var(--sema-cor-texto);
430
- background: var(--sema-cor-fundo);
431
- border: 1px solid var(--sema-cor-borda);
432
- border-radius: var(--sema-raio);
433
- outline: none;
434
- transition: border-color var(--sema-transicao);
435
- }
436
-
437
- .sema-select:focus {
438
- border-color: var(--sema-cor-borda-foco);
439
- box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
440
- }
441
-
442
- /* ========================================
443
- States
444
- ======================================== */
445
-
446
- .sema-state {
447
- border-left: 3px solid var(--sema-cor-aviso);
448
- }
449
-
450
- .sema-transicoes {
451
- list-style: none;
452
- padding: 0;
453
- }
454
-
455
- .sema-transicoes li {
456
- padding: var(--sema-espacamento-sm) 0;
457
- border-bottom: 1px solid var(--sema-cor-borda);
458
- font-size: var(--sema-tamanho-pequeno);
459
- }
460
-
461
- .sema-transicoes li:last-child {
462
- border-bottom: none;
463
- }
464
-
465
- .sema-estado-origem {
466
- font-weight: 600;
467
- color: var(--sema-cor-texto);
468
- }
469
-
470
- .sema-estado-destino {
471
- color: var(--sema-cor-primaria);
472
- font-weight: 600;
473
- }
474
-
475
- /* ========================================
476
- Flows
477
- ======================================== */
478
-
479
- .sema-flow {
480
- border-left: 3px solid var(--sema-cor-info);
481
- }
482
-
483
- .sema-etapas {
484
- padding-left: var(--sema-espacamento-lg);
485
- counter-reset: etapa;
486
- }
487
-
488
- .sema-etapas li {
489
- padding: var(--sema-espacamento-sm) 0;
490
- font-size: var(--sema-tamanho-pequeno);
491
- }
492
-
493
- .sema-etapa strong {
494
- color: var(--sema-cor-primaria);
495
- }
496
-
497
- /* ========================================
498
- Routes
499
- ======================================== */
500
-
501
- .sema-route {
502
- border-left: 3px solid var(--sema-cor-sucesso);
503
- }
504
-
505
- .sema-route-detalhe {
506
- display: flex;
507
- align-items: center;
508
- gap: var(--sema-espacamento-sm);
509
- flex-wrap: wrap;
510
- margin-bottom: var(--sema-espacamento-sm);
511
- }
512
-
513
- .sema-route-metodo {
514
- display: inline-block;
515
- padding: 0.125rem 0.5rem;
516
- font-family: var(--sema-fonte-mono);
517
- font-size: var(--sema-tamanho-pequeno);
518
- font-weight: 700;
519
- color: #fff;
520
- background: var(--sema-cor-sucesso);
521
- border-radius: 0.25rem;
522
- text-transform: uppercase;
523
- }
524
-
525
- .sema-route-caminho {
526
- font-family: var(--sema-fonte-mono);
527
- font-size: var(--sema-tamanho-pequeno);
528
- color: var(--sema-cor-texto);
529
- }
530
-
531
- .sema-route-task {
532
- font-size: var(--sema-tamanho-pequeno);
533
- color: var(--sema-cor-texto-secundario);
534
- }
535
-
536
- .sema-route-io {
537
- margin-top: var(--sema-espacamento-sm);
538
- font-size: var(--sema-tamanho-pequeno);
539
- }
540
-
541
- .sema-route-io summary {
542
- cursor: pointer;
543
- font-weight: 500;
544
- color: var(--sema-cor-texto-secundario);
545
- }
546
-
547
- .sema-route-io ul {
548
- padding-left: var(--sema-espacamento-lg);
549
- margin-top: var(--sema-espacamento-xs);
550
- }
551
-
552
- /* ========================================
553
- Animacoes
554
- ======================================== */
555
-
556
- @keyframes sema-surgir {
557
- from {
558
- opacity: 0;
559
- transform: translateY(-4px);
560
- }
561
- to {
562
- opacity: 1;
563
- transform: translateY(0);
564
- }
565
- }
566
-
567
- /* ========================================
568
- Responsividade
569
- ======================================== */
570
-
571
- @media (max-width: 640px) {
572
- .sema-main {
573
- padding: var(--sema-espacamento-md);
574
- }
575
-
576
- .sema-header {
577
- padding: var(--sema-espacamento-lg) var(--sema-espacamento-md);
578
- }
579
-
580
- .sema-header h1 {
581
- font-size: 1.375rem;
582
- }
583
-
584
- .sema-tabela {
585
- display: block;
586
- overflow-x: auto;
587
- }
588
-
589
- .sema-route-detalhe {
590
- flex-direction: column;
591
- align-items: flex-start;
592
- }
593
- }
594
-
595
- /* ========================================
596
- Estilos especificos do modulo
597
- ======================================== */
598
-
599
- ${entidades}
600
- ${tasks}
601
- ${enums}
602
- `;
603
-
604
- return [{ caminhoRelativo: `${nomeBase}.css`, conteudo: css }];
605
- }
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "composite": true,
5
- "rootDir": "src",
6
- "outDir": "dist"
7
- },
8
- "references": [
9
- { "path": "../nucleo" },
10
- { "path": "../padroes" }
11
- ],
12
- "include": ["src/**/*"]
13
- }