@vnejs/docs 0.2.58 → 0.2.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
4
4
 
5
+ ## 0.2.59
6
+
7
+ - `views.scenario/interface.controls`, `views.scenario/interface.fastforward` — hide не сбрасывает локальный стейт (`SHOULD_CLEAR_STATE_ON_CLEANUP` = `false`). Иначе `$ interface show` после выбора публиковал `isVisible: false`, и кнопки с индикатором прокрутки оставались прозрачными. API: `InterfaceControlsController.SHOULD_CLEAR_STATE_ON_CLEANUP`, `InterfaceFastforwardController.SHOULD_CLEAR_STATE_ON_CLEANUP`.
8
+ - `module.controller.hide.on.controls`, `module.controller.accept`, `module.controller.interact`, `module.controller.arrows.vertical`, `module.controller.arrows.horizontal`, `module.controller.arrows.grid`, `module.controller.tabs`, `module.controller.audio` — свой `state.isShow` снят. Повторный `SHOW` / `HIDE` обрывает `ModuleController` на `GATE`; расширения больше не пропускают `POP` по локальному флагу. API: снято `state.isShow` у `ModuleControllerHideOnControlsState`, `ModuleControllerAcceptState`, `ModuleControllerInteractState`, `ModuleControllerArrowsVerticalState`, `ModuleControllerArrowsHorizontalState`, `ModuleControllerArrowsGridState`, `ModuleControllerTabsState`, `ModuleControllerAudioState`.
9
+ - `module.components` — `ModuleController.setShow` пишет `{ isShow }` через `EVENT_UPDATE_STATE`, затем вызывает `updateView(isForce, false)`.
10
+ - `module.controller.backgrounds`, `module.controller.bg`, `module.controller.preload` — подписка на `EVENT_UPDATE_STATE` (`updateState`). Свой `isShow` на `SHOW` / `HIDE` снят. `backgrounds` на `HIDE.AFTER` всегда снимает таймер ротации. API: `ModuleControllerPreload.EVENT_UPDATE_STATE`.
11
+
5
12
  ## 0.2.58
6
13
 
7
14
  - `text/text` — `STATE.SET` и `STATE.CLEAR` эмитят `TEXT.EMIT` с `isKeepProcessState`, чтобы восстановление не затирало `text.process.state`. `TEXT.EMIT_END` с этим флагом не шлёт `TEXT.PROCESS_STATE` и `TEXT.EMIT_NEXT`. Сценарный `TEXT.EMIT` флаг не ставит. API: `TextEmitPayload.isKeepProcessState`, `TextEmitEndPayload.isKeepProcessState`.
package/architecture.md CHANGED
@@ -168,29 +168,29 @@ flowchart TD
168
168
  MCO --> ML
