diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a870d72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# OS files +.DS_Store +Thumbs.db + +# Editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Logs +*.log + +# Temporary files +*.tmp +*.bak + +# Node modules (if you add build tools later) +node_modules/ +package-lock.json + +# Distribution files (if you build minified versions) +dist/ +build/ + +# Test files (if you add tests later) +coverage/ +.nyc_output/ diff --git a/GITEA-SETUP-GUIDE.md b/GITEA-SETUP-GUIDE.md new file mode 100644 index 0000000..57ec292 --- /dev/null +++ b/GITEA-SETUP-GUIDE.md @@ -0,0 +1,310 @@ +# 🚀 Gitea Setup Guide - LinkedIn AI-Text Generator + +## Steg-för-steg installation pĂ„ din Gitea-server + +--- + +## Steg 1: Skapa Repository i Gitea + +1. **Logga in** pĂ„ din Gitea-server (t.ex. `https://wolfnova.ai/gitea`) +2. Klicka pĂ„ **"+"** → **"New Repository"** +3. **Repository name:** `linkedin-ai-tools` +4. **Visibility:** Public (viktigt! annars fungerar inte bookmarklet) +5. **Initialize repository:** + - ✅ Kryssa i "Initialize Repository" + - ✅ Add README: (vi ersĂ€tter den senare) + - License: None (eller vĂ€lj en) +6. **Create Repository** + +--- + +## Steg 2: Ladda upp filer + +Du har tre alternativ: + +### Alternativ A: Via Gitea Web UI (Enklast) + +1. I ditt nya repo, klicka **"Upload file"** +2. Dra och slĂ€pp dessa filer: + - `linkedin-ai.js` + - `version.json` + - `README.md` (ersĂ€tter befintlig) +3. **Commit message:** "Initial upload v2.0.0" +4. **Commit Changes** + +### Alternativ B: Via Git CLI + +```bash +# Klona repot +git clone https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools.git +cd linkedin-ai-tools + +# Kopiera filerna till mappen +cp /path/to/linkedin-ai.js . +cp /path/to/version.json . +cp /path/to/README.md . + +# Commit och pusha +git add . +git commit -m "Initial upload v2.0.0" +git push origin main +``` + +### Alternativ C: Direkt redigera i Gitea + +1. Klicka pĂ„ varje fil i repot +2. Klicka **"Edit"** +3. Klistra in innehĂ„llet +4. **Commit Changes** + +--- + +## Steg 3: Hitta Raw URL + +1. I Gitea-repot, klicka pĂ„ **`linkedin-ai.js`** +2. Klicka pĂ„ **"Raw"**-knappen +3. Kopiera URL:en frĂ„n adressfĂ€ltet + +**URL-format blir:** +``` +https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js +``` + +**Exempel:** +``` +https://wolfnova.ai/gitea/wolfnova/linkedin-ai-tools/raw/branch/main/linkedin-ai.js +``` + +--- + +## Steg 4: Skapa Bookmarklet + +Nu skapar du bookmarklet som laddar frĂ„n din Gitea: + +### Bookmarklet-kod: + +```javascript +javascript:(function(){var s=document.createElement('script');s.src='https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js';document.body.appendChild(s);})(); +``` + +**⚠ VIKTIGT:** Byt ut `DITTANVÄNDARNAMN` och domĂ€nen mot din faktiska Gitea-URL! + +### Skapa bokmĂ€rket: + +1. **Högerklicka** i bokmĂ€rkesfĂ€ltet +2. **"Add bookmark"** eller **"LĂ€gg till bokmĂ€rke"** +3. **Name:** `✹ LinkedIn AI` +4. **URL:** Klistra in bookmarklet-koden ovan (med din URL!) +5. **Save** + +--- + +## Steg 5: Testa + +1. GĂ„ till **LinkedIn.com** +2. **Markera vilken text som helst** +3. **Klicka pĂ„ `✹ LinkedIn AI`** i bokmĂ€rkesfĂ€ltet +4. **Popup ska dyka upp!** ✹ + +Om det fungerar: 🎉 **Grattis!** + +--- + +## Steg 6: Dela med teamet + +### Intern distribution: + +**Skapa en guide för ditt team:** + +```markdown +# AnvĂ€nd LinkedIn AI-Text Generator + +1. Högerklicka i bokmĂ€rkesfĂ€ltet +2. VĂ€lj "Add bookmark" +3. Namn: ✹ LinkedIn AI +4. URL: [din bookmarklet-kod hĂ€r] +5. Spara + +Klart! Nu kan du markera text och klicka pĂ„ bokmĂ€rket. +``` + +### Eller skapa en "installer-sida": + +Skapa `install.html` i Gitea-repot: + +```html + + + + LinkedIn AI - Installation + + + +

