This commit is contained in:
2025-04-23 10:05:58 -03:00
parent 270a9c6e68
commit 2794934520
21 changed files with 1083 additions and 192 deletions

View File

@@ -1,6 +0,0 @@
{
"useTabs": false,
"semi": false,
"singleQuote": true,
"printWidth": 120
}

View File

@@ -9,6 +9,8 @@ import icon from 'astro-icon'
import react from '@astrojs/react'; import react from '@astrojs/react';
import mdx from '@astrojs/mdx';
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
site: 'https://eduseg.com.br', site: 'https://eduseg.com.br',
@@ -17,7 +19,7 @@ export default defineConfig({
forward: ['dataLayer.push', 'fbq'], forward: ['dataLayer.push', 'fbq'],
debug: false, debug: false,
}, },
}), react()], }), react(), mdx()],
prefetch: true, prefetch: true,
vite: { vite: {
plugins: [tailwindcss()], plugins: [tailwindcss()],

View File

@@ -9,6 +9,7 @@
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"@astrojs/alpinejs": "^0.4.6", "@astrojs/alpinejs": "^0.4.6",
"@astrojs/mdx": "^4.2.4",
"@astrojs/partytown": "^2.1.4", "@astrojs/partytown": "^2.1.4",
"@astrojs/react": "^4.2.4", "@astrojs/react": "^4.2.4",
"@astrojs/sitemap": "^3.3.0", "@astrojs/sitemap": "^3.3.0",
@@ -124,6 +125,33 @@
"vfile": "^6.0.3" "vfile": "^6.0.3"
} }
}, },
"node_modules/@astrojs/mdx": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.2.4.tgz",
"integrity": "sha512-c832AWpiMCcuPY8j+yr5T+hOf8n5RlKLFHlNTt15xxkOk3zjFJP81TIYKrMrbhD5rMzJ09Ixi+xM0m68w2Q0DQ==",
"license": "MIT",
"dependencies": {
"@astrojs/markdown-remark": "6.3.1",
"@mdx-js/mdx": "^3.1.0",
"acorn": "^8.14.1",
"es-module-lexer": "^1.6.0",
"estree-util-visit": "^2.0.0",
"hast-util-to-html": "^9.0.5",
"kleur": "^4.1.5",
"rehype-raw": "^7.0.0",
"remark-gfm": "^4.0.1",
"remark-smartypants": "^3.0.2",
"source-map": "^0.7.4",
"unist-util-visit": "^5.0.0",
"vfile": "^6.0.3"
},
"engines": {
"node": "^18.17.1 || ^20.3.0 || >=22.0.0"
},
"peerDependencies": {
"astro": "^5.0.0"
}
},
"node_modules/@astrojs/partytown": { "node_modules/@astrojs/partytown": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.npmjs.org/@astrojs/partytown/-/partytown-2.1.4.tgz", "resolved": "https://registry.npmjs.org/@astrojs/partytown/-/partytown-2.1.4.tgz",
@@ -1420,6 +1448,42 @@
"@jridgewell/sourcemap-codec": "^1.4.14" "@jridgewell/sourcemap-codec": "^1.4.14"
} }
}, },
"node_modules/@mdx-js/mdx": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
"integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
"@types/mdx": "^2.0.0",
"collapse-white-space": "^2.0.0",
"devlop": "^1.0.0",
"estree-util-is-identifier-name": "^3.0.0",
"estree-util-scope": "^1.0.0",
"estree-walker": "^3.0.0",
"hast-util-to-jsx-runtime": "^2.0.0",
"markdown-extensions": "^2.0.0",
"recma-build-jsx": "^1.0.0",
"recma-jsx": "^1.0.0",
"recma-stringify": "^1.0.0",
"rehype-recma": "^1.0.0",
"remark-mdx": "^3.0.0",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.0.0",
"source-map": "^0.7.0",
"unified": "^11.0.0",
"unist-util-position-from-estree": "^2.0.0",
"unist-util-stringify-position": "^4.0.0",
"unist-util-visit": "^5.0.0",
"vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/@oslojs/encoding": { "node_modules/@oslojs/encoding": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz",
@@ -2093,6 +2157,15 @@
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/estree-jsx": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
"integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
"license": "MIT",
"dependencies": {
"@types/estree": "*"
}
},
"node_modules/@types/hast": { "node_modules/@types/hast": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -2111,6 +2184,12 @@
"@types/unist": "*" "@types/unist": "*"
} }
}, },
"node_modules/@types/mdx": {
"version": "2.0.13",
"resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
"integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
"license": "MIT"
},
"node_modules/@types/ms": { "node_modules/@types/ms": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
@@ -2240,6 +2319,15 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/alpinejs": { "node_modules/alpinejs": {
"version": "3.14.9", "version": "3.14.9",
"resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.9.tgz", "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.9.tgz",
@@ -2379,6 +2467,15 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/astring": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
"integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
"license": "MIT",
"bin": {
"astring": "bin/astring"
}
},
"node_modules/astro": { "node_modules/astro": {
"version": "5.7.2", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/astro/-/astro-5.7.2.tgz", "resolved": "https://registry.npmjs.org/astro/-/astro-5.7.2.tgz",
@@ -2729,6 +2826,16 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/character-reference-invalid": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
"integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/cheerio": { "node_modules/cheerio": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz",
@@ -2840,6 +2947,16 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/collapse-white-space": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
"integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/color": { "node_modules/color": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
@@ -3386,6 +3503,38 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/esast-util-from-estree": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
"integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"devlop": "^1.0.0",
"estree-util-visit": "^2.0.0",
"unist-util-position-from-estree": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/esast-util-from-js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
"integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"acorn": "^8.0.0",
"esast-util-from-estree": "^2.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.25.1", "version": "0.25.1",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
@@ -3447,6 +3596,88 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/estree-util-attach-comments": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
"integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-util-build-jsx": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
"integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"devlop": "^1.0.0",
"estree-util-is-identifier-name": "^3.0.0",
"estree-walker": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-util-is-identifier-name": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
"integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-util-scope": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
"integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-util-to-js": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
"integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"astring": "^1.8.0",
"source-map": "^0.7.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-util-visit": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
"integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/estree-walker": { "node_modules/estree-walker": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
@@ -3888,6 +4119,34 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/hast-util-to-estree": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz",
"integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
"comma-separated-tokens": "^2.0.0",
"devlop": "^1.0.0",
"estree-util-attach-comments": "^3.0.0",
"estree-util-is-identifier-name": "^3.0.0",
"hast-util-whitespace": "^3.0.0",
"mdast-util-mdx-expression": "^2.0.0",
"mdast-util-mdx-jsx": "^3.0.0",
"mdast-util-mdxjs-esm": "^2.0.0",
"property-information": "^7.0.0",
"space-separated-tokens": "^2.0.0",
"style-to-js": "^1.0.0",
"unist-util-position": "^5.0.0",
"zwitch": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/hast-util-to-html": { "node_modules/hast-util-to-html": {
"version": "9.0.5", "version": "9.0.5",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
@@ -3911,6 +4170,33 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/hast-util-to-jsx-runtime": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
"integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
"comma-separated-tokens": "^2.0.0",
"devlop": "^1.0.0",
"estree-util-is-identifier-name": "^3.0.0",
"hast-util-whitespace": "^3.0.0",
"mdast-util-mdx-expression": "^2.0.0",
"mdast-util-mdx-jsx": "^3.0.0",
"mdast-util-mdxjs-esm": "^2.0.0",
"property-information": "^7.0.0",
"space-separated-tokens": "^2.0.0",
"style-to-js": "^1.0.0",
"unist-util-position": "^5.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/hast-util-to-parse5": { "node_modules/hast-util-to-parse5": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
@@ -4049,6 +4335,12 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/inline-style-parser": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
"integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
"license": "MIT"
},
"node_modules/iron-webcrypto": { "node_modules/iron-webcrypto": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
@@ -4058,6 +4350,30 @@
"url": "https://github.com/sponsors/brc-dd" "url": "https://github.com/sponsors/brc-dd"
} }
}, },
"node_modules/is-alphabetical": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
"integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-alphanumerical": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
"integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
"license": "MIT",
"dependencies": {
"is-alphabetical": "^2.0.0",
"is-decimal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-arrayish": { "node_modules/is-arrayish": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
@@ -4065,6 +4381,16 @@
"license": "MIT", "license": "MIT",
"optional": true "optional": true
}, },
"node_modules/is-decimal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
"integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-docker": { "node_modules/is-docker": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
@@ -4089,6 +4415,16 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/is-hexadecimal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
"integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-inside-container": { "node_modules/is-inside-container": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
@@ -4480,6 +4816,18 @@
"source-map-js": "^1.2.0" "source-map-js": "^1.2.0"
} }
}, },
"node_modules/markdown-extensions": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
"integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
"license": "MIT",
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/markdown-table": { "node_modules/markdown-table": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
@@ -4655,6 +5003,83 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/mdast-util-mdx": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
"integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
"license": "MIT",
"dependencies": {
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-mdx-expression": "^2.0.0",
"mdast-util-mdx-jsx": "^3.0.0",
"mdast-util-mdxjs-esm": "^2.0.0",
"mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdast-util-mdx-expression": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
"integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
"devlop": "^1.0.0",
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdast-util-mdx-jsx": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
"integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
"@types/unist": "^3.0.0",
"ccount": "^2.0.0",
"devlop": "^1.1.0",
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-to-markdown": "^2.0.0",
"parse-entities": "^4.0.0",
"stringify-entities": "^4.0.0",
"unist-util-stringify-position": "^4.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdast-util-mdxjs-esm": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
"integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
"license": "MIT",
"dependencies": {
"@types/estree-jsx": "^1.0.0",
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
"devlop": "^1.0.0",
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdast-util-phrasing": { "node_modules/mdast-util-phrasing": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
@@ -4920,6 +5345,108 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/micromark-extension-mdx-expression": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz",
"integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0",
"micromark-factory-mdx-expression": "^2.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-events-to-acorn": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
}
},
"node_modules/micromark-extension-mdx-jsx": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz",
"integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0",
"estree-util-is-identifier-name": "^3.0.0",
"micromark-factory-mdx-expression": "^2.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-events-to-acorn": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-mdx-md": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
"integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
"license": "MIT",
"dependencies": {
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-mdxjs": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
"integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
"license": "MIT",
"dependencies": {
"acorn": "^8.0.0",
"acorn-jsx": "^5.0.0",
"micromark-extension-mdx-expression": "^3.0.0",
"micromark-extension-mdx-jsx": "^3.0.0",
"micromark-extension-mdx-md": "^2.0.0",
"micromark-extension-mdxjs-esm": "^3.0.0",
"micromark-util-combine-extensions": "^2.0.0",
"micromark-util-types": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-extension-mdxjs-esm": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
"integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0",
"micromark-core-commonmark": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-events-to-acorn": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0",
"unist-util-position-from-estree": "^2.0.0",
"vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/micromark-factory-destination": { "node_modules/micromark-factory-destination": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
@@ -4963,6 +5490,33 @@
"micromark-util-types": "^2.0.0" "micromark-util-types": "^2.0.0"
} }
}, },
"node_modules/micromark-factory-mdx-expression": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz",
"integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"devlop": "^1.0.0",
"micromark-factory-space": "^2.0.0",
"micromark-util-character": "^2.0.0",
"micromark-util-events-to-acorn": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0",
"unist-util-position-from-estree": "^2.0.0",
"vfile-message": "^4.0.0"
}
},
"node_modules/micromark-factory-space": { "node_modules/micromark-factory-space": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
@@ -5164,6 +5718,31 @@
], ],
"license": "MIT" "license": "MIT"
}, },
"node_modules/micromark-util-events-to-acorn": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz",
"integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==",
"funding": [
{
"type": "GitHub Sponsors",
"url": "https://github.com/sponsors/unifiedjs"
},
{
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
],
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/unist": "^3.0.0",
"devlop": "^1.0.0",
"estree-util-visit": "^2.0.0",
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0",
"vfile-message": "^4.0.0"
}
},
"node_modules/micromark-util-html-tag-name": { "node_modules/micromark-util-html-tag-name": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
@@ -5597,6 +6176,31 @@
"integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/parse-entities": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
"integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
"license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"character-entities-legacy": "^3.0.0",
"character-reference-invalid": "^2.0.0",
"decode-named-character-reference": "^1.0.0",
"is-alphanumerical": "^2.0.0",
"is-decimal": "^2.0.0",
"is-hexadecimal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/parse-entities/node_modules/@types/unist": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
"license": "MIT"
},
"node_modules/parse-latin": { "node_modules/parse-latin": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
@@ -5865,6 +6469,70 @@
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
} }
}, },
"node_modules/recma-build-jsx": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
"integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-util-build-jsx": "^3.0.0",
"vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/recma-jsx": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
"integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
"license": "MIT",
"dependencies": {
"acorn-jsx": "^5.0.0",
"estree-util-to-js": "^2.0.0",
"recma-parse": "^1.0.0",
"recma-stringify": "^1.0.0",
"unified": "^11.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/recma-parse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
"integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"esast-util-from-js": "^2.0.0",
"unified": "^11.0.0",
"vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/recma-stringify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
"integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-util-to-js": "^2.0.0",
"unified": "^11.0.0",
"vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/regex": { "node_modules/regex": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz",
@@ -5935,6 +6603,21 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/rehype-recma": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
"integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"@types/hast": "^3.0.0",
"hast-util-to-estree": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/rehype-stringify": { "node_modules/rehype-stringify": {
"version": "10.0.1", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz",
@@ -5968,6 +6651,20 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/remark-mdx": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
"integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
"license": "MIT",
"dependencies": {
"mdast-util-mdx": "^3.0.0",
"micromark-extension-mdxjs": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-parse": { "node_modules/remark-parse": {
"version": "11.0.0", "version": "11.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
@@ -6275,6 +6972,15 @@
"url": "https://github.com/sponsors/cyyynthia" "url": "https://github.com/sponsors/cyyynthia"
} }
}, },
"node_modules/source-map": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
"integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">= 8"
}
},
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -6346,6 +7052,24 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1" "url": "https://github.com/chalk/strip-ansi?sponsor=1"
} }
}, },
"node_modules/style-to-js": {
"version": "1.1.16",
"resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz",
"integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==",
"license": "MIT",
"dependencies": {
"style-to-object": "1.0.8"
}
},
"node_modules/style-to-object": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
"integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
"license": "MIT",
"dependencies": {
"inline-style-parser": "0.2.4"
}
},
"node_modules/svgo": { "node_modules/svgo": {
"version": "3.3.2", "version": "3.3.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
@@ -6679,6 +7403,19 @@
"url": "https://opencollective.com/unified" "url": "https://opencollective.com/unified"
} }
}, },
"node_modules/unist-util-position-from-estree": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
"integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/unist-util-remove-position": { "node_modules/unist-util-remove-position": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",

View File

@@ -10,6 +10,7 @@
}, },
"dependencies": { "dependencies": {
"@astrojs/alpinejs": "^0.4.6", "@astrojs/alpinejs": "^0.4.6",
"@astrojs/mdx": "^4.2.4",
"@astrojs/partytown": "^2.1.4", "@astrojs/partytown": "^2.1.4",
"@astrojs/react": "^4.2.4", "@astrojs/react": "^4.2.4",
"@astrojs/sitemap": "^3.3.0", "@astrojs/sitemap": "^3.3.0",

View File

@@ -0,0 +1,3 @@
<div class="space-y-2.5">
<slot />
</div>

View File

@@ -0,0 +1,7 @@
<div
x-show="open"
class="text-sm/6 text-white/70 space-y-2.5 px-5 pb-3 [&_ul]:list-disc [&_ul]:list-inside"
style="display: none;"
>
<slot />
</div>

View File

@@ -0,0 +1,15 @@
---
import { Icon } from "astro-icon/components";
---
<div
class="cursor-pointer flex items-center justify-between px-5 py-3"
x-on:click="open = !open"
>
<slot />
<Icon
name="chevron-down"
class="size-4 fill-white/60 group-data-[hover]:fill-white/50 shrink-0"
:class="{'-rotate-180': open === true}"
/>
</div>

View File

@@ -0,0 +1,7 @@
<div
x-data="{ open: false }"
class="bg-white/10 rounded-lg w-full"
:class="{'bg-white/15': open === true}"
>
<slot />
</div>

View File

@@ -0,0 +1,4 @@
export { default as Accordion } from "./Accordion.astro";
export { default as Item } from "./Item.astro";
export { default as Header } from "./Header.astro";
export { default as Body } from "./Body.astro";

View File

@@ -1,9 +1,12 @@
--- ---
import { Icon } from 'astro-icon/components' import { Icon } from "astro-icon/components";
import Container from './Container.astro' import Container from "./Container.astro";
import { getCollection } from 'astro:content' import { getCollection } from "astro:content";
const courses = await getCollection('courses', ({ data }) => data.draft != true) const courses = await getCollection(
"courses",
({ data }) => data.draft != true,
);
--- ---
<nav <nav
@@ -18,8 +21,10 @@ const courses = await getCollection('courses', ({ data }) => data.draft != true)
x-on:click="open = true" x-on:click="open = true"
aria-haspopup="true" aria-haspopup="true"
> >
<div class="truncate max-w-36 sm:max-w-72 md:max-w-124">NR-18 PEMT Plataforma Móvel de Trabalho</div> <div class="truncate max-w-36 sm:max-w-72 md:max-w-124">
<Icon name="chevron" aria-hidden="true" class="size-4" /> NR-18 PEMT Plataforma Móvel de Trabalho
</div>
<Icon name="chevron-down" aria-hidden="true" class="size-4" />
</button> </button>
<button <button
@@ -56,16 +61,22 @@ const courses = await getCollection('courses', ({ data }) => data.draft != true)
<div class="border-b border-black pb-6 lg:pb-12 mb-6 lg:mb-12"> <div class="border-b border-black pb-6 lg:pb-12 mb-6 lg:mb-12">
<span>Curso de formação</span> <span>Curso de formação</span>
<h1 class="text-xl lg:text-2xl">NR-18 PEMT Plataforma Elevatória Móvel de Trabalho</h1> <h1 class="text-xl lg:text-2xl">
NR-18 PEMT Plataforma Elevatória Móvel de Trabalho
</h1>
</div> </div>
<div class="flex max-lg:flex-col gap-2.5 justify-between mb-3.5"> <div class="flex max-lg:flex-col gap-2.5 justify-between mb-3.5">
<h6 class="font-medium text-xl lg:text-2xl">Conheça outros cursos da EDUSEG&reg;</h6> <h6 class="font-medium text-xl lg:text-2xl">
Conheça outros cursos da EDUSEG&reg;
</h6>
<div class="flex max-lg:flex-col gap-0.5 lg:gap-4"> <div class="flex max-lg:flex-col gap-0.5 lg:gap-4">
<!-- Search --> <!-- Search -->
<label class="flex gap-1 items-center"> <label class="flex gap-1 items-center">
<span class="text-nowrap max-lg:w-2/5 text-right">Buscar por</span> <span class="text-nowrap max-lg:w-2/5 text-right"
>Buscar por</span
>
<div <div
class="flex items-center border rounded px-1.5 py-0.5 lg:px-2 lg:py-1 bg-white/20 focus-within:bg-white w-full transition duration-150" class="flex items-center border rounded px-1.5 py-0.5 lg:px-2 lg:py-1 bg-white/20 focus-within:bg-white w-full transition duration-150"
> >
@@ -77,7 +88,9 @@ const courses = await getCollection('courses', ({ data }) => data.draft != true)
<!-- Filter --> <!-- Filter -->
<label class="flex gap-1 items-center"> <label class="flex gap-1 items-center">
<span class="text-nowrap max-lg:w-2/5 text-right">Exibir apenas</span> <span class="text-nowrap max-lg:w-2/5 text-right"
>Exibir apenas</span
>
<div class="relative w-full lg:w-30 bg-white/20"> <div class="relative w-full lg:w-30 bg-white/20">
<select <select
class="flex border items-center justify-between gap-0.5 border-black rounded px-1.5 py-0.5 lg:px-2 lg:py-1 appearance-none focus:outline-none w-full lowercase" class="flex border items-center justify-between gap-0.5 border-black rounded px-1.5 py-0.5 lg:px-2 lg:py-1 appearance-none focus:outline-none w-full lowercase"
@@ -85,7 +98,10 @@ const courses = await getCollection('courses', ({ data }) => data.draft != true)
<option value="formacao">Formação</option> <option value="formacao">Formação</option>
<option value="reciclagem">Reciclagem</option> <option value="reciclagem">Reciclagem</option>
</select> </select>
<Icon name="chevron" class="absolute top-2.5 right-2.5 pointer-events-none size-3.5" /> <Icon
name="chevron-down"
class="absolute top-2.5 right-2.5 pointer-events-none size-3.5"
/>
</div> </div>
</label> </label>
<!-- Filder End --> <!-- Filder End -->
@@ -97,11 +113,14 @@ const courses = await getCollection('courses', ({ data }) => data.draft != true)
courses.map(({ data: { title, slug } }) => { courses.map(({ data: { title, slug } }) => {
return ( return (
<li> <li>
<a href={`/${slug}`} class="font-bold hover:underline"> <a
href={`/${slug}`}
class="font-bold hover:underline"
>
{title} {title}
</a> </a>
</li> </li>
) );
}) })
} }
</ul> </ul>

