@endge/nova 0.13.6 → 0.13.14

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 +87 -0
  98. package/dist/model/runtime/state/NovaStore.d.ts +27 -0
  99. package/dist/model/runtime/state/nova-store-decorators.d.ts +40 -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 +14616 -14189
  119. package/package.json +29 -23
@@ -0,0 +1,288 @@
1
+ import { NovaMotionOptions, NovaMotionPlayback, NovaMotionTarget } from '../../domain/types/motion.types';
2
+ import { NovaMotionEngine } from './NovaMotionEngine';
3
+ /**
4
+ * Описывает тип NovaMotionPresetCategory.
5
+ */
6
+ export type NovaMotionPresetCategory = 'Fade' | 'Slide' | 'Scale' | 'Rotate' | 'Attention' | 'Gesture' | 'Visual';
7
+ /**
8
+ * Описывает тип NovaMotionPatternCategory.
9
+ */
10
+ export type NovaMotionPatternCategory = 'Stagger' | 'Timeline' | 'Sequence' | 'Repeat';
11
+ /**
12
+ * Описывает контракт NovaMotionPresetMeta.
13
+ */
14
+ export interface NovaMotionPresetMeta {
15
+ title: string;
16
+ category: NovaMotionPresetCategory;
17
+ description: string;
18
+ duration: number;
19
+ }
20
+ /**
21
+ * Описывает контракт NovaMotionPatternMeta.
22
+ */
23
+ export interface NovaMotionPatternMeta {
24
+ title: string;
25
+ category: NovaMotionPatternCategory;
26
+ description: string;
27
+ duration: number;
28
+ }
29
+ /**
30
+ * Описывает контракт NovaMotionPresetOptions.
31
+ */
32
+ export interface NovaMotionPresetOptions extends NovaMotionOptions {
33
+ distance?: number;
34
+ fill?: string;
35
+ stroke?: string;
36
+ strokeWidth?: number;
37
+ }
38
+ /**
39
+ * Описывает контракт NovaMotionPatternOptions.
40
+ */
41
+ export interface NovaMotionPatternOptions extends NovaMotionOptions {
42
+ each?: number;
43
+ distance?: number;
44
+ columns?: number;
45
+ fill?: string;
46
+ }
47
+ /**
48
+ * Хранит значение NOVA_MOTION_PRESETS, используемое runtime-кодом пакета.
49
+ */
50
+ export declare const NOVA_MOTION_PRESETS: {
51
+ readonly fadeIn: {
52
+ readonly title: "Fade In";
53
+ readonly category: "Fade";
54
+ readonly description: "Плавно проявляет элемент через opacity.";
55
+ readonly duration: 220;
56
+ };
57
+ readonly fadeOut: {
58
+ readonly title: "Fade Out";
59
+ readonly category: "Fade";
60
+ readonly description: "Плавно скрывает элемент через opacity.";
61
+ readonly duration: 220;
62
+ };
63
+ readonly fadeUp: {
64
+ readonly title: "Fade Up";
65
+ readonly category: "Fade";
66
+ readonly description: "Проявляет элемент со смещением вверх.";
67
+ readonly duration: 280;
68
+ };
69
+ readonly fadeDown: {
70
+ readonly title: "Fade Down";
71
+ readonly category: "Fade";
72
+ readonly description: "Проявляет элемент со смещением вниз.";
73
+ readonly duration: 280;
74
+ };
75
+ readonly fadeLeft: {
76
+ readonly title: "Fade Left";
77
+ readonly category: "Fade";
78
+ readonly description: "Проявляет элемент со смещением влево.";
79
+ readonly duration: 280;
80
+ };
81
+ readonly fadeRight: {
82
+ readonly title: "Fade Right";
83
+ readonly category: "Fade";
84
+ readonly description: "Проявляет элемент со смещением вправо.";
85
+ readonly duration: 280;
86
+ };
87
+ readonly slideInLeft: {
88
+ readonly title: "Slide In Left";
89
+ readonly category: "Slide";
90
+ readonly description: "Вводит элемент слева без изменения layout.";
91
+ readonly duration: 320;
92
+ };
93
+ readonly slideInRight: {
94
+ readonly title: "Slide In Right";
95
+ readonly category: "Slide";
96
+ readonly description: "Вводит элемент справа без изменения layout.";
97
+ readonly duration: 320;
98
+ };
99
+ readonly slideInUp: {
100
+ readonly title: "Slide In Up";
101
+ readonly category: "Slide";
102
+ readonly description: "Вводит элемент снизу вверх.";
103
+ readonly duration: 320;
104
+ };
105
+ readonly slideInDown: {
106
+ readonly title: "Slide In Down";
107
+ readonly category: "Slide";
108
+ readonly description: "Вводит элемент сверху вниз.";
109
+ readonly duration: 320;
110
+ };
111
+ readonly scaleIn: {
112
+ readonly title: "Scale In";
113
+ readonly category: "Scale";
114
+ readonly description: "Увеличивает элемент до базового размера.";
115
+ readonly duration: 260;
116
+ };
117
+ readonly scaleOut: {
118
+ readonly title: "Scale Out";
119
+ readonly category: "Scale";
120
+ readonly description: "Уменьшает элемент и скрывает его.";
121
+ readonly duration: 240;
122
+ };
123
+ readonly zoomIn: {
124
+ readonly title: "Zoom In";
125
+ readonly category: "Scale";
126
+ readonly description: "Быстро приближает элемент с проявлением.";
127
+ readonly duration: 280;
128
+ };
129
+ readonly zoomOut: {
130
+ readonly title: "Zoom Out";
131
+ readonly category: "Scale";
132
+ readonly description: "Отдаляет элемент и скрывает его.";
133
+ readonly duration: 240;
134
+ };
135
+ readonly rotateIn: {
136
+ readonly title: "Rotate In";
137
+ readonly category: "Rotate";
138
+ readonly description: "Проявляет элемент через небольшой поворот.";
139
+ readonly duration: 320;
140
+ };
141
+ readonly spin: {
142
+ readonly title: "Spin";
143
+ readonly category: "Rotate";
144
+ readonly description: "Поворачивает элемент на полный оборот.";
145
+ readonly duration: 640;
146
+ };
147
+ readonly pulse: {
148
+ readonly title: "Pulse";
149
+ readonly category: "Attention";
150
+ readonly description: "Дает мягкий импульс масштаба.";
151
+ readonly duration: 420;
152
+ };
153
+ readonly heartbeat: {
154
+ readonly title: "Heartbeat";
155
+ readonly category: "Attention";
156
+ readonly description: "Дает два коротких импульса масштаба.";
157
+ readonly duration: 560;
158
+ };
159
+ readonly bounce: {
160
+ readonly title: "Bounce";
161
+ readonly category: "Attention";
162
+ readonly description: "Подбрасывает элемент по оси y.";
163
+ readonly duration: 620;
164
+ };
165
+ readonly shakeX: {
166
+ readonly title: "Shake X";
167
+ readonly category: "Attention";
168
+ readonly description: "Качает элемент по горизонтали.";
169
+ readonly duration: 520;
170
+ };
171
+ readonly shakeY: {
172
+ readonly title: "Shake Y";
173
+ readonly category: "Attention";
174
+ readonly description: "Качает элемент по вертикали.";
175
+ readonly duration: 520;
176
+ };
177
+ readonly wobble: {
178
+ readonly title: "Wobble";
179
+ readonly category: "Attention";
180
+ readonly description: "Качает элемент смещением и поворотом.";
181
+ readonly duration: 620;
182
+ };
183
+ readonly swing: {
184
+ readonly title: "Swing";
185
+ readonly category: "Attention";
186
+ readonly description: "Раскачивает элемент вокруг базового угла.";
187
+ readonly duration: 620;
188
+ };
189
+ readonly rubberBand: {
190
+ readonly title: "Rubber Band";
191
+ readonly category: "Attention";
192
+ readonly description: "Сжимает и растягивает элемент по двум осям.";
193
+ readonly duration: 620;
194
+ };
195
+ readonly press: {
196
+ readonly title: "Press";
197
+ readonly category: "Gesture";
198
+ readonly description: "Имитирует короткий отклик на нажатие.";
199
+ readonly duration: 180;
200
+ };
201
+ readonly hoverLift: {
202
+ readonly title: "Hover Lift";
203
+ readonly category: "Gesture";
204
+ readonly description: "Слегка приподнимает элемент вверх.";
205
+ readonly duration: 180;
206
+ };
207
+ readonly highlight: {
208
+ readonly title: "Highlight";
209
+ readonly category: "Visual";
210
+ readonly description: "Подсвечивает заливку и возвращает исходный цвет.";
211
+ readonly duration: 520;
212
+ };
213
+ readonly borderPulse: {
214
+ readonly title: "Border Pulse";
215
+ readonly category: "Visual";
216
+ readonly description: "Усиливает обводку и возвращает исходное состояние.";
217
+ readonly duration: 520;
218
+ };
219
+ };
220
+ /**
221
+ * Хранит значение NOVA_MOTION_PATTERNS, используемое runtime-кодом пакета.
222
+ */
223
+ export declare const NOVA_MOTION_PATTERNS: {
224
+ readonly staggerFade: {
225
+ readonly title: "Stagger Fade";
226
+ readonly category: "Stagger";
227
+ readonly description: "Проявляет группу с задержкой по индексу.";
228
+ readonly duration: 520;
229
+ };
230
+ readonly staggerRise: {
231
+ readonly title: "Stagger Rise";
232
+ readonly category: "Stagger";
233
+ readonly description: "Поднимает группу с задержкой по индексу.";
234
+ readonly duration: 560;
235
+ };
236
+ readonly staggerScale: {
237
+ readonly title: "Stagger Scale";
238
+ readonly category: "Stagger";
239
+ readonly description: "Увеличивает группу с задержкой по индексу.";
240
+ readonly duration: 520;
241
+ };
242
+ readonly timelineWave: {
243
+ readonly title: "Timeline Wave";
244
+ readonly category: "Timeline";
245
+ readonly description: "Запускает волну масштаба по группе targets.";
246
+ readonly duration: 720;
247
+ };
248
+ readonly cascade: {
249
+ readonly title: "Cascade";
250
+ readonly category: "Timeline";
251
+ readonly description: "Вводит элементы каскадом слева направо.";
252
+ readonly duration: 640;
253
+ };
254
+ readonly sequenceChain: {
255
+ readonly title: "Sequence Chain";
256
+ readonly category: "Sequence";
257
+ readonly description: "Последовательно проявляет элементы через sequence.";
258
+ readonly duration: 720;
259
+ };
260
+ readonly repeatYoyo: {
261
+ readonly title: "Repeat Yoyo";
262
+ readonly category: "Repeat";
263
+ readonly description: "Повторяет движение вперед и назад.";
264
+ readonly duration: 620;
265
+ };
266
+ readonly gridWave: {
267
+ readonly title: "Grid Wave";
268
+ readonly category: "Stagger";
269
+ readonly description: "Запускает волну по сетке с учетом строки и колонки.";
270
+ readonly duration: 760;
271
+ };
272
+ };
273
+ /**
274
+ * Описывает тип NovaMotionPresetName.
275
+ */
276
+ export type NovaMotionPresetName = keyof typeof NOVA_MOTION_PRESETS;
277
+ /**
278
+ * Описывает тип NovaMotionPatternName.
279
+ */
280
+ export type NovaMotionPatternName = keyof typeof NOVA_MOTION_PATTERNS;
281
+ /**
282
+ * Выполняет публичную операцию run nova motion preset.
283
+ */
284
+ export declare function runNovaMotionPreset(engine: NovaMotionEngine, target: NovaMotionTarget, name: NovaMotionPresetName, options?: NovaMotionPresetOptions): NovaMotionPlayback;
285
+ /**
286
+ * Выполняет публичную операцию run nova motion pattern.
287
+ */
288
+ export declare function runNovaMotionPattern(engine: NovaMotionEngine, targets: Array<NovaMotionTarget>, name: NovaMotionPatternName, options?: NovaMotionPatternOptions): NovaMotionPlayback;
@@ -0,0 +1,5 @@
1
+ import { NovaMotionPlayback, NovaMotionSegment, NovaMotionTimelineOptions, NovaMotionValue } from '../../domain/types/motion.types';
2
+ /**
3
+ * Компилирует nova motion timeline.
4
+ */
5
+ export declare function compileNovaMotionTimeline(playback: NovaMotionPlayback, options: NovaMotionTimelineOptions, readValue: (target: NovaMotionSegment['target'], key: string) => NovaMotionValue): Array<NovaMotionSegment>;
@@ -0,0 +1,112 @@
1
+ import { NovaCanvasCreateOptions, NovaSizeOptions } from '../../domain/types/base.types';
2
+ import { NovaExportImageOptions, NovaExportImageResult } from '../../domain/types/export.types';
3
+ import { RendererType } from '../../domain/types/renderer.types';
4
+ /**
5
+ * Оборачивает HTMLCanvasElement и управляет context, DPR и ownership.
6
+ */
7
+ export declare class NovaCanvas {
8
+ private readonly _element;
9
+ private readonly _ownership;
10
+ private _ctx2D?;
11
+ private _cachedRect?;
12
+ private _dpr;
13
+ private _maxDpr;
14
+ private _webglAttributes?;
15
+ private _handlersInited;
16
+ private _destroyed;
17
+ private _glId?;
18
+ private _isContextLost;
19
+ private _onContextLostCallback?;
20
+ private _onContextRestoredCallback?;
21
+ /**
22
+ * Создает instance и подготавливает внутреннее состояние.
23
+ */
24
+ private constructor();
25
+ /**
26
+ * Возвращает element.
27
+ */
28
+ get element(): HTMLCanvasElement;
29
+ /**
30
+ * Возвращает width.
31
+ */
32
+ get width(): number;
33
+ /**
34
+ * Возвращает height.
35
+ */
36
+ get height(): number;
37
+ /**
38
+ * Возвращает pixel width.
39
+ */
40
+ get pixelWidth(): number;
41
+ /**
42
+ * Возвращает pixel height.
43
+ */
44
+ get pixelHeight(): number;
45
+ /**
46
+ * Возвращает dpr.
47
+ */
48
+ get dpr(): number;
49
+ /**
50
+ * Возвращает max dpr.
51
+ */
52
+ get maxDpr(): number;
53
+ /**
54
+ * Возвращает webgl attributes.
55
+ */
56
+ get webglAttributes(): WebGLContextAttributes | undefined;
57
+ /**
58
+ * Возвращает bounding client rect.
59
+ */
60
+ getBoundingClientRect(): DOMRectReadOnly;
61
+ /**
62
+ * Выполняет внутреннюю операцию invalidate.
63
+ */
64
+ invalidate(): void;
65
+ /**
66
+ * Выполняет внутреннюю операцию resize.
67
+ */
68
+ resize(width: number, height: number, options?: Partial<NovaSizeOptions>): void;
69
+ /**
70
+ * Возвращает context2 d.
71
+ */
72
+ getContext2D(): CanvasRenderingContext2D;
73
+ /**
74
+ * Освобождает runtime resources и снимает связанные ссылки.
75
+ */
76
+ destroy(): void;
77
+ /**
78
+ * Обрабатывает событие context lost.
79
+ */
80
+ onContextLost(callback: () => void): void;
81
+ /**
82
+ * Обрабатывает событие context restored.
83
+ */
84
+ onContextRestored(callback: () => void): void;
85
+ /**
86
+ * Проверяет context lost.
87
+ */
88
+ isContextLost(): boolean;
89
+ /**
90
+ * Экспортирует текущий canvas frame без изменения layout/render state.
91
+ */
92
+ exportImage(options?: NovaExportImageOptions): Promise<NovaExportImageResult>;
93
+ /**
94
+ * Выполняет внутреннюю операцию create.
95
+ */
96
+ static create(width: number, height: number, contextType: RendererType, options?: NovaCanvasCreateOptions): NovaCanvas;
97
+ /**
98
+ * Выполняет внутреннюю операцию attach.
99
+ */
100
+ static attach(canvas: HTMLCanvasElement, options?: NovaCanvasCreateOptions): NovaCanvas;
101
+ /**
102
+ * Вычисляет dpr.
103
+ */
104
+ private _resolveDpr;
105
+ private _createExportCanvas;
106
+ /**
107
+ * Выполняет внутреннюю операцию init context loss handlers.
108
+ */
109
+ private _initContextLossHandlers;
110
+ private _handleContextLost;
111
+ private _handleContextRestored;
112
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Содержит вспомогательные drawing helpers для Canvas2D primitives.
3
+ */
4
+ export declare class NovaGraphics {
5
+ private static _assetsMap;
6
+ /**
7
+ * Получение канваса с графическим активом по имени.
8
+ */
9
+ static getAsset(name: string): HTMLCanvasElement | undefined;
10
+ /**
11
+ * Возвращает DPR (device pixel ratio).
12
+ */
13
+ static dpr(): number;
14
+ /**
15
+ * Утемняет цвет (hex) на указанный коэффициент.
16
+ */
17
+ static darkenColor(hex: string, factor: number): string;
18
+ /**
19
+ * Создает паттерн с диагональными линиями.
20
+ */
21
+ static createStripePattern(name: string, params: {
22
+ stripeColor: string;
23
+ bgColor: string;
24
+ stripeWidth: number;
25
+ angle?: number;
26
+ sizeK?: number;
27
+ }): HTMLCanvasElement | null;
28
+ /**
29
+ * Создает icon.
30
+ */
31
+ static createIcon(name: string, svgContent: string, fillColor?: string, w?: number, h?: number): Promise<HTMLCanvasElement>;
32
+ }
@@ -0,0 +1,29 @@
1
+ import { NovaRenderTarget } from '../../../../domain/types/rendering/index';
2
+ import { NovaRenderTargetResource } from '../../targets/nova-render-target-resource';
3
+ import { CreateNovaRenderTargetOptions, NovaRenderTargetManager } from '../../targets/NovaRenderTargetManager';
4
+ /**
5
+ * Выделяет Canvas2D resources для offscreen render targets.
6
+ */
7
+ export declare class NovaCanvas2DTargetManager extends NovaRenderTargetManager {
8
+ private readonly _resources;
9
+ /**
10
+ * Создает или обновляет logical target и соответствующий Canvas2D backing resource.
11
+ */
12
+ ensure(options: CreateNovaRenderTargetOptions): NovaRenderTarget;
13
+ /**
14
+ * Возвращает physical resource по target id.
15
+ */
16
+ resource(id: string): NovaRenderTargetResource | undefined;
17
+ /**
18
+ * Удаляет logical target и его backing resource.
19
+ */
20
+ delete(id: string): boolean;
21
+ /**
22
+ * Очищает все targets и resources.
23
+ */
24
+ clear(): void;
25
+ /**
26
+ * Создает Canvas2D resource.
27
+ */
28
+ private _createResource;
29
+ }