@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,11 @@
1
+ import { Editor, type JSONContent } from '@tiptap/core';
2
+ type $$ComponentProps = {
3
+ height?: number | string;
4
+ content?: JSONContent | null | undefined;
5
+ debug?: boolean;
6
+ editable?: boolean;
7
+ onChange?: () => void;
8
+ };
9
+ declare const Editor: import("svelte").Component<$$ComponentProps, {}, "content">;
10
+ type Editor = ReturnType<typeof Editor>;
11
+ export default Editor;
@@ -0,0 +1 @@
1
+ export { default as Editor } from './Editor.svelte';
@@ -0,0 +1 @@
1
+ export { default as Editor } from './Editor.svelte';
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { BrushSizeSlider } from '../BrushSizeSlider';
3
+
4
+ interface Props {
5
+ brushSize: number;
6
+ onBrushSizeChange: (value: number) => void;
7
+ }
8
+
9
+ let { brushSize, onBrushSizeChange }: Props = $props();
10
+ </script>
11
+
12
+ <div class="fogSliders">
13
+ <BrushSizeSlider {brushSize} {onBrushSizeChange} min={5} max={20} curve="linear" displayAsPercentage={true} />
14
+ </div>
15
+
16
+ <style>
17
+ .fogSliders {
18
+ position: absolute;
19
+ top: 50%;
20
+ right: 1rem;
21
+ transform: translateY(-50%);
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 1rem;
25
+ z-index: 10;
26
+ pointer-events: auto;
27
+ background-color: var(--bg);
28
+ border: var(--borderThin);
29
+ border-radius: var(--radius-2);
30
+ padding: 0.5rem 0rem;
31
+ align-items: center;
32
+ }
33
+ </style>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ brushSize: number;
3
+ onBrushSizeChange: (value: number) => void;
4
+ }
5
+ declare const FogSliders: import("svelte").Component<Props, {}, "">;
6
+ type FogSliders = ReturnType<typeof FogSliders>;
7
+ export default FogSliders;
@@ -0,0 +1 @@
1
+ export { default as FogSliders } from './FogSliders.svelte';
@@ -0,0 +1 @@
1
+ export { default as FogSliders } from './FogSliders.svelte';
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ let { ...restProps } = $props();
3
+
4
+ let hrClasses = $derived(['hr', restProps.class ?? '']);
5
+ </script>
6
+
7
+ <hr class={hrClasses} {...restProps} />
8
+
9
+ <style>
10
+ .hr {
11
+ height: 1px;
12
+ width: 100%;
13
+ background: var(--contrastMedium);
14
+ }
15
+ </style>
@@ -0,0 +1,3 @@
1
+ declare const Hr: import("svelte").Component<Record<string, any>, {}, "">;
2
+ type Hr = ReturnType<typeof Hr>;
3
+ export default Hr;
@@ -0,0 +1 @@
1
+ export { default as Hr } from './Hr.svelte';
@@ -0,0 +1 @@
1
+ export { default as Hr } from './Hr.svelte';
@@ -0,0 +1,6 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types';
3
+ let { Icon, size = '1rem', color, stroke = 2, ...restProps }: IconProps = $props();
4
+ </script>
5
+
6
+ <Icon {size} {color} {stroke} {...restProps} style={`min-width: ${size};min-height: ${size}`}></Icon>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types';
2
+ declare const Icon: import("svelte").Component<IconProps, {}, "">;
3
+ type Icon = ReturnType<typeof Icon>;
4
+ export default Icon;
@@ -0,0 +1,2 @@
1
+ export { default as Icon } from './Icon.svelte';
2
+ export type { IconProps } from './types';
@@ -0,0 +1 @@
1
+ export { default as Icon } from './Icon.svelte';
@@ -0,0 +1,18 @@
1
+ import type { HTMLBaseAttributes } from 'svelte/elements';
2
+ export type IconProps = {
3
+ /**
4
+ * Any icon from [tabler-icons](https://tabler.io/icons)
5
+ */
6
+ Icon: any;
7
+ /**
8
+ * The size of the icon.
9
+ * @default 24
10
+ */
11
+ size?: number | string;
12
+ /**
13
+ * The color of the icon.
14
+ * @default 'currentColor'
15
+ * */
16
+ color?: string;
17
+ stroke?: number;
18
+ } & HTMLBaseAttributes;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,126 @@
1
+ <script lang="ts">
2
+ import { type DualInputSliderProps } from './types';
3
+
4
+ let {
5
+ valueStart = $bindable(),
6
+ valueEnd = $bindable(),
7
+ min,
8
+ max,
9
+ step,
10
+ color = 'var(--fg)',
11
+ ...restProps
12
+ }: DualInputSliderProps = $props();
13
+
14
+ const sliderClasses = $derived(['dualInputSlider', restProps.class ?? '']);
15
+
16
+ function handleInputStart(event: Event) {
17
+ let newValue = parseFloat((event.target as HTMLInputElement).value);
18
+ newValue = Math.round(newValue / step) * step; // Fix floating-point precision
19
+ valueStart = Math.min(newValue, valueEnd - step); // Ensure start does not exceed end
20
+ }
21
+
22
+ function handleInputEnd(event: Event) {
23
+ let newValue = parseFloat((event.target as HTMLInputElement).value);
24
+ newValue = Math.round(newValue / step) * step; // Fix floating-point precision
25
+ valueEnd = Math.max(newValue, valueStart + step); // Ensure end is greater than start
26
+ }
27
+
28
+ // ✅ Corrected track position calculations
29
+ const leftPos = $derived(() => ((valueStart - min) / (max - min)) * 100);
30
+ const rightPos = $derived(() => 100 - ((valueEnd - min) / (max - min)) * 100);
31
+ </script>
32
+
33
+ <div class="dualInputSlider__wrap">
34
+ <div class="dualInputSlider__bgTrack">
35
+ <div
36
+ class="dualInputSlider__activeTrack"
37
+ style={`left: ${leftPos()}%;
38
+ right: ${rightPos()}%;
39
+ background: ${color};`}
40
+ ></div>
41
+
42
+ <input type="range" {min} {max} {step} bind:value={valueStart} oninput={handleInputStart} class={sliderClasses} />
43
+ <input type="range" {min} {max} {step} bind:value={valueEnd} oninput={handleInputEnd} class={sliderClasses} />
44
+ </div>
45
+ </div>
46
+
47
+ <style>
48
+ .dualInputSlider__wrap {
49
+ display: flex;
50
+ width: 100%;
51
+ align-items: center;
52
+ height: 2rem;
53
+ }
54
+ .dualInputSlider__bgTrack {
55
+ position: relative;
56
+ width: 100%;
57
+ height: 4px;
58
+ display: flex;
59
+ align-items: center;
60
+ background: var(--inputBorderColor);
61
+ }
62
+
63
+ .dualInputSlider {
64
+ -webkit-appearance: none;
65
+ appearance: none;
66
+ position: absolute;
67
+ appearance: none;
68
+ position: absolute;
69
+ width: 100%;
70
+ height: 3px;
71
+ pointer-events: none;
72
+ top: 50%;
73
+ transform: translateY(-50%);
74
+ z-index: 3;
75
+ }
76
+
77
+ .dualInputSlider::-webkit-slider-thumb {
78
+ width: 0.5rem;
79
+ height: 0.5rem;
80
+ border-radius: 50%;
81
+ border: 2px solid white;
82
+ background-color: var(--inputBorderColor);
83
+ box-shadow: 0 0 2px rgba(0, 0, 0, 1);
84
+ pointer-events: all;
85
+ cursor: pointer;
86
+ }
87
+ .dualInputSlider::-moz-range-thumb {
88
+ width: 0.5rem;
89
+ height: 0.5rem;
90
+ border-radius: 50%;
91
+ border: 2px solid white;
92
+ background-color: var(--inputBorderColor);
93
+ box-shadow: 0 0 2px rgba(0, 0, 0, 1);
94
+ pointer-events: all;
95
+ cursor: pointer;
96
+ }
97
+
98
+ .dualInputSlider__activeTrack {
99
+ position: absolute;
100
+ z-index: 1;
101
+ height: 3px;
102
+ top: 50%;
103
+ transform: translateY(-50%);
104
+ pointer-events: none;
105
+ z-index: 2;
106
+ }
107
+
108
+ @media (pointer: coarse) {
109
+ .dualInputSlider__activeTrack {
110
+ height: 1rem;
111
+ border-radius: var(--radius-2);
112
+ }
113
+ .dualInputSlider__bgTrack {
114
+ height: 1rem;
115
+ border-radius: var(--radius-2);
116
+ }
117
+ .dualInputSlider::-webkit-slider-thumb {
118
+ width: 1rem;
119
+ height: 1rem;
120
+ }
121
+ .dualInputSlider::-moz-range-thumb {
122
+ width: 1rem;
123
+ height: 1rem;
124
+ }
125
+ }
126
+ </style>
@@ -0,0 +1,4 @@
1
+ import { type DualInputSliderProps } from './types';
2
+ declare const DualInputSlider: import("svelte").Component<DualInputSliderProps, {}, "valueStart" | "valueEnd">;
3
+ type DualInputSlider = ReturnType<typeof DualInputSlider>;
4
+ export default DualInputSlider;
@@ -0,0 +1,176 @@
1
+ <script lang="ts">
2
+ import type { FileInputProps } from './types';
3
+ import { onDestroy, createEventDispatcher } from 'svelte';
4
+
5
+ const dispatch = createEventDispatcher<{
6
+ fileSelect: File;
7
+ }>();
8
+
9
+ let {
10
+ value = $bindable(),
11
+ files = $bindable(),
12
+ variant = 'default',
13
+ accept = 'image/png, image/jpeg, image/webp, image/gif',
14
+ showPreviews = true,
15
+ ...restProps
16
+ }: FileInputProps = $props();
17
+
18
+ let inputClasses = $derived(['fileInput', variant && `fileInput--${variant}`, restProps.class ?? '']);
19
+
20
+ // Default label text based on accept prop
21
+ let labelText = $derived(() => {
22
+ if (accept.includes('image/')) {
23
+ return 'Select an image';
24
+ } else if (accept.includes('.json')) {
25
+ return 'Select a file';
26
+ } else {
27
+ return 'Select a file';
28
+ }
29
+ });
30
+
31
+ // Array to keep track of generated object URLs for cleanup
32
+ let generatedUrls: string[] = [];
33
+
34
+ // Function to clean up generated URLs
35
+ const previousUrlsCleanup = () => {
36
+ for (const url of generatedUrls) {
37
+ URL.revokeObjectURL(url);
38
+ }
39
+ generatedUrls = [];
40
+ };
41
+
42
+ // Function to check if file is an image
43
+ const isImageFile = (file: File): boolean => {
44
+ return file.type.startsWith('image/');
45
+ };
46
+
47
+ // Create a derived value for preview URLs based on `files`
48
+ let previewUrls = $derived.by(() => {
49
+ if (files && files.length > 0 && showPreviews) {
50
+ const urls = [];
51
+ for (const file of files) {
52
+ // Only create previews for image files
53
+ if (file && isImageFile(file)) {
54
+ const objectUrl = URL.createObjectURL(file);
55
+ urls.push(objectUrl);
56
+ generatedUrls.push(objectUrl); // Keep track of generated URLs for cleanup
57
+ }
58
+ }
59
+ return urls;
60
+ }
61
+ return [];
62
+ });
63
+
64
+ // Handle file selection
65
+ function handleFileChange() {
66
+ if (files && files.length > 0) {
67
+ // Dispatch the first file
68
+ dispatch('fileSelect', files[0]);
69
+ }
70
+ }
71
+
72
+ // Clean up the object URLs to prevent memory leaks when the component is destroyed
73
+ onDestroy(() => {
74
+ previousUrlsCleanup();
75
+ });
76
+ </script>
77
+
78
+ <div class={inputClasses}>
79
+ {#if variant === 'dropzone'}
80
+ <label class="fileInput__dropZoneLabel" for={restProps.id}><div>{labelText}</div></label>
81
+ {/if}
82
+ <!-- File input with configurable accept attribute -->
83
+ <input bind:files type="file" class="fileInput__input" {accept} onchange={handleFileChange} {...restProps} />
84
+
85
+ <!-- Display previews for image files if showPreviews is true -->
86
+ {#if showPreviews}
87
+ {#each previewUrls as previewUrl}
88
+ <img src={previewUrl} alt="Preview" class="fileInput__preview" />
89
+ {/each}
90
+ {/if}
91
+ </div>
92
+
93
+ <style>
94
+ .fileInput {
95
+ display: flex;
96
+ flex-direction: column;
97
+ align-items: center;
98
+ justify-content: center;
99
+ }
100
+ .fileInput__input::file-selector-button {
101
+ background: var(--inputBg);
102
+ padding: 0 var(--size-2);
103
+ color: var(--fg);
104
+ border: var(--borderThin);
105
+ border-radius: var(--radius-2);
106
+ padding: 0.25rem 0.75rem;
107
+ font-weight: 600;
108
+ cursor: pointer;
109
+ display: inline-flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ }
113
+ .fileInput__input::file-selector-button:hover {
114
+ background: var(--inputFocusBg);
115
+ }
116
+ [data-fs-error] {
117
+ border-color: var(--fgDanger);
118
+ }
119
+ .fileInput__preview {
120
+ max-width: 8rem;
121
+ max-height: 8rem;
122
+ margin-top: 1rem;
123
+ margin-right: 0.5rem;
124
+ }
125
+ .fileInput--dropzone {
126
+ width: 100%;
127
+ max-width: 100%;
128
+ cursor: pointer;
129
+ position: relative;
130
+ aspect-ratio: 16 / 9;
131
+ overflow: hidden;
132
+ }
133
+
134
+ .fileInput--dropzone .fileInput__preview {
135
+ margin: 0;
136
+ max-width: 100%;
137
+ max-height: 100%;
138
+ object-fit: cover;
139
+ }
140
+ .fileInput--dropzone input {
141
+ visibility: hidden;
142
+ display: none;
143
+ }
144
+ .fileInput--dropzone .fileInput__dropZoneLabel {
145
+ position: absolute;
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ width: 100%;
150
+ height: 100%;
151
+ z-index: 2;
152
+ top: 0;
153
+ left: 0;
154
+ }
155
+ .fileInput--dropzone .fileInput__dropZoneLabel div {
156
+ background: rgba(0, 0, 0, 0.8);
157
+ color: white;
158
+ padding: 0.25rem 0.5rem;
159
+ border-radius: var(--radius-1);
160
+ font-size: 0.85rem;
161
+ }
162
+ .fileInput--transparent {
163
+ .fileInput__input {
164
+ opacity: 0;
165
+ border: none;
166
+ position: absolute;
167
+ top: 0;
168
+ left: 0;
169
+ width: 100%;
170
+ height: 100%;
171
+ }
172
+ .fileInput__preview {
173
+ display: none;
174
+ }
175
+ }
176
+ </style>
@@ -0,0 +1,21 @@
1
+ import type { FileInputProps } from './types';
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const FileInput: $$__sveltets_2_IsomorphicComponent<FileInputProps, {
16
+ fileSelect: CustomEvent<File>;
17
+ } & {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, "files" | "value">;
20
+ type FileInput = InstanceType<typeof FileInput>;
21
+ export default FileInput;
@@ -0,0 +1,150 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { Label } from './';
4
+ import type { HTMLBaseAttributes } from 'svelte/elements';
5
+ import { IconX } from '@tabler/icons-svelte';
6
+ import { Icon } from '../';
7
+ import { type $ZodIssue } from 'zod/v4/core';
8
+ import { v4 as uuidv4 } from 'uuid';
9
+ type Props = {
10
+ /**
11
+ * The input component that will be rendered
12
+ */
13
+ input: Snippet<
14
+ [
15
+ {
16
+ inputProps: {
17
+ id: string;
18
+ name: string;
19
+ 'aria-describedby'?: string;
20
+ 'aria-invalid'?: boolean;
21
+ };
22
+ }
23
+ ]
24
+ >;
25
+ /**
26
+ * The label for the input
27
+ */
28
+ label?: string;
29
+ /**
30
+ * A snippet that will be rendered at the start of the input
31
+ */
32
+ start?: Snippet;
33
+ /**
34
+ * A snippet that will be rendered at the end of the input
35
+ */
36
+ end?: Snippet;
37
+ /**
38
+ * The name needs to match a "path" in our zod schema
39
+ */
40
+ name: string;
41
+ /**
42
+ * This shape matches what returns from zod / mutation factories
43
+ */
44
+ errors?: $ZodIssue[];
45
+ } & HTMLBaseAttributes;
46
+
47
+ let { input, label, start, name, errors, end, ...restProps }: Props = $props();
48
+ let error = $derived(errors?.find((error) => error.path.includes(name)));
49
+
50
+ const id = `control-${uuidv4()}`;
51
+
52
+ let inputProps = $derived.by(() => {
53
+ return {
54
+ id,
55
+ name,
56
+ 'aria-describedby': error && `error-${id}`,
57
+ 'aria-invalid': !!error
58
+ };
59
+ });
60
+
61
+ let inputWrapperClasses = $derived([
62
+ 'control__inputWrapper',
63
+ start && 'control__inputWrapper--start',
64
+ end && 'control__inputWrapper--end'
65
+ ]);
66
+ const controlClasses = $derived(['control', error && 'control--isError', restProps.class ?? '']);
67
+ </script>
68
+
69
+ <div class={controlClasses}>
70
+ <Label class="control__label" for={id}>{label}</Label>
71
+ <div class={inputWrapperClasses}>
72
+ {#if start}
73
+ <div class="control__start">{@render start()}</div>
74
+ {/if}
75
+ {@render input({ inputProps })}
76
+ {#if end}
77
+ <div class="control__end">{@render end()}</div>
78
+ {/if}
79
+ </div>
80
+ {#if error}
81
+ <div class="control__error" id={`error-${id}`}>
82
+ <Icon Icon={IconX} class="control__errorIcon" />
83
+ {error.message}
84
+ </div>
85
+ {/if}
86
+ </div>
87
+
88
+ <style>
89
+ /* global required for children */
90
+ :global {
91
+ .control__inputWrapper--start input.input {
92
+ border-top-left-radius: 0;
93
+ border-bottom-left-radius: 0;
94
+ }
95
+ .control__inputWrapper--end input.input {
96
+ border-top-right-radius: 0;
97
+ border-bottom-right-radius: 0;
98
+ }
99
+ .control__erorIcon {
100
+ margin-top: 1px;
101
+ }
102
+ }
103
+ .control {
104
+ display: flex;
105
+ flex-direction: column;
106
+ gap: var(--size-1);
107
+ width: 100%;
108
+ }
109
+ .control__inputWrapper {
110
+ display: flex;
111
+ align-items: center;
112
+ width: 100%;
113
+ }
114
+ .control__start,
115
+ .control__end {
116
+ display: flex;
117
+ align-items: center;
118
+ height: var(--size-8);
119
+ border: var(--borderThin);
120
+ border-color: var(--inputBorderColor);
121
+ padding: 0 var(--size-3);
122
+ background: var(--contrastLow);
123
+ color: var(--fgMuted);
124
+ }
125
+ .control__start {
126
+ border-top-left-radius: var(--radius-2);
127
+ border-bottom-left-radius: var(--radius-2);
128
+ border-right: none;
129
+ }
130
+ .control__end {
131
+ border-top-right-radius: var(--radius-2);
132
+ border-bottom-right-radius: var(--radius-2);
133
+ border-left: none;
134
+ }
135
+ .control__error {
136
+ display: inline-flex;
137
+ gap: var(--size-1);
138
+ color: var(--fgDanger);
139
+ font-size: var(--font-size-1);
140
+ font-weight: var(--font-weight-6);
141
+ margin-top: var(--size-1);
142
+ border-radius: var(--size-2);
143
+ min-height: var(--size-7);
144
+ align-items: center;
145
+ }
146
+
147
+ :global(.control .control__label) {
148
+ display: block;
149
+ }
150
+ </style>
@@ -0,0 +1,41 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLBaseAttributes } from 'svelte/elements';
3
+ import { type $ZodIssue } from 'zod/v4/core';
4
+ type Props = {
5
+ /**
6
+ * The input component that will be rendered
7
+ */
8
+ input: Snippet<[
9
+ {
10
+ inputProps: {
11
+ id: string;
12
+ name: string;
13
+ 'aria-describedby'?: string;
14
+ 'aria-invalid'?: boolean;
15
+ };
16
+ }
17
+ ]>;
18
+ /**
19
+ * The label for the input
20
+ */
21
+ label?: string;
22
+ /**
23
+ * A snippet that will be rendered at the start of the input
24
+ */
25
+ start?: Snippet;
26
+ /**
27
+ * A snippet that will be rendered at the end of the input
28
+ */
29
+ end?: Snippet;
30
+ /**
31
+ * The name needs to match a "path" in our zod schema
32
+ */
33
+ name: string;
34
+ /**
35
+ * This shape matches what returns from zod / mutation factories
36
+ */
37
+ errors?: $ZodIssue[];
38
+ } & HTMLBaseAttributes;
39
+ declare const FormControl: import("svelte").Component<Props, {}, "">;
40
+ type FormControl = ReturnType<typeof FormControl>;
41
+ export default FormControl;