View File

@@ -1,8 +1,8 @@
import { defineCollection, z, reference } from 'astro:content' import { defineCollection, z, reference } from "astro:content";
import { glob } from 'astro/loaders' import { glob } from "astro/loaders";
const trainers = defineCollection({ const trainers = defineCollection({
loader: glob({ pattern: '**/*.md', base: './src/content/trainers' }), loader: glob({ pattern: "**/*.md", base: "./src/content/trainers" }),
schema: ({ image }) => schema: ({ image }) =>
z.object({ z.object({
name: z.string(), name: z.string(),
@@ -10,14 +10,14 @@ const trainers = defineCollection({
networks: z.array( networks: z.array(
z.object({ z.object({
alt: z.string(), alt: z.string(),
url: z.string(), url: z.string().url(),
}), }),
), ),
}), }),
}) });
const courses = defineCollection({ const courses = defineCollection({
loader: glob({ pattern: '**/*.md', base: './src/content/courses' }), loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content/courses" }),
schema: ({ image }) => schema: ({ image }) =>
z.object({ z.object({
id: z.string(), id: z.string(),
@@ -28,16 +28,7 @@ const courses = defineCollection({
course: z.object({ course: z.object({
hours: z.number(), hours: z.number(),
reciclagem: z.boolean().default(false), reciclagem: z.boolean().default(false),
modules: z.array( trainer: reference("trainers").optional(),
z.union([
z.object({
summary: z.string(),
content: z.string(),
}),
z.string(),
]),
),
trainer: reference('trainers').optional(),
}), }),
seo: z seo: z
.object({ .object({
@@ -46,6 +37,6 @@ const courses = defineCollection({
.optional(), .optional(),
draft: z.boolean().default(true), draft: z.boolean().default(true),
}), }),
}) });
export const collections = { trainers, courses } export const collections = { trainers, courses };

View File

@@ -1,21 +0,0 @@
---
id: 96c03c32-089c-4ccb-8aa1-73b0f49228b9
title: Lei Lucas
summary: Capacitação obrigatória em primeiros socorros para profissionais da educação, conforme a Lei 13.722/2018, abordando técnicas essenciais como RCP, controle de hemorragias e desobstrução das vias aéreas.
slug: lei-lucas
draft: false
course:
hours: 8
modules:
- Introdução à Lei Lucas
- Aspectos gerais dos primeiros socorros
- Sinais vitais e avaliação primária
- Parada cardiorrespiratória (PCR)
- Hemorragias e controle
- Queimaduras
- Engasgo e manobra de Heimlich
- fraturas, luxações e entorses
- Emergências traumáticas
- Convulsões e desmaios
---

View File

@@ -0,0 +1,41 @@
---
id: 96c03c32-089c-4ccb-8aa1-73b0f49228b9
title: Lei Lucas
summary: Capacitação obrigatória em primeiros socorros para profissionais da educação, conforme a Lei 13.722/2018, abordando técnicas essenciais como RCP, controle de hemorragias e desobstrução das vias aéreas.
slug: lei-lucas
draft: false
course:
hours: 8
---
import { Accordion, Item, Header, Body } from "~/components/Accordion";
<Accordion>
<Item>
<Header>Introdução à Lei Lucas</Header>
<Body>
<ul>
<li>Contexto histórico</li>
<li>Objetivos da legislação</li>
<li>Exigências para instituições de ensino</li>
</ul>
</Body>
</Item>
<Item>
<Header>Aspectos gerais dos primeiros socorros</Header>
<Body>
<ul>
<li>Definição e importância</li>
<li>Conceitos de urgência e emergência</li>
<li>Objetivos dos primeiros socorros</li>
</ul>
</Body>
</Item>
<Item>
<Header>Sinais vitais e avaliação primária</Header>
<Body></Body>
</Item>
</Accordion>

View File

@@ -1,7 +1,7 @@
--- ---
id: 479516a7-5431-452e-8f28-228e34b86e0c id: 479516a7-5431-452e-8f28-228e34b86e0c
title: NR-11 Segurança em Transpaleteira title: NR-11 Segurança em Transpaleteira
slug: nr-11-segurana-em-transpaleteira slug: nr-11-seguranca-em-transpaleteira
summary: ... summary: ...
draft: false draft: false

View File

@@ -1,7 +1,7 @@
--- ---
id: a3c46d94-cf31-4b5f-8de3-6aa1c2d423f0 id: a3c46d94-cf31-4b5f-8de3-6aa1c2d423f0
title: NR-17 Ergonomia para Teleatendimento/Telemarketing title: NR-17 Ergonomia para Teleatendimento/Telemarketing
slug: nr-17-ergonomia-para-teleatendimentotelemarketing slug: nr-17-ergonomia-para-teleatendimento-telemarketing
summary: ... summary: ...
draft: false draft: false

View File

@@ -1,27 +0,0 @@
---
id: 450a70ca-8ab5-4520-8a22-0e277359797d
title: NR-18 PEMT Plataforma Móvel de Trabalho Aéreo
summary: Capacita os profissionais para identificar e minimizar riscos, utilizar corretamente os Equipamentos de Proteção Individual (EPIs), realizar manutenções preventivas e corretivas, além de garantir a segurança durante a operação de plataformas elevatórias.
slug: nr-18-plataforma-de-trabalho-aereo
draft: false
image: ./nr-18-plataforma.png
seo:
tags:
- test
course:
hours: 4
trainer: francis
modules:
- summary: Aspectos regulamentares e legais da NR-18
content: lorem ipsum
- summary: Tipos construtivos das PEMTs, aplicações, características técnicas e operacionais
content: lorem ipsum
- Acidentes previsíveis com PEMTs e como evitá-los
- Plano de segurança da operação PSO
- Manutenção mínima de segurança nas PEMTs
- Noções de primeiros socorros
---
asdasdas

View File

@@ -0,0 +1,62 @@
---
id: 450a70ca-8ab5-4520-8a22-0e277359797d
title: NR-18 PEMT Plataforma Móvel de Trabalho Aéreo
summary: Capacita os profissionais para identificar e minimizar riscos, utilizar corretamente os Equipamentos de Proteção Individual (EPIs), realizar manutenções preventivas e corretivas, além de garantir a segurança durante a operação de plataformas elevatórias.
slug: nr-18-plataforma-de-trabalho-aereo
draft: false
image: ./nr-18-plataforma.png
seo:
tags:
- test
course:
hours: 4
trainer: francis
---
import { Accordion, Item, Header, Body } from "~/components/Accordion";
<Accordion>
<Item>
<Header>Aspectos regulamentares e legais da NR-18</Header>
<Body>
<p>Exploração dos requisitos legais e normativos da NR-18 e da ABNT 16776 aplicáveis às Plataformas de Trabalho Aéreo, garantindo conformidade e segurança no ambiente de trabalho.</p>
</Body>
</Item>
<Item>
<Header>Tipos construtivos das PEMTs, aplicações, características técnicas e operacionais</Header>
<Body>
<p>Apresentação dos diferentes modelos de Plataformas Elevatórias Móveis de Trabalho (PEMTs), suas aplicações práticas, especificações técnicas e modos operacionais.</p>
</Body>
</Item>
<Item>
<Header>Acidentes previsíveis com PEMTs e como evitá-los</Header>
<Body>
<p>Análise de cenários de acidentes típicos envolvendo PEMTs, identificando causas e estabelecendo medidas preventivas para mitigar riscos.</p>
</Body>
</Item>
<Item>
<Header>Plano de segurança da operação PSO</Header>
<Body>
<p>Desenvolvimento e aplicação do Plano de Segurança da Operação (PSO) como ferramenta indispensável para operações seguras, abrangendo planejamento, execução e controle de atividades.</p>
</Body>
</Item>
<Item>
<Header>Manutenção mínima de segurança nas PEMTs</Header>
<Body>
<p>Manutenção Mínima de Segurança nas PEMTs</p>
</Body>
</Item>
<Item>
<Header>Noções de primeiros socorros</Header>
<Body>
<p>Capacitação em práticas essenciais de primeiros socorros, com foco em respostas rápidas e eficazes a possíveis incidentes durante o uso das PEMTs.</p>
</Body>
</Item>
</Accordion>

View File

@@ -1,7 +1,7 @@
--- ---
id: 0e39c7af-a812-49aa-ac12-72f4e0ede8c9 id: 0e39c7af-a812-49aa-ac12-72f4e0ede8c9
title: Reciclagem de NR-18 Plataforma de Trabalho Aéreo PEMT title: Reciclagem de NR-18 Plataforma de Trabalho Aéreo PEMT
slug: reciclagem-de-nr-18-plataforma-de-trabalho-areo-pemt slug: reciclagem-de-nr-18-plataforma-de-trabalho-aereo-pemt
summary: ... summary: ...
draft: false draft: false

View File

@@ -1,7 +1,7 @@
--- ---
id: 2b9a6e19-2e2d-4fc2-8924-b45d47057715 id: 2b9a6e19-2e2d-4fc2-8924-b45d47057715
title: Reciclagem em NR-33 Trabalhos em Espaços Confinados title: Reciclagem em NR-33 Trabalhos em Espaços Confinados
slug: reciclagem-em-nr-33-trabalhos-em-espaos-confinados slug: reciclagem-em-nr-33-trabalhos-em-espacos-confinados
summary: ... summary: ...
draft: false draft: false

View File

Before

Width:  |  Height:  |  Size: 151 B

After

Width:  |  Height:  |  Size: 151 B

View File

@@ -1,38 +1,43 @@
--- ---
import { Picture } from 'astro:assets' import { Picture } from "astro:assets";
import { Icon } from 'astro-icon/components' import { Icon } from "astro-icon/components";
import Layout from '~/layouts/Layout.astro' import Layout from "~/layouts/Layout.astro";
import Container from '~/components/Container.astro' import Container from "~/components/Container.astro";
import Carousel from '~/components/Carousel.astro' import Carousel from "~/components/Carousel.astro";
import Kordsa from '~/components/logos/Kordsa.astro' import Kordsa from "~/components/logos/Kordsa.astro";
import Semeq from '~/components/logos/Semeq.astro' import Semeq from "~/components/logos/Semeq.astro";
import Natura from '~/components/logos/Natura.astro' import Natura from "~/components/logos/Natura.astro";
import Nissan from '~/components/logos/Nissan.astro' import Nissan from "~/components/logos/Nissan.astro";
import Manserv from '~/components/logos/Manserv.astro' import Manserv from "~/components/logos/Manserv.astro";
import Contact from './_components/Contact.jsx' import Contact from "./_components/Contact.jsx";
import placeholder from './_assets/placeholder.png' import placeholder from "./_assets/placeholder.png";
import mulherdenegocios from './_assets/mulher-de-negocios.png' import mulherdenegocios from "./_assets/mulher-de-negocios.png";
import homemdenegocios from './_assets/homem-de-negocios.png' import homemdenegocios from "./_assets/homem-de-negocios.png";
import { getCollection, getEntry } from 'astro:content' import { getCollection, getEntry, render } from "astro:content";
export async function getStaticPaths() { export async function getStaticPaths() {
const courses = await getCollection('courses', ({ data }) => data.draft != true) const courses = await getCollection(
"courses",
({ data }) => data.draft != true,
);
return courses.map((course) => { return courses.map((course) => {
return { return {
params: { slug: course.id }, params: { slug: course.id },
props: { course }, props: { course },
} };
}) });
} }
const { const { course } = Astro.props;
course: { data }, const { data } = course;
} = Astro.props const { Content } = await render(course);
const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : null const trainer = data.course?.trainer
? await getEntry(data.course?.trainer)
: null;
--- ---
<Fragment slot="head"> <Fragment slot="head">
@@ -45,41 +50,60 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
<Picture <Picture
src={data?.image ? data.image : placeholder} src={data?.image ? data.image : placeholder}
alt={data.title} alt={data.title}
formats={['webp']} formats={["webp"]}
class="max-lg:hidden max-w-116 grayscale-15" class="max-lg:hidden max-w-116 grayscale-15"
/> />
<section class="lg:py-24"> <section class="lg:py-24">
<div class="space-y-5"> <div class="space-y-5">
<span class="font-medium"> <span class="font-medium">
{data.course.reciclagem ? <>Curso de reciclagem</> : <>Curso de formação</>} {
data.course.reciclagem ? (
<>Curso de reciclagem</>
) : (
<>Curso de formação</>
)
}
</span> </span>
<h1 class="text-pretty font-semibold text-4xl lg:text-7xl"> <h1 class="text-pretty font-semibold text-4xl lg:text-7xl">
{data.title} {data.title}
</h1> </h1>
<p class="text-base/6"> <p class="text-base/6">
{data.summary} {data.summary}
<a href="#modulos" class="text-blue-400 *:hover:underline"> <a
href="#modulos"
class="text-blue-400 *:hover:underline"
>
<sup>[1]</sup> <sup>[1]</sup>
</a> </a>
</p> </p>
<ul class="lg:flex gap-3"> <ul class="lg:flex gap-3">
<li class="flex gap-1"> <li class="flex gap-1">
<Icon name="clock" class="size-5" /> <Icon name="clock" class="size-5" />
<span>Carga horária de {data.course.hours} horas</span> <span
>Carga horária de {data.course.hours} horas</span
>
</li> </li>
<li class="flex gap-1"> <li class="flex gap-1">
<Icon name="check-badge" class="size-5 text-blue-400" /> <Icon
name="check-badge"
class="size-5 text-blue-400"
/>
<span> <span>
Certificado com assinatura digital Certificado com assinatura digital
<a href="#certificado" class="text-blue-400 *:hover:underline"> <a
href="#certificado"
class="text-blue-400 *:hover:underline"
>
<sup>[2]</sup> <sup>[2]</sup>
</a> </a>
</span> </span>
</li> </li>
</ul> </ul>
<div class="flex max-lg:flex-col justify-center gap-2.5 lg:gap-8 lg:mt-16"> <div
class="flex max-lg:flex-col justify-center gap-2.5 lg:gap-8 lg:mt-16"
>
<a <a
href="#" href="#"
class="text-black font-semibold bg-lime-400 rounded p-3.5 hover:bg-white max-lg:text-center transition duration-150" class="text-black font-semibold bg-lime-400 rounded p-3.5 hover:bg-white max-lg:text-center transition duration-150"
@@ -95,18 +119,35 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
<span class="font-bold">4.7</span> <span class="font-bold">4.7</span>
<ul class="flex"> <ul class="flex">
<li> <li>
<Icon name="star" class="size-4 text-yellow-500" /> <Icon
name="star"
class="size-4 text-yellow-500"
/>
</li> </li>
<li> <li>
<Icon name="star" class="size-4 text-yellow-500" /> <Icon
name="star"
class="size-4 text-yellow-500"
/>
</li> </li>
<li> <li>
<Icon name="star" class="size-4 text-yellow-500" /> <Icon
name="star"
class="size-4 text-yellow-500"
/>
</li> </li>
<li> <li>
<Icon name="star" class="size-4 text-yellow-500" /> <Icon
name="star"
class="size-4 text-yellow-500"
/>
</li>
<li>
<Icon
name="star"
class="size-4 text-gray-500"
/>
</li> </li>
<li><Icon name="star" class="size-4 text-gray-500" /></li>
</ul> </ul>
</div> </div>
<span>66 avaliações no Google</span> <span>66 avaliações no Google</span>
@@ -117,7 +158,9 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
</Container> </Container>
<Container class="lg:text-center space-y-2.5 lg:space-y-6"> <Container class="lg:text-center space-y-2.5 lg:space-y-6">
<h2 class="text-pretty font-semibold text-4xl">Alguns clientes que acreditam em nós</h2> <h2 class="text-pretty font-semibold text-4xl">
Alguns clientes que acreditam em nós
</h2>
<Carousel items={[Natura, Kordsa, Semeq, Nissan, Manserv]} /> <Carousel items={[Natura, Kordsa, Semeq, Nissan, Manserv]} />
</Container> </Container>
@@ -125,15 +168,21 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
<Container class="flex justify-between lg:w-6/12"> <Container class="flex justify-between lg:w-6/12">
<ul class="space-y-2.5"> <ul class="space-y-2.5">
<li class="text-5xl">+ 100k</li> <li class="text-5xl">+ 100k</li>
<li class="uppercase font-bold text-white/50">Profissionais capacitados</li> <li class="uppercase font-bold text-white/50">
Profissionais capacitados
</li>
</ul> </ul>
<ul class="space-y-2.5"> <ul class="space-y-2.5">
<li class="text-5xl">+ 5k</li> <li class="text-5xl">+ 5k</li>
<li class="uppercase font-bold text-white/50">Empresas atendidas</li> <li class="uppercase font-bold text-white/50">
Empresas atendidas
</li>
</ul> </ul>
<ul class="space-y-2.5"> <ul class="space-y-2.5">
<li class="text-5xl">12 anos</li> <li class="text-5xl">12 anos</li>
<li class="uppercase font-bold text-white/50">de experiência</li> <li class="uppercase font-bold text-white/50">
de experiência
</li>
</ul> </ul>
</Container> </Container>
</div> </div>
@@ -145,13 +194,13 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
> >
<Picture <Picture
alt="Homem de negócios" alt="Homem de negócios"
formats={['webp']} formats={["webp"]}
src={homemdenegocios} src={homemdenegocios}
class="w-94 absolute bottom-0 -left-28" class="w-94 absolute bottom-0 -left-28"
/> />
<Picture <Picture
alt="Mulher de negócios" alt="Mulher de negócios"
formats={['webp']} formats={["webp"]}
src={mulherdenegocios} src={mulherdenegocios}
class="w-96 absolute bottom-0 -right-24" class="w-96 absolute bottom-0 -right-24"
/> />
@@ -163,20 +212,33 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
Por que capacitar sua equipe com a EDUSEG&reg; Por que capacitar sua equipe com a EDUSEG&reg;
</h3> </h3>
<p> <p>
Nós cuidamos da burocracia, oferecemos uma plataforma completa para simplicar a gestão e Nós cuidamos da burocracia, oferecemos uma
capacitação em larga escala de seus colaboradores. Com a EDUSEG&reg, sua empresa se plataforma completa para simplicar a gestão e
beneficia de uma tecnologia eficiente e confiável. capacitação em larga escala de seus colaboradores.
Com a EDUSEG&reg, sua empresa se beneficia de uma
tecnologia eficiente e confiável.
</p> </p>
<ul class="grid md:grid-cols-2 gap-1 lg:gap-2.5"> <ul class="grid md:grid-cols-2 gap-1 lg:gap-2.5">
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">Centralização de todos os certificados</li> <li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">Agilidade na liberação de cursos</li> Centralização de todos os certificados
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">Agendamento para liberação de cursos</li> </li>
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">Aviso de vencimento para certificados</li> <li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">
Agilidade na liberação de cursos
</li>
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">
Agendamento para liberação de cursos
</li>
<li class="bg-white/10 p-2.5 lg:p-5 rounded-lg">
Aviso de vencimento para certificados
</li>
</ul> </ul>
<div class="text-center"> <div class="text-center">
<a href="#contato" class="text-blue-400 underline hover:no-underline"> <a
href="#contato"
class="text-blue-400 underline hover:no-underline"
>
Agendar uma demonstração Agendar uma demonstração
</a> </a>
</div> </div>
@@ -186,51 +248,22 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
</Container> </Container>
<!-- Course Modules --> <!-- Course Modules -->
<Container id="modulos" class="grid gap-2.5 lg:grid-cols-3 lg:gap-5 2xl:w-3/6"> <Container
id="modulos"
class="grid gap-2.5 lg:grid-cols-3 lg:gap-5 2xl:w-3/6"
>
<div class="space-y-2.5"> <div class="space-y-2.5">
<h4 class="text-pretty text-4xl lg:text-5xl">Módulos deste curso</h4> <h4 class="text-pretty text-4xl lg:text-5xl">
Módulos deste curso
</h4>
<p class="text-base/6"> <p class="text-base/6">
O curso é dividido em módulos para facilitar seu aprendizado e garantir que você domine todos os O curso é dividido em módulos para facilitar seu aprendizado
aspectos teóricos e práticos. e garantir que você domine todos os aspectos teóricos e
práticos.
</p> </p>
</div> </div>
<div class="lg:col-span-2 flex flex-col gap-1.5"> <div class="lg:col-span-2 flex flex-col gap-1.5">
{ <Content />
data.course.modules.map((data) => {
if (typeof data === 'string') {
return <div class="bg-white/10 rounded-lg w-full px-5 py-3">{data}</div>
}
const { summary, content } = data
return (
<div
x-data="{ open: false }"
class="bg-white/10 rounded-lg w-full"
:class="{'bg-white/15': open === true}"
>
<div
class="cursor-pointer flex items-center justify-between px-5 py-3"
x-on:click="open = !open"
>
<span>{summary}</span>
<Icon
name="chevron"
class="size-4 fill-white/60 group-data-[hover]:fill-white/50 shrink-0"
:class="{'-rotate-180': open === true}"
/>
</div>
<div
x-show="open"
class="text-sm/6 text-white/70 space-y-2 px-5 pb-3"
style="display: none;"
>
{content}
</div>
</div>
)
})
}
</div> </div>
</Container> </Container>
<!-- Course Modules End --> <!-- Course Modules End -->
@@ -240,14 +273,21 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
<div <div
class="text-black bg-linear-to-t from-lime-600 to-lime-400 border border-lime-400 p-5 lg:py-36 rounded-2xl relative overflow-hidden" class="text-black bg-linear-to-t from-lime-600 to-lime-400 border border-lime-400 p-5 lg:py-36 rounded-2xl relative overflow-hidden"
> >
<Icon name="lock-closed" class="size-96 absolute -right-16 -bottom-16 text-black/10 max-lg:hidden" /> <Icon
name="lock-closed"
class="size-96 absolute -right-16 -bottom-16 text-black/10 max-lg:hidden"
/>
<div class="lg:w-8/12 2xl:w-6/14 mx-auto space-y-5"> <div class="lg:w-8/12 2xl:w-6/14 mx-auto space-y-5">
<h5 class="text-4xl lg:text-6xl/14 lg:font-black"> <h5 class="text-4xl lg:text-6xl/14 lg:font-black">
Certificados digitais com respaldo legal e gestão completa Certificados digitais com respaldo legal e gestão
completa
</h5> </h5>
<ul class="lg:text-lg list-disc list-inside"> <ul class="lg:text-lg list-disc list-inside">
<li>Certificado com assinatura digital conforme o padrão ICP-Brasil</li> <li>
Certificado com assinatura digital conforme o padrão
ICP-Brasil
</li>
<li>Tudo digital e salvo para sempre na núvem</li> <li>Tudo digital e salvo para sempre na núvem</li>
<li>Alertas automáticos de vencimento</li> <li>Alertas automáticos de vencimento</li>
</ul> </ul>
@@ -266,24 +306,40 @@ const trainer = data.course?.trainer ? await getEntry(data.course?.trainer) : nu
<Picture <Picture
src={trainer.data.image} src={trainer.data.image}
alt={trainer.data.name} alt={trainer.data.name}
formats={['webp']} formats={["webp"]}
class="rounded-xl size-32 outline-2 outline-offset-2 outline-lime-400" class="rounded-xl size-32 outline-2 outline-offset-2 outline-lime-400"
/> />
</div> </div>
<div class="space-y-2.5"> <div class="space-y-2.5">
<h6 class="text-xl text-pretty">Quem é o(a) instrutor(a)?</h6> <h6 class="text-xl text-pretty">
<p class="text-4xl lg:text-5xl text-pretty">{trainer.data.name}</p> Quem é o(a) instrutor(a)?
</h6>
<p class="text-4xl lg:text-5xl text-pretty">
{trainer.data.name}
</p>
<div class="text-sm/6 text-white/70 space-y-2.5" set:html={trainer?.rendered?.html} /> <div
class="text-sm/6 text-white/70 space-y-2.5"
set:html={trainer?.rendered?.html}
/>
<div class="flex"> <div class="flex">
{trainer.data.networks.map(({ url, alt }) => { {trainer.data.networks.map(
return ( ({ url, alt }) => {
<a href={url} target="_blank" aria-labelledby={alt}> return (
<Icon name={alt.toLowerCase()} class="fill-white/70 size-5" /> <a
</a> href={url}
) target="_blank"
})} aria-labelledby={alt}
>
<Icon
name={alt.toLowerCase()}
class="fill-white/70 size-5"
/>
</a>
);
},
)}
</div> </div>
</div> </div>
</div> </div>