✹ LinkedIn AI-Text Generator

+

Dra detta till ditt bokmÀrkesfÀlt:

+ + ✹ LinkedIn AI + +

AnvÀndning

+
    +
  1. GĂ„ till LinkedIn
  2. +
  3. Markera text
  4. +
  5. Klicka pÄ bokmÀrket
  6. +
  7. VĂ€lj funktion
  8. +
+ + +``` + +Dela lĂ€nken: `https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/src/branch/main/install.html` + +--- + +## Hantera CORS (Om problem uppstĂ„r) + +Om bookmarklet inte kan ladda scriptet pĂ„ grund av CORS, lĂ€gg till dessa headers i Gitea: + +### Nginx config (om du anvĂ€nder Nginx framför Gitea): + +```nginx +location /gitea/wolfnova/linkedin-ai-tools/raw/ { + add_header Access-Control-Allow-Origin *; + add_header Access-Control-Allow-Methods "GET, OPTIONS"; + proxy_pass http://localhost:3000; +} +``` + +### Alternativt: AnvĂ€nd CDN + +Om CORS Ă€r ett problem, anvĂ€nd en CDN som automatiskt lĂ€gger till CORS-headers: + +1. LĂ€gg scriptet pĂ„ **jsDelivr** eller **cdnjs** +2. Eller anvĂ€nd din egen Nginx/Apache med CORS-headers + +--- + +## Uppdatera Scriptet + +NĂ€r du vill uppdatera: + +1. **Redigera `linkedin-ai.js`** i Gitea +2. **Uppdatera `version.json`:** + ```json + { + "version": "2.1.0", + "released": "2026-01-20", + ... + } + ``` +3. **Commit changes** +4. **✅ Alla anvĂ€ndare fĂ„r automatiskt uppdateringen!** + +Ingen behöver uppdatera sitt bokmĂ€rke manuellt! + +--- + +## Felsökning + +### Problem: Script laddar inte + +**Kontrollera:** +```bash +# Testa om URL:en Ă€r tillgĂ€nglig +curl https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js + +# Ska returnera JavaScript-kod, inte HTML +``` + +**Lösning:** +- Kontrollera att repot Ă€r Public +- Verifiera att filen heter exakt `linkedin-ai.js` +- Kolla att branch heter `main` (inte `master`) + +### Problem: CORS-fel i Console + +**Fel:** +``` +Access to script at '...' from origin 'https://linkedin.com' has been blocked by CORS policy +``` + +**Lösning:** +1. LĂ€gg till CORS-headers (se ovan) +2. Eller anvĂ€nd **fallback inline bookmarklet** (se nedan) + +### Problem: CSP-blockering + +Vissa sidor (LinkedIn, GitHub) blockerar externa scripts. + +**Lösning: Hybrid Bookmarklet** + +```javascript +javascript:(function(){ + fetch('https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js') + .then(r => r.text()) + .then(code => eval(code)) + .catch(e => { + alert('❌ Kunde inte ladda script. Kontrollera att servern Ă€r tillgĂ€nglig.'); + console.error(e); + }); +})(); +``` + +--- + +## Backup: Fallback Inline Bookmarklet + +Om Gitea-lösningen inte fungerar pĂ„ grund av CORS/CSP, ha denna som backup: + +**Minifierad inline-version** (ingen server behövs): +```javascript +[Din nuvarande inline bookmarklet-kod hĂ€r som backup] +``` + +--- + +## Fördelar med Gitea-lösningen + +✅ **Centraliserad uppdatering** - Uppdatera en gĂ„ng, alla fĂ„r uppdateringen +✅ **Versionskontroll** - Git-historik över alla Ă€ndringar +✅ **Collaboration** - Flera kan bidra till utvecklingen +✅ **Self-hosted** - Full kontroll över koden +✅ **Privat eller public** - Du bestĂ€mmer +✅ **CI/CD möjligt** - Kan koppla pĂ„ automatiska tester + +--- + +## NĂ€sta steg + +Efter basic setup, övervĂ€g: + +1. **LĂ€gg till fler funktioner** i `linkedin-ai.js` +2. **Skapa installer-sida** för enklare distribution +3. **SĂ€tt upp monitoring** - logga hur ofta scriptet laddas +4. **Version check** - Notifiera anvĂ€ndare om nya versioner +5. **A/B testing** - Testa olika prompts och UI-varianter + +--- + +## Support + +Problem? Kontakta: +- **Email:** [din email] +- **Gitea:** https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/issues + +--- + +**Lycka till! 🚀** + +Wolfnova Innovation diff --git a/QUICKSTART.md b/QUICKSTART.md new file mode 100644 index 0000000..6c02198 --- /dev/null +++ b/QUICKSTART.md @@ -0,0 +1,125 @@ +# 🚀 SNABBSTART - Gitea Setup + +## I 5 minuter Ă€r du igĂ„ng! + +### Steg 1: Skapa repo i Gitea (2 min) +1. Logga in pĂ„ din Gitea: `https://wolfnova.ai/gitea` +2. Klicka "+" → "New Repository" +3. Namn: `linkedin-ai-tools` +4. Visibility: **Public** (viktigt!) +5. Initialize: Kryssa i +6. Create Repository + +### Steg 2: Ladda upp filer (2 min) +Packa upp `gitea-linkedin-ai-tools.zip` och ladda upp dessa filer till repot: +- ✅ linkedin-ai.js +- ✅ version.json +- ✅ README.md +- ✅ install.html +- ✅ .gitignore + +**Snabbast:** Dra och slĂ€pp alla filer pĂ„ en gĂ„ng i Gitea web UI + +### Steg 3: HĂ€mta din URL (30 sek) +1. Klicka pĂ„ `linkedin-ai.js` i repot +2. Klicka "Raw" +3. Kopiera URL frĂ„n adressfĂ€ltet + +**Din URL blir typ:** +``` +https://wolfnova.ai/gitea/DITTNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js +``` + +### Steg 4: Skapa bookmarklet (30 sek) +1. Högerklicka i bokmĂ€rkesfĂ€ltet +2. "Add bookmark" +3. Namn: `✹ LinkedIn AI` +4. URL: +```javascript +javascript:(function(){var s=document.createElement('script');s.src='DIN-URL-HÄR';document.body.appendChild(s);})(); +``` +**Byt ut `DIN-URL-HÄR` mot din faktiska URL!** + +5. Spara + +### Steg 5: Testa! (30 sek) +1. GĂ„ till LinkedIn +2. Markera text +3. Klicka `✹ LinkedIn AI` +4. 🎉 Fungerar det? Grattis! + +--- + +## 🎯 Alternativ: AnvĂ€nd install.html + +**Enklare för teamet:** + +1. Dela denna lĂ€nk med teamet: +``` +https://wolfnova.ai/gitea/DITTNAMN/linkedin-ai-tools/src/branch/main/install.html +``` + +2. De drar bara knappen till bokmĂ€rkesfĂ€ltet +3. Klart! ✹ + +--- + +## ⚡ Fördelar med Gitea-lösningen + +✅ **En uppdatering → alla fĂ„r den** (ingen manuell uppdatering) +✅ **Versionskontroll** med Git +✅ **Self-hosted** - du kontrollerar allt +✅ **Dela internt** enkelt med teamet + +--- + +## 📝 Uppdatera senare + +1. Redigera `linkedin-ai.js` i Gitea +2. Uppdatera version i `version.json` +3. Commit +4. ✅ Alla anvĂ€ndare fĂ„r uppdateringen automatiskt! + +--- + +## ⚠ Om CORS-problem uppstĂ„r + +**Lösning 1:** LĂ€gg till CORS-headers i Nginx (se full guide) + +**Lösning 2:** AnvĂ€nd fetch-baserad bookmarklet: +```javascript +javascript:(function(){fetch('DIN-URL').then(r=>r.text()).then(c=>eval(c));})(); +``` + +**Lösning 3:** Fallback till inline bookmarklet (funkar alltid) + +--- + +## 🆘 Felsökning + +**Problem:** Script laddar inte +- Kolla att repot Ă€r Public +- Verifiera att filen heter exakt `linkedin-ai.js` +- Testa URL:en direkt i webblĂ€saren + +**Problem:** Bookmarklet gör ingenting +- Kontrollera att du markerat text först +- Öppna Console (F12) och kolla efter fel +- Prova pĂ„ en annan sida (inte LinkedIn först) + +--- + +## 📧 Support + +Problem? LĂ€s: +- `GITEA-SETUP-GUIDE.md` (fullstĂ€ndig guide) +- `README.md` (dokumentation) + +Eller kontakta: [din email] + +--- + +**Lycka till! 🚀** + +Wolfnova Innovation +www.wolfnova.ai diff --git a/install.html b/install.html new file mode 100644 index 0000000..544f315 --- /dev/null +++ b/install.html @@ -0,0 +1,256 @@ + + + + + + LinkedIn AI-Text Generator - Installation + + + +
+

✹ LinkedIn AI-Text Generator

+

Wolfnova Innovation v2.0.0

+ +
+ 📌 Installationsinstruktion: + Dra knappen nedan till din bokmĂ€rkesfĂ€lt (Bookmarks bar). Visa bokmĂ€rkesfĂ€ltet med Ctrl+Shift+B (Windows) eller Cmd+Shift+B (Mac). +
+ +
+ + ✹ LinkedIn AI + +

👆 Dra denna knapp till din bokmĂ€rkesfĂ€lt

+
+ +
+
+
🧠
+

Generera LinkedIn Text

+

Skapa filosofiskt, djupgÄende innehÄll frÄn inspiration

+
+ +
+
💡
+

Skapa frÄn idé

+

Utveckla rÄa tankar till fullfjÀdrade inlÀgg

+
+ +
+
🔄
+

Omarbeta

+

Fördjupa befintlig text med systemtÀnkande

+
+ +
+
⚡
+

Bionic Reading

+

Komprimera lÄnga texter till skannbart format

+
+
+ +
+

📖 SĂ„ hĂ€r anvĂ€nder du verktyget:

+
    +
  1. Dra knappen ovan till din bokmÀrkesfÀlt (visas med Ctrl+Shift+B)
  2. +
  3. GĂ„ till LinkedIn eller vilken sida med text som helst
  4. +
  5. Markera text som du vill arbeta med
  6. +
  7. Klicka pĂ„ bokmĂ€rket ✹ LinkedIn AI
  8. +
  9. VĂ€lj funktion i popup-menyn som dyker upp
  10. +
  11. Claude öppnas automatiskt med din text!
  12. +
+
+ +
+

💡 Tips & anvĂ€ndningsomrĂ„den:

+
    +
  1. SnabblĂ€sa rapporter: Markera lĂ„nga texter → ⚡ Analysera → FĂ„ essensen pĂ„ 30 sekunder
  2. +
  3. LinkedIn-innehĂ„ll: Se intressant inlĂ€gg → Markera → 🧠 Generera → FĂ„ djupt perspektiv
  4. +
  5. Utveckla idĂ©er: Skriv ner tanke → Markera → 💡 Skapa frĂ„n idĂ© → Fullt inlĂ€gg
  6. +
  7. Research-sprint: Analysera 10 papers pÄ 20 minuter istÀllet för 5 timmar
  8. +
+
+ +
+ ✅ SĂ€kerhet & Integritet: + Detta verktyg lĂ€ser bara markerad text och öppnar Claude.ai. Ingen data skickas till tredje part, sparas eller loggas. All kod Ă€r öppen och kan granskas pĂ„ Gitea. +
+ + +
+ + + + diff --git a/linkedin-ai.js b/linkedin-ai.js new file mode 100644 index 0000000..afa61d5 --- /dev/null +++ b/linkedin-ai.js @@ -0,0 +1,310 @@ +/** + * LinkedIn AI-Text Generator v2.0 + * Wolfnova Innovation + * + * Detta script körs nĂ€r bookmarklet aktiveras + */ + +(function() { + 'use strict'; + + // HĂ€mta markerad text + const selectedText = window.getSelection().toString().trim(); + + if (!selectedText) { + alert('❌ Markera text först innan du anvĂ€nder LinkedIn AI!'); + return; + } + + // Definiera alla prompts + const prompts = [ + { + emoji: '🧠', + name: 'Generera LinkedIn Text', + description: 'Filosofiskt och djupgĂ„ende innehĂ„ll', + prompt: `đŸ“± AnvĂ€nd linkedin-content-system skillen för att skapa djupgĂ„ende LinkedIn-innehĂ„ll. + +🎯 Basera innehĂ„llet pĂ„ denna text/idĂ©: +""" +${selectedText} +""" + +Skapa ett filosofiskt, substansfullt LinkedIn-inlĂ€gg som: +- Utforskar teknologi och samhĂ€lle frĂ„n ett djupare perspektiv +- TĂ€nker i civilisatoriska tidsskalor, inte kvartalsmĂ„tt +- Bygger trovĂ€rdighet genom substans, inte buzz +- Är anti-hype och djupt reflekterande +- StĂ€ller existentiella frĂ„gor + +✹ Inkludera relevanta emojis dĂ€r det kĂ€nns naturligt.` + }, + { + emoji: '💡', + name: 'Skapa frĂ„n idĂ©', + description: 'Utforska och utveckla en tanke', + prompt: `💡 AnvĂ€nd linkedin-content-system skillen. + +Jag har denna tanke/idĂ©: +""" +${selectedText} +""" + +HjĂ€lp mig att utforska och utveckla detta till ett genomtĂ€nkt LinkedIn-inlĂ€gg som: +- GĂ„r djupare Ă€n ytan +- Kopplar till större sammanhang +- Balanserar flera perspektiv +- Bygger pĂ„ filosofi och historia dĂ€r relevant +- Talar till beslutsfattare och systemtĂ€nkare + +✹ Inkludera emojis dĂ€r passande.` + }, + { + emoji: '🔄', + name: 'Omarbeta', + description: 'Anpassa befintlig text', + prompt: `🔄 AnvĂ€nd linkedin-content-system skillen. + +Omarbeta denna text till LinkedIn-format som följer Wolfnovas filosofi: +""" +${selectedText} +""" + +BehĂ„ll kĂ€rnbudskapet men fördjupa perspektivet: +- Mer filosofisk reflektion +- LĂ„ngsiktigt tĂ€nkande +- Systemiskt perspektiv +- Mindre hype, mer substans +- StĂ€ll djupare frĂ„gor + +✹ Inkludera emojis dĂ€r naturligt.` + }, + { + emoji: '⚡', + name: 'Analysera (Bionic Reading)', + description: 'Komprimerad analys i skannbart format', + prompt: `⚡ KOMPRIMERAD ANALYS I BIONIC READING FORMAT + +Analysera denna text/rapport och presentera essensen i bionic reading-format: +""" +${selectedText} +""" + +📊 INSTRUKTIONER: + +1. EXTRAHERA ESSENSEN: + - Identifiera kĂ€rnbudskap och huvudpoĂ€nger + - Ta bort fluff och upprepningar + - Komprimera till det vĂ€sentliga (max 30% av originallĂ€ngd) + +2. STRUKTURERA TYDLIGT: + - Börja med 1-mening sammanfattning + - Bullet points för huvudpoĂ€nger + - Viktigaste insikter först + +3. FORMATERA I BIONIC READING: + - **Fet**stil pĂ„ första delen av varje viktigt ord + - Gör texten **skan**nbar och **snabb**lĂ€st + - HjĂ€l**per** öga**t** att fix**a** snab**bare** + - Exemp**el:** "Syst**em** krĂ€v**er** helhets**syn** för **att** funk**era** stab**ilt**" + +4. INKLUDERA: + - 🎯 Huvudbudskap (1 mening) + - 💡 Nyckelinsikter (3-5 punkter) + - ⚠ Varningar/risker (om relevanta) + - ✅ Slutsats/rekommendation + +5. ANVÄND EMOJIS för visuell struktur + +MĂ„let: LĂ€saren ska kunna skanna texten pĂ„ 30 sekunder och fĂ„ ALL viktig information!` + } + ]; + + // Skapa modal + const modal = createModal(prompts); + document.body.appendChild(modal); + + /** + * Skapa modal UI + */ + function createModal(prompts) { + const modal = document.createElement('div'); + modal.id = 'wolfnova-linkedin-ai-modal'; + modal.style.cssText = ` + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: white; + border-radius: 12px; + box-shadow: 0 8px 32px rgba(0,0,0,0.3); + padding: 24px; + z-index: 999999; + min-width: 420px; + max-width: 90vw; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + `; + + // Header + const header = document.createElement('h3'); + header.style.cssText = ` + margin: 0 0 16px; + color: #333; + font-size: 18px; + display: flex; + align-items: center; + justify-content: space-between; + `; + header.innerHTML = ` + ✹ AI-Text Generator + v2.0 - Wolfnova + `; + modal.appendChild(header); + + // Buttons för varje prompt + prompts.forEach((promptData, index) => { + const button = createButton(promptData, () => { + document.body.removeChild(modal); + openClaude(promptData.prompt); + }); + modal.appendChild(button); + }); + + // Close button + const closeBtn = document.createElement('button'); + closeBtn.textContent = '✕ StĂ€ng'; + closeBtn.style.cssText = ` + width: 100%; + padding: 8px; + margin-top: 16px; + border: 1px solid #ddd; + border-radius: 6px; + background: #f5f5f5; + cursor: pointer; + font-size: 12px; + transition: background 0.2s; + `; + closeBtn.onmouseover = () => closeBtn.style.background = '#e0e0e0'; + closeBtn.onmouseout = () => closeBtn.style.background = '#f5f5f5'; + closeBtn.onclick = () => document.body.removeChild(modal); + modal.appendChild(closeBtn); + + return modal; + } + + /** + * Skapa knapp för varje alternativ + */ + function createButton(promptData, onClick) { + const button = document.createElement('button'); + button.style.cssText = ` + width: 100%; + padding: 12px 16px; + margin: 8px 0; + border: 2px solid #e0e0e0; + border-radius: 8px; + background: #fff; + cursor: pointer; + text-align: left; + font-size: 14px; + transition: all 0.2s; + display: flex; + flex-direction: column; + gap: 4px; + `; + + button.innerHTML = ` +
+ ${promptData.emoji} + ${promptData.name} +
+
+ ${promptData.description} +
+ `; + + button.onmouseover = () => { + button.style.background = '#f0f7ff'; + button.style.borderColor = '#2c5aa0'; + }; + button.onmouseout = () => { + button.style.background = '#fff'; + button.style.borderColor = '#e0e0e0'; + }; + button.onclick = onClick; + + return button; + } + + /** + * Öppna Claude med prompt + */ + function openClaude(prompt) { + const claudeUrl = `https://claude.ai/new?q=${encodeURIComponent(prompt)}`; + window.open(claudeUrl, '_blank'); + + // Visa notifikation + showNotification('✹ Öppnar Claude AI med din markerade text!'); + } + + /** + * Visa notifikation + */ + function showNotification(message) { + const notification = document.createElement('div'); + notification.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 16px 24px; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0,0,0,0.3); + z-index: 9999999; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + font-size: 14px; + font-weight: 500; + animation: slideIn 0.3s ease-out; + `; + + notification.textContent = message; + document.body.appendChild(notification); + + // Auto-remove efter 3 sekunder + setTimeout(() => { + notification.style.animation = 'slideOut 0.3s ease-out'; + setTimeout(() => notification.remove(), 300); + }, 3000); + } + + // LĂ€gg till CSS för animationer (om inte redan finns) + if (!document.getElementById('wolfnova-animations')) { + const style = document.createElement('style'); + style.id = 'wolfnova-animations'; + style.textContent = ` + @keyframes slideIn { + from { + transform: translateX(400px); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } + } + @keyframes slideOut { + from { + transform: translateX(0); + opacity: 1; + } + to { + transform: translateX(400px); + opacity: 0; + } + } + `; + document.head.appendChild(style); + } + + console.log('✅ LinkedIn AI-Text Generator v2.0 aktiverad!'); +})();