@tableslayer/ui 0.1.5 → 0.1.6

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 (183) hide show
  1. package/dist/components/MarkerTooltip/MarkerTooltip.svelte +9 -1
  2. package/dist/components/MarkerTooltip/MarkerTooltip.svelte.d.ts +13 -16
  3. package/dist/components/index.d.ts +0 -5
  4. package/dist/components/index.js +0 -5
  5. package/package.json +1 -8
  6. package/dist/components/DrawingSliders/DrawingSliders.svelte +0 -379
  7. package/dist/components/DrawingSliders/DrawingSliders.svelte.d.ts +0 -16
  8. package/dist/components/DrawingSliders/index.d.ts +0 -1
  9. package/dist/components/DrawingSliders/index.js +0 -1
  10. package/dist/components/MyCounterButton.svelte +0 -11
  11. package/dist/components/MyCounterButton.svelte.d.ts +0 -3
  12. package/dist/components/PropsTable/PropsTable.svelte +0 -107
  13. package/dist/components/PropsTable/PropsTable.svelte.d.ts +0 -26
  14. package/dist/components/RadialMenu/EffectPreview.svelte +0 -36
  15. package/dist/components/RadialMenu/EffectPreview.svelte.d.ts +0 -9
  16. package/dist/components/RadialMenu/EffectPreviewScene.svelte +0 -194
  17. package/dist/components/RadialMenu/EffectPreviewScene.svelte.d.ts +0 -8
  18. package/dist/components/RadialMenu/RadialMenu.svelte +0 -503
  19. package/dist/components/RadialMenu/RadialMenu.svelte.d.ts +0 -4
  20. package/dist/components/RadialMenu/RadialMenuItem.svelte +0 -176
  21. package/dist/components/RadialMenu/RadialMenuItem.svelte.d.ts +0 -11
  22. package/dist/components/RadialMenu/index.d.ts +0 -2
  23. package/dist/components/RadialMenu/index.js +0 -2
  24. package/dist/components/RadialMenu/types.d.ts +0 -35
  25. package/dist/components/RadialMenu/types.js +0 -1
  26. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +0 -445
  27. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte.d.ts +0 -19
  28. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +0 -167
  29. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte.d.ts +0 -20
  30. package/dist/components/Stage/components/AnnotationLayer/types.d.ts +0 -121
  31. package/dist/components/Stage/components/AnnotationLayer/types.js +0 -71
  32. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte +0 -148
  33. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte.d.ts +0 -7
  34. package/dist/components/Stage/components/CursorLayer/cursor.svg +0 -26
  35. package/dist/components/Stage/components/CursorLayer/index.d.ts +0 -2
  36. package/dist/components/Stage/components/CursorLayer/index.js +0 -1
  37. package/dist/components/Stage/components/CursorLayer/types.d.ts +0 -28
  38. package/dist/components/Stage/components/CursorLayer/types.js +0 -1
  39. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +0 -364
  40. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte.d.ts +0 -24
  41. package/dist/components/Stage/components/DrawingLayer/types.d.ts +0 -56
  42. package/dist/components/Stage/components/DrawingLayer/types.js +0 -23
  43. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +0 -72
  44. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte.d.ts +0 -11
  45. package/dist/components/Stage/components/EdgeOverlayLayer/types.d.ts +0 -29
  46. package/dist/components/Stage/components/EdgeOverlayLayer/types.js +0 -1
  47. package/dist/components/Stage/components/FogLayer/FogLayer.svelte +0 -75
  48. package/dist/components/Stage/components/FogLayer/FogLayer.svelte.d.ts +0 -11
  49. package/dist/components/Stage/components/FogLayer/types.d.ts +0 -42
  50. package/dist/components/Stage/components/FogLayer/types.js +0 -1
  51. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +0 -249
  52. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte.d.ts +0 -19
  53. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +0 -200
  54. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte.d.ts +0 -18
  55. package/dist/components/Stage/components/FogOfWarLayer/types.d.ts +0 -143
  56. package/dist/components/Stage/components/FogOfWarLayer/types.js +0 -1
  57. package/dist/components/Stage/components/GridLayer/GridLayer.svelte +0 -20
  58. package/dist/components/Stage/components/GridLayer/GridLayer.svelte.d.ts +0 -12
  59. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte +0 -69
  60. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte.d.ts +0 -10
  61. package/dist/components/Stage/components/GridLayer/types.d.ts +0 -65
  62. package/dist/components/Stage/components/GridLayer/types.js +0 -10
  63. package/dist/components/Stage/components/LayerInput/LayerInput.svelte +0 -300
  64. package/dist/components/Stage/components/LayerInput/LayerInput.svelte.d.ts +0 -20
  65. package/dist/components/Stage/components/MapLayer/MapLayer.svelte +0 -196
  66. package/dist/components/Stage/components/MapLayer/MapLayer.svelte.d.ts +0 -24
  67. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.d.ts +0 -93
  68. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.js +0 -229
  69. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.d.ts +0 -51
  70. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.js +0 -1
  71. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.d.ts +0 -49
  72. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.js +0 -87
  73. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.d.ts +0 -52
  74. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.js +0 -141
  75. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.d.ts +0 -21
  76. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.js +0 -44
  77. package/dist/components/Stage/components/MapLayer/dataSources/index.d.ts +0 -15
  78. package/dist/components/Stage/components/MapLayer/dataSources/index.js +0 -14
  79. package/dist/components/Stage/components/MapLayer/types.d.ts +0 -54
  80. package/dist/components/Stage/components/MapLayer/types.js +0 -9
  81. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte +0 -398
  82. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte.d.ts +0 -24
  83. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte +0 -262
  84. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte.d.ts +0 -27
  85. package/dist/components/Stage/components/MarkerLayer/types.d.ts +0 -109
  86. package/dist/components/Stage/components/MarkerLayer/types.js +0 -21
  87. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +0 -364
  88. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte.d.ts +0 -49
  89. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +0 -473
  90. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte.d.ts +0 -24
  91. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.d.ts +0 -150
  92. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.js +0 -274
  93. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.d.ts +0 -10
  94. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.js +0 -58
  95. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.d.ts +0 -9
  96. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.js +0 -66
  97. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.d.ts +0 -10
  98. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.js +0 -103
  99. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.d.ts +0 -9
  100. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.js +0 -75
  101. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.d.ts +0 -9
  102. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.js +0 -73
  103. package/dist/components/Stage/components/MeasurementLayer/measurements/index.d.ts +0 -2
  104. package/dist/components/Stage/components/MeasurementLayer/measurements/index.js +0 -7
  105. package/dist/components/Stage/components/MeasurementLayer/types.d.ts +0 -76
  106. package/dist/components/Stage/components/MeasurementLayer/types.js +0 -9
  107. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.d.ts +0 -83
  108. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.js +0 -267
  109. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.d.ts +0 -74
  110. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.js +0 -130
  111. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte +0 -220
  112. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte.d.ts +0 -9
  113. package/dist/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  114. package/dist/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  115. package/dist/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  116. package/dist/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  117. package/dist/components/Stage/components/ParticleSystem/rng.d.ts +0 -7
  118. package/dist/components/Stage/components/ParticleSystem/rng.js +0 -20
  119. package/dist/components/Stage/components/ParticleSystem/types.d.ts +0 -88
  120. package/dist/components/Stage/components/ParticleSystem/types.js +0 -37
  121. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +0 -144
  122. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte.d.ts +0 -19
  123. package/dist/components/Stage/components/PerformanceDebugger/index.d.ts +0 -1
  124. package/dist/components/Stage/components/PerformanceDebugger/index.js +0 -1
  125. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +0 -208
  126. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte.d.ts +0 -7
  127. package/dist/components/Stage/components/PerformanceOverlay/index.d.ts +0 -1
  128. package/dist/components/Stage/components/PerformanceOverlay/index.js +0 -1
  129. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte +0 -201
  130. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte.d.ts +0 -17
  131. package/dist/components/Stage/components/Scene/Scene.svelte +0 -651
  132. package/dist/components/Stage/components/Scene/Scene.svelte.d.ts +0 -88
  133. package/dist/components/Stage/components/Scene/luts.d.ts +0 -7
  134. package/dist/components/Stage/components/Scene/luts.js +0 -33
  135. package/dist/components/Stage/components/Scene/types.d.ts +0 -207
  136. package/dist/components/Stage/components/Scene/types.js +0 -35
  137. package/dist/components/Stage/components/Stage/Stage.svelte +0 -332
  138. package/dist/components/Stage/components/Stage/Stage.svelte.d.ts +0 -86
  139. package/dist/components/Stage/components/Stage/types.d.ts +0 -163
  140. package/dist/components/Stage/components/Stage/types.js +0 -5
  141. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte +0 -135
  142. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte.d.ts +0 -13
  143. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.d.ts +0 -3
  144. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.js +0 -69
  145. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.d.ts +0 -3
  146. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.js +0 -68
  147. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.d.ts +0 -3
  148. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.js +0 -67
  149. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.d.ts +0 -3
  150. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.js +0 -68
  151. package/dist/components/Stage/components/WeatherLayer/presets/index.d.ts +0 -5
  152. package/dist/components/Stage/components/WeatherLayer/presets/index.js +0 -5
  153. package/dist/components/Stage/components/WeatherLayer/types.d.ts +0 -31
  154. package/dist/components/Stage/components/WeatherLayer/types.js +0 -9
  155. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.d.ts +0 -7
  156. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.js +0 -23
  157. package/dist/components/Stage/helpers/debugState.svelte.d.ts +0 -10
  158. package/dist/components/Stage/helpers/debugState.svelte.js +0 -13
  159. package/dist/components/Stage/helpers/grid.d.ts +0 -72
  160. package/dist/components/Stage/helpers/grid.js +0 -444
  161. package/dist/components/Stage/helpers/lazyBrush.d.ts +0 -63
  162. package/dist/components/Stage/helpers/lazyBrush.js +0 -137
  163. package/dist/components/Stage/helpers/performanceMetrics.svelte.d.ts +0 -62
  164. package/dist/components/Stage/helpers/performanceMetrics.svelte.js +0 -165
  165. package/dist/components/Stage/helpers/utils.d.ts +0 -3
  166. package/dist/components/Stage/helpers/utils.js +0 -18
  167. package/dist/components/Stage/index.d.ts +0 -21
  168. package/dist/components/Stage/index.js +0 -21
  169. package/dist/components/Stage/shaders/AnnotationEffects.frag +0 -1070
  170. package/dist/components/Stage/shaders/Annotations.frag +0 -29
  171. package/dist/components/Stage/shaders/Drawing.frag +0 -83
  172. package/dist/components/Stage/shaders/Drawing.vert +0 -5
  173. package/dist/components/Stage/shaders/Fog.frag +0 -147
  174. package/dist/components/Stage/shaders/FractalNoise.frag +0 -96
  175. package/dist/components/Stage/shaders/GridShader.frag +0 -174
  176. package/dist/components/Stage/shaders/Overlay.frag +0 -23
  177. package/dist/components/Stage/shaders/Overlay.vert +0 -0
  178. package/dist/components/Stage/shaders/Particles.frag +0 -27
  179. package/dist/components/Stage/shaders/Particles.vert +0 -51
  180. package/dist/components/Stage/shaders/ToolOutline.frag +0 -59
  181. package/dist/components/Stage/shaders/default.vert +0 -8
  182. package/dist/components/Stage/types.d.ts +0 -4
  183. package/dist/components/Stage/types.js +0 -1
