diff --git a/README.de.md b/README.de.md index 6072497..cef83b6 100644 --- a/README.de.md +++ b/README.de.md @@ -2,16 +2,16 @@ # @studiolxd/scorm -Monorepo für `@studiolxd/scorm` — eine Headless-Laufzeitumgebung für SCORM 1.2 / 2004 mit einem **frameworkunabhängigen Kern** und Adaptern für **React, Vue, Angular, Svelte, Web Components** sowie reines Vanilla-JS — inklusive einer interaktiven Demo-App. +Monorepo für `@studiolxd/scorm` — eine Headless-Runtime für SCORM 1.2 / 2004 mit einem **frameworkunabhängigen Kern** und Adaptern für **React, Vue, Angular, Svelte, Web Components** sowie reines Vanilla-JS — inklusive einer interaktiven Demo-App. -> Vormals `@studiolxd/react-scorm`. Die React-API befindet sich jetzt im Unterpfad `@studiolxd/scorm/react`. +> Früher `@studiolxd/react-scorm`. Die React-API liegt jetzt unter dem Subpath `@studiolxd/scorm/react`. ## Pakete | Paket | Beschreibung | Doku | |---------|-------------|------| -| [`@studiolxd/scorm`](./packages/scorm/) | Headless-Laufzeitumgebung für SCORM 1.2 / 2004 — unabhängiger Kern + Framework-Adapter | [README](./packages/scorm/README.md) | -| [`example`](./example/) | Interaktive Demo-App — präsentiert jede Funktion der Bibliothek | [README](./example/README.md) | +| [`@studiolxd/scorm`](./packages/scorm/) | Headless-Runtime für SCORM 1.2 / 2004 — frameworkunabhängiger Kern + Framework-Adapter | [README](./packages/scorm/README.md) | +| [`example`](./example/) | Interaktive Demo-App — zeigt jede Funktion der Bibliothek | [README](./example/README.md) | ## Erste Schritte @@ -28,7 +28,7 @@ Weitere Skripte, die vom Stammverzeichnis aus verfügbar sind: ## Einstiegspunkte -Die Bibliothek ist ein einzelnes Paket mit Unterpfad-Exporten — importiere nur das, was du verwendest: +Die Bibliothek ist ein einzelnes Paket mit Subpath-Exports — importiere nur, was du verwendest: | Import | Für | |--------|-----| @@ -57,7 +57,7 @@ react-scorm/ ## Veröffentlichung -Nur `packages/scorm` wird auf npm veröffentlicht. Der `example`-Workspace und das Stammverzeichnis sind privat. So wird veröffentlicht: +Nur `packages/scorm` wird auf npm veröffentlicht. Der `example`-Workspace und das Stammverzeichnis sind privat. Zum Veröffentlichen: ```bash cd packages/scorm diff --git a/README.pl.md b/README.pl.md index 44ea163..706095b 100644 --- a/README.pl.md +++ b/README.pl.md @@ -2,7 +2,7 @@ # @studiolxd/scorm -Monorepo dla `@studiolxd/scorm` — bezgłowego środowiska uruchomieniowego SCORM 1.2 / 2004 z **rdzeniem niezależnym od frameworka** oraz adapterami dla **React, Vue, Angular, Svelte, Web Components** i czystego JavaScriptu (vanilla) — wraz z interaktywną aplikacją demonstracyjną. +Monorepo `@studiolxd/scorm` — headlessowego środowiska uruchomieniowego SCORM 1.2 / 2004 z **rdzeniem niezależnym od frameworka** oraz adapterami dla **React, Vue, Angular, Svelte, Web Components** i czystego JavaScriptu (vanilla) — wraz z interaktywną aplikacją demonstracyjną. > Wcześniej `@studiolxd/react-scorm`. API dla Reacta znajduje się teraz w podścieżce `@studiolxd/scorm/react`. @@ -10,7 +10,7 @@ Monorepo dla `@studiolxd/scorm` — bezgłowego środowiska uruchomieniowego SCO | Pakiet | Opis | Dokumentacja | |---------|-------------|------| -| [`@studiolxd/scorm`](./packages/scorm/) | Bezgłowe środowisko uruchomieniowe SCORM 1.2 / 2004 — niezależny rdzeń + adaptery frameworków | [README](./packages/scorm/README.md) | +| [`@studiolxd/scorm`](./packages/scorm/) | Headlessowe środowisko uruchomieniowe SCORM 1.2 / 2004 — niezależny rdzeń + adaptery frameworków | [README](./packages/scorm/README.md) | | [`example`](./example/) | Interaktywna aplikacja demonstracyjna — prezentuje każdą funkcję biblioteki | [README](./example/README.md) | ## Pierwsze kroki @@ -57,7 +57,7 @@ react-scorm/ ## Publikowanie -Do npm publikowany jest wyłącznie `packages/scorm`. Workspace `example` oraz katalog główny są prywatne. Aby opublikować: +Do npm publikowany jest wyłącznie `packages/scorm`. Workspace `example` oraz katalog główny są prywatne. Aby opublikować pakiet: ```bash cd packages/scorm diff --git a/example/README.de.md b/example/README.de.md index 7f15232..7f7619d 100644 --- a/example/README.de.md +++ b/example/README.de.md @@ -3,11 +3,11 @@ # `@studiolxd/scorm` — Interaktive Demo Eine interaktive, voll funktionsfähige Beispielanwendung, die jede Funktion der -[`@studiolxd/scorm`](https://www.npmjs.com/package/@studiolxd/scorm)-Bibliothek demonstriert — einschließlich des +Bibliothek [`@studiolxd/scorm`](https://www.npmjs.com/package/@studiolxd/scorm) demonstriert — einschließlich des frameworkunabhängigen Kerns (Vanilla) und der `` Web Component. Erstellt mit **React 19 + TypeScript + Vite** (unter Verwendung des `@studiolxd/scorm/react`-Adapters). Läuft -vollständig im Browser mithilfe des **Mock-Modus** der Bibliothek — kein Learning Management System (LMS) erforderlich. +vollständig im Browser über den **Mock-Modus** der Bibliothek — kein Learning Management System (LMS) erforderlich. --- @@ -24,8 +24,8 @@ npm run dev ## Was diese Demo zeigt -Die App besitzt einen **SCORM-Versionsumschalter** in der Kopfzeile (1.2 / 2004). Das Umschalten der Version -mountet den `ScormProvider` mit der neuen Version neu und setzt dabei den gesamten Zustand zurück. So lässt sich +Die App enthält in der Kopfzeile einen **SCORM-Versionsumschalter** (1.2 / 2004). Beim Umschalten der Version +wird der `ScormProvider` mit der neuen Version neu gemountet, wobei der gesamte Zustand zurückgesetzt wird. So lässt sich das Verhalten beider SCORM-Standards direkt nebeneinander vergleichen. ### 10 Demo-Bereiche @@ -49,7 +49,7 @@ das Verhalten beider SCORM-Standards direkt nebeneinander vergleichen. Die App verwendet `noLmsBehavior: 'mock'` im `ScormProvider`. Damit wird eine In-Memory-SCORM-API aktiviert, die sich wie ein echtes LMS verhält — kein Server erforderlich. Alle Daten werden im Arbeitsspeicher -gehalten und gehen beim Seitenaktualisieren verloren. +gehalten und gehen beim Neuladen der Seite verloren. ```tsx // App.tsx @@ -66,7 +66,7 @@ gehalten und gehen beim Seitenaktualisieren verloren. ## Bibliotheksübersicht -`@studiolxd/scorm` ist eine Headless-TypeScript-SCORM-Laufzeitbibliothek: ein frameworkunabhängiger Kern +`@studiolxd/scorm` ist eine Headless-TypeScript-Bibliothek für die SCORM-Runtime: ein frameworkunabhängiger Kern mit Adaptern für React, Vue, Angular, Svelte und Web Components. Diese Demo verwendet den React-Adapter. ### Grundkonzepte @@ -116,7 +116,7 @@ function Lesson() { } ``` -Oder nutze `useScormSession()` für reaktiven initialisierten/terminierten Zustand: +Oder nutze `useScormSession()` für reaktiven `initialized`/`terminated`-Zustand: ```tsx import { useScormSession } from '@studiolxd/scorm/react'; @@ -131,11 +131,11 @@ function Course() { } ``` -`useScormSession()` ist eine Obermenge von `useScorm()` — es gibt alles zurück, was `useScorm()` zurückgibt (`api`, `status`, `raw`), sowie reaktive boolesche Werte für `initialized`/`terminated` und die eingebetteten Methoden `initialize()`, `terminate()` und `commit()`, die diesen Zustand automatisch aktualisieren. +`useScormSession()` ist eine Obermenge von `useScorm()` — es gibt alles zurück, was `useScorm()` zurückgibt (`api`, `status`, `raw`), und zusätzlich die reaktiven booleschen Werte `initialized`/`terminated` sowie die gekapselten Methoden `initialize()`, `terminate()` und `commit()`, die diesen Zustand automatisch aktualisieren. **3. Result-basierte Fehlerbehandlung** -Jede API-Methode gibt ein `Result` zurück — keine geworfenen Ausnahmen: +Jede API-Methode gibt ein `Result` zurück — keine geworfenen Exceptions: ```tsx const r = api.setScore({ raw: 85, min: 0, max: 100 }); @@ -152,7 +152,7 @@ if (r.ok) { **4. Versionsneutrale API** Dieselben Methodennamen funktionieren für SCORM 1.2 und 2004. Die Bibliothek bildet sie intern auf die -richtigen CMI-Pfade ab: +korrekten CMI-Pfade ab: ```tsx // Works identically for 1.2 and 2004 @@ -225,7 +225,7 @@ api.getLearnerCommentCount() // → Result api.setRaw('cmi.progress_measure', '0.75') // → Result @@ -238,18 +238,18 @@ api.setNavRequest('continue') api.getNavRequestValid('continue') ``` -### SCORM 1.2 vs 2004 — Kurzübersicht +### SCORM 1.2 vs. 2004 — Spickzettel | Funktion | SCORM 1.2 | SCORM 2004 | |---------|-----------|------------| | Abschluss + Bestehen | Einzelner `lesson_status` | Getrennte `completion_status` + `success_status` | | Skalierter Score | Nicht verfügbar | `cmi.score.scaled` (-1 bis 1) | -| Maximale Suspend-Data | 4.096 Zeichen | 64.000 Zeichen | +| Max. Suspend Data | 4.096 Zeichen | 64.000 Zeichen | | Sitzungszeit-Format | `HH:MM:SS.SS` | `PT#H#M#S` (ISO 8601) | | Fortschrittsmessung | Nicht verfügbar | `cmi.progress_measure` (0–1) | | Navigation | Nicht verfügbar | ADL-Nav-Requests | | Comments | Einzelne Zeichenkette | Indiziertes Array mit Location + Zeitstempel | -| Lernenden-ID-Pfad | `cmi.core.student_id` | `cmi.learner_id` | +| Pfad der Lernenden-ID | `cmi.core.student_id` | `cmi.learner_id` | --- @@ -275,7 +275,7 @@ src/ ### Design-System (App.css) -Die App verwendet CSS-Custom-Properties für ein einheitliches dunkles Theme: +Die App verwendet CSS Custom Properties für ein einheitliches Dark Theme: ```css --bg /* #0a0c10 — page background */ @@ -298,15 +298,15 @@ Wiederverwendbare CSS-Klassen: `.section`, `.feature-block`, `.controls`, `.fiel ### Build — Vite 7 -[Vite](https://vite.dev) betreibt sowohl den Entwicklungsserver als auch den Produktions-Build. +[Vite](https://vite.dev) treibt sowohl den Dev-Server als auch den Production-Build an. -- Sofortiges HMR via `@vitejs/plugin-react` (React Fast Refresh) +- Sofortiges HMR über `@vitejs/plugin-react` (React Fast Refresh) - TypeScript-Transpilierung durch Vite (esbuild) — kein `tsc`-Emit -- Produktions-Build: `tsc -b` für die Typprüfung + `vite build` für das Bündeln +- Production-Build: `tsc -b` für die Typprüfung + `vite build` für das Bundling ### Language — TypeScript 5.9 (strict) -Vollständiger Strict-Modus aktiviert in `tsconfig.app.json`: +Voller Strict-Modus aktiviert in `tsconfig.app.json`: | Option | Wert | Effekt | |--------|-------|--------| @@ -314,14 +314,14 @@ Vollständiger Strict-Modus aktiviert in `tsconfig.app.json`: | `noUnusedLocals` | `true` | Fehler bei ungenutzten Variablen | | `noUnusedParameters` | `true` | Fehler bei ungenutzten Funktionsparametern | | `noFallthroughCasesInSwitch` | `true` | Erzwingt vollständige Switch-Anweisungen | -| `verbatimModuleSyntax` | `true` | Behält Import-/Export-Syntax exakt bei | +| `verbatimModuleSyntax` | `true` | Behält die Import-/Export-Syntax exakt bei | | `noEmit` | `true` | Nur Typprüfung — Vite übernimmt die Kompilierung | Zwei tsconfig-Ziele: `tsconfig.app.json` (src/, ES2022 + DOM) und `tsconfig.node.json` (vite.config.ts, ES2023 + Node-Typen). ### Linting — ESLint 9 (flat config) -`eslint.config.js` verwendet das Flat-Config-Format mit vier Regelsets: +`eslint.config.js` verwendet das Flat-Config-Format mit vier Regelsätzen: | Plugin | Version | Bereitgestellte Regeln | |--------|---------|----------------| @@ -336,10 +336,10 @@ Ausführen mit `npm run lint`. | Skript | Befehl | Beschreibung | |--------|---------|-------------| -| `npm run dev` | `vite` | Startet den Entwicklungsserver unter `http://localhost:5173` | -| `npm run build` | `tsc -b && vite build` | Typprüfung + Produktionsbundle | +| `npm run dev` | `vite` | Startet den Dev-Server unter `http://localhost:5173` | +| `npm run build` | `tsc -b && vite build` | Typprüfung + Production-Bundle | | `npm run lint` | `eslint .` | Lintet alle `.ts`- / `.tsx`-Dateien | -| `npm run preview` | `vite preview` | Vorschau des Produktions-Builds lokal | +| `npm run preview` | `vite preview` | Vorschau des Production-Builds lokal | ### CI — GitHub Actions @@ -359,26 +359,26 @@ Zwei KI-Entwicklungs-Skills sind für die Verwendung mit [Claude Code](https://c > Quelle: `anthropics/skills` -Leitet die Erstellung unverwechselbarer, produktionsreifer Frontend-Oberflächen an. Wird beim Erstellen von Komponenten, Seiten oder jeder Web-UI ausgelöst. Setzt eine markante ästhetische Richtung, bewusste Designentscheidungen und eine ausgefeilte Umsetzung durch — und vermeidet dabei ausdrücklich generische KI-erzeugte Ästhetik. +Unterstützt die Erstellung unverwechselbarer, produktionsreifer Frontend-Oberflächen. Wird beim Erstellen von Komponenten, Seiten oder beliebiger Web-UI ausgelöst. Erzwingt eine markante ästhetische Richtung, bewusste Designentscheidungen und eine ausgefeilte Umsetzung — und vermeidet dabei ausdrücklich generische KI-Ästhetik. ### `vercel-react-best-practices` — Vercel > Quelle: `vercel-labs/agent-skills` -React-Leistungsoptimierungsrichtlinien, gepflegt von Vercel Engineering. Enthält **57 Regeln in 8 Kategorien**, die beim Schreiben oder Überprüfen von React-Komponenten, Datenabruf, Bundle-Konfiguration oder leistungssensiblem Code angewendet werden: +Richtlinien zur React-Performance-Optimierung, gepflegt von Vercel Engineering. Enthält **57 Regeln in 8 Kategorien**, die beim Schreiben oder Reviewen von React-Komponenten, Datenabruf, Bundle-Konfiguration oder beliebigem performancekritischem Code angewendet werden: | Kategorie | Regeln | Schwerpunkt | |----------|:-----:|-------| | `rerender` | 13 | Unnötige Re-Renders vermeiden (memo, abgeleiteter Zustand, Refs) | -| `js` | 12 | JavaScript-Leistung (Caching, frühe Rückgaben, effiziente Datenstrukturen) | -| `rendering` | 10 | Render-Optimierung (bedingtes Rendern, Hydratisierung, Übergänge) | -| `server` | 7 | Serverseitige Muster (paralleles Abrufen, Caching, Auth-Aktionen) | -| `async` | 5 | Asynchrone Muster (Suspense-Grenzen, verzögertes await, parallele Abhängigkeiten) | -| `bundle` | 5 | Bundle-Optimierung (dynamische Importe, Barrel-Dateien, Vorladen) | +| `js` | 12 | JavaScript-Performance (Caching, frühe Rückgaben, effiziente Datenstrukturen) | +| `rendering` | 10 | Render-Optimierung (bedingtes Rendern, Hydration, Transitions) | +| `server` | 7 | Serverseitige Muster (paralleler Datenabruf, Caching, Auth-Actions) | +| `async` | 5 | Asynchrone Muster (Suspense-Boundaries, verzögertes await, parallele Abhängigkeiten) | +| `bundle` | 5 | Bundle-Optimierung (dynamische Imports, Barrel-Dateien, Preloading) | | `client` | 4 | Clientseitige Muster (Event-Listener, localStorage-Schema, SWR-Deduplizierung) | | `advanced` | 3 | Fortgeschrittene Muster (Event-Handler-Refs, Init-once, useLatest) | -Skills werden unter `.agents/skills/` installiert und in `skills-lock.json` fixiert. +Die Skills werden unter `.agents/skills/` installiert und in `skills-lock.json` gepinnt. --- diff --git a/example/README.pl.md b/example/README.pl.md index 4e1af8f..d665049 100644 --- a/example/README.pl.md +++ b/example/README.pl.md @@ -6,12 +6,12 @@ Interaktywna, w pełni działająca aplikacja przykładowa demonstrująca każd [`@studiolxd/scorm`](https://www.npmjs.com/package/@studiolxd/scorm) — w tym rdzeń niezależny od frameworka (vanilla) oraz Web Component ``. -Zbudowana na bazie **React 19 + TypeScript + Vite** (z użyciem adaptera `@studiolxd/scorm/react`). Działa -w całości w przeglądarce dzięki **trybowi mock** biblioteki — nie wymaga systemu zarządzania nauczaniem (LMS). +Zbudowana w oparciu o **React 19 + TypeScript + Vite** (z użyciem adaptera `@studiolxd/scorm/react`). Działa +w całości w przeglądarce dzięki bibliotecznemu **trybowi mock** — nie wymaga systemu zarządzania nauczaniem (LMS). --- -## Jak zacząć +## Pierwsze kroki ```bash npm install @@ -24,8 +24,8 @@ Otwórz `http://localhost:5173` w przeglądarce. ## Co pokazuje to demo -Aplikacja posiada **przełącznik wersji SCORM** w nagłówku (1.2 / 2004). Zmiana wersji -powoduje ponowne zamontowanie `ScormProvider` z nową wersją, resetując cały stan. Dzięki temu +Aplikacja ma w nagłówku **przełącznik wersji SCORM** (1.2 / 2004). Zmiana wersji +powoduje ponowne zamontowanie `ScormProvider` z nową wersją i zresetowanie całego stanu. Dzięki temu można porównać zachowanie obu standardów SCORM obok siebie. ### 10 sekcji demonstracyjnych @@ -38,7 +38,7 @@ można porównać zachowanie obu standardów SCORM obok siebie. | **Score** | `setScore({ raw, min, max, scaled? })`, `getScore()`, `getPreferences()`, `setPreference()` | | **Location** | `setLocation()`, `getLocation()`, `setSuspendData()`, `getSuspendData()`, `setSessionTime()`, `getTotalTime()`, `setExit()` | | **Objectives** | `setObjective()`, `getObjective()`, `getObjectiveCount()` — formularz dostosowuje się do wersji 1.2/2004 | -| **Interactions** | `recordInteraction()`, `getInteractionCount()`, `getInteraction()` — quiz z 4 pytaniami na żywo z wizualną informacją zwrotną o poprawności | +| **Interactions** | `recordInteraction()`, `getInteractionCount()`, `getInteraction()` — działający na żywo quiz z 4 pytaniami i wizualną informacją zwrotną o poprawności | | **Comments** | `addLearnerComment()`, `getLearnerCommentCount()`, `getLmsCommentCount()`, `getLearnerComments()`, `getLmsComments()` | | **Advanced** | `getRaw()`, `setRaw()`, `setProgressMeasure()`, `setNavRequest()`, `getNavRequestValid()`, `formatScorm12Time()`, `formatScorm2004Time()` | | **Vanilla / WC** | `createScormSession()` (niezależny od frameworka) oraz Web Component ``, na żywo w trybie mock | @@ -47,8 +47,8 @@ można porównać zachowanie obu standardów SCORM obok siebie. ## Tryb mock -Aplikacja używa `noLmsBehavior: 'mock'` w `ScormProvider`. Aktywuje to in-memory SCORM -API zachowujące się jak prawdziwy LMS — bez potrzeby uruchamiania serwera. Wszystkie dane +Aplikacja używa `noLmsBehavior: 'mock'` w `ScormProvider`. Aktywuje to działające w pamięci API +SCORM, które zachowuje się jak prawdziwy LMS — bez potrzeby uruchamiania serwera. Wszystkie dane są przechowywane w pamięci i tracone po odświeżeniu strony. ```tsx @@ -66,10 +66,10 @@ są przechowywane w pamięci i tracone po odświeżeniu strony. ## Przegląd biblioteki -`@studiolxd/scorm` to bezgłowa biblioteka TypeScript będąca środowiskiem uruchomieniowym SCORM: rdzeń niezależny od frameworka +`@studiolxd/scorm` to headlessowa biblioteka TypeScript będąca środowiskiem uruchomieniowym SCORM: rdzeń niezależny od frameworka z adapterami dla React, Vue, Angular, Svelte oraz Web Components. To demo korzysta z adaptera React. -### Podstawowe koncepcje +### Podstawowe pojęcia **1. Provider + Hook** @@ -95,7 +95,7 @@ function Lesson() { **2. Jawny cykl życia** -Biblioteka nigdy nie inicjalizuje się automatycznie. Wywołujesz `api.initialize()` w momencie uruchomienia lekcji: +Biblioteka nigdy nie inicjalizuje się automatycznie. Wywołujesz `api.initialize()` w chwili rozpoczęcia lekcji: ```tsx useEffect(() => { @@ -105,7 +105,7 @@ useEffect(() => { }, [api]); ``` -Możesz też skorzystać z opcjonalnego hook'a auto-terminate: +Możesz też skorzystać z opcjonalnego hooka auto-terminate: ```tsx import { useScormAutoTerminate } from '@studiolxd/scorm/react'; @@ -116,7 +116,7 @@ function Lesson() { } ``` -Albo użyć `useScormSession()` dla reaktywnego stanu `initialized`/`terminated`: +Albo użyć `useScormSession()`, aby uzyskać reaktywny stan `initialized`/`terminated`: ```tsx import { useScormSession } from '@studiolxd/scorm/react'; @@ -188,7 +188,7 @@ api.setScore({ raw, min, max, scaled? }) // → Result api.getScore() // → Result ``` -`raw`, `min`, `max` muszą być skończonymi liczbami (NaN/Infinity → błąd 405). `scaled` musi mieścić się w `[-1, 1]` (błąd 407 przy przekroczeniu zakresu). W przypadku SCORM 1.2 parametr `scaled` jest po cichu ignorowany. +`raw`, `min`, `max` muszą być skończonymi liczbami (NaN/Infinity → błąd 405). `scaled` musi mieścić się w `[-1, 1]` (błąd 407 przy przekroczeniu zakresu). W SCORM 1.2 parametr `scaled` jest po cichu pomijany. #### Lokalizacja i stan ```tsx @@ -225,7 +225,7 @@ api.getLearnerCommentCount() // → Result api.setRaw('cmi.progress_measure', '0.75') // → Result @@ -273,9 +273,9 @@ src/ └── AdvancedSection.tsx # raw API + 2004 features + time utils ``` -### System designu (App.css) +### System projektowy (App.css) -Aplikacja używa CSS custom properties do spójnego ciemnego motywu: +Aplikacja używa CSS custom properties, aby zapewnić spójny ciemny motyw: ```css --bg /* #0a0c10 — page background */ @@ -288,7 +288,7 @@ Aplikacja używa CSS custom properties do spójnego ciemnego motywu: --font-mono /* IBM Plex Mono */ ``` -Wielokrotnego użytku klasy CSS: `.section`, `.feature-block`, `.controls`, `.field`, `.field-input`, +Klasy CSS wielokrotnego użytku: `.section`, `.feature-block`, `.controls`, `.field`, `.field-input`, `.btn`, `.btn-primary`, `.btn-danger`, `.result.ok`, `.result.error`, `.badge-12`, `.badge-2004`, `.status-grid`, `.status-item`, `.note`, `details.code-details`. @@ -300,8 +300,8 @@ Wielokrotnego użytku klasy CSS: `.section`, `.feature-block`, `.controls`, `.fi [Vite](https://vite.dev) obsługuje zarówno serwer deweloperski, jak i build produkcyjny. -- Natychmiastowe HMR via `@vitejs/plugin-react` (React Fast Refresh) -- Transpilacja TypeScript obsługiwana przez Vite (esbuild) — bez emitowania przez `tsc` +- Natychmiastowe HMR przez `@vitejs/plugin-react` (React Fast Refresh) +- Transpilacja TypeScript obsługiwana przez Vite (esbuild) — bez emisji plików przez `tsc` - Build produkcyjny: `tsc -b` do sprawdzania typów + `vite build` do bundlowania ### Language — TypeScript 5.9 (strict) @@ -317,7 +317,7 @@ Pełny tryb strict włączony w `tsconfig.app.json`: | `verbatimModuleSyntax` | `true` | Zachowuje składnię import/export dokładnie tak, jak jest | | `noEmit` | `true` | Tylko sprawdzanie typów — Vite zajmuje się kompilacją | -Dwa cele tsconfig: `tsconfig.app.json` (src/, ES2022 + DOM) i `tsconfig.node.json` (vite.config.ts, ES2023 + typy Node). +Dwie konfiguracje tsconfig: `tsconfig.app.json` (src/, ES2022 + DOM) i `tsconfig.node.json` (vite.config.ts, ES2023 + typy Node). ### Linting — ESLint 9 (flat config) @@ -353,32 +353,32 @@ npm ci → npm run lint → npm run build ## Umiejętności Claude Code -Dwie umiejętności programistyczne AI są wstępnie zainstalowane do użytku z [Claude Code](https://claude.ai/claude-code): +Dwie umiejętności programistyczne AI są fabrycznie zainstalowane do użytku z [Claude Code](https://claude.ai/claude-code): ### `frontend-design` — Anthropic > Źródło: `anthropics/skills` -Kieruje tworzeniem wyróżniających się, produkcyjnych interfejsów frontend. Uruchamia się przy budowaniu komponentów, stron lub dowolnego UI webowego. Wymusza śmiały kierunek estetyczny, przemyślane decyzje projektowe i dopracowaną implementację — jawnie unikając generycznej estetyki tworzonej przez AI. +Wspomaga tworzenie wyróżniających się interfejsów frontendowych klasy produkcyjnej. Uruchamia się przy budowaniu komponentów, stron lub dowolnego interfejsu webowego. Wymusza śmiały kierunek estetyczny, przemyślane decyzje projektowe i dopracowaną implementację — wyraźnie unikając generycznej estetyki generowanej przez AI. ### `vercel-react-best-practices` — Vercel > Źródło: `vercel-labs/agent-skills` -Wytyczne optymalizacji wydajności React utrzymywane przez Vercel Engineering. Zawiera **57 reguł w 8 kategoriach**, stosowanych przy pisaniu lub przeglądaniu komponentów React, pobierania danych, konfiguracji bundle lub dowolnego kodu wrażliwego na wydajność: +Wytyczne dotyczące optymalizacji wydajności React utrzymywane przez Vercel Engineering. Zawierają **57 reguł w 8 kategoriach**, stosowanych przy pisaniu lub przeglądaniu komponentów React, pobierania danych, konfiguracji bundla lub dowolnego kodu wrażliwego na wydajność: -| Kategoria | Reguły | Skupienie | +| Kategoria | Reguły | Obszar | |----------|:-----:|-------| | `rerender` | 13 | Unikanie zbędnych ponownych renderowań (memo, stan pochodny, refs) | | `js` | 12 | Wydajność JavaScript (cache, wczesne wyjścia, wydajne struktury danych) | | `rendering` | 10 | Optymalizacja renderowania (renderowanie warunkowe, hydratacja, przejścia) | | `server` | 7 | Wzorce po stronie serwera (równoległe pobieranie, cache, akcje auth) | | `async` | 5 | Wzorce asynchroniczne (granice Suspense, opóźniony await, równoległe zależności) | -| `bundle` | 5 | Optymalizacja bundle (dynamiczne importy, pliki barrel, wstępne ładowanie) | +| `bundle` | 5 | Optymalizacja bundla (dynamiczne importy, pliki barrel, wstępne ładowanie) | | `client` | 4 | Wzorce po stronie klienta (event listeners, schemat localStorage, deduplikacja SWR) | | `advanced` | 3 | Zaawansowane wzorce (refs handlerów zdarzeń, init-once, useLatest) | -Umiejętności są instalowane w `.agents/skills/` i przypięte w `skills-lock.json`. +Umiejętności są instalowane w katalogu `.agents/skills/` i przypięte w `skills-lock.json`. --- diff --git a/packages/scorm/README.de.md b/packages/scorm/README.de.md index 33325c8..04ada26 100644 --- a/packages/scorm/README.de.md +++ b/packages/scorm/README.de.md @@ -2,18 +2,18 @@ # @studiolxd/scorm -Eine Headless-TypeScript-Bibliothek für die Integration der SCORM-Laufzeitumgebung. Ein **frameworkunabhängiger Kern** kommuniziert über SCORM 1.2 oder SCORM 2004 (4th Edition) mit einem LMS, ergänzt durch schlanke Adapter für **React, Vue, Angular, Svelte, Web Components** sowie reines Vanilla-JS / `