@tableslayer/ui 0.0.1

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 (388) hide show
  1. package/LICENSE.md +105 -0
  2. package/README.md +45 -0
  3. package/dist/components/Avatar/Avatar.svelte +82 -0
  4. package/dist/components/Avatar/Avatar.svelte.d.ts +4 -0
  5. package/dist/components/Avatar/AvatarFileInput.svelte +85 -0
  6. package/dist/components/Avatar/AvatarFileInput.svelte.d.ts +4 -0
  7. package/dist/components/Avatar/AvatarPopover.svelte +34 -0
  8. package/dist/components/Avatar/AvatarPopover.svelte.d.ts +4 -0
  9. package/dist/components/Avatar/index.d.ts +4 -0
  10. package/dist/components/Avatar/index.js +4 -0
  11. package/dist/components/Avatar/types.d.ts +21 -0
  12. package/dist/components/Avatar/types.js +1 -0
  13. package/dist/components/BrushSizeSlider/BrushSizeSlider.svelte +174 -0
  14. package/dist/components/BrushSizeSlider/BrushSizeSlider.svelte.d.ts +11 -0
  15. package/dist/components/BrushSizeSlider/index.d.ts +1 -0
  16. package/dist/components/BrushSizeSlider/index.js +1 -0
  17. package/dist/components/Button/Button.svelte +182 -0
  18. package/dist/components/Button/Button.svelte.d.ts +26 -0
  19. package/dist/components/Button/ConfirmActionButton.svelte +98 -0
  20. package/dist/components/Button/ConfirmActionButton.svelte.d.ts +4 -0
  21. package/dist/components/Button/IconButton.svelte +121 -0
  22. package/dist/components/Button/IconButton.svelte.d.ts +4 -0
  23. package/dist/components/Button/RadioButton.svelte +93 -0
  24. package/dist/components/Button/RadioButton.svelte.d.ts +15 -0
  25. package/dist/components/Button/index.d.ts +5 -0
  26. package/dist/components/Button/index.js +5 -0
  27. package/dist/components/Button/types.d.ts +55 -0
  28. package/dist/components/Button/types.js +1 -0
  29. package/dist/components/CardFan/CardFan.svelte +165 -0
  30. package/dist/components/CardFan/CardFan.svelte.d.ts +4 -0
  31. package/dist/components/CardFan/index.d.ts +2 -0
  32. package/dist/components/CardFan/index.js +2 -0
  33. package/dist/components/CardFan/types.d.ts +5 -0
  34. package/dist/components/CardFan/types.js +1 -0
  35. package/dist/components/CodeBlock/Code.svelte +7 -0
  36. package/dist/components/CodeBlock/Code.svelte.d.ts +4 -0
  37. package/dist/components/CodeBlock/CodeBlock.svelte +102 -0
  38. package/dist/components/CodeBlock/CodeBlock.svelte.d.ts +4 -0
  39. package/dist/components/CodeBlock/index.d.ts +3 -0
  40. package/dist/components/CodeBlock/index.js +3 -0
  41. package/dist/components/CodeBlock/types.d.ts +9 -0
  42. package/dist/components/CodeBlock/types.js +1 -0
  43. package/dist/components/ColorMode/ColorMode.svelte +8 -0
  44. package/dist/components/ColorMode/ColorMode.svelte.d.ts +4 -0
  45. package/dist/components/ColorMode/index.d.ts +2 -0
  46. package/dist/components/ColorMode/index.js +1 -0
  47. package/dist/components/ColorMode/types.d.ts +10 -0
  48. package/dist/components/ColorMode/types.js +1 -0
  49. package/dist/components/ColorPicker/ColorPicker.svelte +838 -0
  50. package/dist/components/ColorPicker/ColorPicker.svelte.d.ts +4 -0
  51. package/dist/components/ColorPicker/ColorPickerSwatch.svelte +32 -0
  52. package/dist/components/ColorPicker/ColorPickerSwatch.svelte.d.ts +6 -0
  53. package/dist/components/ColorPicker/index.d.ts +3 -0
  54. package/dist/components/ColorPicker/index.js +3 -0
  55. package/dist/components/ColorPicker/types.d.ts +60 -0
  56. package/dist/components/ColorPicker/types.js +1 -0
  57. package/dist/components/ContextMenu/ContextMenu.svelte +86 -0
  58. package/dist/components/ContextMenu/ContextMenu.svelte.d.ts +4 -0
  59. package/dist/components/ContextMenu/index.d.ts +2 -0
  60. package/dist/components/ContextMenu/index.js +2 -0
  61. package/dist/components/ContextMenu/types.d.ts +13 -0
  62. package/dist/components/ContextMenu/types.js +1 -0
  63. package/dist/components/DrawingSliders/DrawingSliders.svelte +379 -0
  64. package/dist/components/DrawingSliders/DrawingSliders.svelte.d.ts +16 -0
  65. package/dist/components/DrawingSliders/index.d.ts +1 -0
  66. package/dist/components/DrawingSliders/index.js +1 -0
  67. package/dist/components/Editor/Editor.svelte +825 -0
  68. package/dist/components/Editor/Editor.svelte.d.ts +11 -0
  69. package/dist/components/Editor/index.d.ts +1 -0
  70. package/dist/components/Editor/index.js +1 -0
  71. package/dist/components/FogSliders/FogSliders.svelte +33 -0
  72. package/dist/components/FogSliders/FogSliders.svelte.d.ts +7 -0
  73. package/dist/components/FogSliders/index.d.ts +1 -0
  74. package/dist/components/FogSliders/index.js +1 -0
  75. package/dist/components/Hr/Hr.svelte +15 -0
  76. package/dist/components/Hr/Hr.svelte.d.ts +3 -0
  77. package/dist/components/Hr/index.d.ts +1 -0
  78. package/dist/components/Hr/index.js +1 -0
  79. package/dist/components/Icon/Icon.svelte +6 -0
  80. package/dist/components/Icon/Icon.svelte.d.ts +4 -0
  81. package/dist/components/Icon/index.d.ts +2 -0
  82. package/dist/components/Icon/index.js +1 -0
  83. package/dist/components/Icon/types.d.ts +18 -0
  84. package/dist/components/Icon/types.js +1 -0
  85. package/dist/components/Input/DualInputSlider.svelte +126 -0
  86. package/dist/components/Input/DualInputSlider.svelte.d.ts +4 -0
  87. package/dist/components/Input/FileInput.svelte +176 -0
  88. package/dist/components/Input/FileInput.svelte.d.ts +21 -0
  89. package/dist/components/Input/FormControl.svelte +150 -0
  90. package/dist/components/Input/FormControl.svelte.d.ts +41 -0
  91. package/dist/components/Input/FormError.svelte +37 -0
  92. package/dist/components/Input/FormError.svelte.d.ts +13 -0
  93. package/dist/components/Input/Input.svelte +56 -0
  94. package/dist/components/Input/Input.svelte.d.ts +4 -0
  95. package/dist/components/Input/InputCheckbox.svelte +99 -0
  96. package/dist/components/Input/InputCheckbox.svelte.d.ts +4 -0
  97. package/dist/components/Input/InputSlider.svelte +86 -0
  98. package/dist/components/Input/InputSlider.svelte.d.ts +4 -0
  99. package/dist/components/Input/Label.svelte +19 -0
  100. package/dist/components/Input/Label.svelte.d.ts +4 -0
  101. package/dist/components/Input/index.d.ts +9 -0
  102. package/dist/components/Input/index.js +9 -0
  103. package/dist/components/Input/types.d.ts +33 -0
  104. package/dist/components/Input/types.js +1 -0
  105. package/dist/components/Link/Link.svelte +41 -0
  106. package/dist/components/Link/Link.svelte.d.ts +4 -0
  107. package/dist/components/Link/LinkBox.svelte +20 -0
  108. package/dist/components/Link/LinkBox.svelte.d.ts +4 -0
  109. package/dist/components/Link/LinkOverlay.svelte +23 -0
  110. package/dist/components/Link/LinkOverlay.svelte.d.ts +4 -0
  111. package/dist/components/Link/index.d.ts +4 -0
  112. package/dist/components/Link/index.js +4 -0
  113. package/dist/components/Link/types.d.ts +15 -0
  114. package/dist/components/Link/types.js +1 -0
  115. package/dist/components/Loading/Loader.svelte +60 -0
  116. package/dist/components/Loading/Loader.svelte.d.ts +3 -0
  117. package/dist/components/Loading/Skeleton.svelte +9 -0
  118. package/dist/components/Loading/Skeleton.svelte.d.ts +26 -0
  119. package/dist/components/Loading/index.d.ts +2 -0
  120. package/dist/components/Loading/index.js +2 -0
  121. package/dist/components/Logo/Logo.svelte +16 -0
  122. package/dist/components/Logo/Logo.svelte.d.ts +7 -0
  123. package/dist/components/Logo/index.d.ts +1 -0
  124. package/dist/components/Logo/index.js +1 -0
  125. package/dist/components/MarkerTooltip/MarkerTooltip.svelte +435 -0
  126. package/dist/components/MarkerTooltip/MarkerTooltip.svelte.d.ts +35 -0
  127. package/dist/components/MarkerTooltip/index.d.ts +1 -0
  128. package/dist/components/MarkerTooltip/index.js +1 -0
  129. package/dist/components/Menu/SelectorMenu.svelte +280 -0
  130. package/dist/components/Menu/SelectorMenu.svelte.d.ts +4 -0
  131. package/dist/components/Menu/index.d.ts +2 -0
  132. package/dist/components/Menu/index.js +2 -0
  133. package/dist/components/Menu/types.d.ts +20 -0
  134. package/dist/components/Menu/types.js +1 -0
  135. package/dist/components/MyCounterButton.svelte +11 -0
  136. package/dist/components/MyCounterButton.svelte.d.ts +3 -0
  137. package/dist/components/Panel/index.d.ts +2 -0
  138. package/dist/components/Panel/index.js +2 -0
  139. package/dist/components/Panel/panel.svelte +18 -0
  140. package/dist/components/Panel/panel.svelte.d.ts +4 -0
  141. package/dist/components/Panel/types.d.ts +7 -0
  142. package/dist/components/Panel/types.js +1 -0
  143. package/dist/components/PersistButton/PersistButton.svelte +100 -0
  144. package/dist/components/PersistButton/PersistButton.svelte.d.ts +12 -0
  145. package/dist/components/PersistButton/index.d.ts +1 -0
  146. package/dist/components/PersistButton/index.js +1 -0
  147. package/dist/components/Popover/Popover.svelte +81 -0
  148. package/dist/components/Popover/Popover.svelte.d.ts +6 -0
  149. package/dist/components/Popover/index.d.ts +2 -0
  150. package/dist/components/Popover/index.js +2 -0
  151. package/dist/components/Popover/types.d.ts +17 -0
  152. package/dist/components/Popover/types.js +1 -0
  153. package/dist/components/PropsTable/PropsTable.svelte +107 -0
  154. package/dist/components/PropsTable/PropsTable.svelte.d.ts +26 -0
  155. package/dist/components/RadialMenu/EffectPreview.svelte +36 -0
  156. package/dist/components/RadialMenu/EffectPreview.svelte.d.ts +9 -0
  157. package/dist/components/RadialMenu/EffectPreviewScene.svelte +194 -0
  158. package/dist/components/RadialMenu/EffectPreviewScene.svelte.d.ts +8 -0
  159. package/dist/components/RadialMenu/RadialMenu.svelte +503 -0
  160. package/dist/components/RadialMenu/RadialMenu.svelte.d.ts +4 -0
  161. package/dist/components/RadialMenu/RadialMenuItem.svelte +176 -0
  162. package/dist/components/RadialMenu/RadialMenuItem.svelte.d.ts +11 -0
  163. package/dist/components/RadialMenu/index.d.ts +2 -0
  164. package/dist/components/RadialMenu/index.js +2 -0
  165. package/dist/components/RadialMenu/types.d.ts +35 -0
  166. package/dist/components/RadialMenu/types.js +1 -0
  167. package/dist/components/Select/Select.svelte +342 -0
  168. package/dist/components/Select/Select.svelte.d.ts +4 -0
  169. package/dist/components/Select/index.d.ts +2 -0
  170. package/dist/components/Select/index.js +2 -0
  171. package/dist/components/Select/types.d.ts +24 -0
  172. package/dist/components/Select/types.js +1 -0
  173. package/dist/components/Spacer/Spacer.svelte +14 -0
  174. package/dist/components/Spacer/Spacer.svelte.d.ts +4 -0
  175. package/dist/components/Spacer/index.d.ts +2 -0
  176. package/dist/components/Spacer/index.js +2 -0
  177. package/dist/components/Spacer/types.d.ts +4 -0
  178. package/dist/components/Spacer/types.js +1 -0
  179. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +445 -0
  180. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte.d.ts +19 -0
  181. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +167 -0
  182. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte.d.ts +20 -0
  183. package/dist/components/Stage/components/AnnotationLayer/types.d.ts +121 -0
  184. package/dist/components/Stage/components/AnnotationLayer/types.js +71 -0
  185. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte +148 -0
  186. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte.d.ts +7 -0
  187. package/dist/components/Stage/components/CursorLayer/cursor.svg +26 -0
  188. package/dist/components/Stage/components/CursorLayer/index.d.ts +2 -0
  189. package/dist/components/Stage/components/CursorLayer/index.js +1 -0
  190. package/dist/components/Stage/components/CursorLayer/types.d.ts +28 -0
  191. package/dist/components/Stage/components/CursorLayer/types.js +1 -0
  192. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +364 -0
  193. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte.d.ts +24 -0
  194. package/dist/components/Stage/components/DrawingLayer/types.d.ts +56 -0
  195. package/dist/components/Stage/components/DrawingLayer/types.js +23 -0
  196. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +72 -0
  197. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte.d.ts +11 -0
  198. package/dist/components/Stage/components/EdgeOverlayLayer/types.d.ts +29 -0
  199. package/dist/components/Stage/components/EdgeOverlayLayer/types.js +1 -0
  200. package/dist/components/Stage/components/FogLayer/FogLayer.svelte +75 -0
  201. package/dist/components/Stage/components/FogLayer/FogLayer.svelte.d.ts +11 -0
  202. package/dist/components/Stage/components/FogLayer/types.d.ts +42 -0
  203. package/dist/components/Stage/components/FogLayer/types.js +1 -0
  204. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +249 -0
  205. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte.d.ts +19 -0
  206. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +200 -0
  207. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte.d.ts +18 -0
  208. package/dist/components/Stage/components/FogOfWarLayer/types.d.ts +143 -0
  209. package/dist/components/Stage/components/FogOfWarLayer/types.js +1 -0
  210. package/dist/components/Stage/components/GridLayer/GridLayer.svelte +20 -0
  211. package/dist/components/Stage/components/GridLayer/GridLayer.svelte.d.ts +12 -0
  212. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte +69 -0
  213. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte.d.ts +10 -0
  214. package/dist/components/Stage/components/GridLayer/types.d.ts +65 -0
  215. package/dist/components/Stage/components/GridLayer/types.js +10 -0
  216. package/dist/components/Stage/components/LayerInput/LayerInput.svelte +300 -0
  217. package/dist/components/Stage/components/LayerInput/LayerInput.svelte.d.ts +20 -0
  218. package/dist/components/Stage/components/MapLayer/MapLayer.svelte +196 -0
  219. package/dist/components/Stage/components/MapLayer/MapLayer.svelte.d.ts +24 -0
  220. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.d.ts +93 -0
  221. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.js +229 -0
  222. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.d.ts +51 -0
  223. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.js +1 -0
  224. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.d.ts +49 -0
  225. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.js +87 -0
  226. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.d.ts +52 -0
  227. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.js +141 -0
  228. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.d.ts +21 -0
  229. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.js +44 -0
  230. package/dist/components/Stage/components/MapLayer/dataSources/index.d.ts +15 -0
  231. package/dist/components/Stage/components/MapLayer/dataSources/index.js +14 -0
  232. package/dist/components/Stage/components/MapLayer/types.d.ts +54 -0
  233. package/dist/components/Stage/components/MapLayer/types.js +9 -0
  234. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte +398 -0
  235. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte.d.ts +24 -0
  236. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte +262 -0
  237. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte.d.ts +27 -0
  238. package/dist/components/Stage/components/MarkerLayer/types.d.ts +109 -0
  239. package/dist/components/Stage/components/MarkerLayer/types.js +21 -0
  240. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +364 -0
  241. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte.d.ts +49 -0
  242. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +473 -0
  243. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte.d.ts +24 -0
  244. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.d.ts +150 -0
  245. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.js +274 -0
  246. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.d.ts +10 -0
  247. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.js +58 -0
  248. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.d.ts +9 -0
  249. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.js +66 -0
  250. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.d.ts +10 -0
  251. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.js +103 -0
  252. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.d.ts +9 -0
  253. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.js +75 -0
  254. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.d.ts +9 -0
  255. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.js +73 -0
  256. package/dist/components/Stage/components/MeasurementLayer/measurements/index.d.ts +2 -0
  257. package/dist/components/Stage/components/MeasurementLayer/measurements/index.js +7 -0
  258. package/dist/components/Stage/components/MeasurementLayer/types.d.ts +76 -0
  259. package/dist/components/Stage/components/MeasurementLayer/types.js +9 -0
  260. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.d.ts +83 -0
  261. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.js +267 -0
  262. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.d.ts +74 -0
  263. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.js +130 -0
  264. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte +220 -0
  265. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte.d.ts +9 -0
  266. package/dist/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  267. package/dist/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  268. package/dist/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  269. package/dist/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  270. package/dist/components/Stage/components/ParticleSystem/rng.d.ts +7 -0
  271. package/dist/components/Stage/components/ParticleSystem/rng.js +20 -0
  272. package/dist/components/Stage/components/ParticleSystem/types.d.ts +88 -0
  273. package/dist/components/Stage/components/ParticleSystem/types.js +37 -0
  274. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +144 -0
  275. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte.d.ts +19 -0
  276. package/dist/components/Stage/components/PerformanceDebugger/index.d.ts +1 -0
  277. package/dist/components/Stage/components/PerformanceDebugger/index.js +1 -0
  278. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +208 -0
  279. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte.d.ts +7 -0
  280. package/dist/components/Stage/components/PerformanceOverlay/index.d.ts +1 -0
  281. package/dist/components/Stage/components/PerformanceOverlay/index.js +1 -0
  282. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte +201 -0
  283. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte.d.ts +17 -0
  284. package/dist/components/Stage/components/Scene/Scene.svelte +651 -0
  285. package/dist/components/Stage/components/Scene/Scene.svelte.d.ts +88 -0
  286. package/dist/components/Stage/components/Scene/luts.d.ts +7 -0
  287. package/dist/components/Stage/components/Scene/luts.js +33 -0
  288. package/dist/components/Stage/components/Scene/types.d.ts +207 -0
  289. package/dist/components/Stage/components/Scene/types.js +35 -0
  290. package/dist/components/Stage/components/Stage/Stage.svelte +332 -0
  291. package/dist/components/Stage/components/Stage/Stage.svelte.d.ts +86 -0
  292. package/dist/components/Stage/components/Stage/types.d.ts +163 -0
  293. package/dist/components/Stage/components/Stage/types.js +5 -0
  294. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte +135 -0
  295. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte.d.ts +13 -0
  296. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.d.ts +3 -0
  297. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.js +69 -0
  298. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.d.ts +3 -0
  299. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.js +68 -0
  300. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.d.ts +3 -0
  301. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.js +67 -0
  302. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.d.ts +3 -0
  303. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.js +68 -0
  304. package/dist/components/Stage/components/WeatherLayer/presets/index.d.ts +5 -0
  305. package/dist/components/Stage/components/WeatherLayer/presets/index.js +5 -0
  306. package/dist/components/Stage/components/WeatherLayer/types.d.ts +31 -0
  307. package/dist/components/Stage/components/WeatherLayer/types.js +9 -0
  308. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.d.ts +7 -0
  309. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.js +23 -0
  310. package/dist/components/Stage/helpers/debugState.svelte.d.ts +10 -0
  311. package/dist/components/Stage/helpers/debugState.svelte.js +13 -0
  312. package/dist/components/Stage/helpers/grid.d.ts +72 -0
  313. package/dist/components/Stage/helpers/grid.js +444 -0
  314. package/dist/components/Stage/helpers/lazyBrush.d.ts +63 -0
  315. package/dist/components/Stage/helpers/lazyBrush.js +137 -0
  316. package/dist/components/Stage/helpers/performanceMetrics.svelte.d.ts +62 -0
  317. package/dist/components/Stage/helpers/performanceMetrics.svelte.js +165 -0
  318. package/dist/components/Stage/helpers/utils.d.ts +3 -0
  319. package/dist/components/Stage/helpers/utils.js +18 -0
  320. package/dist/components/Stage/index.d.ts +21 -0
  321. package/dist/components/Stage/index.js +21 -0
  322. package/dist/components/Stage/shaders/AnnotationEffects.frag +1070 -0
  323. package/dist/components/Stage/shaders/Annotations.frag +29 -0
  324. package/dist/components/Stage/shaders/Drawing.frag +83 -0
  325. package/dist/components/Stage/shaders/Drawing.vert +5 -0
  326. package/dist/components/Stage/shaders/Fog.frag +147 -0
  327. package/dist/components/Stage/shaders/FractalNoise.frag +96 -0
  328. package/dist/components/Stage/shaders/GridShader.frag +174 -0
  329. package/dist/components/Stage/shaders/Overlay.frag +23 -0
  330. package/dist/components/Stage/shaders/Overlay.vert +0 -0
  331. package/dist/components/Stage/shaders/Particles.frag +27 -0
  332. package/dist/components/Stage/shaders/Particles.vert +51 -0
  333. package/dist/components/Stage/shaders/ToolOutline.frag +59 -0
  334. package/dist/components/Stage/shaders/default.vert +8 -0
  335. package/dist/components/Stage/types.d.ts +4 -0
  336. package/dist/components/Stage/types.js +1 -0
  337. package/dist/components/Table/Table.svelte +16 -0
  338. package/dist/components/Table/Table.svelte.d.ts +4 -0
  339. package/dist/components/Table/Td.svelte +17 -0
  340. package/dist/components/Table/Td.svelte.d.ts +4 -0
  341. package/dist/components/Table/Th.svelte +18 -0
  342. package/dist/components/Table/Th.svelte.d.ts +4 -0
  343. package/dist/components/Table/index.d.ts +4 -0
  344. package/dist/components/Table/index.js +4 -0
  345. package/dist/components/Table/types.d.ts +11 -0
  346. package/dist/components/Table/types.js +1 -0
  347. package/dist/components/Text/Text.svelte +23 -0
  348. package/dist/components/Text/Text.svelte.d.ts +4 -0
  349. package/dist/components/Text/index.d.ts +2 -0
  350. package/dist/components/Text/index.js +2 -0
  351. package/dist/components/Text/types.d.ts +11 -0
  352. package/dist/components/Text/types.js +1 -0
  353. package/dist/components/Title/Title.svelte +54 -0
  354. package/dist/components/Title/Title.svelte.d.ts +4 -0
  355. package/dist/components/Title/index.d.ts +2 -0
  356. package/dist/components/Title/index.js +2 -0
  357. package/dist/components/Title/types.d.ts +8 -0
  358. package/dist/components/Title/types.js +1 -0
  359. package/dist/components/Toast/Toast.svelte +155 -0
  360. package/dist/components/Toast/Toast.svelte.d.ts +5 -0
  361. package/dist/components/Toast/index.d.ts +3 -0
  362. package/dist/components/Toast/index.js +5 -0
  363. package/dist/components/Toast/toastCookie.d.ts +7 -0
  364. package/dist/components/Toast/toastCookie.js +17 -0
  365. package/dist/components/Toast/types.d.ts +6 -0
  366. package/dist/components/Toast/types.js +1 -0
  367. package/dist/components/ToolTip/ToolTip.svelte +70 -0
  368. package/dist/components/ToolTip/ToolTip.svelte.d.ts +4 -0
  369. package/dist/components/ToolTip/index.d.ts +2 -0
  370. package/dist/components/ToolTip/index.js +2 -0
  371. package/dist/components/ToolTip/types.d.ts +14 -0
  372. package/dist/components/ToolTip/types.js +1 -0
  373. package/dist/components/index.d.ts +32 -0
  374. package/dist/components/index.js +32 -0
  375. package/dist/components/types.d.ts +0 -0
  376. package/dist/components/types.js +1 -0
  377. package/dist/index.d.ts +2 -0
  378. package/dist/index.js +2 -0
  379. package/dist/styles/globals.css +108 -0
  380. package/dist/styles/normalize.css +9 -0
  381. package/dist/styles/reset.css +133 -0
  382. package/dist/styles/utilities.css +179 -0
  383. package/dist/styles/vars.css +1103 -0
  384. package/dist/types/awareness.d.ts +16 -0
  385. package/dist/types/awareness.js +1 -0
  386. package/dist/utils/rle.d.ts +41 -0
  387. package/dist/utils/rle.js +201 -0
  388. package/package.json +110 -0