@@ -1 +0,0 @@
1
- export { default as PerformanceDebugger } from './PerformanceDebugger.svelte';
@@ -1 +0,0 @@
1
- export { default as PerformanceDebugger } from './PerformanceDebugger.svelte';
@@ -1,208 +0,0 @@
1
- <script lang="ts">
2
- import {
3
- performanceMetrics,
4
- getAverageFps,
5
- get1PercentLowFps,
6
- getFrameTimes
7
- } from '../../helpers/performanceMetrics.svelte';
8
-
9
- interface Props {
10
- visible?: boolean;
11
- disabledLayers?: string[];
12
- }
13
-
14
- const { visible = true, disabledLayers = [] }: Props = $props();
15
-
16
- const metrics = $derived(performanceMetrics.value);
17
- const frameTimes = $derived(getFrameTimes());
18
- const avgFps = $derived(getAverageFps());
19
- const lowFps = $derived(get1PercentLowFps());
20
-
21
- // Graph dimensions
22
- const GRAPH_WIDTH = 200;
23
- const GRAPH_HEIGHT = 60;
24
- const MAX_FRAME_TIME = 50; // Cap at 50ms (20fps) for graph scale
25
-
26
- // Generate SVG path for frame time graph
27
- const graphPath = $derived(() => {
28
- if (frameTimes.length < 2) return '';
29
-
30
- const points = frameTimes.map((ft, i) => {
31
- const x = (i / (frameTimes.length - 1)) * GRAPH_WIDTH;
32
- const y = GRAPH_HEIGHT - Math.min(ft / MAX_FRAME_TIME, 1) * GRAPH_HEIGHT;
33
- return `${x},${y}`;
34
- });
35
-
36
- return `M${points.join(' L')}`;
37
- });
38
-
39
- // Color based on FPS
40
- const fpsColor = $derived(() => {
41
- const fps = metrics.fps;
42
- if (fps >= 55) return 'var(--fgSuccess)';
43
- if (fps >= 30) return 'var(--fgWarning)';
44
- return 'var(--fgDanger)';
45
- });
46
- </script>
47
-
48
- {#if visible}
49
- <div class="perfOverlay">
50
- <div class="perfOverlay__header">Performance</div>
51
-
52
- <div class="perfOverlay__section">
53
- <div class="perfOverlay__row">
54
- <span class="perfOverlay__label">FPS</span>
55
- <span class="perfOverlay__value" style="color: {fpsColor()}">{metrics.fps.toFixed(0)}</span>
56
- </div>
57
- <div class="perfOverlay__row">
58
- <span class="perfOverlay__label">Avg</span>
59
- <span class="perfOverlay__value">{avgFps.toFixed(0)}</span>
60
- </div>
61
- <div class="perfOverlay__row">
62
- <span class="perfOverlay__label">1% Low</span>
63
- <span class="perfOverlay__value">{lowFps.toFixed(0)}</span>
64
- </div>
65
- </div>
66
-
67
- <div class="perfOverlay__graph">
68
- <svg width={GRAPH_WIDTH} height={GRAPH_HEIGHT} class="perfOverlay__svg">
69
- <!-- 60fps line (16.67ms) -->
70
- <line
71
- x1="0"
72
- y1={GRAPH_HEIGHT - (16.67 / MAX_FRAME_TIME) * GRAPH_HEIGHT}
73
- x2={GRAPH_WIDTH}
74
- y2={GRAPH_HEIGHT - (16.67 / MAX_FRAME_TIME) * GRAPH_HEIGHT}
75
- stroke="var(--fgSuccess)"
76
- stroke-opacity="0.3"
77
- stroke-width="1"
78
- stroke-dasharray="4,4"
79
- />
80
- <!-- 30fps line (33.33ms) -->
81
- <line
82
- x1="0"
83
- y1={GRAPH_HEIGHT - (33.33 / MAX_FRAME_TIME) * GRAPH_HEIGHT}
84
- x2={GRAPH_WIDTH}
85
- y2={GRAPH_HEIGHT - (33.33 / MAX_FRAME_TIME) * GRAPH_HEIGHT}
86
- stroke="var(--fgWarning)"
87
- stroke-opacity="0.3"
88
- stroke-width="1"
89
- stroke-dasharray="4,4"
90
- />
91
- <!-- Frame time path -->
92
- <path d={graphPath()} fill="none" stroke="var(--fgPrimary)" stroke-width="1.5" />
93
- </svg>
94
- </div>
95
-
96
- <div class="perfOverlay__section">
97
- <div class="perfOverlay__row">
98
- <span class="perfOverlay__label">Frame</span>
99
- <span class="perfOverlay__value">{metrics.frameTime.toFixed(2)}ms</span>
100
- </div>
101
- <div class="perfOverlay__row">
102
- <span class="perfOverlay__label">Composer</span>
103
- <span class="perfOverlay__value">{metrics.composerTime.toFixed(2)}ms</span>
104
- </div>
105
- <div class="perfOverlay__row">
106
- <span class="perfOverlay__label">Overlay</span>
107
- <span class="perfOverlay__value">{metrics.overlayTime.toFixed(2)}ms</span>
108
- </div>
109
- </div>
110
-
111
- <div class="perfOverlay__section">
112
- <div class="perfOverlay__row">
113
- <span class="perfOverlay__label">Draw calls</span>
114
- <span class="perfOverlay__value">{metrics.drawCalls}</span>
115
- </div>
116
- <div class="perfOverlay__row">
117
- <span class="perfOverlay__label">Triangles</span>
118
- <span class="perfOverlay__value">{metrics.triangles}</span>
119
- </div>
120
- <div class="perfOverlay__row">
121
- <span class="perfOverlay__label">Textures</span>
122
- <span class="perfOverlay__value">{metrics.textures}</span>
123
- </div>
124
- <div class="perfOverlay__row">
125
- <span class="perfOverlay__label">Geometries</span>
126
- <span class="perfOverlay__value">{metrics.geometries}</span>
127
- </div>
128
- </div>
129
-
130
- {#if disabledLayers.length > 0}
131
- <div class="perfOverlay__section">
132
- <div class="perfOverlay__sublabel">Disabled layers</div>
133
- {#each disabledLayers as layer}
134
- <div class="perfOverlay__disabledLayer">{layer}</div>
135
- {/each}
136
- </div>
137
- {/if}
138
- </div>
139
- {/if}
140
-
141
- <style>
142
- .perfOverlay {
143
- position: absolute;
144
- top: 0.5rem;
145
- left: 0.5rem;
146
- background: rgba(0, 0, 0, 0.85);
147
- color: var(--fg);
148
- font-family: var(--font-mono);
149
- font-size: 0.75rem;
150
- padding: 0.5rem;
151
- border-radius: var(--radius-2);
152
- z-index: 1000;
153
- pointer-events: none;
154
- min-width: 14rem;
155
- }
156
-
157
- .perfOverlay__header {
158
- font-weight: var(--font-weight-7);
159
- margin-bottom: 0.5rem;
160
- padding-bottom: 0.25rem;
161
- border-bottom: 1px solid var(--fgMuted);
162
- }
163
-
164
- .perfOverlay__section {
165
- margin-bottom: 0.5rem;
166
- }
167
-
168
- .perfOverlay__section:last-child {
169
- margin-bottom: 0;
170
- }
171
-
172
- .perfOverlay__row {
173
- display: flex;
174
- justify-content: space-between;
175
- line-height: var(--font-lineheight-2);
176
- }
177
-
178
- .perfOverlay__label {
179
- color: var(--fgMuted);
180
- }
181
-
182
- .perfOverlay__value {
183
- font-weight: var(--font-weight-5);
184
- }
185
-
186
- .perfOverlay__sublabel {
187
- color: var(--fgMuted);
188
- font-size: 0.625rem;
189
- margin-bottom: 0.125rem;
190
- }
191
-
192
- .perfOverlay__disabledLayer {
193
- color: var(--fgWarning);
194
- font-size: 0.625rem;
195
- padding-left: 0.5rem;
196
- }
197
-
198
- .perfOverlay__graph {
199
- margin: 0.5rem 0;
200
- background: rgba(255, 255, 255, 0.05);
201
- border-radius: var(--radius-1);
202
- overflow: hidden;
203
- }
204
-
205
- .perfOverlay__svg {
206
- display: block;
207
- }
208
- </style>
@@ -1,7 +0,0 @@
1
- interface Props {
2
- visible?: boolean;
3
- disabledLayers?: string[];
4
- }
5
- declare const PerformanceOverlay: import("svelte").Component<Props, {}, "">;
6
- type PerformanceOverlay = ReturnType<typeof PerformanceOverlay>;
7
- export default PerformanceOverlay;
@@ -1 +0,0 @@
1
- export { default as PerformanceOverlay } from './PerformanceOverlay.svelte';
@@ -1 +0,0 @@
1
- export { default as PerformanceOverlay } from './PerformanceOverlay.svelte';
@@ -1,201 +0,0 @@
1
- <script lang="ts">
2
- import type { StageProps } from '../Stage/types';
3
-
4
- interface Props {
5
- minZoom: number;
6
- maxZoom: number;
7
- zoomSensitivity: number;
8
- stageElement: HTMLDivElement;
9
- stageProps: StageProps;
10
- onMapPan: (dx: number, dy: number) => void;
11
- onMapRotate: (angle: number) => void;
12
- onMapZoom: (zoom: number) => void;
13
- onScenePan: (dx: number, dy: number) => void;
14
- onSceneRotate: (angle: number) => void;
15
- onSceneZoom: (zoom: number) => void;
16
- }
17
-
18
- // Props
19
- let {
20
- minZoom,
21
- maxZoom,
22
- zoomSensitivity,
23
- stageElement,
24
- stageProps,
25
- onMapPan,
26
- onMapRotate,
27
- onMapZoom,
28
- onScenePan,
29
- onSceneRotate,
30
- onSceneZoom
31
- }: Props = $props();
32
-
33
- // State for pointer tracking
34
- let pointerCache: PointerEvent[] = $state([]);
35
- let prevDiff = $state(-1);
36
- let prevAngle = $state(0);
37
- let isDragging = $state(false);
38
- let lastPointerCount = $state(0);
39
- let prevCentroid = $state<{ x: number; y: number } | null>(null);
40
-
41
- $effect(() => {
42
- if (!stageElement) return;
43
-
44
- stageElement.addEventListener('pointerdown', onPointerDown as EventListener);
45
- stageElement.addEventListener('pointermove', onPointerMove as EventListener);
46
- stageElement.addEventListener('pointerup', onPointerUp as EventListener);
47
- stageElement.addEventListener('pointercancel', onPointerUp as EventListener);
48
- stageElement.addEventListener('pointerout', onPointerUp as EventListener);
49
- stageElement.addEventListener('pointerleave', onPointerUp as EventListener);
50
-
51
- // Cleanup when stageElement changes or component unmounts
52
- return () => {
53
- stageElement.removeEventListener('pointerdown', onPointerDown as EventListener);
54
- stageElement.removeEventListener('pointermove', onPointerMove as EventListener);
55
- stageElement.removeEventListener('pointerup', onPointerUp as EventListener);
56
- stageElement.removeEventListener('pointercancel', onPointerUp as EventListener);
57
- stageElement.removeEventListener('pointerout', onPointerUp as EventListener);
58
- stageElement.removeEventListener('pointerleave', onPointerUp as EventListener);
59
- };
60
- });
61
-
62
- // Event handlers
63
- function onPointerDown(e: PointerEvent) {
64
- pointerCache.push(e);
65
- isDragging = true;
66
- }
67
-
68
- // Helper functions for pointer calculations
69
- function calculateRotatedMovement(e: PointerEvent, rotation: number) {
70
- const radians = (Math.PI / 180) * rotation;
71
- return {
72
- dx: e.movementX * Math.cos(radians) + e.movementY * Math.sin(radians),
73
- dy: -1 * (-e.movementX * Math.sin(radians) + e.movementY * Math.cos(radians))
74
- };
75
- }
76
-
77
- function calculatePinchAndRotation(pointers: PointerEvent[]) {
78
- const [p1, p2] = pointers;
79
- const curDiff = Math.hypot(p1.clientX - p2.clientX, p1.clientY - p2.clientY);
80
- const zoomDelta = -(curDiff - prevDiff) * zoomSensitivity;
81
-
82
- const curAngle = Math.atan2(p2.clientY - p1.clientY, p2.clientX - p1.clientX);
83
- let angleDelta = curAngle - prevAngle;
84
-
85
- // Normalize angle delta to handle wrapping around ±π boundary
86
- if (angleDelta > Math.PI) {
87
- angleDelta -= 2 * Math.PI;
88
- } else if (angleDelta < -Math.PI) {
89
- angleDelta += 2 * Math.PI;
90
- }
91
-
92
- return { curDiff, zoomDelta, curAngle, angleDelta };
93
- }
94
-
95
- function calculateCentroidMovement(pointers: PointerEvent[], rotation: number) {
96
- const [p1, p2] = pointers;
97
- const curCentroid = {
98
- x: (p1.clientX + p2.clientX) / 2,
99
- y: (p1.clientY + p2.clientY) / 2
100
- };
101
-
102
- if (!prevCentroid) {
103
- return { dx: 0, dy: 0, curCentroid };
104
- }
105
-
106
- const rawDx = curCentroid.x - prevCentroid.x;
107
- const rawDy = curCentroid.y - prevCentroid.y;
108
-
109
- // Apply rotation transformation
110
- const radians = (Math.PI / 180) * rotation;
111
- const dx = rawDx * Math.cos(radians) + rawDy * Math.sin(radians);
112
- const dy = -1 * (-rawDx * Math.sin(radians) + rawDy * Math.cos(radians));
113
-
114
- return { dx, dy, curCentroid };
115
- }
116
-
117
- function handleSinglePointer(e: PointerEvent) {
118
- const { dx, dy } = calculateRotatedMovement(e, stageProps.scene.rotation);
119
-
120
- if (e.shiftKey) {
121
- const movementFactor = 1 / stageProps.scene.zoom;
122
- onMapPan(dx * movementFactor, dy * movementFactor);
123
- } else if (e.ctrlKey) {
124
- onScenePan(dx, dy);
125
- }
126
- }
127
-
128
- function handleMultiPointer(pointers: PointerEvent[], isMapControl: boolean) {
129
- const { curDiff, zoomDelta, curAngle, angleDelta } = calculatePinchAndRotation(pointers);
130
-
131
- // Use centroid-based movement (center of the two pointers)
132
- const { dx, dy, curCentroid } = calculateCentroidMovement(pointers, stageProps.scene.rotation);
133
- prevCentroid = curCentroid;
134
-
135
- if (prevDiff > 0) {
136
- if (isMapControl) {
137
- onMapPan(dx, dy);
138
- onMapZoom(Math.max(minZoom, Math.min(stageProps.map.zoom - zoomDelta, maxZoom)));
139
- onMapRotate(stageProps.map.rotation - (angleDelta * 180) / Math.PI);
140
- } else {
141
- onScenePan(dx, dy);
142
- onSceneZoom(Math.max(minZoom, Math.min(stageProps.scene.zoom - zoomDelta, maxZoom)));
143
- onSceneRotate(stageProps.scene.rotation + (angleDelta * 180) / Math.PI);
144
- }
145
- }
146
-
147
- prevDiff = curDiff;
148
- prevAngle = curAngle;
149
- }
150
-
151
- function onPointerMove(e: PointerEvent) {
152
- if (!isDragging) return;
153
-
154
- // Update pointer cache
155
- const index = pointerCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);
156
- if (index !== -1) {
157
- pointerCache[index] = e;
158
- }
159
-
160
- // Reset multi-touch state when transitioning from single to multi-touch
161
- // This prevents using stale movement data from single-touch phase
162
- if (lastPointerCount !== pointerCache.length) {
163
- if (pointerCache.length >= 2 && lastPointerCount < 2) {
164
- prevDiff = -1;
165
- prevAngle = 0;
166
- prevCentroid = null;
167
- }
168
- lastPointerCount = pointerCache.length;
169
- }
170
-
171
- // Handle different pointer counts
172
- switch (pointerCache.length) {
173
- case 1:
174
- handleSinglePointer(e);
175
- break;
176
- case 2:
177
- handleMultiPointer(pointerCache, false); // Scene controls
178
- break;
179
- case 3:
180
- handleMultiPointer([pointerCache[0], pointerCache[2]], true); // Map controls
181
- break;
182
- }
183
- }
184
-
185
- function onPointerUp(e: PointerEvent) {
186
- // Remove this pointer from the cache
187
- const index = pointerCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);
188
- if (index !== -1) {
189
- pointerCache.splice(index, 1);
190
- }
191
-
192
- // Reset state if no pointers are down
193
- if (pointerCache.length === 0) {
194
- isDragging = false;
195
- prevDiff = -1;
196
- prevAngle = 0;
197
- lastPointerCount = 0;
198
- prevCentroid = null;
199
- }
200
- }
201
- </script>
@@ -1,17 +0,0 @@
1
- import type { StageProps } from '../Stage/types';
2
- interface Props {
3
- minZoom: number;
4
- maxZoom: number;
5
- zoomSensitivity: number;
6
- stageElement: HTMLDivElement;
7
- stageProps: StageProps;
8
- onMapPan: (dx: number, dy: number) => void;
9
- onMapRotate: (angle: number) => void;
10
- onMapZoom: (zoom: number) => void;
11
- onScenePan: (dx: number, dy: number) => void;
12
- onSceneRotate: (angle: number) => void;
13
- onSceneZoom: (zoom: number) => void;
14
- }
15
- declare const PointerInputManager: import("svelte").Component<Props, {}, "">;
16
- type PointerInputManager = ReturnType<typeof PointerInputManager>;
17
- export default PointerInputManager;