169
169
  ```
170
170
 
171
- | Пакет | Назначение |
172
- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
173
- | **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
174
- | **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам** |
175
- | **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
176
- | **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
177
- | **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls. SHOW/HIDE по `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; `UPDATE_STATE`, `UPDATE_FAST`, `EXTERNAL_UPDATE` (`isShow` → `updateViewFast`) |
178
- | **`@vnejs/module.layer`** | Canvas layers: controller, image, sprite, text, video, props, view |
179
- | **`@vnejs/module.audio`** | База для audio-плагинов scenario-слоёв (`music` / `sound` / …) |
180
- | **`@vnejs/module.controller.audio`** | Overlay-BGM для view-экранов: pause global / play `view` / resume на `SHOW.AFTER` / `HIDE.AFTER` / PRELOAD |
181
- | **`@vnejs/module.controller.tabs`** | Навигация по вкладкам: TAB_PREV/TAB_NEXT → `TAB_SET`; guard + `applyTab` (`UPDATE_STATE` `{ tab }`) + abstract `onTabSet`; вкладка на `SHOW.BEFORE`, PUSH/POP на `CONTROLS` |
182
- | **`@vnejs/module.controller.preload`** | Предзагрузка меток и событий экрана на `SHOW.BEFORE` / PRELOAD / MEMORY.CLEARED; SHOW/HIDE/PRELOAD задаёт плагин |
183
- | **`@vnejs/module.controller.backgrounds`** | Ротация списка фонов на `SHOW.AFTER` / таймеру / MEMORY.CLEARED; стоп на `HIDE.AFTER`; события и список задаёт плагин |
184
- | **`@vnejs/module.controller.bg`** | Статичный фон экрана: `SHOW.BEFORE` пишет `bgSrc` через `UPDATE_STATE`; `isShow` на `SHOW.MAIN` / `HIDE.MAIN`; опционально PRELOAD / start / STATE.CLEAR; MEMORY.CLEARED — preload и/или refresh при isShow |
185
- | **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
186
- | **`@vnejs/module.controller.interact`** | `BUTTONS.ANY` → `INTERACT.EMIT`; после показа `INTERACT.PUSH` (`onInteract`), перед скрытием `INTERACT.POP`; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
187
- | **`@vnejs/module.controller.arrows.vertical`** | ARROW_UP / ARROW_BOTTOM по видимым пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
188
- | **`@vnejs/module.controller.arrows.horizontal`** | ARROW_LEFT / ARROW_RIGHT по пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
189
- | **`@vnejs/module.controller.arrows.grid`** | Четыре стрелки по сетке; `GRID_NEXT` / `GRID_PREV` на краю; PUSH/POP на `SHOW.CONTROLS` / `HIDE.CONTROLS`; `GRID_UPDATE_ITEMS` без payload, meta через `UPDATE_STATE` |
190
- | **`@vnejs/module.controller.pages`** | Пагинация: `PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` → `setPage` → `UPDATE_STATE` (`pageIndex`) + abstract `applyPage` + `UPDATE_FAST` |
191
- | **`@vnejs/module.controller.hide.on.state`** | STATE.SET / STATE.CLEAR → emit HIDE плагина (`isForce` задаёт наследник) |
192
- | **`@vnejs/module.controller.hide.on.controls`** | BACK / MENU / GAMEMENU → emit HIDE плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
193
- | **`@vnejs/module.scales.common`** | База для scales / RPG-модулей |
171
+ | Пакет | Назначение |
172
+ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
173
+ | **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
174
+ | **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам** |
175
+ | **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
176
+ | **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
177
+ | **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls. `SHOW`: `GATE` `-200`, `BEFORE` `-100`, `MAIN` `0`, `CONTROLS` `100`, `AFTER` `200`, `CLEANUP` `300`. `HIDE`: `GATE` `-300`, `CONTROLS` `-200`, `BEFORE` `-100`, `MAIN` `0`, `AFTER` `100`, `CLEANUP` `200`. `setShow` эмитит `UPDATE_STATE` `{ isShow }`, затем `updateView(isForce, false)`. `UPDATE_FAST`, `EXTERNAL_UPDATE` (`isShow` → `updateViewFast`) |
178
+ | **`@vnejs/module.layer`** | Canvas layers: controller, image, sprite, text, video, props, view |
179
+ | **`@vnejs/module.audio`** | База для audio-плагинов scenario-слоёв (`music` / `sound` / …) |
180
+ | **`@vnejs/module.controller.audio`** | Overlay-BGM для view-экранов: pause global / play `view` / resume на `SHOW.AFTER` / `HIDE.AFTER` / PRELOAD |
181
+ | **`@vnejs/module.controller.tabs`** | Навигация по вкладкам: TAB_PREV/TAB_NEXT → `TAB_SET`; guard + `applyTab` (`UPDATE_STATE` `{ tab }`) + abstract `onTabSet`; вкладка на `SHOW.BEFORE`, PUSH/POP на `CONTROLS` |
182
+ | **`@vnejs/module.controller.preload`** | Предзагрузка меток и событий на `SHOW.BEFORE` (эмитит PRELOAD) и по PRELOAD. `isShow` из `UPDATE_STATE`; `MEMORY.CLEARED` — только при `isShow`. События задаёт плагин (`EVENT_SHOW` / `EVENT_HIDE` / `EVENT_PRELOAD` / `EVENT_UPDATE_STATE`) |
183
+ | **`@vnejs/module.controller.backgrounds`** | Ротация списка фонов на `SHOW.AFTER` / таймеру / `MEMORY.CLEARED` при `isShow` из `UPDATE_STATE`. Таймер на `HIDE.AFTER` снимается всегда. События и список задаёт плагин |
184
+ | **`@vnejs/module.controller.bg`** | Статичный фон экрана: `SHOW.BEFORE` пишет `bgSrc` через `UPDATE_STATE`; `isShow` приходит из `UPDATE_STATE`. Опционально PRELOAD / start / STATE.CLEAR; `MEMORY.CLEARED` — preload и/или refresh при `isShow` |
185
+ | **`@vnejs/module.controller.accept`** | ACCEPT / INTERACT → событие ACCEPT плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
186
+ | **`@vnejs/module.controller.interact`** | `BUTTONS.ANY` → `INTERACT.EMIT`; после показа `INTERACT.PUSH` (`onInteract`), перед скрытием `INTERACT.POP`; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
187
+ | **`@vnejs/module.controller.arrows.vertical`** | ARROW_UP / ARROW_BOTTOM по видимым пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
188
+ | **`@vnejs/module.controller.arrows.horizontal`** | ARROW_LEFT / ARROW_RIGHT по пунктам; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS`; индекс через `UPDATE_STATE` |
189
+ | **`@vnejs/module.controller.arrows.grid`** | Четыре стрелки по сетке; `GRID_NEXT` / `GRID_PREV` на краю; PUSH/POP на `SHOW.CONTROLS` / `HIDE.CONTROLS`; `GRID_UPDATE_ITEMS` без payload, meta через `UPDATE_STATE` |
190
+ | **`@vnejs/module.controller.pages`** | Пагинация: `PAGE_SET` / `PAGE_NEXT` / `PAGE_PREV` → `setPage` → `UPDATE_STATE` (`pageIndex`) + abstract `applyPage` + `UPDATE_FAST` |
191
+ | **`@vnejs/module.controller.hide.on.state`** | STATE.SET / STATE.CLEAR → emit HIDE плагина (`isForce` задаёт наследник) |
192
+ | **`@vnejs/module.controller.hide.on.controls`** | BACK / MENU / GAMEMENU → emit HIDE плагина; PUSH/POP controls на `SHOW.CONTROLS` / `HIDE.CONTROLS` |
193
+ | **`@vnejs/module.scales.common`** | База для scales / RPG-модулей |
194
194
 
195
195
  ### Принципы
196
196
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vnejs/docs",
3
- "version": "0.2.58",
3
+ "version": "0.2.59",
4
4
  "description": "VNEJS documentation for engine consumers and coding agents",
5
5
  "files": [
6
6
  "*.md",
@@ -37,10 +37,10 @@ Payloads и результаты хендлеров типизированы ч
37
37
 
38
38
  ## Модули
39
39
 
40
- | Модуль | Зона ответственности |
41
- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
42
- | `interface.controls.controller` | Обрабатывает UPDATE, VISIBLE, INTERACT, SHOW, …. `CONTROLS_EXTENSIONS` сливается в `CONTROLS` в `ModuleController.init`. |
43
- | `interface.controls.view` | Подмодуль `controls.view` плагина. |
40
+ | Модуль | Зона ответственности |
41
+ | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
+ | `interface.controls.controller` | Обрабатывает UPDATE, VISIBLE, INTERACT, SHOW, …. `CONTROLS_EXTENSIONS` сливается в `CONTROLS` в `ModuleController.init`. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`: hide не сбрасывает `isVisible` и `view`, чтобы следующий `$ interface show` снова показал кнопки. |
43
+ | `interface.controls.view` | Подмодуль `controls.view` плагина. |
44
44
 
