1212## ✨ Можливості
1313
1414### 🎨 UI/UX
15- - ** Сучасний дизайн** з shadcn/ui компонентами
15+ - ** Сучасний дизайн** з shadcn/ui компонентами та responsive сайдбаром
1616- ** Темна та світла тема** з автоматичним перемиканням
1717- ** Повністю адаптивний** дизайн для мобільних, планшетів та десктопів
18+ - ** Інтелектуальний сайдбар** :
19+ - Автоматично згортається на вузьких екранах (тільки іконки)
20+ - Розгортається на широких екранах з повним текстом
21+ - Перемикається клавішею ` B `
1822- ** Плавні анімації** та переходи між станами
1923- ** Інтуїтивний інтерфейс** з tooltips та підказками
24+ - ** Чистий UI** - порожні секції автоматично ховаються
2025
2126### 📚 Функціонал
22- - ** Візуалізація** Call Stack, Web APIs, Microtask Queue та Task Queue
27+ - ** Візуалізація** Call Stack, Web APIs, Microtask Queue, Task Queue, Stack та Heap пам'яті
2328- ** Покрокове виконання** з детальними поясненнями кожної дії
24- - ** Вбудовані приклади** :
25- - setTimeout демонстрація
26- - Promise vs setTimeout (різниця в пріоритетах)
27- - Складний приклад з вкладеними мікро- та макрозавданнями
28- - Fetch API з демонстрацією мережевих запитів
29+ - ** 5 вбудованих прикладів** :
30+ - 🗄️ ** Пам'ять та Змінні** - демонстрація Stack та Heap (примітиви, об'єкти, функції)
31+ - ⏱️ ** setTimeout** - базова робота з асинхронним кодом
32+ - ⚡ ** Promise vs setTimeout** - різниця між microtask та macrotask
33+ - 🔄 ** Складний приклад** - вкладені Promise та setTimeout
34+ - 🌐 ** Fetch API** - мережеві запити та їх обробка
2935- ** Два режими роботи** : автоматичний та ручний
3036- ** Історія дій** для відстеження всіх кроків виконання
3137- ** Відображення коду** з підсвічуванням активного рядка
32- - ** Keyboard shortcuts** : Space, 1-4, A, C, Esc для швидкої роботи
38+ - ** Інтерактивний сайдбар** з:
39+ - Швидким запуском прикладів
40+ - Кнопками очищення (повне та вибіркове)
41+ - Довідкою по роботі Event Loop
42+ - ** Keyboard shortcuts** : Space, 0-4, A, B, C, Esc для швидкої роботи
3343
3444### 🌍 Локалізація
3545- Повна підтримка ** української мови**
@@ -85,31 +95,45 @@ Build результат буде в теці `dist/`
8595```
8696src/
8797├── components/ # React компоненти
88- │ ├── ui/ # shadcn/ui компоненти
89- │ ├── layout/ # Header, ThemeToggle
98+ │ ├── ui/ # shadcn/ui компоненти (sidebar, button, card...)
99+ │ ├── layout/ # Header, ExamplesSidebar, KeyboardShortcuts
90100│ ├── event-loop/ # Візуалізація Event Loop
91- │ ├── controls/ # Кнопки управління
92- │ └── panels/ # Інформаційні панелі
101+ │ │ ├── CallStack.tsx
102+ │ │ ├── WebAPIs.tsx
103+ │ │ ├── MicrotaskQueue.tsx
104+ │ │ ├── TaskQueue.tsx
105+ │ │ ├── Memory.tsx # Heap пам'ять
106+ │ │ └── StackVariables.tsx # Stack frames
107+ │ ├── controls/ # StepControls
108+ │ └── panels/ # HistoryPanel
93109├── hooks/ # Custom React hooks
94110│ ├── useEventLoop.ts
95- │ └── useStepExecution.ts
111+ │ ├── useStepExecution.ts
112+ │ ├── useKeyboardShortcuts.ts
113+ │ └── use-mobile.tsx
96114├── context/ # React Context (ThemeProvider)
97115├── lib/ # Утиліти та приклади
116+ │ ├── examples.ts # 5 вбудованих прикладів
117+ │ └── utils.ts
98118├── types/ # TypeScript типи
119+ │ ├── eventLoop.ts
120+ │ └── memory.ts
99121├── i18n/ # Переклади
100122├── App.tsx # Головний компонент
101123└── main.tsx # Entry point
102124```
103125
104126## 🔧 Як це працює
105127
106- Візуалізатор демонструє роботу JavaScript Event Loop:
128+ Візуалізатор демонструє роботу JavaScript Event Loop та управління пам'яттю :
107129
1081301 . ** Call Stack** : Відображає функції, які зараз виконуються.
1091312 . ** Web APIs** : Показує асинхронні операції, що виконуються у фоні.
1101323 . ** Microtask Queue** : Черга високопріоритетних завдань (Promise).
1111334 . ** Task Queue** : Черга регулярних завдань (setTimeout, setInterval).
112- 5 . ** Event Loop** : Постійно перевіряє стан стеку та черг, дотримуючись пріоритетів.
134+ 5 . ** Stack Variables** : Відображає локальні змінні у Stack Frames.
135+ 6 . ** Memory (Heap)** : Показує об'єкти, функції та інші складні типи даних.
136+ 7 . ** Event Loop** : Постійно перевіряє стан стеку та черг, дотримуючись пріоритетів.
113137
114138### Порядок виконання в Event Loop:
115139
@@ -121,7 +145,12 @@ src/
121145
122146## 🎯 Як Використовувати
123147
124- 1 . ** Виберіть приклад** - Натисніть на одну з кнопок прикладів (або клавіші ** 1-4** )
148+ 1 . ** Виберіть приклад** в сайдбарі зліва (або клавіші ** 0-4** ):
149+ - ** 0** - Пам'ять та Змінні (Stack & Heap)
150+ - ** 1** - setTimeout демонстрація
151+ - ** 2** - Promise vs setTimeout
152+ - ** 3** - Складний приклад
153+ - ** 4** - Fetch API
1251542 . ** Режим виконання** :
126155 - ** Ручний режим** : Натискайте "Наступний крок" або ** Space/Enter**
127156 - ** Авто режим** : Автоматичне виконання з затримкою 1.5 сек (клавіша ** A** )
@@ -130,8 +159,11 @@ src/
130159 - Web APIs - асинхронні операції
131160 - Microtask Queue - високопріоритетні завдання (Promise)
132161 - Task Queue - звичайні завдання (setTimeout)
162+ - Stack Variables - локальні змінні (з'являються в прикладі 0)
163+ - Memory (Heap) - об'єкти та функції (з'являються в прикладі 0)
1331644 . ** Відстежуйте** історію дій у правій панелі
134- 5 . ** Keyboard shortcuts** - Натисніть іконку клавіатури у header для переліку всіх скорочень
165+ 5 . ** Керуйте сайдбаром** - клавіша ** B** або кнопка у header
166+ 6 . ** Keyboard shortcuts** - Натисніть іконку клавіатури у header для переліку всіх скорочень
135167
136168## 👥 Як Зробити Внесок
137169
157189
158190- [x] ~~ Додати Examples 3 та 4 (складний приклад, Fetch API)~~ ✅
159191- [x] ~~ Keyboard shortcuts (Space, числа, A, C)~~ ✅
192+ - [x] ~~ Responsive сайдбар з shadcn/ui~~ ✅
193+ - [x] ~~ Візуалізація Stack та Heap пам'яті~~ ✅
194+ - [x] ~~ Приклад роботи з пам'яттю~~ ✅
160195- [ ] Інтерактивний режим для створення власних прикладів
161196- [ ] Експорт історії виконання
162197- [ ] Додаткові мови інтерфейсу (EN, PL)
0 commit comments