@@ -0,0 +1,73 @@
1
+ // prettier-ignore
2
+ import * as THREE from 'three';
3
+ import { MeasurementType } from '../types';
4
+ import { drawCircle } from '../utils/canvasDrawing';
5
+ import { BaseMeasurement } from './BaseMeasurement';
6
+ export class RectangleMeasurement extends BaseMeasurement {
7
+ constructor(startPoint, measurementProps, displayProps, gridProps) {
8
+ super(MeasurementType.Square, startPoint, measurementProps, displayProps, gridProps);
9
+ }
10
+ renderShape() {
11
+ // Calculate the distance from center to mouse position
12
+ const distance = this.startPoint.distanceTo(this.endPoint);
13
+ // For a square, use the same distance for both width and height
14
+ // This creates a square where the distance from center to edge equals the distance to the mouse
15
+ const halfSize = distance;
16
+ const squareSize = halfSize * 2;
17
+ // Create canvas for the square
18
+ const canvas = document.createElement('canvas');
19
+ const context = canvas.getContext('2d', { colorSpace: 'srgb' });
20
+ // Add padding for outline and corner points
21
+ const padding = Math.max(this.markerSize + this.outlineThickness, 40);
22
+ const canvasSize = squareSize + padding * 2;
23
+ canvas.width = Math.max(canvasSize, 100);
24
+ canvas.height = Math.max(canvasSize, 100);
25
+ // Clear canvas
26
+ context.clearRect(0, 0, canvas.width, canvas.height);
27
+ // Canvas center coordinates
28
+ const canvasCenterX = canvas.width / 2;
29
+ const canvasCenterY = canvas.height / 2;
30
+ // Calculate square position on canvas (centered)
31
+ const rectX = canvasCenterX - halfSize;
32
+ const rectY = canvasCenterY - halfSize;
33
+ // Draw square with dashed pattern
34
+ if (squareSize > 0) {
35
+ // First draw the fill
36
+ context.fillStyle = this.color;
37
+ context.globalAlpha = 0.2;
38
+ context.fillRect(rectX, rectY, squareSize, squareSize);
39
+ context.globalAlpha = 1.0;
40
+ // Draw the outline with dashed pattern if needed
41
+ if (this.outlineThickness > 0) {
42
+ context.strokeStyle = this.outlineColor;
43
+ context.lineWidth = this.thickness + this.outlineThickness * 2;
44
+ context.setLineDash([20, 10]); // Dashed pattern
45
+ context.strokeRect(rectX, rectY, squareSize, squareSize);
46
+ }
47
+ // Draw the main stroke with dashed pattern
48
+ context.strokeStyle = this.color;
49
+ context.lineWidth = this.thickness;
50
+ context.setLineDash([20, 10]); // Dashed pattern
51
+ context.strokeRect(rectX, rectY, squareSize, squareSize);
52
+ // Reset dash pattern for other elements
53
+ context.setLineDash([]);
54
+ }
55
+ // Draw center point (like circle measurement)
56
+ drawCircle(context, canvasCenterX, canvasCenterY, this.markerSize / 2, this.color, this.outlineColor, this.outlineThickness);
57
+ // Draw corner points
58
+ const cornerRadius = this.markerSize / 2;
59
+ // Top-left corner
60
+ drawCircle(context, rectX, rectY, cornerRadius, this.color, this.outlineColor, this.outlineThickness);
61
+ // Top-right corner
62
+ drawCircle(context, rectX + squareSize, rectY, cornerRadius, this.color, this.outlineColor, this.outlineThickness);
63
+ // Bottom-right corner
64
+ drawCircle(context, rectX + squareSize, rectY + squareSize, cornerRadius, this.color, this.outlineColor, this.outlineThickness);
65
+ // Bottom-left corner
66
+ drawCircle(context, rectX, rectY + squareSize, cornerRadius, this.color, this.outlineColor, this.outlineThickness);
67
+ const texture = new THREE.CanvasTexture(canvas);
68
+ texture.needsUpdate = true;
69
+ this.updateShapeMesh(new THREE.PlaneGeometry(canvas.width, canvas.height), texture);
70
+ // Position the square at the center point (startPoint), like circle measurement
71
+ this.shapeMesh.position.set(this.startPoint.x, this.startPoint.y, 0);
72
+ }
73
+ }
@@ -0,0 +1,2 @@
1
+ export { BaseMeasurement, type IMeasurement } from './BaseMeasurement';
2
+ export { LineMeasurement } from './LineMeasurement';
@@ -0,0 +1,7 @@
1
+ export { BaseMeasurement } from './BaseMeasurement';
2
+ export { LineMeasurement } from './LineMeasurement';
3
+ // TODO: Add other measurement types as they are implemented
4
+ // export { CircleMeasurement } from './CircleMeasurement';
5
+ // export { BeamMeasurement } from './BeamMeasurement';
6
+ // export { ConeMeasurement } from './ConeMeasurement';
7
+ // export { SquareMeasurement } from './SquareMeasurement';
@@ -0,0 +1,76 @@
1
+ import * as THREE from 'three';
2
+ export declare enum MeasurementType {
3
+ Line = 1,
4
+ Beam = 2,
5
+ Cone = 3,
6
+ Circle = 4,
7
+ Square = 5
8
+ }
9
+ export interface Measurement {
10
+ id: string;
11
+ type: MeasurementType;
12
+ startPoint: THREE.Vector2;
13
+ endPoint: THREE.Vector2;
14
+ distance: number;
15
+ unit: string;
16
+ createdAt: number;
17
+ }
18
+ export interface MeasurementLayerProps {
19
+ /**
20
+ * The type of measurement to display
21
+ */
22
+ type: MeasurementType;
23
+ /**
24
+ * Whether to snap to grid
25
+ */
26
+ snapToGrid: boolean;
27
+ /**
28
+ * Enable DMG 252 diagonal movement rules (only applies when snapping to square grid)
29
+ * First diagonal = 5ft, second = 10ft, alternating
30
+ */
31
+ enableDMG252: boolean;
32
+ /**
33
+ * Auto-hide delay in milliseconds (default 3000ms)
34
+ */
35
+ autoHideDelay: number;
36
+ /**
37
+ * Color of the measurement line
38
+ */
39
+ color: string;
40
+ /**
41
+ * Thickness of the measurement line
42
+ */
43
+ thickness: number;
44
+ /**
45
+ * Diameter of the measurement markers/points
46
+ */
47
+ markerSize: number;
48
+ /**
49
+ * Opacity of the measurement
50
+ */
51
+ opacity: number;
52
+ /**
53
+ * Whether to show distance text
54
+ */
55
+ showDistance: boolean;
56
+ /**
57
+ * Thickness of the text outline
58
+ */
59
+ outlineThickness: number;
60
+ /**
61
+ * Color of the text outline
62
+ */
63
+ outlineColor: string;
64
+ /**
65
+ * Width of beam measurements in world grid units
66
+ */
67
+ beamWidth: number;
68
+ /**
69
+ * Angle of cone measurements in degrees
70
+ */
71
+ coneAngle: number;
72
+ /**
73
+ * Fadeout animation duration in milliseconds (default 500ms)
74
+ */
75
+ fadeoutTime: number;
76
+ }
@@ -0,0 +1,9 @@
1
+ import * as THREE from 'three';
2
+ export var MeasurementType;
3
+ (function (MeasurementType) {
4
+ MeasurementType[MeasurementType["Line"] = 1] = "Line";
5
+ MeasurementType[MeasurementType["Beam"] = 2] = "Beam";
6
+ MeasurementType[MeasurementType["Cone"] = 3] = "Cone";
7
+ MeasurementType[MeasurementType["Circle"] = 4] = "Circle";
8
+ MeasurementType[MeasurementType["Square"] = 5] = "Square";
9
+ })(MeasurementType || (MeasurementType = {}));
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Utility functions for drawing shapes on canvas
3
+ */
4
+ /**
5
+ * Draws a line, optionally with an outline
6
+ * @param context Canvas 2D context
7
+ * @param startX Start X coordinate
8
+ * @param startY Start Y coordinate
9
+ * @param endX End X coordinate
10
+ * @param endY End Y coordinate
11
+ * @param color Line color
12
+ * @param thickness Line thickness
13
+ * @param outlineColor Optional outline color
14
+ * @param outlineThickness Optional outline thickness
15
+ */
16
+ export declare function drawLine(context: CanvasRenderingContext2D, startX: number, startY: number, endX: number, endY: number, color: string, thickness: number, outlineColor?: string, outlineThickness?: number): void;
17
+ /**
18
+ * Draws a circle, optionally with an outline
19
+ * @param context Canvas 2D context
20
+ * @param x Center X coordinate
21
+ * @param y Center Y coordinate
22
+ * @param radius Circle radius
23
+ * @param color Circle color
24
+ * @param outlineColor Optional outline color
25
+ * @param outlineThickness Optional outline thickness
26
+ */
27
+ export declare function drawCircle(context: CanvasRenderingContext2D, x: number, y: number, radius: number, color: string, outlineColor?: string, outlineThickness?: number): void;
28
+ /**
29
+ * Draws a large circle with stroke and optional fill
30
+ * @param context Canvas 2D context
31
+ * @param x Center X coordinate
32
+ * @param y Center Y coordinate
33
+ * @param radius Circle radius
34
+ * @param strokeColor Stroke color
35
+ * @param strokeThickness Stroke thickness
36
+ * @param fillColor Optional fill color
37
+ * @param fillOpacity Optional fill opacity (0-1)
38
+ * @param outlineColor Optional outline color
39
+ * @param outlineThickness Optional outline thickness
40
+ */
41
+ export declare function drawLargeCircle(context: CanvasRenderingContext2D, x: number, y: number, radius: number, strokeColor: string, strokeThickness: number, fillColor?: string, fillOpacity?: number, outlineColor?: string, outlineThickness?: number): void;
42
+ /**
43
+ * Draws a rectangle with stroke and optional fill
44
+ * @param context Canvas 2D context
45
+ * @param x Top-left X coordinate
46
+ * @param y Top-left Y coordinate
47
+ * @param width Rectangle width
48
+ * @param height Rectangle height
49
+ * @param strokeColor Stroke color
50
+ * @param strokeThickness Stroke thickness
51
+ * @param fillColor Optional fill color
52
+ * @param fillOpacity Optional fill opacity (0-1)
53
+ * @param outlineColor Optional outline color
54
+ * @param outlineThickness Optional outline thickness
55
+ */
56
+ export declare function drawRectangle(context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, strokeColor: string, strokeThickness: number, fillColor?: string, fillOpacity?: number, outlineColor?: string, outlineThickness?: number): void;
57
+ /**
58
+ * Draws a cone/sector with stroke and optional fill
59
+ * @param context Canvas 2D context
60
+ * @param x Center X coordinate
61
+ * @param y Center Y coordinate
62
+ * @param radius Cone radius
63
+ * @param startAngle Start angle in radians
64
+ * @param endAngle End angle in radians
65
+ * @param strokeColor Stroke color
66
+ * @param strokeThickness Stroke thickness
67
+ * @param fillColor Optional fill color
68
+ * @param fillOpacity Optional fill opacity (0-1)
69
+ * @param outlineColor Optional outline color
70
+ * @param outlineThickness Optional outline thickness
71
+ */
72
+ export declare function drawCone(context: CanvasRenderingContext2D, x: number, y: number, radius: number, startAngle: number, endAngle: number, strokeColor: string, strokeThickness: number, fillColor?: string, fillOpacity?: number, outlineColor?: string, outlineThickness?: number): void;
73
+ /**
74
+ * Creates a text canvas with consistent styling
75
+ * @param text The text to display
76
+ * @param fontSize Font size in pixels
77
+ * @param color Text color
78
+ * @param outlineColor Outline color
79
+ * @param outlineThickness Outline thickness
80
+ * @param units Optional units text to display in smaller font
81
+ * @returns Canvas element with rendered text
82
+ */
83
+ export declare function createTextCanvas(text: string, fontSize: number, color: string, outlineColor?: string, _outlineThickness?: number, units?: string): HTMLCanvasElement;
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Utility functions for drawing shapes on canvas
3
+ */
4
+ /**
5
+ * Draws a line, optionally with an outline
6
+ * @param context Canvas 2D context
7
+ * @param startX Start X coordinate
8
+ * @param startY Start Y coordinate
9
+ * @param endX End X coordinate
10
+ * @param endY End Y coordinate
11
+ * @param color Line color
12
+ * @param thickness Line thickness
13
+ * @param outlineColor Optional outline color
14
+ * @param outlineThickness Optional outline thickness
15
+ */
16
+ export function drawLine(context, startX, startY, endX, endY, color, thickness, outlineColor, outlineThickness) {
17
+ // Draw outline if specified
18
+ if (outlineColor && outlineThickness) {
19
+ context.strokeStyle = outlineColor;
20
+ context.lineWidth = thickness + outlineThickness * 2;
21
+ context.lineCap = 'round';
22
+ context.lineJoin = 'round';
23
+ context.beginPath();
24
+ context.moveTo(startX, startY);
25
+ context.lineTo(endX, endY);
26
+ context.stroke();
27
+ }
28
+ // Draw the line
29
+ context.strokeStyle = color;
30
+ context.lineWidth = thickness;
31
+ context.lineCap = 'round';
32
+ context.lineJoin = 'round';
33
+ context.beginPath();
34
+ context.moveTo(startX, startY);
35
+ context.lineTo(endX, endY);
36
+ context.stroke();
37
+ }
38
+ /**
39
+ * Draws a circle, optionally with an outline
40
+ * @param context Canvas 2D context
41
+ * @param x Center X coordinate
42
+ * @param y Center Y coordinate
43
+ * @param radius Circle radius
44
+ * @param color Circle color
45
+ * @param outlineColor Optional outline color
46
+ * @param outlineThickness Optional outline thickness
47
+ */
48
+ export function drawCircle(context, x, y, radius, color, outlineColor, outlineThickness) {
49
+ // Draw outline if specified
50
+ if (outlineColor && outlineThickness) {
51
+ context.beginPath();
52
+ context.arc(x, y, radius + outlineThickness, 0, Math.PI * 2);
53
+ context.fillStyle = outlineColor;
54
+ context.fill();
55
+ }
56
+ // Draw the circle
57
+ context.beginPath();
58
+ context.arc(x, y, radius, 0, Math.PI * 2);
59
+ context.fillStyle = color;
60
+ context.fill();
61
+ }
62
+ /**
63
+ * Draws a large circle with stroke and optional fill
64
+ * @param context Canvas 2D context
65
+ * @param x Center X coordinate
66
+ * @param y Center Y coordinate
67
+ * @param radius Circle radius
68
+ * @param strokeColor Stroke color
69
+ * @param strokeThickness Stroke thickness
70
+ * @param fillColor Optional fill color
71
+ * @param fillOpacity Optional fill opacity (0-1)
72
+ * @param outlineColor Optional outline color
73
+ * @param outlineThickness Optional outline thickness
74
+ */
75
+ export function drawLargeCircle(context, x, y, radius, strokeColor, strokeThickness, fillColor, fillOpacity, outlineColor, outlineThickness) {
76
+ // Draw fill if specified
77
+ if (fillColor && fillOpacity !== undefined) {
78
+ const originalAlpha = context.globalAlpha;
79
+ context.globalAlpha = fillOpacity;
80
+ context.fillStyle = fillColor;
81
+ context.beginPath();
82
+ context.arc(x, y, radius, 0, 2 * Math.PI);
83
+ context.fill();
84
+ context.globalAlpha = originalAlpha;
85
+ }
86
+ // Draw outline if specified
87
+ if (outlineColor && outlineThickness) {
88
+ context.strokeStyle = outlineColor;
89
+ context.lineWidth = strokeThickness + outlineThickness * 2;
90
+ context.beginPath();
91
+ context.arc(x, y, radius, 0, 2 * Math.PI);
92
+ context.stroke();
93
+ }
94
+ // Draw the main stroke
95
+ context.strokeStyle = strokeColor;
96
+ context.lineWidth = strokeThickness;
97
+ context.beginPath();
98
+ context.arc(x, y, radius, 0, 2 * Math.PI);
99
+ context.stroke();
100
+ }
101
+ /**
102
+ * Draws a rectangle with stroke and optional fill
103
+ * @param context Canvas 2D context
104
+ * @param x Top-left X coordinate
105
+ * @param y Top-left Y coordinate
106
+ * @param width Rectangle width
107
+ * @param height Rectangle height
108
+ * @param strokeColor Stroke color
109
+ * @param strokeThickness Stroke thickness
110
+ * @param fillColor Optional fill color
111
+ * @param fillOpacity Optional fill opacity (0-1)
112
+ * @param outlineColor Optional outline color
113
+ * @param outlineThickness Optional outline thickness
114
+ */
115
+ export function drawRectangle(context, x, y, width, height, strokeColor, strokeThickness, fillColor, fillOpacity, outlineColor, outlineThickness) {
116
+ // Draw fill if specified
117
+ if (fillColor && fillOpacity !== undefined) {
118
+ const originalAlpha = context.globalAlpha;
119
+ context.globalAlpha = fillOpacity;
120
+ context.fillStyle = fillColor;
121
+ context.fillRect(x, y, width, height);
122
+ context.globalAlpha = originalAlpha;
123
+ }
124
+ // Draw outline if specified
125
+ if (outlineColor && outlineThickness) {
126
+ context.strokeStyle = outlineColor;
127
+ context.lineWidth = strokeThickness + outlineThickness * 2;
128
+ context.strokeRect(x, y, width, height);
129
+ }
130
+ // Draw the main stroke
131
+ context.strokeStyle = strokeColor;
132
+ context.lineWidth = strokeThickness;
133
+ context.strokeRect(x, y, width, height);
134
+ }
135
+ /**
136
+ * Draws a cone/sector with stroke and optional fill
137
+ * @param context Canvas 2D context
138
+ * @param x Center X coordinate
139
+ * @param y Center Y coordinate
140
+ * @param radius Cone radius
141
+ * @param startAngle Start angle in radians
142
+ * @param endAngle End angle in radians
143
+ * @param strokeColor Stroke color
144
+ * @param strokeThickness Stroke thickness
145
+ * @param fillColor Optional fill color
146
+ * @param fillOpacity Optional fill opacity (0-1)
147
+ * @param outlineColor Optional outline color
148
+ * @param outlineThickness Optional outline thickness
149
+ */
150
+ export function drawCone(context, x, y, radius, startAngle, endAngle, strokeColor, strokeThickness, fillColor, fillOpacity, outlineColor, outlineThickness) {
151
+ // Invert angles for canvas coordinate system (Y increases downward)
152
+ const invertedStartAngle = -endAngle;
153
+ const invertedEndAngle = -startAngle;
154
+ // Draw fill if specified
155
+ if (fillColor && fillOpacity !== undefined) {
156
+ const originalAlpha = context.globalAlpha;
157
+ context.globalAlpha = fillOpacity;
158
+ context.fillStyle = fillColor;
159
+ context.beginPath();
160
+ context.moveTo(x, y);
161
+ context.arc(x, y, radius, invertedStartAngle, invertedEndAngle);
162
+ context.closePath();
163
+ context.fill();
164
+ context.globalAlpha = originalAlpha;
165
+ }
166
+ // Draw outline if specified
167
+ if (outlineColor && outlineThickness) {
168
+ context.strokeStyle = outlineColor;
169
+ context.lineWidth = strokeThickness + outlineThickness * 2;
170
+ context.beginPath();
171
+ context.moveTo(x, y);
172
+ context.arc(x, y, radius, invertedStartAngle, invertedEndAngle);
173
+ context.closePath();
174
+ context.stroke();
175
+ }
176
+ // Draw the main stroke
177
+ context.strokeStyle = strokeColor;
178
+ context.lineWidth = strokeThickness;
179
+ context.beginPath();
180
+ context.moveTo(x, y);
181
+ context.arc(x, y, radius, invertedStartAngle, invertedEndAngle);
182
+ context.closePath();
183
+ context.stroke();
184
+ }
185
+ /**
186
+ * Creates a text canvas with consistent styling
187
+ * @param text The text to display
188
+ * @param fontSize Font size in pixels
189
+ * @param color Text color
190
+ * @param outlineColor Outline color
191
+ * @param outlineThickness Outline thickness
192
+ * @param units Optional units text to display in smaller font
193
+ * @returns Canvas element with rendered text
194
+ */
195
+ export function createTextCanvas(text, fontSize, color, outlineColor = '#000000',
196
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
197
+ _outlineThickness = 16, units) {
198
+ const canvas = document.createElement('canvas');
199
+ const context = canvas.getContext('2d', { colorSpace: 'srgb' });
200
+ // Set canvas size
201
+ canvas.width = 256;
202
+ canvas.height = 256;
203
+ // Set composite operation to ensure proper alpha blending
204
+ context.globalCompositeOperation = 'source-over';
205
+ // Clear canvas to fully transparent (alpha = 0)
206
+ context.clearRect(0, 0, canvas.width, canvas.height);
207
+ // Set text properties with semi-bold font
208
+ context.font = `600 ${fontSize}px Inter`;
209
+ context.textAlign = 'center';
210
+ context.textBaseline = 'alphabetic';
211
+ if (units) {
212
+ // Split rendering for number and units
213
+ const unitsFontSize = fontSize * 0.5; // 50% of the main font size
214
+ // Measure both parts with the same font we'll use for drawing
215
+ context.font = `600 ${fontSize}px Inter`;
216
+ const numberWidth = context.measureText(text).width;
217
+ context.font = `600 ${unitsFontSize}px Inter`;
218
+ const unitsWidth = context.measureText(' ' + units).width;
219
+ const totalWidth = numberWidth + unitsWidth;
220
+ // Calculate padding for the background box
221
+ const padding = fontSize * 0.3;
222
+ const boxWidth = totalWidth + padding * 2;
223
+ const boxHeight = fontSize + padding;
224
+ const boxX = (canvas.width - boxWidth) / 2;
225
+ const boxY = (canvas.height - boxHeight) / 2;
226
+ // Draw background box
227
+ context.fillStyle = color;
228
+ context.fillRect(boxX, boxY, boxWidth, boxHeight);
229
+ // Calculate starting position to center the combined text
230
+ const startX = (canvas.width - totalWidth) / 2;
231
+ // Center the text vertically - the baseline should be at the vertical center plus some offset
232
+ const baselineY = canvas.height / 2 + fontSize * 0.35;
233
+ // Draw number text
234
+ context.font = `600 ${fontSize}px Inter`;
235
+ context.textAlign = 'left';
236
+ context.textBaseline = 'alphabetic';
237
+ context.fillStyle = outlineColor;
238
+ context.fillText(text, startX, baselineY);
239
+ // Re-measure the actual rendered width to ensure proper spacing
240
+ const actualNumberWidth = context.measureText(text).width;
241
+ // Draw units text in smaller font, aligned to same baseline
242
+ context.font = `600 ${unitsFontSize}px Inter`;
243
+ context.textBaseline = 'alphabetic';
244
+ context.fillText(' ' + units, startX + actualNumberWidth, baselineY);
245
+ }
246
+ else {
247
+ // Original behavior for text without units
248
+ // Measure text for box dimensions
249
+ context.font = `600 ${fontSize}px Inter`;
250
+ const textMetrics = context.measureText(text);
251
+ const padding = fontSize * 0.3;
252
+ const boxWidth = textMetrics.width + padding * 2;
253
+ const boxHeight = fontSize + padding;
254
+ const boxX = (canvas.width - boxWidth) / 2;
255
+ const boxY = (canvas.height - boxHeight) / 2;
256
+ // Draw background box
257
+ context.fillStyle = color;
258
+ context.fillRect(boxX, boxY, boxWidth, boxHeight);
259
+ // Center the text vertically - the baseline should be at the vertical center plus some offset
260
+ const baselineY = canvas.height / 2 + fontSize * 0.35;
261
+ // Draw text on top
262
+ context.textBaseline = 'alphabetic';
263
+ context.fillStyle = outlineColor;
264
+ context.fillText(text, canvas.width / 2, baselineY);
265
+ }
266
+ return canvas;
267
+ }
@@ -0,0 +1,74 @@
1
+ import * as THREE from 'three';
2
+ import { GridType } from '../../GridLayer/types';
3
+ /**
4
+ * Calculate hex grid distance between two points
5
+ * @param startPoint Start point in pixel coordinates
6
+ * @param endPoint End point in pixel coordinates
7
+ * @param gridSpacing Grid spacing in inches
8
+ * @param displaySize Display size in inches
9
+ * @param displayResolution Display resolution in pixels
10
+ * @param worldGridSize The real-world size of one hex
11
+ * @param returnHexCount If true, returns hex count instead of world units
12
+ * @returns Distance in world grid units or hex count
13
+ */
14
+ export declare function calculateHexGridDistance(startPoint: THREE.Vector2, endPoint: THREE.Vector2, gridSpacing: number, displaySize: {
15
+ x: number;
16
+ y: number;
17
+ }, displayResolution: {
18
+ x: number;
19
+ y: number;
20
+ }, worldGridSize?: number, returnHexCount?: boolean): number;
21
+ /**
22
+ * Calculate grid-based distance between two points
23
+ * @param startPoint Start point in pixel coordinates
24
+ * @param endPoint End point in pixel coordinates
25
+ * @param gridSpacing Grid spacing in inches
26
+ * @param displaySize Display size in inches
27
+ * @param displayResolution Display resolution in pixels
28
+ * @param gridType Type of grid (square or hex)
29
+ * @param snapToGrid Whether snapping is enabled
30
+ * @param enableDMG252 Whether to use DMG 252 diagonal rules
31
+ * @param worldGridSize The real-world size of one grid square
32
+ * @param worldGridUnits The units for the world grid size
33
+ * @returns Distance in world grid units
34
+ */
35
+ export declare function calculateLineDistance(startPoint: THREE.Vector2, endPoint: THREE.Vector2, gridSpacing: number, displaySize: {
36
+ x: number;
37
+ y: number;
38
+ }, displayResolution: {
39
+ x: number;
40
+ y: number;
41
+ }, gridType?: GridType, snapToGrid?: boolean, enableDMG252?: boolean, worldGridSize?: number, _worldGridUnits?: string): number;
42
+ /**
43
+ * Calculate D&D diagonal movement distance
44
+ * In D&D, diagonal movement costs 1.5 times normal movement
45
+ * This is implemented as: max(dx, dy) + min(dx, dy) * 0.5
46
+ */
47
+ export declare function calculateDnDDiagonalDistance(startPoint: THREE.Vector2, endPoint: THREE.Vector2): number;
48
+ /**
49
+ * Calculate distance using DMG 252 diagonal movement rules
50
+ * First diagonal = 1 grid unit, second = 2 grid units, alternating
51
+ * Only applies when snapping to square grid
52
+ */
53
+ export declare function calculateDMG252Distance(startPoint: THREE.Vector2, endPoint: THREE.Vector2): number;
54
+ /**
55
+ * Calculate radius from center point to edge point
56
+ */
57
+ export declare function calculateRadius(centerPoint: THREE.Vector2, edgePoint: THREE.Vector2): number;
58
+ /**
59
+ * Calculate area of a circle
60
+ */
61
+ export declare function calculateCircleArea(radius: number): number;
62
+ /**
63
+ * Calculate area of a square
64
+ */
65
+ export declare function calculateSquareArea(sideLength: number): number;
66
+ /**
67
+ * Convert pixels to game units (assuming 1 inch = 1 unit)
68
+ * This is a placeholder - actual conversion depends on grid scale
69
+ */
70
+ export declare function pixelsToUnits(pixels: number, pixelsPerUnit?: number): number;
71
+ /**
72
+ * Convert game units to pixels
73
+ */
74
+ export declare function unitsToPixels(units: number, pixelsPerUnit?: number): number;