sagadeck 1.7.1 → 1.9.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.
Files changed (105) hide show
  1. package/README.md +55 -4
  2. package/SKILL.md +10 -3
  3. package/bin/sagadeck.js +23 -0
  4. package/docs/ANDAMENTO.md +483 -1
  5. package/docs/PLANO-MELHORIAS.md +180 -0
  6. package/docs/REFERENCIA.md +184 -105
  7. package/package.json +34 -2
  8. package/src/ai/commands.js +2 -2
  9. package/src/ai/deck-ai.js +14 -5
  10. package/src/ai/ia-check.js +127 -0
  11. package/src/ai/ia-config.js +2 -2
  12. package/src/ai/llm.js +5 -1
  13. package/src/ai/map-analysis-run.js +119 -0
  14. package/src/ai/map-data.js +221 -0
  15. package/src/ai/quality.js +1 -1
  16. package/src/ai/video-generation.js +70 -25
  17. package/src/build.js +51 -15
  18. package/src/elements.js +39 -1
  19. package/src/export/browser.js +23 -1
  20. package/src/export/pptx.js +9 -3
  21. package/src/export/shots.js +10 -3
  22. package/src/fiscal/normalize.js +19 -0
  23. package/src/fs-retry.js +37 -2
  24. package/src/import/office.js +5 -4
  25. package/src/layouts.js +114 -99
  26. package/src/lessons.js +1 -1
  27. package/src/library.js +7 -7
  28. package/src/map-analysis.js +109 -0
  29. package/src/map-config.js +89 -0
  30. package/src/map-routing.js +82 -0
  31. package/src/map-services.js +60 -0
  32. package/src/map.js +274 -0
  33. package/src/mcp/server.js +17 -0
  34. package/src/motion.js +20 -6
  35. package/src/purpose.js +1 -1
  36. package/src/runtime/base.css +105 -329
  37. package/src/runtime/fit.js +3 -2
  38. package/src/runtime/fonts/amatic-sc.css +3 -0
  39. package/src/runtime/fonts/bebas-neue.css +2 -0
  40. package/src/runtime/fonts/cabin-sketch.css +2 -0
  41. package/src/runtime/fonts/fraunces.css +3 -0
  42. package/src/runtime/fonts/gelasio.css +3 -0
  43. package/src/runtime/fonts/ibm-plex-mono.css +4 -0
  44. package/src/runtime/fonts/index.json +10 -1
  45. package/src/runtime/fonts/itim.css +2 -0
  46. package/src/runtime/fonts/montserrat.css +2 -0
  47. package/src/runtime/fonts/space-grotesk.css +2 -0
  48. package/src/runtime/map-background.js +91 -0
  49. package/src/runtime/map.js +266 -0
  50. package/src/runtime/runtime.js +81 -100
  51. package/src/runtime/skins/caderno.css +33 -0
  52. package/src/runtime/skins/cartaz.css +27 -0
  53. package/src/runtime/skins/infografico.css +29 -0
  54. package/src/runtime/skins/lousa.css +22 -0
  55. package/src/runtime/skins/musgo.css +42 -0
  56. package/src/runtime/vendor/LEAFLET-LICENSE.txt +26 -0
  57. package/src/runtime/vendor/MAPLIBRE-LEAFLET-LICENSE.txt +15 -0
  58. package/src/runtime/vendor/MAPLIBRE-LICENSE.txt +116 -0
  59. package/src/runtime/vendor/geo-contornos.json +1 -0
  60. package/src/runtime/vendor/leaflet.css +661 -0
  61. package/src/runtime/vendor/leaflet.js +6 -0
  62. package/src/runtime/vendor/maplibre-gl.css +1 -0
  63. package/src/runtime/vendor/maplibre-gl.js +825 -0
  64. package/src/runtime/vendor/maplibre-leaflet.js +234 -0
  65. package/src/runtime/vendor/maplibre-worker.js +10 -0
  66. package/src/studio/ai-chat-route.js +20 -0
  67. package/src/studio/assets/imagens/tour-mapa-botao.jpg +0 -0
  68. package/src/studio/assets/imagens/tour-mapa-editor.jpg +0 -0
  69. package/src/studio/command-approval.js +2 -3
  70. package/src/studio/demo-decks.js +6 -2
  71. package/src/studio/export-jobs.js +86 -0
  72. package/src/studio/exporting.js +36 -18
  73. package/src/studio/feature-demos.js +144 -0
  74. package/src/studio/geo-routes.js +138 -0
  75. package/src/studio/ia-routes.js +9 -0
  76. package/src/studio/layout-samples.js +78 -16
  77. package/src/studio/library-routes.js +0 -9
  78. package/src/studio/project.js +2 -1
  79. package/src/studio/public/ai-settings.js +6 -3
  80. package/src/studio/public/app.js +46 -52
  81. package/src/studio/public/explorer.js +23 -8
  82. package/src/studio/public/export-status.js +154 -0
  83. package/src/studio/public/index.html +17 -10
  84. package/src/studio/public/library.css +12 -3
  85. package/src/studio/public/library.html +3 -0
  86. package/src/studio/public/library.js +39 -12
  87. package/src/studio/public/map-data.js +158 -0
  88. package/src/studio/public/map-editor.js +676 -0
  89. package/src/studio/public/map-fields.js +21 -0
  90. package/src/studio/public/map-settings.js +86 -0
  91. package/src/studio/public/slide-form.js +19 -16
  92. package/src/studio/public/style.css +58 -0
  93. package/src/studio/public/ui-icons.js +1 -1
  94. package/src/studio/public/viewers.js +2 -1
  95. package/src/studio/public/visual-editor.js +1 -1
  96. package/src/studio/server.js +34 -9
  97. package/src/studio/snapshot.js +8 -4
  98. package/src/studio/template-collections.js +1 -1
  99. package/src/studio/tour.js +158 -0
  100. package/src/themes.js +154 -0
  101. package/templates/cenario-e-ciencia.yaml +1 -21
  102. package/templates/ensaio-api.yaml +3 -3
  103. package/templates/cenario/Texto no cen/303/241rio.yaml" +0 -171
  104. package/templates/cenario/imagens/cidade.svg +0 -30
  105. package/templates/cenario/imagens/pessoa.svg +0 -15
