@endge/nova 0.13.6 → 0.13.11

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.
Files changed (119) hide show
  1. package/dist/domain/constants/nova-phase.d.ts +16 -0
  2. package/dist/domain/types/base.types.d.ts +177 -0
  3. package/dist/domain/types/component.types.d.ts +156 -0
  4. package/dist/domain/types/context.types.d.ts +31 -0
  5. package/dist/domain/types/cursor.types.d.ts +89 -0
  6. package/dist/domain/types/diagnostics.types.d.ts +148 -0
  7. package/dist/domain/types/events.types.d.ts +85 -0
  8. package/dist/domain/types/export.types.d.ts +27 -0
  9. package/dist/domain/types/hit-test.types.d.ts +16 -0
  10. package/dist/domain/types/motion.types.d.ts +118 -0
  11. package/dist/domain/types/renderer.types.d.ts +607 -0
  12. package/dist/domain/types/rendering/index.d.ts +559 -0
  13. package/dist/domain/types/semantic.types.d.ts +69 -0
  14. package/dist/domain/types/sound.types.d.ts +84 -0
  15. package/dist/domain/types/theme.types.d.ts +53 -0
  16. package/dist/domain/utils/bounds.d.ts +34 -0
  17. package/dist/domain/utils/schemaBounds.d.ts +10 -0
  18. package/dist/index.d.ts +82 -8919
  19. package/dist/model/input/NovaCaretBlinkController.d.ts +35 -0
  20. package/dist/model/input/NovaClipboardService.d.ts +18 -0
  21. package/dist/model/input/NovaInputProxy_Adapter.d.ts +61 -0
  22. package/dist/model/input/NovaInputValidationController.d.ts +46 -0
  23. package/dist/model/input/NovaTextInputController.d.ts +126 -0
  24. package/dist/model/input/NovaTextLayoutEngine.d.ts +31 -0
  25. package/dist/model/input/index.d.ts +7 -0
  26. package/dist/model/input/nova-input.types.d.ts +137 -0
  27. package/dist/model/motion/NovaMotionEngine.d.ts +152 -0
  28. package/dist/model/motion/nova-motion-easing.d.ts +13 -0
  29. package/dist/model/motion/nova-motion-interpolation.d.ts +19 -0
  30. package/dist/model/motion/nova-motion-presets.d.ts +288 -0
  31. package/dist/model/motion/nova-motion-timeline.d.ts +5 -0
  32. package/dist/model/platform/NovaCanvas.d.ts +112 -0
  33. package/dist/model/platform/NovaGraphics.d.ts +32 -0
  34. package/dist/model/render/backends/canvas2d/NovaCanvas2DTargetManager.d.ts +29 -0
  35. package/dist/model/render/backends/canvas2d/NovaRenderer2D.d.ts +238 -0
  36. package/dist/model/render/backends/nova-render-backend-factory.d.ts +10 -0
  37. package/dist/model/render/backends/nova-render-backend.d.ts +16 -0
  38. package/dist/model/render/backends/webgl/NovaGpuBufferArena.d.ts +76 -0
  39. package/dist/model/render/backends/webgl/NovaRendererWebGL.d.ts +154 -0
  40. package/dist/model/render/backends/webgl/NovaWebGLBatcher.d.ts +17 -0
  41. package/dist/model/render/backends/webgl/NovaWebGLBuffer.d.ts +19 -0
  42. package/dist/model/render/backends/webgl/NovaWebGLDevice.d.ts +24 -0
  43. package/dist/model/render/backends/webgl/NovaWebGLDiagnostics.d.ts +29 -0
  44. package/dist/model/render/backends/webgl/NovaWebGLFrameRenderer.d.ts +1013 -0
  45. package/dist/model/render/backends/webgl/NovaWebGLProgram.d.ts +33 -0
  46. package/dist/model/render/backends/webgl/NovaWebGLTargetManager.d.ts +11 -0
  47. package/dist/model/render/backends/webgl/NovaWebGLTextRenderer.d.ts +17 -0
  48. package/dist/model/render/backends/webgl/NovaWebGLTextureManager.d.ts +16 -0
  49. package/dist/model/render/compiler/NovaRenderBuilder.d.ts +176 -0
  50. package/dist/model/render/compiler/NovaRenderCommandWriter.d.ts +166 -0
  51. package/dist/model/render/compiler/NovaRenderCompiler.d.ts +48 -0
  52. package/dist/model/render/compiler/NovaRenderFrameBuilder.d.ts +59 -0
  53. package/dist/model/render/graph/NovaRenderGraph.d.ts +96 -0
  54. package/dist/model/render/graph/NovaRenderHitIndex.d.ts +54 -0
  55. package/dist/model/render/graph/nova-render-culling.d.ts +26 -0
  56. package/dist/model/render/graph/nova-render-group.d.ts +18 -0
  57. package/dist/model/render/graph/nova-render-item.d.ts +35 -0
  58. package/dist/model/render/graph/nova-render-layer.d.ts +5 -0
  59. package/dist/model/render/graph/nova-render-stream.d.ts +117 -0
  60. package/dist/model/render/orchestration/NovaRenderOrchestrator.d.ts +73 -0
  61. package/dist/model/render/policy/nova-render-policy.d.ts +45 -0
  62. package/dist/model/render/resources/NovaGlyphAtlasManager.d.ts +45 -0
  63. package/dist/model/render/resources/NovaRenderResourceCache.d.ts +30 -0
  64. package/dist/model/render/resources/NovaRenderScheduler.d.ts +33 -0
  65. package/dist/model/render/resources/NovaTextAtlasManager.d.ts +44 -0
  66. package/dist/model/render/resources/NovaTextLayoutEngine.d.ts +23 -0
  67. package/dist/model/render/resources/NovaTextureAtlasManager.d.ts +95 -0
  68. package/dist/model/render/schema/NovaRenderContext.d.ts +74 -0
  69. package/dist/model/render/schema/nova-color-parser.d.ts +18 -0
  70. package/dist/model/render/schema/nova-style-compiler.d.ts +88 -0
  71. package/dist/model/render/targets/NovaRenderTargetManager.d.ts +51 -0
  72. package/dist/model/render/targets/nova-render-target-resource.d.ts +14 -0
  73. package/dist/model/render/utils/nova-icon-rendering.d.ts +9 -0
  74. package/dist/model/runtime/app/Nova.d.ts +167 -0
  75. package/dist/model/runtime/app/NovaApp.d.ts +305 -0
  76. package/dist/model/runtime/app/createNovaRaphRuntime.d.ts +17 -0
  77. package/dist/model/runtime/assets/NovaAssetRegistry.d.ts +511 -0
  78. package/dist/model/runtime/commands/NovaCommandBus.d.ts +48 -0
  79. package/dist/model/runtime/components/NovaComponentNode.d.ts +109 -0
  80. package/dist/model/runtime/components/NovaComponentRegistry.d.ts +35 -0
  81. package/dist/model/runtime/components/NovaSchemaRegistry.d.ts +71 -0
  82. package/dist/model/runtime/components/nova-component-metadata.d.ts +90 -0
  83. package/dist/model/runtime/components/nova-component.decorator.d.ts +38 -0
  84. package/dist/model/runtime/components/nova-defined-component.d.ts +58 -0
  85. package/dist/model/runtime/context/nova-context.d.ts +5 -0
  86. package/dist/model/runtime/cursor/NovaCursorManager.d.ts +148 -0
  87. package/dist/model/runtime/debug/NovaDebug.d.ts +105 -0
  88. package/dist/model/runtime/debug/NovaMetrics.d.ts +55 -0
  89. package/dist/model/runtime/diagnostics/NovaDiagnostics_Module.d.ts +143 -0
  90. package/dist/model/runtime/diagnostics/adapters/NovaDiagnosticsBrowser_Adapter.d.ts +32 -0
  91. package/dist/model/runtime/interaction/NovaEvents.d.ts +229 -0
  92. package/dist/model/runtime/interaction/NovaHitIndex.d.ts +57 -0
  93. package/dist/model/runtime/interaction/NovaSpatialIndex.d.ts +49 -0
  94. package/dist/model/runtime/reactivity/nova-reactivity.d.ts +24 -0
  95. package/dist/model/runtime/refs/nova-ref.d.ts +61 -0
  96. package/dist/model/runtime/scene/NovaScene.d.ts +80 -0
  97. package/dist/model/runtime/scene/nova-scene-components.d.ts +88 -0
  98. package/dist/model/runtime/state/NovaStore.d.ts +27 -0
  99. package/dist/model/runtime/state/nova-store-decorators.d.ts +38 -0
  100. package/dist/model/runtime/state/nova-store-runtime.d.ts +23 -0
  101. package/dist/model/runtime/state/nova-store-tracking.d.ts +17 -0
  102. package/dist/model/runtime/sync/NovaSyncScope.d.ts +93 -0
  103. package/dist/model/runtime/sync/nova-sync-context.d.ts +2 -0
  104. package/dist/model/runtime/sync/nova-sync-ports.d.ts +5 -0
  105. package/dist/model/runtime/sync/nova-sync.types.d.ts +48 -0
  106. package/dist/model/runtime/template/NovaTemplateRuntime.d.ts +79 -0
  107. package/dist/model/runtime/tree/NovaContainer.d.ts +78 -0
  108. package/dist/model/runtime/tree/NovaNode.d.ts +626 -0
  109. package/dist/model/runtime/tree/NovaSurface.d.ts +95 -0
  110. package/dist/model/semantic/NovaSemanticService.d.ts +30 -0
  111. package/dist/model/sound/NovaSoundEngine.d.ts +134 -0
  112. package/dist/model/telemetry.d.ts +108 -0
  113. package/dist/model/text-selection/NovaTextSelectionService.d.ts +85 -0
  114. package/dist/model/text-selection/index.d.ts +2 -0
  115. package/dist/model/text-selection/nova-text-selection.types.d.ts +54 -0
  116. package/dist/model/theme/NovaGlobalThemeRegistry.d.ts +57 -0
  117. package/dist/model/theme/NovaThemeService.d.ts +83 -0
  118. package/dist/nova.js +14489 -14069
  119. package/package.json +29 -23
