diff --git a/.vscode/settings.json b/.vscode/settings.json index c5c1f12..cad4bde 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,11 +8,7 @@ "pattern": "packages/*" } ], - "eslint.validate": [ - "javascript", - "typescript", - "svelte" - ], + "eslint.validate": ["javascript", "typescript", "svelte"], "eslint.options": { "cache": true, "cacheLocation": ".eslintcache" @@ -28,4 +24,4 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "editor.tabSize": 2 -} \ No newline at end of file +} diff --git a/bun.lock b/bun.lock index 21db7e4..2d74ab3 100644 --- a/bun.lock +++ b/bun.lock @@ -4,6 +4,9 @@ "workspaces": { "": { "name": "sesp-site", + "dependencies": { + "lucide-svelte": "^0.562.0", + }, "devDependencies": { "@eslint/compat": "^1.4.0", "@eslint/js": "^9.39.1", @@ -485,6 +488,8 @@ "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + "lucide-svelte": ["lucide-svelte@0.562.0", "", { "peerDependencies": { "svelte": "^3 || ^4 || ^5.0.0-next.42" } }, "sha512-kSJDH/55lf0mun/o4nqWBXOcq0fWYzPeIjbTD97ywoeumAB9kWxtM06gC7oynqjtK3XhAljWSz5RafIzPEYIQA=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], diff --git a/package.json b/package.json index b7b1772..d212e63 100644 --- a/package.json +++ b/package.json @@ -59,5 +59,8 @@ }, "keywords": [ "svelte" - ] + ], + "dependencies": { + "lucide-svelte": "^0.562.0" + } } diff --git a/src/error.html b/src/error.html index 946d4db..213c856 100644 --- a/src/error.html +++ b/src/error.html @@ -21,7 +21,15 @@ body { margin: 0; - font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; + font-family: + ui-sans-serif, + system-ui, + -apple-system, + Segoe UI, + Roboto, + Helvetica, + Arial, + sans-serif; color: var(--text); background: radial-gradient(1000px 500px at 10% 0%, rgba(31, 74, 134, 0.14), transparent 60%), @@ -103,9 +111,7 @@
Erro %sveltekit.status%

%sveltekit.error.message%

-

- Se o problema persistir, volte para a página inicial e tente novamente mais tarde. -

+

Se o problema persistir, volte para a página inicial e tente novamente mais tarde.

Ir para a página inicial @@ -114,4 +120,3 @@
- diff --git a/src/lib/components/NewsCarousel.svelte b/src/lib/components/NewsCarousel.svelte index 2820c0a..8452366 100644 --- a/src/lib/components/NewsCarousel.svelte +++ b/src/lib/components/NewsCarousel.svelte @@ -1,5 +1,7 @@ -
+

{title}

@@ -82,8 +87,8 @@ > {#each items as item, i (item.slug)}
@@ -105,8 +110,10 @@ aria-hidden="true" class="h-56 w-full bg-linear-to-br from-[color:var(--accent-blue)]/15 via-white/40 to-[color:var(--accent-yellow)]/20 sm:h-64" >
-
-
+
+
-

+

{item.title}

@@ -129,7 +138,10 @@ class="mt-4 inline-flex items-center gap-2 text-sm font-semibold text-white drop-shadow-sm" > Ler notícia - +

{/if} @@ -151,4 +163,3 @@
{/if} - diff --git a/src/lib/components/ProgramCard.svelte b/src/lib/components/ProgramCard.svelte index 4dc5c3c..5cf6597 100644 --- a/src/lib/components/ProgramCard.svelte +++ b/src/lib/components/ProgramCard.svelte @@ -1,5 +1,7 @@
@@ -43,7 +45,6 @@
Acessar - +
- diff --git a/src/lib/components/ProgramMiniCard.svelte b/src/lib/components/ProgramMiniCard.svelte index 8641eb6..670da24 100644 --- a/src/lib/components/ProgramMiniCard.svelte +++ b/src/lib/components/ProgramMiniCard.svelte @@ -1,5 +1,7 @@ - -
+{#if program.cardImageSrc} + -
- -
- - +
+
+ +

{program.name}

+
+

+ {program.shortDescription} +

+
+ Abrir +
+
+ +{/if} diff --git a/src/lib/components/ProgramPage.svelte b/src/lib/components/ProgramPage.svelte index 94acdb9..acc5e59 100644 --- a/src/lib/components/ProgramPage.svelte +++ b/src/lib/components/ProgramPage.svelte @@ -1,6 +1,8 @@ @@ -29,12 +32,12 @@ -
+
- + @@ -70,31 +73,34 @@
-

+

Inscrições 2026

- De {enrollment2026.start} até {enrollment2026.end}. + De {enrollment2026.start} até + {enrollment2026.end}.

Exclusivamente online.

-

Quem pode

+

+ Quem pode +

{program.eligibility}

-

+

Como funciona

{program.signupProcess}

-

+

Benefícios

- diff --git a/src/lib/data/news.ts b/src/lib/data/news.ts index d5d71f6..07b7fa7 100644 --- a/src/lib/data/news.ts +++ b/src/lib/data/news.ts @@ -12,14 +12,15 @@ export type News = { export const news: News[] = [ { slug: 'inscricoes-programas-2026', - title: 'Secretaria de Esportes abre inscrições para Bolsa Atleta, Bolsa Técnico e Time Pernambuco 2026', + title: + 'Secretaria de Esportes abre inscrições para Bolsa Atleta, Bolsa Técnico e Time Pernambuco 2026', dek: 'Processo de inscrição é exclusivamente online e segue até 5 de fevereiro.', date: '2026-01-02', category: 'Programas', featured: true, imageSrc: '/brand/imageminscricoesabertas.png', body: [ - 'As inscrições para os programas Bolsa Atleta, Bolsa Técnico e Time Pernambuco 2026 estão abertas.', + 'As inscrições para os programas Bolsa Atleta, Bolsa Técnico e Time Pernambuco 2026 estão abertas.' ] }, { @@ -29,7 +30,7 @@ export const news: News[] = [ date: '2025-12-18', category: 'Resultados', body: [ - 'Em 2025, os programas de incentivo ao esporte alcançaram um número recorde de beneficiados.', + 'Em 2025, os programas de incentivo ao esporte alcançaram um número recorde de beneficiados.' ] }, { @@ -39,7 +40,7 @@ export const news: News[] = [ date: '2026-01-03', category: 'Comunicados', body: [ - 'Após preencher o formulário eletrônico, é necessário anexar a documentação exigida na plataforma.', + 'Após preencher o formulário eletrônico, é necessário anexar a documentação exigida na plataforma.' ] }, { @@ -48,9 +49,7 @@ export const news: News[] = [ dek: 'Reunimos respostas rápidas para as principais perguntas sobre os programas.', date: '2026-01-05', category: 'Serviço', - body: [ - 'Veja perguntas e respostas sobre inscrição, documentos, prazos e acompanhamento.', - ] + body: ['Veja perguntas e respostas sobre inscrição, documentos, prazos e acompanhamento.'] } ]; @@ -61,4 +60,3 @@ export function getNews(slug: string): News { if (!item) throw new Error(`Notícia não encontrada: ${slug}`); return item; } - diff --git a/src/lib/data/programs.ts b/src/lib/data/programs.ts index 8e117c8..d051178 100644 --- a/src/lib/data/programs.ts +++ b/src/lib/data/programs.ts @@ -25,6 +25,7 @@ export type Program = { benefits: string[]; signupProcess: string; brandImageSrc: string; + cardImageSrc?: string; accent: 'blue' | 'yellow' | 'green' | 'red'; signupUrl: string; editalUrl: string; @@ -47,10 +48,10 @@ export const programs: Program[] = [ signupProcess: 'Inscrição exclusivamente online. Após preencher o formulário eletrônico, anexe a documentação exigida na própria plataforma, conforme orientações do edital.', brandImageSrc: '/brand/bolsa-atleta.png', + cardImageSrc: '/images/bolsa-atleta-card.png', accent: 'yellow', signupUrl: 'https://forms.gle/2iJw8vtLsCrjvrmD6', - editalUrl: - 'https://drive.google.com/file/d/14zc13QfHC1mw6d6GFZJIJNNc-JgadsfA/view?usp=sharing' + editalUrl: 'https://drive.google.com/file/d/14zc13QfHC1mw6d6GFZJIJNNc-JgadsfA/view?usp=sharing' }, { id: 'bolsa-tecnico', @@ -68,10 +69,10 @@ export const programs: Program[] = [ signupProcess: 'Inscrição exclusivamente online. Após preencher o formulário eletrônico, anexe a documentação exigida na própria plataforma, conforme orientações do edital.', brandImageSrc: '/brand/bolsa-tecnico.png', + cardImageSrc: '/images/bolsa-tecnico-card.png', accent: 'blue', signupUrl: 'https://forms.gle/r9qC32yNEAFsyg4s7', - editalUrl: - 'https://drive.google.com/file/d/1mWQUPvsjmzp_glTcbJAY3F6k46VUJZiL/view?usp=sharing' + editalUrl: 'https://drive.google.com/file/d/1mWQUPvsjmzp_glTcbJAY3F6k46VUJZiL/view?usp=sharing' }, { id: 'time-pe', @@ -89,10 +90,10 @@ export const programs: Program[] = [ signupProcess: 'No Time PE, além do cadastro online, o envio da documentação segue o procedimento específico descrito no edital.', brandImageSrc: '/brand/time-pe.png', + cardImageSrc: '/images/time-pe-card.png', accent: 'green', signupUrl: 'https://forms.gle/BDp5ZD8QkhVL1CDu5', - editalUrl: - 'https://drive.google.com/file/d/1XHvoUL92IGzItG-4WaF_Ih-whgPpdoEO/view?usp=sharing' + editalUrl: 'https://drive.google.com/file/d/1XHvoUL92IGzItG-4WaF_Ih-whgPpdoEO/view?usp=sharing' } ]; @@ -101,4 +102,3 @@ export function getProgram(id: ProgramId): Program { if (!program) throw new Error(`Programa não encontrado: ${id}`); return program; } - diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte index 4740631..1ab0b9f 100644 --- a/src/routes/+error.svelte +++ b/src/routes/+error.svelte @@ -1,10 +1,13 @@ -{@render children()} +
+
+
+
+ Secretaria de Esportes de Pernambuco +
+

+ Governo de Pernambuco +

+

+ Secretaria de Esportes de Pernambuco +

+
+
+ +
+ + OUVIDORIA + + + +
+
+
+ +
+ {@render children()} +
+ +
+
+
+ Logomarca do Governo de Pernambuco +
+

Secretaria de Esportes de Pernambuco

+

Página institucional • Notícias e programas

+
+
+ +

+ © {new Date().getFullYear()} Governo de Pernambuco — SESP-PE. +

+
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index dad1264..9d7ae09 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,4 +1,6 @@ - diff --git a/src/routes/bolsa-tecnico/+page.svelte b/src/routes/bolsa-tecnico/+page.svelte index 77b048e..bd58714 100644 --- a/src/routes/bolsa-tecnico/+page.svelte +++ b/src/routes/bolsa-tecnico/+page.svelte @@ -6,4 +6,3 @@ - diff --git a/src/routes/noticias/[slug]/+page.svelte b/src/routes/noticias/[slug]/+page.svelte index 0d8540c..6b7ce11 100644 --- a/src/routes/noticias/[slug]/+page.svelte +++ b/src/routes/noticias/[slug]/+page.svelte @@ -1,5 +1,7 @@ + Ouvidoria | Secretaria de Esportes de Pernambuco -
+
- + @@ -40,7 +45,7 @@

ouvidoria.esportes@esportes.pe.gov.br @@ -55,7 +60,9 @@

-

Endereço

+

+ Endereço +

Rua Alm. Nelson Fernandes S/N

Prédio sede do Parque Esportivo Santos Dumont (térreo) @@ -63,14 +70,13 @@

-

Horário

-

- Dia úteis das 09 às 11:30 e das 14 às 16:30 +

+ Horário

+

Dia úteis das 09 às 11:30 e das 14 às 16:30

- diff --git a/src/routes/time-pe/+page.svelte b/src/routes/time-pe/+page.svelte index e2e69ee..9938e4d 100644 --- a/src/routes/time-pe/+page.svelte +++ b/src/routes/time-pe/+page.svelte @@ -6,4 +6,3 @@ - diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000..7d514eb Binary files /dev/null and b/static/favicon.png differ diff --git a/static/favicon.svg b/static/favicon.svg deleted file mode 100644 index cc5dc66..0000000 --- a/static/favicon.svg +++ /dev/null @@ -1 +0,0 @@ -svelte-logo \ No newline at end of file diff --git a/static/images/bolsa-atleta-card.png b/static/images/bolsa-atleta-card.png new file mode 100644 index 0000000..2b8c64a Binary files /dev/null and b/static/images/bolsa-atleta-card.png differ diff --git a/static/images/bolsa-tecnico-card.png b/static/images/bolsa-tecnico-card.png new file mode 100644 index 0000000..d77a1fd Binary files /dev/null and b/static/images/bolsa-tecnico-card.png differ diff --git a/static/images/time-pe-card.png b/static/images/time-pe-card.png new file mode 100644 index 0000000..c895836 Binary files /dev/null and b/static/images/time-pe-card.png differ diff --git a/svelte.config.js b/svelte.config.js index 23d82d9..40bdf45 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,4 +1,4 @@ -import adapter from "svelte-adapter-bun"; +import adapter from 'svelte-adapter-bun'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; /** @type {import('@sveltejs/kit').Config} */