45
45
  ## Близкие плагины
46
46
 
@@ -35,10 +35,10 @@ Payloads и результаты хендлеров типизированы ч
35
35
 
36
36
  ## Модули
37
37
 
38
- | Модуль | Зона ответственности |
39
- | ---------------------------------- | -------------------------------------------- |
40
- | `interface.fastforward.controller` | Обрабатывает UPDATE, TOGGLE, START, STOP, …. |
41
- | `interface.fastforward.view` | Подмодуль `fastforward.view` плагина. |
38
+ | Модуль | Зона ответственности |
39
+ | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
+ | `interface.fastforward.controller` | Обрабатывает UPDATE, TOGGLE, START, STOP, …. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`: hide не сбрасывает `isVisible` и `view`, чтобы следующий `$ interface show` снова показал кнопку. |
41
+ | `interface.fastforward.view` | Подмодуль `fastforward.view` плагина. |
42
42
 
43
43
  ## Близкие плагины
44
44
 
@@ -54,14 +54,14 @@ Payloads и результаты хендлеров типизированы ч
54
54
 
55
55
  ## Модули
56
56
 
57
- | Модуль | Зона ответственности |
58
- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
59
- | `interface.controller` | Обрабатывает VIEW_UPDATE, VIEW_SHOW, VIEW_HIDE, …. Пустой `controls` на `ZINDEX`; `CONTROLS_UNVISIBLE` при скрытии слоя. |
60
- | `interface.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `INTERFACE.INTERACT`; видимый слой → `INTERACT.EMIT`, скрытый → `INTERFACE.VISIBLE`; PUSH/POP на VIEW_SHOW/HIDE. |
61
- | `interface` | STATE.SET / STATE.CLEAR → STATE_CHANGED. |
62
- | `interface.scenario` | `$ interface`: `LINE_EXEC_REG` → SHOW / HIDE / VIEW по `CONST.INTERFACE.EXEC_ACTIONS`. |
63
- | `interface.actions` | SHOW / HIDE / VISIBLE / TEXT_HIDE / VIEW через `globalState.interface`. |
64
- | `interface.view` | Подмодуль `view` плагина. |
57
+ | Модуль | Зона ответственности |
58
+ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
59
+ | `interface.controller` | Обрабатывает VIEW_UPDATE, VIEW_SHOW, VIEW_HIDE, …. Пустой `controls` на `ZINDEX`; `CONTROLS_UNVISIBLE` при скрытии слоя. `SHOULD_CLEAR_STATE_ON_CLEANUP` — `false`, поэтому текст и задник переживают hide. |
60
+ | `interface.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `INTERFACE.INTERACT`; видимый слой → `INTERACT.EMIT`, скрытый → `INTERFACE.VISIBLE`; PUSH/POP на VIEW_SHOW/HIDE. |
61
+ | `interface` | STATE.SET / STATE.CLEAR → STATE_CHANGED. |
62
+ | `interface.scenario` | `$ interface`: `LINE_EXEC_REG` → SHOW / HIDE / VIEW по `CONST.INTERFACE.EXEC_ACTIONS`. |
63
+ | `interface.actions` | SHOW / HIDE / VISIBLE / TEXT_HIDE / VIEW через `globalState.interface`. |
64
+ | `interface.view` | Подмодуль `view` плагина. |
65
65
 
66
66
  ## Compatibility
67
67
 
@@ -51,12 +51,12 @@ Payloads и результаты хендлеров типизированы ч
51
51
  | Модуль | Зона ответственности |
52
52
  | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
53
53
  | `mainmenu.controller` | UPDATE, SHOW, HIDE по фазам `CONST.COMPONENTS.LIFECYCLE_PRIORITY`; на `SHOW.BEFORE` — ITEMS. Пустой `controls` на `ZINDEX`. UPDATE_STATE, UPDATE_FAST, UPDATE_FORCE. |
54
- | `mainmenu.controller.bg` | Наследует `@vnejs/module.controller.bg`: начальный `bgSrc` на `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE`; `start` / `STATE.CLEAR` preload. Ротацию не трогает. |
54
+ | `mainmenu.controller.bg` | Наследует `@vnejs/module.controller.bg`: начальный `bgSrc` на `SHOW` + `LIFECYCLE_PRIORITY.SHOW.BEFORE`; `isShow` из `UPDATE_STATE`; `start` / `STATE.CLEAR` preload. Ротацию не трогает. |
55
55
  | `mainmenu.hide` | Наследует `@vnejs/module.controller.hide.on.state`: `STATE.SET` / `STATE.CLEAR` → `HIDE` с `{ isForce: true }`. |
56
56
  | `mainmenu.controller.accept` | Наследует `@vnejs/module.controller.accept`: `ACCEPT` / `INTERACT` → `ACCEPT` → `CLICK` по `currentArrowVerticalItem`; зеркалит `UPDATE_STATE`; PUSH/POP на SHOW/HIDE. |
57
57
  | `mainmenu.controller.arrows` | Наследует `@vnejs/module.controller.arrows.vertical`: `ARROW_UP` / `ARROW_BOTTOM` по видимым пунктам; PUSH/POP controls на SHOW/HIDE; эмитит `UPDATE_STATE` с `{ currentArrowVerticalItem }` и `UPDATE_FAST`. |
58
- | `mainmenu.backgrounds` | Наследует `@vnejs/module.controller.backgrounds`: ротация `BACKGROUNDS`, preload и таймер; эмитит `UPDATE_STATE` и `UPDATE_FAST`. |
59
- | `mainmenu.preload` | Наследует `@vnejs/module.controller.preload`: по SHOW / PRELOAD / MEMORY.CLEARED грузит `PRELOAD_LABELS` и `PRELOAD_EVENTS`. |
58
+ | `mainmenu.backgrounds` | Наследует `@vnejs/module.controller.backgrounds`: ротация `BACKGROUNDS`, preload и таймер; `isShow` из `UPDATE_STATE`; эмитит `UPDATE_STATE` и `UPDATE_FAST`. Таймер снимается на `HIDE.AFTER`. |
59
+ | `mainmenu.preload` | Наследует `@vnejs/module.controller.preload`: по SHOW / PRELOAD грузит `PRELOAD_LABELS` и `PRELOAD_EVENTS`. `MEMORY.CLEARED` — только при `isShow` из `UPDATE_STATE`. |
60
60
  | `mainmenu.scenario` | LINE_EXEC → SHOW, LINE_LOAD → PRELOAD. |
61
61
  | `mainmenu` | Обрабатывает ITEMS и CLICK. |
62
62
  | `mainmenu.view` | Подмодуль `view` плагина. |