@tableslayer/ui 0.1.4 → 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 (387) 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 +9 -16
  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
  184. package/src/lib/components/Avatar/Avatar.svelte +0 -82
  185. package/src/lib/components/Avatar/AvatarFileInput.svelte +0 -85
  186. package/src/lib/components/Avatar/AvatarPopover.svelte +0 -34
  187. package/src/lib/components/Avatar/index.ts +0 -4
  188. package/src/lib/components/Avatar/types.ts +0 -24
  189. package/src/lib/components/BrushSizeSlider/BrushSizeSlider.svelte +0 -174
  190. package/src/lib/components/BrushSizeSlider/index.ts +0 -1
  191. package/src/lib/components/Button/Button.svelte +0 -182
  192. package/src/lib/components/Button/ConfirmActionButton.svelte +0 -98
  193. package/src/lib/components/Button/IconButton.svelte +0 -121
  194. package/src/lib/components/Button/RadioButton.svelte +0 -93
  195. package/src/lib/components/Button/index.ts +0 -5
  196. package/src/lib/components/Button/types.ts +0 -54
  197. package/src/lib/components/CardFan/CardFan.svelte +0 -165
  198. package/src/lib/components/CardFan/index.ts +0 -2
  199. package/src/lib/components/CardFan/types.ts +0 -6
  200. package/src/lib/components/CodeBlock/Code.svelte +0 -7
  201. package/src/lib/components/CodeBlock/CodeBlock.svelte +0 -102
  202. package/src/lib/components/CodeBlock/index.ts +0 -3
  203. package/src/lib/components/CodeBlock/types.ts +0 -10
  204. package/src/lib/components/ColorMode/ColorMode.svelte +0 -8
  205. package/src/lib/components/ColorMode/index.ts +0 -2
  206. package/src/lib/components/ColorMode/types.ts +0 -12
  207. package/src/lib/components/ColorPicker/ColorPicker.svelte +0 -838
  208. package/src/lib/components/ColorPicker/ColorPickerSwatch.svelte +0 -32
  209. package/src/lib/components/ColorPicker/index.ts +0 -3
  210. package/src/lib/components/ColorPicker/types.ts +0 -51
  211. package/src/lib/components/ContextMenu/ContextMenu.svelte +0 -86
  212. package/src/lib/components/ContextMenu/index.ts +0 -2
  213. package/src/lib/components/ContextMenu/types.ts +0 -15
  214. package/src/lib/components/DrawingSliders/DrawingSliders.svelte +0 -379
  215. package/src/lib/components/DrawingSliders/index.ts +0 -1
  216. package/src/lib/components/Editor/Editor.svelte +0 -825
  217. package/src/lib/components/Editor/index.ts +0 -1
  218. package/src/lib/components/FogSliders/FogSliders.svelte +0 -33
  219. package/src/lib/components/FogSliders/index.ts +0 -1
  220. package/src/lib/components/Hr/Hr.svelte +0 -15
  221. package/src/lib/components/Hr/index.ts +0 -1
  222. package/src/lib/components/Icon/Icon.svelte +0 -6
  223. package/src/lib/components/Icon/index.ts +0 -2
  224. package/src/lib/components/Icon/types.ts +0 -20
  225. package/src/lib/components/Input/DualInputSlider.svelte +0 -126
  226. package/src/lib/components/Input/FileInput.svelte +0 -176
  227. package/src/lib/components/Input/FormControl.svelte +0 -150
  228. package/src/lib/components/Input/FormError.svelte +0 -37
  229. package/src/lib/components/Input/Input.svelte +0 -56
  230. package/src/lib/components/Input/InputCheckbox.svelte +0 -99
  231. package/src/lib/components/Input/InputSlider.svelte +0 -86
  232. package/src/lib/components/Input/Label.svelte +0 -19
  233. package/src/lib/components/Input/index.ts +0 -9
  234. package/src/lib/components/Input/types.ts +0 -39
  235. package/src/lib/components/Link/Link.svelte +0 -41
  236. package/src/lib/components/Link/LinkBox.svelte +0 -20
  237. package/src/lib/components/Link/LinkOverlay.svelte +0 -23
  238. package/src/lib/components/Link/index.ts +0 -4
  239. package/src/lib/components/Link/types.ts +0 -17
  240. package/src/lib/components/Loading/Loader.svelte +0 -60
  241. package/src/lib/components/Loading/Skeleton.svelte +0 -9
  242. package/src/lib/components/Loading/index.ts +0 -2
  243. package/src/lib/components/Logo/Logo.svelte +0 -16
  244. package/src/lib/components/Logo/index.ts +0 -1
  245. package/src/lib/components/MarkerTooltip/MarkerTooltip.svelte +0 -435
  246. package/src/lib/components/MarkerTooltip/index.ts +0 -1
  247. package/src/lib/components/Menu/SelectorMenu.svelte +0 -280
  248. package/src/lib/components/Menu/index.ts +0 -2
  249. package/src/lib/components/Menu/types.ts +0 -17
  250. package/src/lib/components/MyCounterButton.svelte +0 -11
  251. package/src/lib/components/Panel/index.ts +0 -2
  252. package/src/lib/components/Panel/panel.svelte +0 -18
  253. package/src/lib/components/Panel/types.ts +0 -8
  254. package/src/lib/components/PersistButton/PersistButton.svelte +0 -100
  255. package/src/lib/components/PersistButton/index.ts +0 -1
  256. package/src/lib/components/Popover/Popover.svelte +0 -81
  257. package/src/lib/components/Popover/index.ts +0 -2
  258. package/src/lib/components/Popover/types.ts +0 -19
  259. package/src/lib/components/PropsTable/PropsTable.svelte +0 -107
  260. package/src/lib/components/RadialMenu/EffectPreview.svelte +0 -36
  261. package/src/lib/components/RadialMenu/EffectPreviewScene.svelte +0 -194
  262. package/src/lib/components/RadialMenu/RadialMenu.svelte +0 -503
  263. package/src/lib/components/RadialMenu/RadialMenuItem.svelte +0 -176
  264. package/src/lib/components/RadialMenu/index.ts +0 -2
  265. package/src/lib/components/RadialMenu/types.ts +0 -35
  266. package/src/lib/components/Select/Select.svelte +0 -342
  267. package/src/lib/components/Select/index.ts +0 -2
  268. package/src/lib/components/Select/types.ts +0 -22
  269. package/src/lib/components/Spacer/Spacer.svelte +0 -14
  270. package/src/lib/components/Spacer/index.ts +0 -2
  271. package/src/lib/components/Spacer/types.ts +0 -5
  272. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +0 -445
  273. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +0 -167
  274. package/src/lib/components/Stage/components/AnnotationLayer/types.ts +0 -196
  275. package/src/lib/components/Stage/components/CursorLayer/CursorLayer.svelte +0 -148
  276. package/src/lib/components/Stage/components/CursorLayer/cursor.svg +0 -26
  277. package/src/lib/components/Stage/components/CursorLayer/index.ts +0 -2
  278. package/src/lib/components/Stage/components/CursorLayer/types.ts +0 -23
  279. package/src/lib/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +0 -364
  280. package/src/lib/components/Stage/components/DrawingLayer/types.ts +0 -65
  281. package/src/lib/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +0 -72
  282. package/src/lib/components/Stage/components/EdgeOverlayLayer/types.ts +0 -34
  283. package/src/lib/components/Stage/components/FogLayer/FogLayer.svelte +0 -75
  284. package/src/lib/components/Stage/components/FogLayer/types.ts +0 -51
  285. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +0 -249
  286. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +0 -200
  287. package/src/lib/components/Stage/components/FogOfWarLayer/types.ts +0 -116
  288. package/src/lib/components/Stage/components/GridLayer/GridLayer.svelte +0 -20
  289. package/src/lib/components/Stage/components/GridLayer/GridMaterial.svelte +0 -69
  290. package/src/lib/components/Stage/components/GridLayer/types.ts +0 -79
  291. package/src/lib/components/Stage/components/LayerInput/LayerInput.svelte +0 -300
  292. package/src/lib/components/Stage/components/MapLayer/MapLayer.svelte +0 -196
  293. package/src/lib/components/Stage/components/MapLayer/dataSources/GifDataSource.ts +0 -265
  294. package/src/lib/components/Stage/components/MapLayer/dataSources/IMapDataSource.ts +0 -55
  295. package/src/lib/components/Stage/components/MapLayer/dataSources/ImageDataSource.ts +0 -87
  296. package/src/lib/components/Stage/components/MapLayer/dataSources/VideoDataSource.ts +0 -150
  297. package/src/lib/components/Stage/components/MapLayer/dataSources/dataSourceFactory.ts +0 -48
  298. package/src/lib/components/Stage/components/MapLayer/dataSources/index.ts +0 -16
  299. package/src/lib/components/Stage/components/MapLayer/types.ts +0 -58
  300. package/src/lib/components/Stage/components/MarkerLayer/MarkerLayer.svelte +0 -398
  301. package/src/lib/components/Stage/components/MarkerLayer/MarkerToken.svelte +0 -262
  302. package/src/lib/components/Stage/components/MarkerLayer/types.ts +0 -126
  303. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +0 -364
  304. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +0 -473
  305. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.ts +0 -427
  306. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.ts +0 -105
  307. package/src/lib/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.ts +0 -98
  308. package/src/lib/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.ts +0 -163
  309. package/src/lib/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.ts +0 -102
  310. package/src/lib/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.ts +0 -120
  311. package/src/lib/components/Stage/components/MeasurementLayer/measurements/index.ts +0 -7
  312. package/src/lib/components/Stage/components/MeasurementLayer/types.ts +0 -94
  313. package/src/lib/components/Stage/components/MeasurementLayer/utils/canvasDrawing.ts +0 -357
  314. package/src/lib/components/Stage/components/MeasurementLayer/utils/distanceCalculations.ts +0 -170
  315. package/src/lib/components/Stage/components/ParticleSystem/ParticleSystem.svelte +0 -220
  316. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  317. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  318. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  319. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  320. package/src/lib/components/Stage/components/ParticleSystem/rng.js +0 -20
  321. package/src/lib/components/Stage/components/ParticleSystem/types.ts +0 -95
  322. package/src/lib/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +0 -144
  323. package/src/lib/components/Stage/components/PerformanceDebugger/index.ts +0 -1
  324. package/src/lib/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +0 -208
  325. package/src/lib/components/Stage/components/PerformanceOverlay/index.ts +0 -1
  326. package/src/lib/components/Stage/components/PointerInputManager/PointerInputManager.svelte +0 -201
  327. package/src/lib/components/Stage/components/Scene/Scene.svelte +0 -651
  328. package/src/lib/components/Stage/components/Scene/luts.ts +0 -24
  329. package/src/lib/components/Stage/components/Scene/types.ts +0 -225
  330. package/src/lib/components/Stage/components/Stage/Stage.svelte +0 -332
  331. package/src/lib/components/Stage/components/Stage/types.ts +0 -136
  332. package/src/lib/components/Stage/components/WeatherLayer/WeatherLayer.svelte +0 -135
  333. package/src/lib/components/Stage/components/WeatherLayer/presets/AshPreset.ts +0 -71
  334. package/src/lib/components/Stage/components/WeatherLayer/presets/LeavesPreset.ts +0 -70
  335. package/src/lib/components/Stage/components/WeatherLayer/presets/RainPreset.ts +0 -68
  336. package/src/lib/components/Stage/components/WeatherLayer/presets/SnowPreset.ts +0 -70
  337. package/src/lib/components/Stage/components/WeatherLayer/presets/index.ts +0 -6
  338. package/src/lib/components/Stage/components/WeatherLayer/types.ts +0 -35
  339. package/src/lib/components/Stage/helpers/clippingPlaneStore.svelte.ts +0 -28
  340. package/src/lib/components/Stage/helpers/debugState.svelte.ts +0 -18
  341. package/src/lib/components/Stage/helpers/grid.ts +0 -548
  342. package/src/lib/components/Stage/helpers/lazyBrush.ts +0 -171
  343. package/src/lib/components/Stage/helpers/performanceMetrics.svelte.ts +0 -220
  344. package/src/lib/components/Stage/helpers/utils.ts +0 -21
  345. package/src/lib/components/Stage/index.ts +0 -49
  346. package/src/lib/components/Stage/shaders/AnnotationEffects.frag +0 -1070
  347. package/src/lib/components/Stage/shaders/Annotations.frag +0 -29
  348. package/src/lib/components/Stage/shaders/Drawing.frag +0 -83
  349. package/src/lib/components/Stage/shaders/Drawing.vert +0 -5
  350. package/src/lib/components/Stage/shaders/Fog.frag +0 -147
  351. package/src/lib/components/Stage/shaders/FractalNoise.frag +0 -96
  352. package/src/lib/components/Stage/shaders/GridShader.frag +0 -174
  353. package/src/lib/components/Stage/shaders/Overlay.frag +0 -23
  354. package/src/lib/components/Stage/shaders/Overlay.vert +0 -0
  355. package/src/lib/components/Stage/shaders/Particles.frag +0 -27
  356. package/src/lib/components/Stage/shaders/Particles.vert +0 -51
  357. package/src/lib/components/Stage/shaders/ToolOutline.frag +0 -59
  358. package/src/lib/components/Stage/shaders/default.vert +0 -8
  359. package/src/lib/components/Stage/types.ts +0 -4
  360. package/src/lib/components/Table/Table.svelte +0 -16
  361. package/src/lib/components/Table/Td.svelte +0 -17
  362. package/src/lib/components/Table/Th.svelte +0 -18
  363. package/src/lib/components/Table/index.ts +0 -4
  364. package/src/lib/components/Table/types.ts +0 -14
  365. package/src/lib/components/Text/Text.svelte +0 -23
  366. package/src/lib/components/Text/index.ts +0 -2
  367. package/src/lib/components/Text/types.ts +0 -12
  368. package/src/lib/components/Title/Title.svelte +0 -54
  369. package/src/lib/components/Title/index.ts +0 -2
  370. package/src/lib/components/Title/types.ts +0 -9
  371. package/src/lib/components/Toast/Toast.svelte +0 -155
  372. package/src/lib/components/Toast/index.ts +0 -5
  373. package/src/lib/components/Toast/toastCookie.ts +0 -24
  374. package/src/lib/components/Toast/types.ts +0 -6
  375. package/src/lib/components/ToolTip/ToolTip.svelte +0 -70
  376. package/src/lib/components/ToolTip/index.ts +0 -2
  377. package/src/lib/components/ToolTip/types.ts +0 -14
  378. package/src/lib/components/index.ts +0 -32
  379. package/src/lib/components/types.ts +0 -0
  380. package/src/lib/index.ts +0 -2
  381. package/src/lib/styles/globals.css +0 -108
  382. package/src/lib/styles/normalize.css +0 -9
  383. package/src/lib/styles/reset.css +0 -133
  384. package/src/lib/styles/utilities.css +0 -179
  385. package/src/lib/styles/vars.css +0 -1103
  386. package/src/lib/types/awareness.ts +0 -17
  387. package/src/lib/utils/rle.ts +0 -217
