diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7a550fe --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +# GEMINI_API_KEY: Required for Gemini AI API calls. +# AI Studio automatically injects this at runtime from user secrets. +# Users configure this via the Secrets panel in the AI Studio UI. +GEMINI_API_KEY="MY_GEMINI_API_KEY" + +# APP_URL: The URL where this applet is hosted. +# AI Studio automatically injects this at runtime with the Cloud Run service URL. +# Used for self-referential links, OAuth callbacks, and API endpoints. +APP_URL="MY_APP_URL" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a86d2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +build/ +dist/ +coverage/ +.DS_Store +*.log +.env* +!.env.example diff --git a/README.md b/README.md index 2241000..443963b 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,20 @@
- GHBanner - -

Built with AI Studio

- -

The fastest path from prompt to production with Gemini.

- - Start building -
+ +# Run and deploy your AI Studio app + +This contains everything you need to run your app locally. + +View your app in AI Studio: https://ai.studio/apps/48cc4bc1-d0c3-44bc-960d-1428c57a80b6 + +## Run Locally + +**Prerequisites:** Node.js + + +1. Install dependencies: + `npm install` +2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key +3. Run the app: + `npm run dev` diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000..80ff0fb Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/background.jpg b/background.jpg new file mode 100644 index 0000000..42bfa22 Binary files /dev/null and b/background.jpg differ diff --git a/favicon-192x192.png b/favicon-192x192.png new file mode 100644 index 0000000..11186c4 Binary files /dev/null and b/favicon-192x192.png differ diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000..a3f3aa9 Binary files /dev/null and b/favicon-32x32.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..9145d2b --- /dev/null +++ b/index.html @@ -0,0 +1,124 @@ + + + + + + Black Brasil + + + + + + + + + + + + + + + +
+ + + + +

+ A Black Brasil foi criada com o objetivo de superar expectativas e oferecer ao mercado nacional e internacional produtos químicos de qualidade incomparável. +

+ + + +
+ + + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..7e4f657 Binary files /dev/null and b/logo.png differ diff --git a/metadata.json b/metadata.json new file mode 100644 index 0000000..efe4549 --- /dev/null +++ b/metadata.json @@ -0,0 +1,5 @@ +{ + "name": "Black Brasil Links", + "description": "A Linktree-style page for Black Brasil.", + "requestFramePermissions": [] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5360d0b --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "black-brasil-links", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^6.2.0" + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..0506f1b --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,24 @@ +import tailwindcss from '@tailwindcss/vite'; +import react from '@vitejs/plugin-react'; +import path from 'path'; +import {defineConfig, loadEnv} from 'vite'; + +export default defineConfig(({mode}) => { + const env = loadEnv(mode, '.', ''); + return { + plugins: [react(), tailwindcss()], + define: { + 'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY), + }, + resolve: { + alias: { + '@': path.resolve(__dirname, '.'), + }, + }, + server: { + // HMR is disabled in AI Studio via DISABLE_HMR env var. + // Do not modify—file watching is disabled to prevent flickering during agent edits. + hmr: process.env.DISABLE_HMR !== 'true', + }, + }; +});