@lvl99dotcom/paintcanvas 0.0.0-stage → 0.2.0

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 (284) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +131 -2
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +5 -0
  5. package/dist/lib/brushes/BrushTipCache/index.d.ts +32 -0
  6. package/dist/lib/brushes/BrushTipCache/index.js +60 -0
  7. package/dist/lib/brushes/StrokeEngine/index.d.ts +171 -0
  8. package/dist/lib/brushes/StrokeEngine/index.js +324 -0
  9. package/dist/lib/brushes/StrokePath/index.d.ts +53 -0
  10. package/dist/lib/brushes/StrokePath/index.js +161 -0
  11. package/dist/lib/brushes/StrokeSampler/index.d.ts +55 -0
  12. package/dist/lib/brushes/StrokeSampler/index.js +75 -0
  13. package/dist/lib/brushes/authors/index.d.ts +55 -0
  14. package/dist/lib/brushes/authors/index.js +60 -0
  15. package/dist/lib/brushes/configRanges/index.d.ts +52 -0
  16. package/dist/lib/brushes/configRanges/index.js +206 -0
  17. package/dist/lib/brushes/index.d.ts +5 -0
  18. package/dist/lib/brushes/index.js +19 -0
  19. package/dist/lib/brushes/params/index.d.ts +108 -0
  20. package/dist/lib/brushes/params/index.js +139 -0
  21. package/dist/lib/brushes/presetFile/index.d.ts +32 -0
  22. package/dist/lib/brushes/presetFile/index.js +55 -0
  23. package/dist/lib/brushes/presets/drawing/brush-pen.js +3 -0
  24. package/dist/lib/brushes/presets/drawing/felt-pen.js +3 -0
  25. package/dist/lib/brushes/presets/drawing/index.d.ts +13 -0
  26. package/dist/lib/brushes/presets/drawing/index.js +88 -0
  27. package/dist/lib/brushes/presets/drawing/pencil-2b.js +3 -0
  28. package/dist/lib/brushes/presets/drawing/pencil-hb.js +3 -0
  29. package/dist/lib/brushes/presets/painting/grass.js +3 -0
  30. package/dist/lib/brushes/presets/painting/hair.js +3 -0
  31. package/dist/lib/brushes/presets/painting/index.d.ts +18 -0
  32. package/dist/lib/brushes/presets/painting/index.js +118 -0
  33. package/dist/lib/brushes/presets/painting/splatter.js +3 -0
  34. package/dist/lib/brushes/presets/painting/textured-paint.js +3 -0
  35. package/dist/lib/brushes/presets/painting/watery-paint.js +3 -0
  36. package/dist/lib/brushes/presets/round/index.d.ts +9 -0
  37. package/dist/lib/brushes/presets/round/index.js +44 -0
  38. package/dist/lib/brushes/presets/round/round.js +3 -0
  39. package/dist/lib/brushes/presets/round/soft-round.js +3 -0
  40. package/dist/lib/brushes/presets/sized/index.d.ts +20 -0
  41. package/dist/lib/brushes/presets/sized/index.js +30 -0
  42. package/dist/lib/brushes/presets/sketching/index.d.ts +14 -0
  43. package/dist/lib/brushes/presets/sketching/index.js +107 -0
  44. package/dist/lib/brushes/presets/square/index.d.ts +7 -0
  45. package/dist/lib/brushes/presets/square/index.js +22 -0
  46. package/dist/lib/brushes/presets/square/square.js +3 -0
  47. package/dist/lib/brushes/shapeImage/index.d.ts +40 -0
  48. package/dist/lib/brushes/shapeImage/index.js +61 -0
  49. package/dist/lib/brushes/types/index.d.ts +243 -0
  50. package/dist/lib/brushes/types/index.js +20 -0
  51. package/dist/lib/classes/BackgroundWork/index.d.ts +55 -0
  52. package/dist/lib/classes/BackgroundWork/index.js +97 -0
  53. package/dist/lib/classes/BrushSettings/index.d.ts +91 -0
  54. package/dist/lib/classes/BrushSettings/index.js +152 -0
  55. package/dist/lib/classes/CustomPresets/index.d.ts +53 -0
  56. package/dist/lib/classes/CustomPresets/index.js +71 -0
  57. package/dist/lib/classes/ExternalSheets/index.d.ts +64 -0
  58. package/dist/lib/classes/ExternalSheets/index.js +112 -0
  59. package/dist/lib/classes/GestureTracker/index.d.ts +62 -0
  60. package/dist/lib/classes/GestureTracker/index.js +122 -0
  61. package/dist/lib/classes/History/index.d.ts +83 -0
  62. package/dist/lib/classes/History/index.js +126 -0
  63. package/dist/lib/classes/HistoryGuard/index.d.ts +58 -0
  64. package/dist/lib/classes/HistoryGuard/index.js +97 -0
  65. package/dist/lib/classes/InputSettings/index.d.ts +74 -0
  66. package/dist/lib/classes/InputSettings/index.js +101 -0
  67. package/dist/lib/classes/KeyboardShortcuts/index.d.ts +48 -0
  68. package/dist/lib/classes/KeyboardShortcuts/index.js +137 -0
  69. package/dist/lib/classes/Layer/index.d.ts +86 -0
  70. package/dist/lib/classes/Layer/index.js +111 -0
  71. package/dist/lib/classes/LayerAutosave/index.d.ts +180 -0
  72. package/dist/lib/classes/LayerAutosave/index.js +346 -0
  73. package/dist/lib/classes/LayerStack/index.d.ts +177 -0
  74. package/dist/lib/classes/LayerStack/index.js +394 -0
  75. package/dist/lib/classes/PaintCanvas/index.d.ts +537 -0
  76. package/dist/lib/classes/PaintCanvas/index.js +965 -0
  77. package/dist/lib/classes/StrokeLog/index.d.ts +149 -0
  78. package/dist/lib/classes/StrokeLog/index.js +257 -0
  79. package/dist/lib/classes/Viewport/index.d.ts +108 -0
  80. package/dist/lib/classes/Viewport/index.js +194 -0
  81. package/dist/lib/document/index.d.ts +17 -0
  82. package/dist/lib/document/index.js +25 -0
  83. package/dist/lib/document/schema.d.ts +132 -0
  84. package/dist/lib/document/schema.js +110 -0
  85. package/dist/lib/i18n/index.d.ts +94 -0
  86. package/dist/lib/i18n/index.js +182 -0
  87. package/dist/lib/image/index.d.ts +90 -0
  88. package/dist/lib/image/index.js +147 -0
  89. package/dist/lib/messages/PatchSender/index.d.ts +75 -0
  90. package/dist/lib/messages/PatchSender/index.js +125 -0
  91. package/dist/lib/messages/index.d.ts +26 -0
  92. package/dist/lib/messages/index.js +59 -0
  93. package/dist/lib/messages/schema.d.ts +1775 -0
  94. package/dist/lib/messages/schema.js +192 -0
  95. package/dist/lib/presets/index.d.ts +32 -0
  96. package/dist/lib/presets/index.js +35 -0
  97. package/dist/lib/presets/schema.d.ts +753 -0
  98. package/dist/lib/presets/schema.js +181 -0
  99. package/dist/lib/rendering/BrushTip/index.d.ts +63 -0
  100. package/dist/lib/rendering/BrushTip/index.js +112 -0
  101. package/dist/lib/rendering/checkerboard/index.d.ts +22 -0
  102. package/dist/lib/rendering/checkerboard/index.js +31 -0
  103. package/dist/lib/rendering/compositing/index.d.ts +64 -0
  104. package/dist/lib/rendering/compositing/index.js +124 -0
  105. package/dist/lib/rendering/cursor/index.d.ts +14 -0
  106. package/dist/lib/rendering/cursor/index.js +39 -0
  107. package/dist/lib/rendering/cursors/index.d.ts +18 -0
  108. package/dist/lib/rendering/cursors/index.js +23 -0
  109. package/dist/lib/rendering/maskOutline/index.d.ts +22 -0
  110. package/dist/lib/rendering/maskOutline/index.js +78 -0
  111. package/dist/lib/rendering/outline/index.d.ts +36 -0
  112. package/dist/lib/rendering/outline/index.js +120 -0
  113. package/dist/lib/rendering/sample/index.d.ts +55 -0
  114. package/dist/lib/rendering/sample/index.js +83 -0
  115. package/dist/lib/rendering/screenshot/index.d.ts +67 -0
  116. package/dist/lib/rendering/screenshot/index.js +96 -0
  117. package/dist/lib/rendering/transformBox/index.d.ts +10 -0
  118. package/dist/lib/rendering/transformBox/index.js +57 -0
  119. package/dist/lib/selection/Lasso/index.d.ts +70 -0
  120. package/dist/lib/selection/Lasso/index.js +156 -0
  121. package/dist/lib/selection/Selection/index.d.ts +86 -0
  122. package/dist/lib/selection/Selection/index.js +228 -0
  123. package/dist/lib/selection/geometry/index.d.ts +37 -0
  124. package/dist/lib/selection/geometry/index.js +57 -0
  125. package/dist/lib/storage/index.d.ts +63 -0
  126. package/dist/lib/storage/index.js +114 -0
  127. package/dist/lib/transform/Transformer/index.d.ts +124 -0
  128. package/dist/lib/transform/Transformer/index.js +286 -0
  129. package/dist/lib/transform/geometry/index.d.ts +95 -0
  130. package/dist/lib/transform/geometry/index.js +258 -0
  131. package/dist/lib/utils/array/index.d.ts +10 -0
  132. package/dist/lib/utils/array/index.js +21 -0
  133. package/dist/lib/utils/gestures/index.d.ts +35 -0
  134. package/dist/lib/utils/gestures/index.js +81 -0
  135. package/dist/lib/utils/navigation/index.d.ts +51 -0
  136. package/dist/lib/utils/navigation/index.js +59 -0
  137. package/dist/lib/utils/random/index.d.ts +18 -0
  138. package/dist/lib/utils/random/index.js +27 -0
  139. package/dist/lib/utils/shortcuts/index.d.ts +74 -0
  140. package/dist/lib/utils/shortcuts/index.js +189 -0
  141. package/dist/lib/validation/validators.generated.d.ts +27 -0
  142. package/dist/lib/validation/validators.generated.js +19826 -0
  143. package/dist/locales/en-GB.js +188 -0
  144. package/dist/locales/en-US.js +188 -0
  145. package/dist/locales/fr.js +188 -0
  146. package/dist/locales/ja.js +188 -0
  147. package/dist/locales/ko.js +188 -0
  148. package/dist/locales/zh-Hans.js +188 -0
  149. package/dist/locales/zh-Hant.js +188 -0
  150. package/dist/package.js +3 -0
  151. package/dist/testing/app.d.ts +7 -0
  152. package/dist/testing/app.js +16 -0
  153. package/dist/testing/elements.d.ts +42 -0
  154. package/dist/testing/elements.js +58 -0
  155. package/dist/testing/fakeCanvas.d.ts +21 -0
  156. package/dist/testing/fakeCanvas.js +26 -0
  157. package/dist/testing/layerStore.d.ts +26 -0
  158. package/dist/testing/layerStore.js +43 -0
  159. package/dist/testing/locks.d.ts +15 -0
  160. package/dist/testing/locks.js +41 -0
  161. package/dist/testing/recordingCanvas.d.ts +14 -0
  162. package/dist/testing/recordingCanvas.js +28 -0
  163. package/dist/testing/recordingContext.d.ts +10 -0
  164. package/dist/testing/recordingContext.js +19 -0
  165. package/dist/ui/ChangeController/index.d.ts +40 -0
  166. package/dist/ui/ChangeController/index.js +62 -0
  167. package/dist/ui/base/index.d.ts +69 -0
  168. package/dist/ui/base/index.js +94 -0
  169. package/dist/ui/elements/PaintCanvas/index.d.ts +249 -0
  170. package/dist/ui/elements/PaintCanvas/index.js +584 -0
  171. package/dist/ui/elements/PaintCanvas/style.js +3 -0
  172. package/dist/ui/elements/PcBrushConfig/index.d.ts +130 -0
  173. package/dist/ui/elements/PcBrushConfig/index.js +463 -0
  174. package/dist/ui/elements/PcBrushConfig/style.js +3 -0
  175. package/dist/ui/elements/PcBrushMenu/index.d.ts +121 -0
  176. package/dist/ui/elements/PcBrushMenu/index.js +362 -0
  177. package/dist/ui/elements/PcBrushMenu/style.js +3 -0
  178. package/dist/ui/elements/PcBrushTest/index.d.ts +71 -0
  179. package/dist/ui/elements/PcBrushTest/index.js +136 -0
  180. package/dist/ui/elements/PcBrushTest/style.js +3 -0
  181. package/dist/ui/elements/PcButton/index.d.ts +57 -0
  182. package/dist/ui/elements/PcButton/index.js +124 -0
  183. package/dist/ui/elements/PcButtonGroup/index.d.ts +44 -0
  184. package/dist/ui/elements/PcButtonGroup/index.js +93 -0
  185. package/dist/ui/elements/PcCanvas/index.d.ts +356 -0
  186. package/dist/ui/elements/PcCanvas/index.js +1004 -0
  187. package/dist/ui/elements/PcCanvas/style.js +3 -0
  188. package/dist/ui/elements/PcCanvasMap/index.d.ts +96 -0
  189. package/dist/ui/elements/PcCanvasMap/index.js +187 -0
  190. package/dist/ui/elements/PcCanvasMap/style.js +3 -0
  191. package/dist/ui/elements/PcContextMenu/index.d.ts +72 -0
  192. package/dist/ui/elements/PcContextMenu/index.js +148 -0
  193. package/dist/ui/elements/PcDialog/index.d.ts +63 -0
  194. package/dist/ui/elements/PcDialog/index.js +114 -0
  195. package/dist/ui/elements/PcIcon/index.d.ts +36 -0
  196. package/dist/ui/elements/PcIcon/index.js +43 -0
  197. package/dist/ui/elements/PcIconToggle/index.d.ts +46 -0
  198. package/dist/ui/elements/PcIconToggle/index.js +87 -0
  199. package/dist/ui/elements/PcInfoTip/index.d.ts +40 -0
  200. package/dist/ui/elements/PcInfoTip/index.js +95 -0
  201. package/dist/ui/elements/PcInputSettings/index.d.ts +69 -0
  202. package/dist/ui/elements/PcInputSettings/index.js +150 -0
  203. package/dist/ui/elements/PcLayerItem/index.d.ts +221 -0
  204. package/dist/ui/elements/PcLayerItem/index.js +561 -0
  205. package/dist/ui/elements/PcLayerItem/style.js +3 -0
  206. package/dist/ui/elements/PcLayersMenu/index.d.ts +108 -0
  207. package/dist/ui/elements/PcLayersMenu/index.js +208 -0
  208. package/dist/ui/elements/PcLayersMenu/style.js +3 -0
  209. package/dist/ui/elements/PcMatch/index.d.ts +31 -0
  210. package/dist/ui/elements/PcMatch/index.js +58 -0
  211. package/dist/ui/elements/PcPanel/index.d.ts +43 -0
  212. package/dist/ui/elements/PcPanel/index.js +51 -0
  213. package/dist/ui/elements/PcPopover/index.d.ts +48 -0
  214. package/dist/ui/elements/PcPopover/index.js +86 -0
  215. package/dist/ui/elements/PcSlider/index.d.ts +57 -0
  216. package/dist/ui/elements/PcSlider/index.js +88 -0
  217. package/dist/ui/elements/PcStats/index.d.ts +54 -0
  218. package/dist/ui/elements/PcStats/index.js +141 -0
  219. package/dist/ui/elements/PcThemePicker/index.d.ts +56 -0
  220. package/dist/ui/elements/PcThemePicker/index.js +134 -0
  221. package/dist/ui/elements/PcToast/index.d.ts +58 -0
  222. package/dist/ui/elements/PcToast/index.js +110 -0
  223. package/dist/ui/elements/PcToggleCheckbox/index.d.ts +37 -0
  224. package/dist/ui/elements/PcToggleCheckbox/index.js +105 -0
  225. package/dist/ui/elements/PcToolSettings/index.d.ts +128 -0
  226. package/dist/ui/elements/PcToolSettings/index.js +543 -0
  227. package/dist/ui/elements/PcToolSettings/style.js +3 -0
  228. package/dist/ui/elements/PcToolbar/index.d.ts +71 -0
  229. package/dist/ui/elements/PcToolbar/index.js +190 -0
  230. package/dist/ui/elements/PcToolbar/style.js +3 -0
  231. package/dist/ui/icons/images/brush.js +3 -0
  232. package/dist/ui/icons/images/circle-mask.js +3 -0
  233. package/dist/ui/icons/images/clipboard.js +3 -0
  234. package/dist/ui/icons/images/cursor.js +3 -0
  235. package/dist/ui/icons/images/eraser.js +3 -0
  236. package/dist/ui/icons/images/eyedropper.js +3 -0
  237. package/dist/ui/icons/images/flip-horizontal.js +3 -0
  238. package/dist/ui/icons/images/flip-vertical.js +3 -0
  239. package/dist/ui/icons/images/focus-pen.js +3 -0
  240. package/dist/ui/icons/images/freehand-mask.js +3 -0
  241. package/dist/ui/icons/images/hidden.js +3 -0
  242. package/dist/ui/icons/images/layers.js +3 -0
  243. package/dist/ui/icons/images/linked.js +3 -0
  244. package/dist/ui/icons/images/locked.js +3 -0
  245. package/dist/ui/icons/images/moon.js +3 -0
  246. package/dist/ui/icons/images/pan.js +3 -0
  247. package/dist/ui/icons/images/polygon-mask.js +3 -0
  248. package/dist/ui/icons/images/pressure.js +3 -0
  249. package/dist/ui/icons/images/randomise.js +3 -0
  250. package/dist/ui/icons/images/rectangle-mask.js +3 -0
  251. package/dist/ui/icons/images/redo.js +3 -0
  252. package/dist/ui/icons/images/rotate-90-left.js +3 -0
  253. package/dist/ui/icons/images/rotate-90-right.js +3 -0
  254. package/dist/ui/icons/images/smoothing-bezier-cubic.js +3 -0
  255. package/dist/ui/icons/images/smoothing-bezier-quad.js +3 -0
  256. package/dist/ui/icons/images/smoothing-linear.js +3 -0
  257. package/dist/ui/icons/images/star.js +3 -0
  258. package/dist/ui/icons/images/sun.js +3 -0
  259. package/dist/ui/icons/images/tilt.js +3 -0
  260. package/dist/ui/icons/images/undo.js +3 -0
  261. package/dist/ui/icons/images/unlinked.js +3 -0
  262. package/dist/ui/icons/images/unlocked.js +3 -0
  263. package/dist/ui/icons/images/visible.js +3 -0
  264. package/dist/ui/icons/images/zoom-in.js +3 -0
  265. package/dist/ui/icons/images/zoom-out.js +3 -0
  266. package/dist/ui/icons/images/zoom.js +3 -0
  267. package/dist/ui/icons/index.d.ts +42 -0
  268. package/dist/ui/icons/index.js +130 -0
  269. package/dist/ui/index.d.ts +21 -0
  270. package/dist/ui/index.js +22 -0
  271. package/dist/ui/layout/index.d.ts +88 -0
  272. package/dist/ui/layout/index.js +96 -0
  273. package/dist/ui/styles/index.d.ts +13 -0
  274. package/dist/ui/styles/index.js +195 -0
  275. package/dist/ui/tokens/index.d.ts +29 -0
  276. package/dist/ui/tokens/index.js +114 -0
  277. package/locales/en-GB.json +186 -0
  278. package/locales/en-US.json +186 -0
  279. package/locales/fr.json +186 -0
  280. package/locales/ja.json +186 -0
  281. package/locales/ko.json +186 -0
  282. package/locales/zh-Hans.json +186 -0
  283. package/locales/zh-Hant.json +186 -0
  284. package/package.json +97 -3