@@ -1,838 +0,0 @@
1
- <script lang="ts">
2
- import { onMount } from 'svelte';
3
- import { Input, Select } from '../'; // Adjust the import path based on your project structure
4
- import type { ColorState, ColorPickerFormats, ColorPickerProps } from './types';
5
- import chroma from 'chroma-js';
6
-
7
- // Bindable props with correct syntax and typings
8
- let {
9
- hex = $bindable<string>(''),
10
- rgba = $bindable(),
11
- hsva = $bindable(),
12
- hsla = $bindable(),
13
- showInputs = false,
14
- showOpacity = true,
15
- onUpdate = () => {},
16
- id,
17
- ...restProps
18
- }: ColorPickerProps = $props();
19
-
20
- const color = $state<ColorState>({
21
- hue: 0,
22
- saturation: 100,
23
- value: 100,
24
- opacity: 100,
25
- isSelecting: false,
26
- isAdjustingSV: false,
27
- isAdjustingHue: false
28
- });
29
-
30
- let lastValidHue = color.hue;
31
-
32
- let canvasElement: HTMLCanvasElement;
33
- let colorInputFocused = false;
34
- let selectedFormat = $state<ColorPickerFormats>('hex');
35
-
36
- // Input fields for different color modes
37
- let hexInput = $state('');
38
- let rgbInputs = $state({ r: '', g: '', b: '', a: '' });
39
- let hslInputs = $state({ h: '', s: '', l: '', a: '' });
40
- let hsvInputs = $state({ h: '', s: '', v: '', a: '' });
41
-
42
- // Helper Functions using chroma-js
43
- const toHex = (color: ColorState): string => {
44
- const alpha = color.opacity / 100;
45
- const chromaColor = chroma.hsv(color.hue, color.saturation / 100, color.value / 100).alpha(alpha);
46
- if (showOpacity) {
47
- return chromaColor.hex();
48
- } else {
49
- return chromaColor.hex().slice(0, 7); // Return only 6-digit hex without alpha
50
- }
51
- };
52
-
53
- const drawSaturationValueGradient = (): void => {
54
- if (!canvasElement) return;
55
- const ctx = canvasElement.getContext('2d');
56
- if (!ctx) return;
57
- const width = canvasElement.width;
58
- const height = canvasElement.height;
59
-
60
- // Clear the canvas
61
- ctx.clearRect(0, 0, width, height);
62
-
63
- const saturationGradient = ctx.createLinearGradient(0, 0, width, 0);
64
- saturationGradient.addColorStop(0, 'white');
65
- saturationGradient.addColorStop(1, `hsl(${displayHue()}, 100%, 50%)`);
66
- ctx.fillStyle = saturationGradient;
67
- ctx.fillRect(0, 0, width, height);
68
-
69
- const valueGradient = ctx.createLinearGradient(0, 0, 0, height);
70
- valueGradient.addColorStop(0, 'rgba(0,0,0,0)');
71
- valueGradient.addColorStop(1, 'rgba(0,0,0,1)');
72
- ctx.fillStyle = valueGradient;
73
- ctx.fillRect(0, 0, width, height);
74
- };
75
-
76
- let saturationBoxRect: DOMRect;
77
-
78
- const updateSaturationValue = (e: MouseEvent): void => {
79
- if (!saturationBoxRect) return;
80
- const rect = saturationBoxRect;
81
- const x = e.clientX - rect.left;
82
- const y = e.clientY - rect.top;
83
- color.saturation = Math.max(0, Math.min(100, (x / rect.width) * 100));
84
- color.value = Math.max(0, Math.min(100, 100 - (y / rect.height) * 100));
85
- };
86
-
87
- const startSelection = (e: MouseEvent): void => {
88
- e.preventDefault();
89
- saturationBoxRect = canvasElement.getBoundingClientRect();
90
- color.isSelecting = true;
91
- color.isAdjustingSV = true;
92
- updateSaturationValue(e);
93
- };
94
-
95
- const endSelection = (): void => {
96
- color.isSelecting = false;
97
- color.isAdjustingSV = false;
98
- };
99
-
100
- const handleMouseMove = (e: MouseEvent): void => {
101
- if (color.isSelecting) {
102
- updateSaturationValue(e);
103
- }
104
- };
105
-
106
- const handleMouseUp = (): void => {
107
- if (color.isSelecting) {
108
- endSelection();
109
- }
110
- };
111
-
112
- // Touch event handlers
113
- const updateSaturationValueFromTouch = (e: TouchEvent): void => {
114
- if (!saturationBoxRect) return;
115
- const rect = saturationBoxRect;
116
- const touch = e.touches[0] || e.changedTouches[0];
117
- const x = touch.clientX - rect.left;
118
- const y = touch.clientY - rect.top;
119
- color.saturation = Math.max(0, Math.min(100, (x / rect.width) * 100));
120
- color.value = Math.max(0, Math.min(100, 100 - (y / rect.height) * 100));
121
- };
122
-
123
- const startTouchSelection = (e: TouchEvent): void => {
124
- e.preventDefault();
125
- saturationBoxRect = canvasElement.getBoundingClientRect();
126
- color.isSelecting = true;
127
- color.isAdjustingSV = true;
128
- updateSaturationValueFromTouch(e);
129
- };
130
-
131
- const handleTouchMove = (e: TouchEvent): void => {
132
- if (color.isSelecting) {
133
- e.preventDefault();
134
- updateSaturationValueFromTouch(e);
135
- }
136
- };
137
-
138
- const handleTouchEnd = (): void => {
139
- if (color.isSelecting) {
140
- endSelection();
141
- }
142
- };
143
-
144
- const getOpacityGradient = (): string => {
145
- const chromaColor = chroma.hsv(displayHue(), color.saturation / 100, color.value / 100);
146
- const [r, g, b] = chromaColor.rgb();
147
- const rgba0 = `rgba(${r}, ${g}, ${b}, 0)`;
148
- const rgba1 = `rgba(${r}, ${g}, ${b}, 1)`;
149
- return `linear-gradient(to right, ${rgba0}, ${rgba1})`;
150
- };
151
-
152
- // Synchronize internal color state with bindable props
153
- let updatingFromProps = false;
154
-
155
- // Update internal color state when bindable props change
156
- $effect(() => {
157
- if (colorInputFocused || updatingFromProps) return;
158
-
159
- updatingFromProps = true;
160
-
161
- if (!color.isAdjustingSV) {
162
- if (hex && hex.trim()) {
163
- try {
164
- const chromaColor = chroma(hex.trim());
165
- const [h, s, v] = chromaColor.hsv();
166
- const alpha = chromaColor.alpha();
167
- if (!isNaN(h)) {
168
- color.hue = h;
169
- lastValidHue = h;
170
- } else {
171
- color.hue = lastValidHue;
172
- }
173
- color.saturation = s * 100;
174
- color.value = v * 100;
175
- color.opacity = alpha * 100;
176
- } catch (error) {
177
- console.log(error);
178
- // Invalid hex code
179
- }
180
- } else if (rgba) {
181
- const { r, g, b, a } = rgba;
182
- if (typeof r === 'number' && typeof g === 'number' && typeof b === 'number') {
183
- const chromaColor = chroma.rgb(r, g, b).alpha(a);
184
- const [h, s, v] = chromaColor.hsv();
185
- if (!isNaN(h)) {
186
- color.hue = h;
187
- lastValidHue = h;
188
- } else {
189
- color.hue = lastValidHue;
190
- }
191
- color.saturation = s * 100;
192
- color.value = v * 100;
193
- color.opacity = chromaColor.alpha() * 100;
194
- }
195
- } else if (hsva) {
196
- const { h, s, v, a } = hsva;
197
- if (!isNaN(h)) {
198
- color.hue = h;
199
- lastValidHue = h;
200
- } else {
201
- color.hue = lastValidHue;
202
- }
203
- color.saturation = s;
204
- color.value = v;
205
- color.opacity = a * 100;
206
- } else if (hsla) {
207
- const { h, s, l, a } = hsla;
208
- const chromaColor = chroma.hsl(h, s / 100, l / 100).alpha(a);
209
- const [h2, s2, v] = chromaColor.hsv();
210
- if (!isNaN(h2)) {
211
- color.hue = h2;
212
- lastValidHue = h2;
213
- } else {
214
- color.hue = lastValidHue;
215
- }
216
- color.saturation = s2 * 100;
217
- color.value = v * 100;
218
- color.opacity = chromaColor.alpha() * 100;
219
- }
220
- }
221
-
222
- updatingFromProps = false;
223
- });
224
-
225
- // Update bindable props when internal color state changes
226
- let previousColor = { ...color };
227
-
228
- $effect(() => {
229
- if (updatingFromProps) return;
230
-
231
- const hueChanged = color.hue !== previousColor.hue && !isNaN(color.hue);
232
- const satChanged = color.saturation !== previousColor.saturation;
233
- const valChanged = color.value !== previousColor.value;
234
- const opacityChanged = color.opacity !== previousColor.opacity;
235
-
236
- if (hueChanged || satChanged || valChanged || opacityChanged) {
237
- if (!color.isAdjustingSV) {
238
- if (hueChanged) {
239
- lastValidHue = color.hue;
240
- }
241
- } else {
242
- // When adjusting SV, keep the hue constant
243
- color.hue = lastValidHue;
244
- }
245
-
246
- // Compute color representations using chroma-js
247
- const opacity = showOpacity ? color.opacity / 100 : 1;
248
- const chromaColor = chroma.hsv(displayHue(), color.saturation / 100, color.value / 100).alpha(opacity);
249
-
250
- const [r, g, b] = chromaColor.rgb();
251
- let newHex;
252
- if (showOpacity) {
253
- newHex = chromaColor.hex();
254
- } else {
255
- newHex = chromaColor.hex().slice(0, 7); // Return only 6-digit hex without alpha
256
- }
257
- const newRgba = { r, g, b, a: chromaColor.alpha() };
258
- const [hHSL, sHSL, lHSL] = chromaColor.hsl();
259
- const newHsla = { h: hHSL, s: sHSL * 100, l: lHSL * 100, a: chromaColor.alpha() };
260
- const [hHSV, sHSV, vHSV] = chromaColor.hsv();
261
- const newHsva = { h: hHSV, s: sHSV * 100, v: vHSV * 100, a: chromaColor.alpha() };
262
-
263
- // Update bindable props
264
- hex = newHex;
265
- rgba = newRgba;
266
- hsla = newHsla;
267
- hsva = newHsva;
268
-
269
- // Call onUpdate
270
- onUpdate({ hex: newHex, rgba: newRgba, hsva: newHsva, hsla: newHsla });
271
-
272
- previousColor = { ...color };
273
- }
274
- });
275
-
276
- // Function to update color inputs based on selectedFormat and color state
277
- const updateColorInputs = () => {
278
- const chromaColor = chroma.hsv(color.hue, color.saturation / 100, color.value / 100).alpha(color.opacity / 100);
279
-
280
- switch (selectedFormat) {
281
- case 'hex': {
282
- hexInput = toHex(color);
283
- break;
284
- }
285
- case 'rgb': {
286
- const [r, g, b] = chromaColor.rgb();
287
- rgbInputs = {
288
- r: r.toString(),
289
- g: g.toString(),
290
- b: b.toString(),
291
- a: chromaColor.alpha().toFixed(2)
292
- };
293
- break;
294
- }
295
- case 'hsl': {
296
- const [h, s, l] = chromaColor.hsl();
297
- hslInputs = {
298
- h: Math.round(h).toString(),
299
- s: Math.round(s * 100).toString(),
300
- l: Math.round(l * 100).toString(),
301
- a: chromaColor.alpha().toFixed(2)
302
- };
303
- break;
304
- }
305
- case 'hsv': {
306
- const [h, s, v] = chromaColor.hsv();
307
- hsvInputs = {
308
- h: Math.round(h).toString(),
309
- s: Math.round(s * 100).toString(),
310
- v: Math.round(v * 100).toString(),
311
- a: chromaColor.alpha().toFixed(2)
312
- };
313
- break;
314
- }
315
- }
316
- };
317
-
318
- // Function to parse inputs and update color state
319
- const parseColorInputs = () => {
320
- try {
321
- switch (selectedFormat) {
322
- case 'hex': {
323
- const hexValue = hexInput.trim();
324
- // Regular expression for either 6-digit or 8-digit hex
325
- if (/^#?([0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hexValue)) {
326
- const chromaColor = chroma(hexValue);
327
- const [h, s, v] = chromaColor.hsv();
328
- if (!isNaN(h)) {
329
- color.hue = h;
330
- lastValidHue = h;
331
- } else {
332
- color.hue = lastValidHue;
333
- }
334
- color.saturation = s * 100;
335
- color.value = v * 100;
336
- // Only update opacity if we're showing the opacity slider
337
- if (showOpacity) {
338
- color.opacity = chromaColor.alpha() * 100;
339
- } else {
340
- color.opacity = 100; // Always full opacity when showOpacity is false
341
- }
342
- } else {
343
- console.error('Invalid hex code');
344
- }
345
- break;
346
- }
347
- case 'rgb': {
348
- const r = parseInt(rgbInputs.r);
349
- const g = parseInt(rgbInputs.g);
350
- const b = parseInt(rgbInputs.b);
351
- const a = parseFloat(rgbInputs.a);
352
- if (!isNaN(r) && !isNaN(g) && !isNaN(b)) {
353
- const chromaColor = chroma.rgb(r, g, b).alpha(a);
354
- const [h, s, v] = chromaColor.hsv();
355
- if (!isNaN(h)) {
356
- color.hue = h;
357
- lastValidHue = h;
358
- } else {
359
- color.hue = lastValidHue;
360
- }
361
- color.saturation = s * 100;
362
- color.value = v * 100;
363
- if (!isNaN(a)) {
364
- color.opacity = a * 100;
365
- }
366
- }
367
- break;
368
- }
369
- case 'hsl': {
370
- const h = parseFloat(hslInputs.h);
371
- const s = parseFloat(hslInputs.s);
372
- const l = parseFloat(hslInputs.l);
373
- const a = parseFloat(hslInputs.a);
374
- if (!isNaN(h) && !isNaN(s) && !isNaN(l)) {
375
- const chromaColor = chroma.hsl(h, s / 100, l / 100).alpha(a);
376
- const [h2, s2, v] = chromaColor.hsv();
377
- if (!isNaN(h2)) {
378
- color.hue = h2;
379
- lastValidHue = h2;
380
- } else {
381
- color.hue = lastValidHue;
382
- }
383
- color.saturation = s2 * 100;
384
- color.value = v * 100;
385
- if (!isNaN(a)) {
386
- color.opacity = a * 100;
387
- }
388
- }
389
- break;
390
- }
391
- case 'hsv': {
392
- const h = parseFloat(hsvInputs.h);
393
- const s = parseFloat(hsvInputs.s);
394
- const v = parseFloat(hsvInputs.v);
395
- const a = parseFloat(hsvInputs.a);
396
- if (!isNaN(h) && !isNaN(s) && !isNaN(v)) {
397
- if (!isNaN(h)) {
398
- color.hue = h;
399
- lastValidHue = h;
400
- } else {
401
- color.hue = lastValidHue;
402
- }
403
- color.saturation = s;
404
- color.value = v;
405
- if (!isNaN(a)) {
406
- color.opacity = a * 100;
407
- }
408
- }
409
- break;
410
- }
411
- }
412
- } catch (error) {
413
- // Invalid input; reset inputs to current color
414
- console.error(error);
415
- updateColorInputs();
416
- }
417
- };
418
-
419
- // Update inputs when color changes, but not if input is focused
420
- $effect(() => {
421
- if (!colorInputFocused) {
422
- updateColorInputs();
423
- }
424
- drawSaturationValueGradient();
425
- });
426
-
427
- // Handle input changes on blur (when input loses focus)
428
- const handleInputsBlur = (): void => {
429
- colorInputFocused = false;
430
- parseColorInputs();
431
- updateColorInputs();
432
- };
433
-
434
- // Update inputs when format changes
435
- $effect(() => {
436
- updateColorInputs();
437
- });
438
-
439
- // Keyboard event handler for adjusting saturation and value
440
- const handleKeyDown = (e: KeyboardEvent): void => {
441
- const step = 2; // Adjust this step size as needed for fine control
442
-
443
- // Handle the arrow keys for movement
444
- switch (e.key) {
445
- case 'ArrowUp':
446
- color.value = Math.min(100, color.value + step);
447
- e.preventDefault(); // Prevent default scrolling
448
- break;
449
- case 'ArrowDown':
450
- color.value = Math.max(0, color.value - step);
451
- e.preventDefault(); // Prevent default scrolling
452
- break;
453
- case 'ArrowLeft':
454
- color.saturation = Math.max(0, color.saturation - step);
455
- e.preventDefault(); // Prevent default scrolling
456
- break;
457
- case 'ArrowRight':
458
- color.saturation = Math.min(100, color.saturation + step);
459
- e.preventDefault(); // Prevent default scrolling
460
- break;
461
- case 'Tab':
462
- // Allow default behavior for Tab key to prevent focus lock
463
- return;
464
- }
465
- };
466
-
467
- // Function to start focusing and adjusting the saturation/value box
468
- const startSaturationAdjustment = () => {
469
- color.isAdjustingSV = true;
470
- };
471
-
472
- // Function to end focusing and adjusting the saturation/value box
473
- const endSaturationAdjustment = () => {
474
- color.isAdjustingSV = false;
475
- };
476
-
477
- // onMount
478
- onMount(() => {
479
- if (canvasElement) {
480
- drawSaturationValueGradient();
481
- }
482
- // Initialize inputs
483
- updateColorInputs();
484
- });
485
-
486
- const displayHue = () => (isNaN(color.hue) ? lastValidHue : color.hue);
487
-
488
- // @ts-expect-error Can't figure out how to type this to FormatOption
489
- const handleFormatChange = (selected) => {
490
- selectedFormat = selected[0];
491
- updateColorInputs();
492
- };
493
-
494
- const formatOptions = [
495
- { value: 'hex', label: 'HEX' },
496
- { value: 'rgb', label: 'RGB' },
497
- { value: 'hsl', label: 'HSL' },
498
- { value: 'hsv', label: 'HSV' }
499
- ];
500
- </script>
501
-
502
- <svelte:window
503
- onmousemove={handleMouseMove}
504
- onmouseup={handleMouseUp}
505
- ontouchmove={handleTouchMove}
506
- ontouchend={handleTouchEnd}
507
- />
508
-
509
- <div class="colorPicker" {...restProps}>
510
- <!-- Saturation/Value Selector -->
511
- <div class="colorPicker__box">
512
- <canvas
513
- class="colorPicker__canvas"
514
- bind:this={canvasElement}
515
- width="200"
516
- height="200"
517
- tabindex="0"
518
- onmousedown={startSelection}
519
- ontouchstart={startTouchSelection}
520
- onfocus={startSaturationAdjustment}
521
- onblur={endSaturationAdjustment}
522
- onkeydown={handleKeyDown}
523
- {id}
524
- ></canvas>
525
- <!-- Selection Indicator -->
526
- <div
527
- class="colorPicker__boxIndicator"
528
- style="top: {100 - color.value}%; left: {color.saturation}%; background-color: {toHex(color)};"
529
- ></div>
530
- </div>
531
-
532
- <!-- Hue Slider -->
533
- <div class="colorPicker__sliderWrapper colorPicker__sliderWrapper--hue">
534
- <input
535
- type="range"
536
- min="0"
537
- max="360"
538
- step="1"
539
- bind:value={color.hue}
540
- onmousedown={() => (color.isAdjustingHue = true)}
541
- onmouseup={() => (color.isAdjustingHue = false)}
542
- ontouchstart={() => (color.isAdjustingHue = true)}
543
- ontouchend={() => (color.isAdjustingHue = false)}
544
- oninput={() => {
545
- color.isAdjustingHue = true;
546
- lastValidHue = color.hue;
547
- }}
548
- onchange={() => (color.isAdjustingHue = false)}
549
- aria-label="Hue Selector"
550
- style="--thumbBG: hsl({displayHue()}, 100%, 50%)"
551
- class="colorPicker__slider"
552
- />
553
- </div>
554
-
555
- {#if showOpacity}
556
- <div
557
- class="colorPicker__sliderWrapper colorPicker__sliderWrapper--opacity"
558
- style="--opacityGradient: {getOpacityGradient()};"
559
- >
560
- <input
561
- type="range"
562
- min="0"
563
- max="100"
564
- step="1"
565
- bind:value={color.opacity}
566
- aria-label="Opacity Slider"
567
- class="colorPicker__slider"
568
- style="--thumbBG: {toHex(color)};"
569
- />
570
- </div>
571
- {/if}
572
-
573
- {#if showInputs}
574
- <div class="colorPicker__inputs colorPicker__inputs--{selectedFormat}">
575
- <Select selected={[formatOptions[0].value]} options={formatOptions} onSelectedChange={handleFormatChange} />
576
-
577
- <!-- Inputs based on selected format -->
578
- {#if selectedFormat === 'hex'}
579
- <Input
580
- type="text"
581
- bind:value={hexInput}
582
- aria-label="Hex Color Input"
583
- onfocus={() => (colorInputFocused = true)}
584
- onblur={handleInputsBlur}
585
- />
586
- {:else if selectedFormat === 'rgb'}
587
- <Input
588
- type="number"
589
- min="0"
590
- max="255"
591
- bind:value={rgbInputs.r}
592
- aria-label="Red"
593
- placeholder="R"
594
- onfocus={() => (colorInputFocused = true)}
595
- onblur={handleInputsBlur}
596
- />
597
- <Input
598
- type="number"
599
- min="0"
600
- max="255"
601
- bind:value={rgbInputs.g}
602
- aria-label="Green"
603
- placeholder="G"
604
- onfocus={() => (colorInputFocused = true)}
605
- onblur={handleInputsBlur}
606
- />
607
- <Input
608
- type="number"
609
- min="0"
610
- max="255"
611
- bind:value={rgbInputs.b}
612
- aria-label="Blue"
613
- placeholder="B"
614
- onfocus={() => (colorInputFocused = true)}
615
- onblur={handleInputsBlur}
616
- />
617
- {#if showOpacity}
618
- <Input
619
- type="number"
620
- min="0"
621
- max="1"
622
- step="0.01"
623
- bind:value={rgbInputs.a}
624
- aria-label="Alpha"
625
- placeholder="A"
626
- onfocus={() => (colorInputFocused = true)}
627
- onblur={handleInputsBlur}
628
- />
629
- {/if}
630
- {:else if selectedFormat === 'hsl'}
631
- <Input
632
- type="number"
633
- min="0"
634
- max="360"
635
- bind:value={hslInputs.h}
636
- aria-label="Hue"
637
- placeholder="H"
638
- onfocus={() => (colorInputFocused = true)}
639
- onblur={handleInputsBlur}
640
- />
641
- <Input
642
- type="number"
643
- min="0"
644
- max="100"
645
- bind:value={hslInputs.s}
646
- aria-label="Saturation"
647
- placeholder="S"
648
- onfocus={() => (colorInputFocused = true)}
649
- onblur={handleInputsBlur}
650
- />
651
- <Input
652
- type="number"
653
- min="0"
654
- max="100"
655
- bind:value={hslInputs.l}
656
- aria-label="Lightness"
657
- placeholder="L"
658
- onfocus={() => (colorInputFocused = true)}
659
- onblur={handleInputsBlur}
660
- />
661
- {#if showOpacity}
662
- <Input
663
- type="number"
664
- min="0"
665
- max="1"
666
- step="0.01"
667
- bind:value={hslInputs.a}
668
- aria-label="Alpha"
669
- placeholder="A"
670
- onfocus={() => (colorInputFocused = true)}
671
- onblur={handleInputsBlur}
672
- />
673
- {/if}
674
- {:else if selectedFormat === 'hsv'}
675
- <Input
676
- type="number"
677
- min="0"
678
- max="360"
679
- bind:value={hsvInputs.h}
680
- aria-label="Hue"
681
- placeholder="H"
682
- onfocus={() => (colorInputFocused = true)}
683
- onblur={handleInputsBlur}
684
- />
685
- <Input
686
- type="number"
687
- min="0"
688
- max="100"
689
- bind:value={hsvInputs.s}
690
- aria-label="Saturation"
691
- placeholder="S"
692
- onfocus={() => (colorInputFocused = true)}
693
- onblur={handleInputsBlur}
694
- />
695
- <Input
696
- type="number"
697
- min="0"
698
- max="100"
699
- bind:value={hsvInputs.v}
700
- aria-label="Value"
701
- placeholder="V"
702
- onfocus={() => (colorInputFocused = true)}
703
- onblur={handleInputsBlur}
704
- />
705
- {#if showOpacity}
706
- <Input
707
- type="number"
708
- min="0"
709
- max="1"
710
- step="0.01"
711
- bind:value={hsvInputs.a}
712
- aria-label="Alpha"
713
- placeholder="A"
714
- onfocus={() => (colorInputFocused = true)}
715
- onblur={handleInputsBlur}
716
- />
717
- {/if}
718
- {/if}
719
- </div>
720
- {/if}
721
- </div>
722
-
723
- <style>
724
- .colorPicker {
725
- display: flex;
726
- flex-direction: column;
727
- gap: 0.5rem;
728
- width: 100%;
729
- max-width: 25rem;
730
- }
731
-
732
- .colorPicker__box {
733
- width: 100%;
734
- height: 8rem;
735
- position: relative;
736
- cursor: crosshair;
737
- }
738
-
739
- .colorPicker__canvas {
740
- width: 100%;
741
- height: 100%;
742
- touch-action: none;
743
- }
744
-
745
- .colorPicker__boxIndicator {
746
- position: absolute;
747
- width: 0.75rem;
748
- height: 0.75rem;
749
- border-radius: 50%;
750
- border: 2px solid white;
751
- transform: translate(-50%, -50%);
752
- pointer-events: none;
753
- }
754
-
755
- .colorPicker__sliderWrapper {
756
- position: relative;
757
- width: 100%;
758
- height: 1rem;
759
- }
760
-
761
- .colorPicker__sliderWrapper::before {
762
- content: '';
763
- position: absolute;
764
- top: 50%;
765
- left: 0;
766
- right: 0;
767
- height: 0.25rem;
768
- transform: translateY(-50%);
769
- border-radius: 0.125rem;
770
- pointer-events: none;
771
- }
772
-
773
- .colorPicker__sliderWrapper--hue::before {
774
- background: linear-gradient(to right, red, yellow, lime, cyan, blue, magenta, red);
775
- }
776
-
777
- .colorPicker__sliderWrapper--opacity::before {
778
- background: var(--opacityGradient);
779
- background-size: cover;
780
- }
781
-
782
- .colorPicker__slider {
783
- -webkit-appearance: none;
784
- appearance: none;
785
- width: 100%;
786
- height: 100%;
787
- cursor: pointer;
788
- background: transparent;
789
- position: relative;
790
- z-index: 1;
791
- }
792
-
793
- .colorPicker__slider::-webkit-slider-thumb {
794
- -webkit-appearance: none;
795
- appearance: none;
796
- width: 0.5rem;
797
- height: 0.5rem;
798
- border-radius: 50%;
799
- border: 2px solid white;
800
- background-color: var(--thumbBG);
801
- }
802
-
803
- .colorPicker__slider::-moz-range-thumb {
804
- width: 0.5rem;
805
- height: 0.5rem;
806
- border-radius: 50%;
807
- border: 2px solid white;
808
- background-color: var(--thumbBG);
809
- }
810
-
811
- .colorPicker__inputs {
812
- display: grid;
813
- grid-template-columns: repeat(5, minmax(0, 1fr));
814
- gap: 0.5rem;
815
- }
816
- .colorPicker__inputs--hex {
817
- grid-template-columns: 1fr 2fr;
818
- }
819
-
820
- @media (pointer: coarse) {
821
- .colorPicker__slider {
822
- height: 1rem;
823
- border-radius: var(--radius-2);
824
- }
825
-
826
- .colorPicker__sliderWrapper::before {
827
- height: 1rem;
828
- }
829
- .colorPicker__slider::-webkit-slider-thumb {
830
- width: 1rem;
831
- height: 1rem;
832
- }
833
- .colorPicker__slider::-moz-range-thumb {
834
- width: 1rem;
835
- height: 1rem;
836
- }
837
- }
838
- </style>