@@ -0,0 +1,71 @@
1
+ import { EventList } from '@endge/utils';
2
+ import { NovaComponentDescriptor, NovaComponentSchema, NovaElementConstructor, NovaElementSchema, NovaSchemaRenderMode } from '../../../domain/types/component.types';
3
+ import { NovaNodeContextOptions } from '../../../domain/types/context.types';
4
+ import { NovaRenderer } from '../../../domain/types/renderer.types';
5
+ import { NovaDefinedComponentInput } from './nova-defined-component';
6
+ import { NovaNode } from '../tree/NovaNode';
7
+ import { NovaSurface } from '../tree/NovaSurface';
8
+ /**
9
+ * Хранит schema components и отвечает за их expansion и bounds resolution.
10
+ */
11
+ export declare class NovaSchemaRegistry {
12
+ private readonly _descriptors;
13
+ private readonly _tagDescriptors;
14
+ private readonly _reservedTags;
15
+ /**
16
+ * Создает instance и подготавливает внутреннее состояние.
17
+ */
18
+ constructor(options?: {
19
+ defaults?: boolean;
20
+ });
21
+ /**
22
+ * Выполняет внутреннюю операцию register.
23
+ */
24
+ register<TProps extends Record<string, any>, TApi, TEvents extends Record<string, unknown>, TSchema>(descriptor: NovaComponentDescriptor<TProps, TApi, TEvents, TSchema>, options?: {
25
+ override?: boolean;
26
+ }): void;
27
+ /**
28
+ * Регистрирует class-компонент с optional global tag.
29
+ */
30
+ registerDefinedComponent<E extends EventList = Record<string, any>>(input: NovaElementConstructor<E> | NovaDefinedComponentInput<E>, options?: {
31
+ override?: boolean;
32
+ }): void;
33
+ /**
34
+ * Регистрирует decorated class-component напрямую без ручного descriptor/registry glue.
35
+ */
36
+ registerDecorated<E extends EventList = Record<string, any>>(input: NovaElementConstructor<E> | NovaDefinedComponentInput<E>, options?: {
37
+ override?: boolean;
38
+ }): void;
39
+ /**
40
+ * Помечает tag как занятый builtin-слоем или compiler semantics.
41
+ */
42
+ reserveTag(tag: string): void;
43
+ /**
44
+ * Выполняет внутреннюю операцию has.
45
+ */
46
+ has(type: string): boolean;
47
+ /**
48
+ * Выполняет внутреннюю операцию resolve.
49
+ */
50
+ resolve<T extends NovaComponentDescriptor<any, any, any, any> = NovaComponentDescriptor<any, any, any, any>>(type: string): T | undefined;
51
+ /**
52
+ * Выполняет render-операцию schema component.
53
+ */
54
+ renderSchemaComponent(renderer: NovaRenderer, item: NovaComponentSchema<any>, _mode: NovaSchemaRenderMode, depth?: number): boolean;
55
+ /**
56
+ * Создает node.
57
+ */
58
+ createNode<E extends EventList>(surface: NovaSurface<E>, schema: NovaElementSchema<any>, options?: NovaNodeContextOptions): NovaNode<E>;
59
+ /**
60
+ * Создает child.
61
+ */
62
+ createChild<E extends EventList>(parent: NovaNode<E>, schema: NovaElementSchema<any>, options?: NovaNodeContextOptions): NovaNode<E>;
63
+ /**
64
+ * Создает detached node.
65
+ */
66
+ private createDetachedNode;
67
+ /**
68
+ * Регистрирует defaults.
69
+ */
70
+ private registerDefaults;
71
+ }
@@ -0,0 +1,90 @@
1
+ import { NovaComponentApiDefinition, NovaComponentCommandDefinition, NovaComponentDescriptor, NovaComponentDirtyPolicy, NovaComponentPropDefinition, NovaComponentPropKind, NovaComponentSchema, NovaComponentWatchDefinition, NovaElementConstructor } from '../../../domain/types/component.types';
2
+ /**
3
+ * Описывает class-level metadata декорированного компонента.
4
+ */
5
+ export interface NovaDecoratedComponentMetadata {
6
+ type?: string;
7
+ tag?: string;
8
+ name?: string;
9
+ version?: string;
10
+ dirtyPolicy?: NovaComponentDirtyPolicy<Record<string, any>>;
11
+ bounds?: 'size' | 'custom';
12
+ props: Array<NovaComponentPropDefinition>;
13
+ watchers: Array<NovaComponentWatchDefinition>;
14
+ commands: Array<NovaComponentCommandDefinition>;
15
+ apis: Array<NovaComponentApiDefinition>;
16
+ }
17
+ /**
18
+ * Описывает options декоратора NovaComponent.
19
+ */
20
+ export interface NovaDecoratedComponentOptions {
21
+ type?: string;
22
+ tag?: string;
23
+ name?: string;
24
+ version?: string;
25
+ dirtyPolicy?: NovaComponentDirtyPolicy<Record<string, any>>;
26
+ bounds?: 'size' | 'custom';
27
+ }
28
+ /**
29
+ * Описывает options декоратора Prop.
30
+ */
31
+ export interface NovaPropDecoratorOptions<T = unknown> {
32
+ key?: string;
33
+ required?: boolean;
34
+ default?: T | (() => T);
35
+ defaultValue?: T | (() => T);
36
+ mode?: 'plain' | 'versioned';
37
+ }
38
+ /**
39
+ * Описывает options декоратора Watch.
40
+ */
41
+ export interface NovaWatchDecoratorOptions {
42
+ phase?: 'update' | 'render' | 'matrix';
43
+ immediate?: boolean;
44
+ }
45
+ /**
46
+ * Возвращает metadata конструктора.
47
+ */
48
+ export declare function readNovaDecoratedComponent(component: NovaElementConstructor<any>): NovaDecoratedComponentMetadata | undefined;
49
+ /**
50
+ * Обновляет metadata конструктора.
51
+ */
52
+ export declare function updateNovaDecoratedComponent(component: Function, patch: Partial<NovaDecoratedComponentMetadata>): NovaDecoratedComponentMetadata;
53
+ /**
54
+ * Добавляет prop metadata.
55
+ */
56
+ export declare function addNovaPropMetadata(target: object, propertyKey: string | symbol, kind: NovaComponentPropKind, options?: NovaPropDecoratorOptions, event?: boolean): void;
57
+ /**
58
+ * Добавляет watcher metadata.
59
+ */
60
+ export declare function addNovaWatchMetadata(target: object, propertyKey: string | symbol, path: string, options?: NovaWatchDecoratorOptions): void;
61
+ /**
62
+ * Добавляет command metadata.
63
+ */
64
+ export declare function addNovaCommandMetadata(target: object, propertyKey: string | symbol, id: string, options?: {
65
+ scope?: string;
66
+ }): void;
67
+ /**
68
+ * Добавляет API metadata.
69
+ */
70
+ export declare function addNovaApiMetadata(target: object, propertyKey: string | symbol): void;
71
+ /**
72
+ * Создает descriptor из class decorator metadata.
73
+ */
74
+ export declare function createNovaDecoratedComponentDescriptor<TProps extends Record<string, any> = Record<string, any>, TApi = unknown, TEvents extends Record<string, unknown> = Record<string, unknown>, TSchema = TProps>(component: NovaElementConstructor<any>): NovaComponentDescriptor<TProps, TApi, TEvents, TSchema>;
75
+ /**
76
+ * Устанавливает accessors для prop-полей на prototype.
77
+ */
78
+ export declare function installNovaPropAccessors(component: Function): void;
79
+ /**
80
+ * Возвращает normalized props декорированного компонента.
81
+ */
82
+ export declare function normalizeDecoratedProps(schema: NovaComponentSchema<Record<string, any>>, metadata: NovaDecoratedComponentMetadata): Record<string, any>;
83
+ /**
84
+ * Считывает значение path из object.
85
+ */
86
+ export declare function readNovaComponentPath(source: Record<string, any> | undefined, path: string): unknown;
87
+ /**
88
+ * Собирает metadata с учетом prototype chain.
89
+ */
90
+ export declare function collectMetadata(component: Function): NovaDecoratedComponentMetadata;
@@ -0,0 +1,38 @@
1
+ import { EventList } from '@endge/utils';
2
+ import { NovaDecoratedComponentOptions, NovaPropDecoratorOptions, NovaWatchDecoratorOptions } from './nova-component-metadata';
3
+ import { NovaDefinedComponentOptions } from './nova-defined-component';
4
+ /**
5
+ * Помечает class-компонент metadata для DSL и явной registry-регистрации.
6
+ */
7
+ export declare function NovaComponent<E extends EventList = Record<string, any>>(options?: (NovaDefinedComponentOptions<E> & NovaDecoratedComponentOptions)): <T extends new (...args: Array<any>) => any>(target: T) => T;
8
+ /**
9
+ * Описывает набор prop-декораторов Nova.
10
+ */
11
+ export declare const Prop: {
12
+ model: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
13
+ object: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
14
+ options: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
15
+ array: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
16
+ string: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
17
+ number: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
18
+ boolean: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
19
+ function: <T = unknown>(options?: NovaPropDecoratorOptions<T>) => (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
20
+ };
21
+ /**
22
+ * Помечает callback prop как event.
23
+ */
24
+ export declare function Event(options?: NovaPropDecoratorOptions): (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
25
+ /**
26
+ * Регистрирует watcher prop/path.
27
+ */
28
+ export declare function Watch(path: string, options?: NovaWatchDecoratorOptions): (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
29
+ /**
30
+ * Регистрирует command handler.
31
+ */
32
+ export declare function Command(id: string, options?: {
33
+ scope?: string;
34
+ }): (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
35
+ /**
36
+ * Помечает метод как часть public API.
37
+ */
38
+ export declare function Api(): (target: object, propertyKey: string | symbol, _descriptor?: PropertyDescriptor) => void;
@@ -0,0 +1,58 @@
1
+ import { EventList, OneOrMany } from '@endge/utils';
2
+ import { NovaComponentCreateContext, NovaComponentDescriptor, NovaComponentSchema, NovaElementConstructor, NovaElementSlots } from '../../../domain/types/component.types';
3
+ import { NovaSchemaRegistry } from './NovaSchemaRegistry';
4
+ import { NovaNode } from '../tree/NovaNode';
5
+ export interface NovaComponentListeners {
6
+ [key: string]: (...args: Array<any>) => void;
7
+ }
8
+ export interface NovaDefinedComponentOptions<E extends EventList = Record<string, any>> {
9
+ tag?: string;
10
+ name?: string;
11
+ version?: string;
12
+ createNode?: (context: NovaComponentCreateContext<E>, schema: NovaComponentSchema<Record<string, any>>) => NovaNode<E>;
13
+ }
14
+ export interface NovaDefinedComponentInput<E extends EventList = Record<string, any>> extends NovaDefinedComponentOptions<E> {
15
+ component: NovaElementConstructor<E>;
16
+ }
17
+ export interface NovaNormalizedDefinedComponent<E extends EventList = Record<string, any>> {
18
+ component: NovaElementConstructor<E>;
19
+ tag?: string;
20
+ name: string;
21
+ version: string;
22
+ descriptor?: NovaComponentDescriptor<any, any, any, any>;
23
+ createNode?: (context: NovaComponentCreateContext<E>, schema: NovaComponentSchema<Record<string, any>>) => NovaNode<E>;
24
+ }
25
+ /**
26
+ * Декоратор и статический Nova.defineComponent хранят metadata на constructor.
27
+ */
28
+ export declare function defineNovaComponent<E extends EventList, T extends NovaElementConstructor<E>>(component: T, options?: NovaDefinedComponentOptions<E>): T;
29
+ /**
30
+ * Возвращает metadata class-компонента, если он был помечен define/decorator.
31
+ */
32
+ export declare function readDefinedComponent<E extends EventList = Record<string, any>>(component: NovaElementConstructor<E>): NovaDefinedComponentOptions<E> | undefined;
33
+ /**
34
+ * Нормализует class-компонент или explicit definition в единый формат регистрации.
35
+ */
36
+ export declare function normalizeDefinedComponent<E extends EventList = Record<string, any>>(input: NovaElementConstructor<E> | NovaDefinedComponentInput<E>): NovaNormalizedDefinedComponent<E>;
37
+ /**
38
+ * Регистрирует один или несколько class-компонентов в schema registry.
39
+ */
40
+ export declare function registerDefinedComponents<E extends EventList = Record<string, any>>(registry: NovaSchemaRegistry, inputs: OneOrMany<NovaElementConstructor<E> | NovaDefinedComponentInput<E>>): void;
41
+ /**
42
+ * Инстанцирует direct constructor component с учетом metadata и generic runtime state.
43
+ */
44
+ export declare function createDefinedComponentNode<E extends EventList = Record<string, any>>(component: NovaElementConstructor<E>, context: NovaComponentCreateContext<E>, options?: {
45
+ schema?: NovaComponentSchema<Record<string, any>>;
46
+ componentId?: string;
47
+ listeners?: NovaComponentListeners;
48
+ slots?: NovaElementSlots;
49
+ }): NovaNode<E>;
50
+ /**
51
+ * Добавляет plain NovaNode минимальный component runtime layer: props, listeners и component id.
52
+ */
53
+ export declare function attachRuntimeComponentState(node: NovaNode<any>, options?: {
54
+ componentId?: string;
55
+ props?: Record<string, any>;
56
+ listeners?: NovaComponentListeners;
57
+ slots?: NovaElementSlots;
58
+ }): void;
@@ -0,0 +1,5 @@
1
+ import { NovaContextToken } from '../../../domain/types/context.types';
2
+ /**
3
+ * Создает типизированный token для scoped dependency в Nova tree.
4
+ */
5
+ export declare function createNovaContextToken<T>(name: string): NovaContextToken<T>;
@@ -0,0 +1,148 @@
1
+ import { EventList } from '@endge/utils';
2
+ import { NovaCursorDeclaration, NovaCursorRuntimeState, NovaCursorValue } from '../../../domain/types/cursor.types';
3
+ import { NovaApp } from '../app/NovaApp';
4
+ import { NovaNode } from '../tree/NovaNode';
5
+ /**
6
+ * Описывает входные данные для синхронизации cursor с pointer.
7
+ */
8
+ export interface NovaCursorPointerSync<E extends EventList> {
9
+ x: number;
10
+ y: number;
11
+ target: NovaNode<E> | null;
12
+ pressed?: boolean;
13
+ dragging?: boolean;
14
+ }
15
+ /**
16
+ * Централизованно выбирает cursor, обновляет DOM cursor и управляет component cursor overlay.
17
+ */
18
+ export declare class NovaCursorManager<E extends EventList = Record<string, any>> {
19
+ private readonly app;
20
+ readonly cursorNodes: Set<NovaNode<E>>;
21
+ lastHitTestCandidates: number;
22
+ private readonly _spatialIndex;
23
+ private readonly _spatialDirtyNodes;
24
+ private readonly _componentNodes;
25
+ private _spatialFullDirty;
26
+ private _overlaySurface;
27
+ private _activeComponentKey;
28
+ private _lastCursorKey;
29
+ private _lastDomCursor;
30
+ private _lastSource;
31
+ private _lastState;
32
+ /**
33
+ * Создает cursor manager для приложения.
34
+ */
35
+ constructor(app: NovaApp<E>);
36
+ /**
37
+ * Регистрирует node как носителя cursor declaration.
38
+ */
39
+ register(node: NovaNode<E>): void;
40
+ /**
41
+ * Удаляет node из cursor index и active references.
42
+ */
43
+ unregister(node: NovaNode<E>): void;
44
+ /**
45
+ * Помечает spatial index грязным.
46
+ */
47
+ markSpatialDirty(node?: NovaNode<E>, includeChildren?: boolean): void;
48
+ /**
49
+ * Синхронизирует cursor с текущим pointer state.
50
+ */
51
+ syncPointer(input: NovaCursorPointerSync<E>): void;
52
+ /**
53
+ * Сбрасывает cursor в default.
54
+ */
55
+ reset(): void;
56
+ /**
57
+ * Обновляет native cursor напрямую для legacy API.
58
+ */
59
+ setNativeCursor(value: string): void;
60
+ /**
61
+ * Освобождает component cursor overlay.
62
+ */
63
+ destroy(): void;
64
+ /**
65
+ * Возвращает последнюю примененную строку DOM cursor.
66
+ */
67
+ get lastDomCursor(): string;
68
+ /**
69
+ * Возвращает последнюю source node.
70
+ */
71
+ get lastSource(): NovaNode<E> | null;
72
+ /**
73
+ * Возвращает ключ последнего примененного cursor declaration.
74
+ */
75
+ get lastCursorKey(): string;
76
+ /**
77
+ * Возвращает последний runtime state cursor.
78
+ */
79
+ get lastState(): NovaCursorRuntimeState<E> | null;
80
+ /**
81
+ * Восстанавливает DOM cursor после render/backend writers, если они перезаписали canvas style.
82
+ */
83
+ reapplyNativeCursor(): void;
84
+ /**
85
+ * Возвращает фактическую policy cursor hit-test индекса.
86
+ */
87
+ get hitTestIndexPolicy(): 'rbush';
88
+ /**
89
+ * Возвращает количество node в cursor hit-test индексе.
90
+ */
91
+ get hitTestIndexedNodeCount(): number;
92
+ /**
93
+ * Нормализует и возвращает итоговое значение NovaCursorManager.
94
+ */
95
+ private resolveCursorSource;
96
+ /**
97
+ * Находит сущность по runtime-критериям NovaCursorManager.
98
+ */
99
+ private findCursorAncestor;
100
+ /**
101
+ * Выполняет внутренний шаг cursorHitTest для NovaCursorManager.
102
+ */
103
+ private cursorHitTest;
104
+ /**
105
+ * Возвращает значение состояния NovaCursorManager.
106
+ */
107
+ private getCursorCandidates;
108
+ /**
109
+ * Синхронизирует dirty nodes с cursor spatial index.
110
+ */
111
+ private syncSpatialIndex;
112
+ /**
113
+ * Создает runtime-сущность NovaCursorManager.
114
+ */
115
+ private createRuntimeState;
116
+ /**
117
+ * Применяет подготовленное состояние NovaCursorManager.
118
+ */
119
+ private applyCursorValue;
120
+ /**
121
+ * Применяет подготовленное состояние NovaCursorManager.
122
+ */
123
+ private applyComponentCursor;
124
+ /**
125
+ * Нормализует и возвращает итоговое значение NovaCursorManager.
126
+ */
127
+ private resolveComponentNode;
128
+ /**
129
+ * Нормализует и возвращает итоговое значение NovaCursorManager.
130
+ */
131
+ private resolveOverlaySurface;
132
+ /**
133
+ * Выполняет внутренний шаг hideActiveComponent для NovaCursorManager.
134
+ */
135
+ private hideActiveComponent;
136
+ /**
137
+ * Выполняет внутренний шаг hideComponentNode для NovaCursorManager.
138
+ */
139
+ private hideComponentNode;
140
+ /**
141
+ * Применяет подготовленное состояние NovaCursorManager.
142
+ */
143
+ private applyNativeCursor;
144
+ }
145
+ /**
146
+ * Вычисляет cursor value по declaration и runtime state.
147
+ */
148
+ export declare function resolveNovaCursorValue<E extends EventList>(declaration: NovaCursorDeclaration | null | undefined, state: NovaCursorRuntimeState<E>): NovaCursorValue | null;
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Собирает debug-информацию по кадрам и фазам runtime.
3
+ */
4
+ export declare class NovaDebug {
5
+ private _enabled;
6
+ private _lastLogFrameTimes;
7
+ private readonly _logThrottleTime;
8
+ private _shouldLogFrame;
9
+ private _frameStartTime;
10
+ private _phaseStart;
11
+ private _phaseName;
12
+ private _phaseStack;
13
+ private _lastFrameTime;
14
+ private _lastFps;
15
+ private _displayFps;
16
+ private _displayTick;
17
+ private _lastRenderedTick;
18
+ private _lastRenderedAt;
19
+ private _displayFrameTimes;
20
+ private _displayRafId;
21
+ private _framePhases;
22
+ private _frameLogs;
23
+ private _phaseLogs;
24
+ private _timers;
25
+ /**
26
+ * Обновляет enabled.
27
+ */
28
+ set enabled(v: boolean);
29
+ /**
30
+ * Возвращает enabled.
31
+ */
32
+ get enabled(): boolean;
33
+ /**
34
+ * Возвращает last frame time.
35
+ */
36
+ get lastFrameTime(): number;
37
+ /**
38
+ * Возвращает last fps.
39
+ */
40
+ get lastFps(): number;
41
+ /**
42
+ * Возвращает display fps.
43
+ */
44
+ get displayFps(): number;
45
+ /**
46
+ * Запускает связанную runtime-операцию.
47
+ */
48
+ startDisplayMonitor(): void;
49
+ /**
50
+ * Останавливает связанную runtime-операцию.
51
+ */
52
+ stopDisplayMonitor(): void;
53
+ /**
54
+ * Помечает rendered frame.
55
+ */
56
+ markRenderedFrame(): void;
57
+ /**
58
+ * Выполняет внутреннюю операцию frame start.
59
+ */
60
+ frameStart(group?: string | null): void;
61
+ /**
62
+ * Выполняет внутреннюю операцию frame end.
63
+ */
64
+ frameEnd(title?: string): void;
65
+ /**
66
+ * Выполняет внутреннюю операцию phase start.
67
+ */
68
+ phaseStart(name: string): void;
69
+ /**
70
+ * Выполняет внутреннюю операцию phase end.
71
+ */
72
+ phaseEnd(): void;
73
+ /**
74
+ * Выполняет внутреннюю операцию face log.
75
+ */
76
+ faceLog(message: string): void;
77
+ /**
78
+ * Запускает связанную runtime-операцию.
79
+ */
80
+ startTimer(label: string): void;
81
+ /**
82
+ * Выполняет внутреннюю операцию info.
83
+ */
84
+ info(message: string, timerLabel?: string): void;
85
+ /**
86
+ * Выполняет внутреннюю операцию warn.
87
+ */
88
+ warn(message: string, timerLabel?: string): void;
89
+ /**
90
+ * Выполняет внутреннюю операцию error.
91
+ */
92
+ error(message: string, timerLabel?: string): void;
93
+ /**
94
+ * Выполняет внутреннюю операцию success.
95
+ */
96
+ success(message: string, timerLabel?: string): void;
97
+ /**
98
+ * Выполняет внутреннюю операцию log to phase.
99
+ */
100
+ private logToPhase;
101
+ /**
102
+ * Выполняет внутреннюю операцию print colored.
103
+ */
104
+ private printColored;
105
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Описывает контракт NovaMetricsSnapshot.
3
+ */
4
+ export interface NovaMetricsSnapshot {
5
+ rFps: number;
6
+ fps: number;
7
+ ups: number;
8
+ last: number;
9
+ idle: number;
10
+ }
11
+ /**
12
+ * Считает runtime-метрики кадров, draw events и update frequency.
13
+ */
14
+ export declare class NovaMetrics {
15
+ private readonly readUps;
16
+ private _rafId;
17
+ private _rafLastAt;
18
+ private _rafFrames;
19
+ private _rFps;
20
+ private _drawLastAt;
21
+ private _drawWindowAt;
22
+ private _drawFrames;
23
+ private _fps;
24
+ private _frameStartedAt;
25
+ private _last;
26
+ /**
27
+ * Создает instance и подготавливает внутреннее состояние.
28
+ */
29
+ constructor(readUps: () => number);
30
+ /**
31
+ * Запускает связанную runtime-операцию.
32
+ */
33
+ start(): void;
34
+ /**
35
+ * Останавливает связанную runtime-операцию.
36
+ */
37
+ stop(): void;
38
+ /**
39
+ * Помечает frame start.
40
+ */
41
+ markFrameStart(now?: number): void;
42
+ /**
43
+ * Помечает frame end.
44
+ */
45
+ markFrameEnd(now?: number): void;
46
+ /**
47
+ * Помечает draw.
48
+ */
49
+ markDraw(now?: number): void;
50
+ /**
51
+ * Выполняет внутреннюю операцию snapshot.
52
+ */
53
+ snapshot(now?: number): NovaMetricsSnapshot;
54
+ private tickRaf;
55
+ }