@@ -1,171 +0,0 @@
1
- # Demonstração do "Texto no cenário" (layout scenography): todas as composições e tudo o que dá para ajustar.
2
- # Biblioteca: Nova, "Exemplo: texto no cenário". As imagens de exemplo estão em imagens/ (troque pelas suas).
3
- title: Texto no cenário
4
- theme: aurora
5
- motion: none
6
- author: Seu nome
7
- duration: 15
8
- slides:
9
- - layout: scenography
10
- scene: stage
11
- kicker: DEMONSTRAÇÃO
12
- title: "TEXTO NO\nCENÁRIO"
13
- subtitle: Treze composições e tudo o que dá para ajustar.
14
- caption: SAGADECK / TEXTO NO CENÁRIO
15
- notes: Cada slide deste deck mostra uma composição (campo scene) ou uma opção. Abra o painel Formatar para ver os campos.
16
-
17
- - layout: section
18
- title: As composições
19
- subtitle: Campo "Composição" (scene). O texto continua editável em todas.
20
-
21
- - layout: scenography
22
- scene: stage
23
- kicker: "scene: stage"
24
- title: "ALÉM DO\nÓBVIO"
25
- subtitle: Palco e profundidade. Letras monumentais atrás de uma escultura.
26
- caption: PALCO E PROFUNDIDADE
27
-
28
- - layout: scenography
29
- scene: floor
30
- kicker: "scene: floor"
31
- title: "NOVOS\nCAMINHOS"
32
- caption: CHÃO EM PERSPECTIVA
33
-
34
- - layout: scenography
35
- scene: signs
36
- kicker: "scene: signs"
37
- title: "IDEIAS\nEM CENA"
38
- subtitle: Uma placa na cidade.
39
- caption: PLACAS NA CIDADE
40
-
41
- - layout: scenography
42
- scene: terminal
43
- kicker: ./acesso --scene terminal
44
- title: "acesso\nconcedido"
45
- subtitle: Segurança começa pela curiosidade.
46
- caption: TERMINAL HACKER
47
-
48
- - layout: scenography
49
- scene: cafe
50
- kicker: "Hoje no cardápio (scene: cafe)"
51
- title: "Ideias coadas\nna hora"
52
- subtitle: Com calma, açúcar a gosto.
53
- caption: LOUSA DE CAFÉ
54
-
55
- - layout: scenography
56
- scene: travel
57
- kicker: "EMBARQUE IMEDIATO / scene: travel"
58
- title: "PRÓXIMO\nDESTINO"
59
- subtitle: O plano para os próximos 12 meses.
60
- caption: CARTÃO DE EMBARQUE
61
-
62
- - layout: scenography
63
- scene: ticker
64
- kicker: "Q3 2026 / scene: ticker"
65
- title: "RESULTADO\nRECORDE"
66
- subtitle: Receita 38% acima do ano passado.
67
- caption: PREGÃO FINANCEIRO
68
-
69
- - layout: scenography
70
- scene: marquee
71
- kicker: "EM CARTAZ / scene: marquee"
72
- title: "HOJE:\nA ESTREIA"
73
- subtitle: Sessão única, entrada franca.
74
- caption: LETREIRO DE CINEMA
75
-
76
- - layout: scenography
77
- scene: blueprint
78
- kicker: "scene: blueprint"
79
- title: "PROJETO\nDO FUTURO"
80
- subtitle: medidas em ideias, escala 1:1
81
- caption: PLANTA TÉCNICA
82
-
83
- - layout: scenography
84
- scene: magazine
85
- kicker: "CAPA / scene: magazine"
86
- title: "O ANO DA\nVIRADA"
87
- subtitle: Como uma equipe pequena mudou o jogo.
88
- caption: CAPA DE REVISTA
89
-
90
- - layout: scenography
91
- scene: orbit
92
- kicker: "scene: orbit"
93
- title: "MISSÃO\nCUMPRIDA"
94
- subtitle: Da ideia à órbita em seis meses.
95
- caption: ÓRBITA
96
-
97
- - layout: scenography
98
- scene: synthwave
99
- kicker: "scene: synthwave"
100
- title: "DE VOLTA\nAO FUTURO"
101
- subtitle: As ideias que voltaram com tudo.
102
- caption: NEON ANOS 80
103
-
104
- - layout: scenography
105
- scene: gallery
106
- kicker: "scene: gallery"
107
- title: "Menos\né mais"
108
- subtitle: Uma ideia por parede.
109
- caption: PAREDE DE GALERIA
110
-
111
- - layout: section
112
- title: E dá para ajustar
113
- subtitle: Imagem de fundo, transparência, recorte na frente das letras e tamanho do texto.
114
-
115
- - layout: scenography
116
- scene: stage
117
- image: imagens/cidade.svg
118
- imageOpacity: 1
119
- kicker: "image: imagens/cidade.svg"
120
- title: "IMAGEM DE\nFUNDO"
121
- subtitle: "Imagem de fundo (image), sem transparência: imageOpacity: 1"
122
- caption: IMAGEM DE FUNDO
123
- notes: Troque imagens/cidade.svg por uma foto sua (arquivo ao lado do deck ou link).
124
-
125
- - layout: scenography
126
- scene: stage
127
- image: imagens/cidade.svg
128
- imageOpacity: 0.3
129
- kicker: "imageOpacity: 0.3"
130
- title: "MAIS\nTRANSPARENTE"
131
- subtitle: De 0 (some) a 1 (inteira). Sem o campo, fica em 0.85.
132
- caption: TRANSPARÊNCIA DO FUNDO
133
-
134
- - layout: scenography
135
- scene: floor
136
- foreground: imagens/pessoa.svg
137
- kicker: "foreground: imagens/pessoa.svg"
138
- title: "NA FRENTE\nDAS LETRAS"
139
- caption: RECORTE EM PRIMEIRO PLANO
140
- notes: O recorte (PNG ou SVG com fundo transparente, do tamanho do slide) fica por cima do texto. O fundo não é recortado sozinho; recorte a pessoa num editor.
141
-
142
- - layout: scenography
143
- scene: gallery
144
- foreground: imagens/pessoa.svg
145
- kicker: "foreground + gallery"
146
- title: "Olhe de\nperto"
147
- subtitle: Alguém parado diante da parede.
148
- caption: RECORTE NA GALERIA
149
-
150
- - layout: scenography
151
- scene: stage
152
- image: imagens/cidade.svg
153
- imageOpacity: 0.6
154
- foreground: imagens/pessoa.svg
155
- titleSize: 300
156
- kicker: "titleSize: 300"
157
- title: "TUDO\nJUNTO"
158
- subtitle: Fundo, transparência, recorte e texto maior.
159
- caption: TUDO JUNTO
160
-
161
- - layout: scenography
162
- scene: orbit
163
- titleSize: 110
164
- kicker: "titleSize: 110"
165
- title: "Texto menor, mais respiro"
166
- subtitle: Sem titleSize, cada composição usa o seu tamanho padrão.
167
- caption: TAMANHO DO TEXTO
168
-
169
- - layout: end
170
- title: Agora é com você
171
- subtitle: Inserir, Texto no cenário. Depois é só escolher a composição.
@@ -1,30 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">
2
- <!-- fundo de exemplo do deck "Texto no cenário": uma cidade ao entardecer (troque por uma foto sua) -->
3
- <defs>
4
- <linearGradient id="ceu" x1="0" y1="0" x2="0" y2="1">
5
- <stop offset="0" stop-color="#241a4f"/>
6
- <stop offset=".55" stop-color="#b8517a"/>
7
- <stop offset=".8" stop-color="#ffb070"/>
8
- </linearGradient>
9
- <pattern id="janelas" width="36" height="44" patternUnits="userSpaceOnUse">
10
- <rect x="8" y="10" width="14" height="18" fill="#ffd98a" opacity=".75"/>
11
- </pattern>
12
- </defs>
13
- <rect width="1920" height="1080" fill="url(#ceu)"/>
14
- <circle cx="1380" cy="700" r="170" fill="#ffe2a6" opacity=".9"/>
15
- <g fill="#3a2350">
16
- <rect x="0" y="640" width="220" height="440"/><rect x="240" y="520" width="170" height="560"/>
17
- <rect x="430" y="700" width="260" height="380"/><rect x="700" y="430" width="150" height="650"/>
18
- <rect x="870" y="610" width="230" height="470"/><rect x="1120" y="540" width="190" height="540"/>
19
- <rect x="1330" y="760" width="210" height="320"/><rect x="1560" y="480" width="160" height="600"/>
20
- <rect x="1740" y="660" width="180" height="420"/>
21
- </g>
22
- <g fill="#1d1230">
23
- <rect x="100" y="780" width="260" height="300"/><rect x="560" y="820" width="210" height="260"/>
24
- <rect x="980" y="760" width="240" height="320"/><rect x="1450" y="840" width="300" height="240"/>
25
- </g>
26
- <g fill="url(#janelas)">
27
- <rect x="240" y="520" width="170" height="560"/><rect x="700" y="430" width="150" height="650"/>
28
- <rect x="1120" y="540" width="190" height="540"/><rect x="1560" y="480" width="160" height="600"/>
29
- </g>
30
- </svg>
@@ -1,15 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">
2
- <!-- recorte de exemplo (fundo transparente): uma pessoa em pé, à direita. Fica na frente das letras (foreground).
3
- Para uma foto sua, recorte a pessoa num editor e salve como PNG transparente do mesmo tamanho do slide. -->
4
- <defs>
5
- <linearGradient id="luz" x1="0" y1="0" x2="1" y2="0">
6
- <stop offset="0" stop-color="#2a2238"/>
7
- <stop offset=".75" stop-color="#1a1424"/>
8
- <stop offset="1" stop-color="#ff9a6b"/>
9
- </linearGradient>
10
- </defs>
11
- <g fill="url(#luz)">
12
- <ellipse cx="1470" cy="455" rx="62" ry="74"/>
13
- <path d="M1452 520h40l10 30c70 10 118 40 130 110l40 250c6 40-40 50-52 12l-40-190-10 398h-68l-20-300-20 300h-68l-12-398-40 190c-12 38-58 28-52-12l40-250c12-70 60-100 122-110z"/>
14
- </g>
15
- </svg>