@@ -0,0 +1,55 @@
1
+ import { BRUSH_PRESET_FILE_FORMAT, BRUSH_PRESET_FILE_FORMATS } from "../../presets/schema.js";
2
+ import { isValidBrushPreset, isValidBrushPresetFile } from "../../presets/index.js";
3
+ // src/lib/brushes/presetFile/index.ts
4
+ /** Messages shown when importing or exporting presets fails */
5
+ var PRESET_FILE_ERRORS = {
6
+ incompatible: "Brush preset JSON file not compatible",
7
+ read: "Failed to read brush preset JSON file",
8
+ export: "Error exporting brush preset JSON file",
9
+ empty: "No brush presets to export"
10
+ };
11
+ /** Importing or exporting presets failed, with a message for the user */
12
+ var PresetFileError = class extends Error {};
13
+ /**
14
+ * The file name presets are exported to on a day, starting with a prefix (see `PaintCanvasNames.filePrefix`).
15
+ *
16
+ * @example
17
+ * presetFileName(new Date(2026, 9, 24)); // "paintcanvas-brush-presets-2026-10-24.json"
18
+ * presetFileName(new Date(2026, 9, 24), "myapp"); // "myapp-brush-presets-2026-10-24.json"
19
+ */
20
+ var presetFileName = (date = /* @__PURE__ */ new Date(), prefix = "paintcanvas") => {
21
+ const pad = (n) => String(n).padStart(2, "0");
22
+ return `${prefix}-brush-presets-${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}.json`;
23
+ };
24
+ /**
25
+ * Write presets to a brush preset file (JSON) of a format (see `PaintCanvasNames.presetFileFormat`). Throws a
26
+ * `PresetFileError` if there are none, or one can't be exported (e.g. its shape isn't a PNG data URL).
27
+ *
28
+ * @example
29
+ * exportPresetFile([myPreset]); // '{ "format": "paintcanvas-brush-presets", "version": 1, "presets": [...] }'
30
+ */
31
+ var exportPresetFile = (presets, format = BRUSH_PRESET_FILE_FORMAT) => {
32
+ if (presets.length === 0) throw new PresetFileError(PRESET_FILE_ERRORS.empty);
33
+ if (!presets.every((preset) => isValidBrushPreset(preset).valid)) throw new PresetFileError(PRESET_FILE_ERRORS.export);
34
+ return JSON.stringify({
35
+ format,
36
+ version: 1,
37
+ presets
38
+ }, null, 2);
39
+ };
40
+ /**
41
+ * Read the presets in a brush preset file of one of the given formats (PaintCanvas's by default).
42
+ * Throws a `PresetFileError` if it isn't valid JSON or a compatible file.
43
+ */
44
+ var parsePresetFile = (text, formats = BRUSH_PRESET_FILE_FORMATS) => {
45
+ let data;
46
+ try {
47
+ data = JSON.parse(text);
48
+ } catch {
49
+ throw new PresetFileError(PRESET_FILE_ERRORS.incompatible);
50
+ }
51
+ const result = isValidBrushPresetFile(data);
52
+ if (!result.valid || !formats.includes(result.value.format)) throw new PresetFileError(PRESET_FILE_ERRORS.incompatible);
53
+ return result.value.presets;
54
+ };
55
+ export { PRESET_FILE_ERRORS, PresetFileError, exportPresetFile, parsePresetFile, presetFileName };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/drawing/brush-pen.png?inline
2
+ var brush_pen_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAE2klEQVR42u3ba0hTfxjA8S/nhSZCmS8sMhADC4SCBCNIu9GfdAMx27pYWBBGI0qFYBNzyEzcIFCLWCRBSdlly0RwKv+wiwaRYFAglJAIGeYLs0BMX4X+Xbs4dZu7nF//8+zNXpzDzsez5/d7nuc4ib8kJAWiQBSIAlEgCkSBKBAFokAUSAgilkQ2kEIqqaSwgURixYCsZhsqiqnkGvdp59/51zOe/Xnfzn2uUUkxKraxWl6QdDRUcJd2HLRzCxMXKERFNhmkk8YmNpFGOhlko6KQC5i4NX/0XSrQkB5dSBIqKnlCKzauUEQWyQGdn0wWRVzBRitPqERFUqQhieRh5jF2TBSQtuI/ZxoFmLDzGDN5JEYGkomeezSjZw9xIc3XOPagp5l76MkMLySHOu5gJpf4sC0/8eRi5g515IQHosZKI6WhSEy/FpBSGrGiDi1kN/Xc4BwbI7rHbeQcN6hnd2ggqRioo4SUqGzYKZRQh4HUlULysVBLRlSrjwxqsZAfPGQ9emrQyqKU0lKDnvXBQDIxUhWh1PYv/aswLr4sLwbJpRwdq2RV4K5CRzm5gUC0XOKQLKv1Q1zy/WX3BTlOCftl23jsp4Tj/kC06Ngl6x5qF7qFd0VakBtnyJZ9O5jNGe9ckbxWqiIOCtHZHqTIcwWTPPaNoxwTpkk/xlH3fcUdUoBGqHmDhgJfkL3kRameCr4Oy2OvN2QNOYJkh2em5LDGE7JPxjvH0rvKPnfIWrICby5lEZlksdYF2cFORI2d7HBBtke541hZt7LdCdnM1hDPQyIZcWxlsxOyBZFjixOSunxHLOuYu36JWJKDm+3JJhJJJlYiiXWIHutIkkggQXhIAgkS8WEcf0Yq4omXiCFGeEgMMX/RM8QZZoRXzDAjMcmk8JBJJiUmmBAeMsGExBjfhId8Y0ximhHGhWaMM8L07Ko1xJDQkLnrn4V84qPQkI98ckI+MCUsY4oPTgi8o19YSD/vXK3uW94IC3nDWxfkO730Ccnoo5fvuM21ntMtJKSb585a67/4QSddwjG66OSHJwRe0MawUIxh2njhqn5d0YJdKIidFvcy3hWjPOKhMIyHPGLUN2R2DWgSJFO6aPJcZ707xA5u0yN7Rg+36fDuEL3DhpXXsma8xoptYau7MB7QIONdpZsGHvjq2X2Fjas8lSXjKVcX3g2W+F+UDmqx8ktWiF9YqfXOjeUgsyuYiSoGZMMYoArT4hXhUnOtUSxU+L6REQ8bFVjc941AILPRip7yKHcr/ZSjp3Xpg5afNA5hpoyGKNVhwzRQhnn5qYJ/I9NXlHKem3yJKOILNzlPKa/8Odj/2W87Ooqpj1D6D1BPMTra/T0hsCF2J2WcxkBHGMesk3Rg4DRldAZyWuDT+D4snKQQCy9DPHuZ4iUWCjmJJfDGO7jHCuO0YeAIGoy0MLhiwiAtGNFwBANtwc09V/J8ZAwH1RwmHy2XaaKXkYDOH6GXJi6jJZ/DVONgLPiLkUKSmHZqOIUaFWrOYuQ6zTjooZ8BBvnMZwYZoJ8eHDRzHSNn548+RQ32UCwgoXxi9ZP3OGikmoucQM0/868DHPjzXs0JLlJNIw7e8zN0Hx7OR2/TjPOV4bkh8zBfGWc6fB+m/A5RgSgQBaJAFIgCUSAKRIH8fyC/AciiLNjwiWANAAAAAElFTkSuQmCC";
3
+ export { brush_pen_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/drawing/felt-pen.png?inline
2
+ var felt_pen_default = "data:image/png;base64,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";
3
+ export { felt_pen_default as default };
@@ -0,0 +1,13 @@
1
+ import type { BrushConfig, BrushesConfig } from "../../types";
2
+ /** Soft, dark pencils */
3
+ export declare const pencil2b: BrushesConfig;
4
+ /** Hard, light pencils */
5
+ export declare const pencilHb: BrushesConfig;
6
+ /** Felt pens: even, nearly solid lines */
7
+ export declare const feltPen: BrushesConfig;
8
+ /** Brush pens: an angled oval tip, so lines are thicker in one direction, tapering with pen pressure */
9
+ export declare const brushPen: BrushesConfig;
10
+ declare const _default: {
11
+ [x: string]: BrushConfig;
12
+ };
13
+ export default _default;
@@ -0,0 +1,88 @@
1
+ import { BUILT_IN_AUTHOR } from "../../authors/index.js";
2
+ import { SmoothingType } from "../../types/index.js";
3
+ import { sizedPresets, spacedBy } from "../sized/index.js";
4
+ import pencil_2b_default from "./pencil-2b.js";
5
+ import pencil_hb_default from "./pencil-hb.js";
6
+ import felt_pen_default from "./felt-pen.js";
7
+ import brush_pen_default from "./brush-pen.js";
8
+ // src/lib/brushes/presets/drawing/index.ts
9
+ /** Settings shared by the pencil and pen presets */
10
+ var DEFAULT_CONFIG = {
11
+ version: "1.0.0",
12
+ author: BUILT_IN_AUTHOR,
13
+ constrainProportions: true,
14
+ sampleRate: 5,
15
+ smoothingType: SmoothingType.BezierCubic
16
+ };
17
+ /**
18
+ * Pencil settings: graphite grain turned at random for each stamp, so it doesn't repeat, and lines that get wider and
19
+ * darker with pen pressure.
20
+ */
21
+ var pencil = (image, alpha) => ({
22
+ ...DEFAULT_CONFIG,
23
+ image,
24
+ alpha,
25
+ rotationConfig: {
26
+ useRandomise: true,
27
+ minRandomise: 0,
28
+ maxRandomise: 1
29
+ },
30
+ widthConfig: {
31
+ usePressure: true,
32
+ minPressure: .5,
33
+ maxPressure: 1
34
+ },
35
+ alphaConfig: {
36
+ usePressure: true,
37
+ minPressure: .4,
38
+ maxPressure: 1
39
+ }
40
+ });
41
+ var PENCIL_SIZES = [
42
+ 1,
43
+ 5,
44
+ 10,
45
+ 20,
46
+ 30,
47
+ 40,
48
+ 50
49
+ ];
50
+ var PEN_SIZES = [
51
+ 5,
52
+ 10,
53
+ 15,
54
+ 20,
55
+ 30,
56
+ 40,
57
+ 50
58
+ ];
59
+ /** Soft, dark pencils */
60
+ var pencil2b = sizedPresets("pencil2b", "2B Pencil", PENCIL_SIZES, pencil(pencil_2b_default, .9), spacedBy(.25));
61
+ /** Hard, light pencils */
62
+ var pencilHb = sizedPresets("pencilHb", "HB Pencil", PENCIL_SIZES, pencil(pencil_hb_default, .6), spacedBy(.25));
63
+ /** Felt pens: even, nearly solid lines */
64
+ var feltPen = sizedPresets("feltPen", "Felt pen", PEN_SIZES, {
65
+ ...DEFAULT_CONFIG,
66
+ image: felt_pen_default,
67
+ alpha: .9,
68
+ smoothingType: SmoothingType.BezierQuad
69
+ }, spacedBy(.05));
70
+ /** Brush pens: an angled oval tip, so lines are thicker in one direction, tapering with pen pressure */
71
+ var brushPen = sizedPresets("brushPen", "Brush pen", PEN_SIZES, {
72
+ ...DEFAULT_CONFIG,
73
+ image: brush_pen_default,
74
+ rotation: -30,
75
+ spacing: 1,
76
+ widthConfig: {
77
+ usePressure: true,
78
+ minPressure: .15,
79
+ maxPressure: 1
80
+ }
81
+ });
82
+ var drawing_default = {
83
+ ...pencil2b,
84
+ ...pencilHb,
85
+ ...feltPen,
86
+ ...brushPen
87
+ };
88
+ export { brushPen, drawing_default as default, feltPen, pencil2b, pencilHb };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/drawing/pencil-2b.png?inline
2
+ var pencil_2b_default = "data:image/png;base64,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";
3
+ export { pencil_2b_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/drawing/pencil-hb.png?inline
2
+ var pencil_hb_default = "data:image/png;base64,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";
3
+ export { pencil_hb_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/painting/grass.png?inline
2
+ var grass_default = "data:image/png;base64,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";
3
+ export { grass_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/painting/hair.png?inline
2
+ var hair_default = "data:image/png;base64,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";
3
+ export { hair_default as default };
@@ -0,0 +1,18 @@
1
+ import type { BrushConfig, BrushesConfig } from "../../types";
2
+ /** Thick paint whose bristles leave streaks along the stroke, narrower with lighter pen pressure */
3
+ export declare const texturedPaint: BrushesConfig;
4
+ /**
5
+ * Watercolour-like washes: faint, uneven stamps that build up where they overlap. Stamps can't mix colours or run, so
6
+ * this only imitates the look.
7
+ */
8
+ export declare const wateryPaint: BrushesConfig;
9
+ /** Splashes of paint, scattered and turned at random */
10
+ export declare const splatter: BrushesConfig;
11
+ /** Fine parallel strands, for hair and fur */
12
+ export declare const hair: BrushesConfig;
13
+ /** Tufts of grass, leaning a little to either side and scattered along the stroke */
14
+ export declare const grass: BrushesConfig;
15
+ declare const _default: {
16
+ [x: string]: BrushConfig;
17
+ };
18
+ export default _default;
@@ -0,0 +1,118 @@
1
+ import { BUILT_IN_AUTHOR } from "../../authors/index.js";
2
+ import { SmoothingType } from "../../types/index.js";
3
+ import { sizedPresets, spacedBy } from "../sized/index.js";
4
+ import textured_paint_default from "./textured-paint.js";
5
+ import watery_paint_default from "./watery-paint.js";
6
+ import splatter_default from "./splatter.js";
7
+ import hair_default from "./hair.js";
8
+ import grass_default from "./grass.js";
9
+ // src/lib/brushes/presets/painting/index.ts
10
+ /** Settings shared by the paint and texture presets */
11
+ var DEFAULT_CONFIG = {
12
+ version: "1.0.0",
13
+ author: BUILT_IN_AUTHOR,
14
+ constrainProportions: true,
15
+ sampleRate: 5,
16
+ smoothingType: SmoothingType.BezierCubic
17
+ };
18
+ /** A random factor from `min` to `max` for each stamp */
19
+ var randomise = (min, max) => ({
20
+ useRandomise: true,
21
+ minRandomise: min,
22
+ maxRandomise: max
23
+ });
24
+ var TEN_TO_A_HUNDRED = [
25
+ 10,
26
+ 20,
27
+ 30,
28
+ 40,
29
+ 50,
30
+ 60,
31
+ 70,
32
+ 80,
33
+ 90,
34
+ 100
35
+ ];
36
+ /** Thick paint whose bristles leave streaks along the stroke, narrower with lighter pen pressure */
37
+ var texturedPaint = sizedPresets("texturedPaint", "Textured paint", [
38
+ 5,
39
+ 10,
40
+ 20,
41
+ 30,
42
+ 40,
43
+ 50,
44
+ 100
45
+ ], {
46
+ ...DEFAULT_CONFIG,
47
+ image: textured_paint_default,
48
+ alpha: .9,
49
+ widthConfig: {
50
+ usePressure: true,
51
+ minPressure: .6,
52
+ maxPressure: 1
53
+ }
54
+ }, spacedBy(.04));
55
+ /**
56
+ * Watercolour-like washes: faint, uneven stamps that build up where they overlap. Stamps can't mix colours or run, so
57
+ * this only imitates the look.
58
+ */
59
+ var wateryPaint = sizedPresets("wateryPaint", "Watery paint", [
60
+ 5,
61
+ 10,
62
+ 20,
63
+ 30,
64
+ 40,
65
+ 50
66
+ ], {
67
+ ...DEFAULT_CONFIG,
68
+ image: watery_paint_default,
69
+ alpha: .2,
70
+ alphaConfig: randomise(.6, 1),
71
+ widthConfig: randomise(.9, 1),
72
+ rotationConfig: randomise(0, 1)
73
+ }, spacedBy(.15));
74
+ /** Splashes of paint, scattered and turned at random */
75
+ var splatter = sizedPresets("splatter", "Splatter", [
76
+ 50,
77
+ 100,
78
+ 150
79
+ ], {
80
+ ...DEFAULT_CONFIG,
81
+ image: splatter_default,
82
+ sampleRate: 30,
83
+ smoothingType: SmoothingType.Linear,
84
+ widthConfig: randomise(.5, 1),
85
+ rotationConfig: randomise(0, 1),
86
+ offsetXConfig: randomise(0, .4),
87
+ offsetYConfig: randomise(0, .4)
88
+ }, spacedBy(.9));
89
+ /** Fine parallel strands, for hair and fur */
90
+ var hair = sizedPresets("hair", "Hair", TEN_TO_A_HUNDRED, {
91
+ ...DEFAULT_CONFIG,
92
+ image: hair_default,
93
+ alpha: .85,
94
+ widthConfig: {
95
+ usePressure: true,
96
+ minPressure: .7,
97
+ maxPressure: 1
98
+ }
99
+ }, spacedBy(.02));
100
+ /** Tufts of grass, leaning a little to either side and scattered along the stroke */
101
+ var grass = sizedPresets("grass", "Grass", TEN_TO_A_HUNDRED, {
102
+ ...DEFAULT_CONFIG,
103
+ image: grass_default,
104
+ sampleRate: 20,
105
+ smoothingType: SmoothingType.Linear,
106
+ rotation: -10,
107
+ rotationConfig: randomise(0, .06),
108
+ widthConfig: randomise(.6, 1),
109
+ offsetXConfig: randomise(0, .25)
110
+ }, spacedBy(.35));
111
+ var painting_default = {
112
+ ...texturedPaint,
113
+ ...wateryPaint,
114
+ ...splatter,
115
+ ...hair,
116
+ ...grass
117
+ };
118
+ export { painting_default as default, grass, hair, splatter, texturedPaint, wateryPaint };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/painting/splatter.png?inline
2
+ var splatter_default = "data:image/png;base64,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";
3
+ export { splatter_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/painting/textured-paint.png?inline
2
+ var textured_paint_default = "data:image/png;base64,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";
3
+ export { textured_paint_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/painting/watery-paint.png?inline
2
+ var watery_paint_default = "data:image/png;base64,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";
3
+ export { watery_paint_default as default };
@@ -0,0 +1,9 @@
1
+ import type { BrushConfig, BrushesConfig } from "../../types";
2
+ /** Hard round brushes */
3
+ export declare const round: BrushesConfig;
4
+ /** Soft-edged round brushes, for shading. Stamps are about a quarter of the size apart: closer, the soft edges add up and look hard. */
5
+ export declare const softRound: BrushesConfig;
6
+ declare const _default: {
7
+ [x: string]: BrushConfig;
8
+ };
9
+ export default _default;
@@ -0,0 +1,44 @@
1
+ import { BUILT_IN_AUTHOR } from "../../authors/index.js";
2
+ import { sizedPresets } from "../sized/index.js";
3
+ import round_default$1 from "./round.js";
4
+ import soft_round_default from "./soft-round.js";
5
+ // src/lib/brushes/presets/round/index.ts
6
+ /** Settings shared by the round presets */
7
+ var DEFAULT_CONFIG = {
8
+ version: "1.0.0",
9
+ author: BUILT_IN_AUTHOR,
10
+ constrainProportions: true
11
+ };
12
+ /** Hard round brushes */
13
+ var round = sizedPresets("round", "Round", [
14
+ 1,
15
+ 5,
16
+ 10,
17
+ 20,
18
+ 50
19
+ ], {
20
+ ...DEFAULT_CONFIG,
21
+ image: round_default$1,
22
+ sampleRate: 20,
23
+ spacing: 1
24
+ });
25
+ /** Soft-edged round brushes, for shading. Stamps are about a quarter of the size apart: closer, the soft edges add up and look hard. */
26
+ var softRound = sizedPresets("softRound", "Soft round", [
27
+ 5,
28
+ 10,
29
+ 20,
30
+ 30,
31
+ 40,
32
+ 50,
33
+ 100,
34
+ 150
35
+ ], {
36
+ ...DEFAULT_CONFIG,
37
+ image: soft_round_default,
38
+ sampleRate: 5
39
+ }, (size) => ({ spacing: Math.max(1, Math.round(size / 4)) }));
40
+ var round_default = {
41
+ ...round,
42
+ ...softRound
43
+ };
44
+ export { round_default as default, round, softRound };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/round/round.png?inline
2
+ var round_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAEjUlEQVR42t3cP0wTbxjA8W8uOBATHFoSWGxSF5hMZCgLJOhi4p8ETaxjy6BLSdEEhjaxrQkOkgiGLjrQjtZEScTBRUnoAgODEyyStAsklMEmxkEGqe+vv/bo9Xpt73r33jOWf/dJr+/zPO9zLwrWhIdr3CJElBgJEsSIEuIW1/BY8wcVU3/bCCFW2eKYErt8JsMKiyRJssgKGT6zS4ljtlglxIjzIP08YI0Ce2SIMIFX97u9TBAhwx4F1nhAvzMg07yjTI4wl9v+2cuEyVHmHdN2QoZIUOAjQfq6uoY+gnykQIKh3kP8rHJIsoN3ofm7k+SQVfy9g3h4xQ8iliw+EX7wqpOVrX1IlAOeYGU84YCotZAAW6wwgNUxwApbBKyCxNhmgl7FBNvEzIcM8ekstfU6FvlkdCUzBplihzvYEXfYYcosSIhvJi6z7S/L3wiZAZkng92RYb5bSIKXOCFekugGkjirXJ0SSX2KontTOYchKPOdQEIOuanUN1ioXciUAz7i2h/7qXYgQ2RxamS1U6Q25K2NeaN1XnlrFBKzKYsbz/YxI5CADTVV+zVYoDVkCRliqRUk2sNCvbsiP6oH8fAcWeK5uiFWQ+I96P7M6yLjzSB+i3tx83t7vzZELsa5K1bqsnlEOkikluVrkMfIGI8bITNSQmbOQ6YdXF3pV17TakgQWSNYD+nnvrSQ+2K+ovxXT/ZJC+kTtbqA3ETmuFmD3JAacqMKGZF0xaqtXCMCMo7sMS4gY9JDxgTkqvSQqwIyKj1ktALxtBjvyxBePAo+3BA+hWFXQIYVBl0BGVS45ArIJYWLroBcVLjgCsgFBZeEwh9XOP4o/HIF5JfCT1dAfiocuwJyrHDoCsihQsEVkILCCSXpGSVOKnlkT3rInmisvksP+S4gu9JDdgVkW3rItoDsU5SaUWS/utP4VWrIV/7fMv0iNeRLDbLBqbSMUzZqkN98kBbygd/UTaxy0kJy1cZKxLqkK1eRdTUE1qSErNVa3Wq8kRLyphFyRFo6RpqjRggsSwepu+J6yIFklGUOtCGVZwXL0jDK6mcv1ZATnkkDecZJcwi8Ji8FI89r9QuNW6bzUkAarrIRsqN+VtCREWenNQReiHrSsbHBi8YXtXfjHzm48irySOtlbciRkeNZNkWols1bQ2CTsCMZYTa1v9B80JNlwXGMhebnWvQmVkuOO2OlcwBBf/SWctSpt5Tel1vNEFMOucEW9BlGToYuOeBjH259qsXIVDfLdRvzSpHrRo6uGRtPbxKwKdtvEGi24HYCqaTIuzbUYHHuaqe/ziGiBhvvYZGfZ1yrpjIDUqmMJ5nrQRdZZo7JxgrXPIhovfwW9/bL+M+3TVZAKg3xU65YtHmU5gpP1U2sdRCx4zLLMEkTl+UiSYaZrd8Z6QVErGQpfNwj1+VQ4pQc9/CRMrpCmQ0Rsc5DBgiS6eDdKZIhyAAPq1vRdkL4N195zww+RgmTJt/iEYQSedKEGcXHDO/FfMMZkGrsk2WWSQbxMsZtwsydpdHKfzyLM0eY24zhZZBJZslWRpjmxV9dFvF5fu/ZPAAAAABJRU5ErkJggg==";
3
+ export { round_default as default };
@@ -0,0 +1,3 @@
1
+ // src/lib/brushes/presets/round/soft-round.png?inline
2
+ var soft_round_default = "data:image/png;base64,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";
3
+ export { soft_round_default as default };
@@ -0,0 +1,20 @@
1
+ import type { BrushConfig, BrushesConfig } from "../../types";
2
+ /** Settings that depend on a preset's size */
3
+ export type PerSize = (size: number) => Partial<BrushConfig>;
4
+ /**
5
+ * Make a family of presets, one per size, from the family's default config. IDs are the prefix and the size (e.g.
6
+ * "round10"), names the family's name and the size (e.g. "Round 10px"), and the family's name is their group.
7
+ *
8
+ * @param perSize - settings that depend on the size (e.g. spacing)
9
+ * @example
10
+ * sizedPresets("round", "Round", [1, 5], { image: ROUND_IMAGE }, (size) => ({ spacing: size }));
11
+ * // { round1: { id: "round1", name: "Round 1px", group: "Round", width: 1, height: 1, spacing: 1, ... }, round5: ... }
12
+ */
13
+ export declare const sizedPresets: (idPrefix: string, name: string, sizes: number[], defaults: Partial<BrushConfig>, perSize?: PerSize) => BrushesConfig;
14
+ /**
15
+ * Space stamps by a fraction of the size, at least 1 pixel apart.
16
+ *
17
+ * @example
18
+ * spacedBy(0.25)(40); // { spacing: 10 }
19
+ */
20
+ export declare const spacedBy: (fraction: number) => PerSize;
@@ -0,0 +1,30 @@
1
+ // src/lib/brushes/presets/sized/index.ts
2
+ /**
3
+ * Make a family of presets, one per size, from the family's default config. IDs are the prefix and the size (e.g.
4
+ * "round10"), names the family's name and the size (e.g. "Round 10px"), and the family's name is their group.
5
+ *
6
+ * @param perSize - settings that depend on the size (e.g. spacing)
7
+ * @example
8
+ * sizedPresets("round", "Round", [1, 5], { image: ROUND_IMAGE }, (size) => ({ spacing: size }));
9
+ * // { round1: { id: "round1", name: "Round 1px", group: "Round", width: 1, height: 1, spacing: 1, ... }, round5: ... }
10
+ */
11
+ var sizedPresets = (idPrefix, name, sizes, defaults, perSize = () => ({})) => Object.fromEntries(sizes.map((size) => {
12
+ const id = `${idPrefix}${size}`;
13
+ return [id, {
14
+ ...defaults,
15
+ id,
16
+ name: `${name} ${size}px`,
17
+ group: name,
18
+ width: size,
19
+ height: size,
20
+ ...perSize(size)
21
+ }];
22
+ }));
23
+ /**
24
+ * Space stamps by a fraction of the size, at least 1 pixel apart.
25
+ *
26
+ * @example
27
+ * spacedBy(0.25)(40); // { spacing: 10 }
28
+ */
29
+ var spacedBy = (fraction) => (size) => ({ spacing: Math.max(1, Math.round(size * fraction)) });
30
+ export { sizedPresets, spacedBy };
@@ -0,0 +1,14 @@
1
+ import type { BrushConfig, BrushesConfig } from "../../types";
2
+ /** Thin pencil that gets wider and darker with pen pressure */
3
+ export declare const pencil: BrushConfig;
4
+ /** Ink pen with strong pressure taper */
5
+ export declare const inkPen: BrushConfig;
6
+ /** Scattered dots of varying size, for texture */
7
+ export declare const stipple: BrushConfig;
8
+ /** Flat angled nib; with a pen, the angle follows the pen's tilt */
9
+ export declare const calligraphy: BrushConfig;
10
+ /** Semi-transparent marker: overlapping parts of one stroke stay even, separate strokes build up */
11
+ export declare const marker: BrushConfig;
12
+ /** Presets for sketching and for testing how drawing feels */
13
+ export declare const sketching: BrushesConfig;
14
+ export default sketching;