@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,221 @@
1
+ import { PcElement } from "../../base";
2
+ import { BlendMode, type default as Layer } from "../../../lib/classes/Layer";
3
+ import type LayerStack from "../../../lib/classes/LayerStack";
4
+ import "../PcDialog";
5
+ import { type DialogChoice } from "../PcDialog";
6
+ import type BackgroundWork from "../../../lib/classes/BackgroundWork";
7
+ /** Blend mode options shown in the layer's select input */
8
+ export declare const BLEND_MODE_OPTIONS: readonly {
9
+ value: BlendMode;
10
+ label: string;
11
+ }[];
12
+ /** Actions in the reorder handle's context menu */
13
+ export type LayerAction = "mask" | "duplicate" | "merge" | "clear" | "delete" | "up" | "top" | "down" | "bottom";
14
+ /** Context menu options in display order, with the translation keys of their labels */
15
+ export declare const LAYER_ACTIONS: readonly {
16
+ action: LayerAction;
17
+ label: string;
18
+ }[];
19
+ /** Context menu actions that ask first */
20
+ export type ConfirmedAction = "merge" | "clear" | "delete";
21
+ /**
22
+ * What the user is asked before each confirmed action: the dialog's heading and message, and its choices (the first
23
+ * does the action), as translation keys. The message is given the layer's `name`.
24
+ */
25
+ export declare const CONFIRMATIONS: Readonly<Record<ConfirmedAction, {
26
+ heading: string;
27
+ message: string;
28
+ choices: readonly DialogChoice[];
29
+ }>>;
30
+ /** Thumbnail size in CSS pixels */
31
+ export declare const THUMBNAIL_SIZE = 30;
32
+ /** Checkerboard square size in thumbnail pixels */
33
+ export declare const THUMBNAIL_CHECKER_SIZE = 5;
34
+ /** Event a row dispatches when it opens its context menu, so other rows close theirs */
35
+ export declare const LAYER_MENU_OPEN_EVENT = "pc-layer-menu-open";
36
+ /** Event a row dispatches to ask for a mask from the layer's alpha (Cmd/Ctrl + click on the thumbnail or name, or "Create mask") */
37
+ export declare const LAYER_ALPHA_MASK_EVENT = "pc-layer-alpha-mask";
38
+ /** Details of an alpha mask request */
39
+ export interface LayerAlphaMaskDetail {
40
+ layer: Layer;
41
+ shiftKey: boolean;
42
+ altKey: boolean;
43
+ }
44
+ /** How far (CSS pixels) the pointer moves on the reorder handle before it drags the layer, rather than opening the menu */
45
+ export declare const DRAG_THRESHOLD = 4;
46
+ /** Event a row dispatches while its layer is dragged by its reorder handle (detail: {@link LayerDragDetail}) */
47
+ export declare const LAYER_DRAG_EVENT = "pc-layer-drag";
48
+ /** What the layer being dragged would do if dropped where the pointer is */
49
+ export type LayerDropAction = "move" | "duplicate" | "none";
50
+ /** Details of a drag of a layer by its reorder handle */
51
+ export interface LayerDragDetail {
52
+ layer: Layer;
53
+ /** The drag started, moved, ended (dropped) or was cancelled (Escape, or the browser cancelled the pointer) */
54
+ phase: "start" | "move" | "end" | "cancel";
55
+ /** The pointer's position in the viewport, in CSS pixels */
56
+ x: number;
57
+ y: number;
58
+ }
59
+ /** Space kept between the layer actions menu and the window's edges */
60
+ export declare const MENU_MARGIN = 8;
61
+ /**
62
+ * Where the layer actions menu's top goes: level with the handle, moved up as far as needed to stay in the window
63
+ * (but never above its top margin).
64
+ *
65
+ * @example
66
+ * menuTop(700, 300, 800); // 492 (moved up to fit)
67
+ * menuTop(100, 300, 800); // 100
68
+ */
69
+ export declare const menuTop: (anchorTop: number, menuHeight: number, viewportHeight: number, margin?: number) => number;
70
+ /**
71
+ * One row in the layers menu: reorder handle, thumbnail and name (then opacity and blend mode under them), alpha lock (padlock) and visibility (eye) icons.
72
+ * Dragging the handle (with mouse, pen or touch) reorders the layer: the row fires {@link LAYER_DRAG_EVENT} and the
73
+ * layers menu shows where it will land. Clicking or tapping the handle, pressing Enter or Space on it, or right-clicking
74
+ * it opens the layer's actions menu (which can also reorder it). Cmd/Ctrl + click on the thumbnail or name (or "Create
75
+ * mask" in the menu) makes a mask from the layer's pixels. "Merge down…" asks first, then merges the layer into the one
76
+ * under it (not offered for the bottom layer, or when either is hidden).
77
+ *
78
+ * @example
79
+ * html`<pc-layer-item .stack=${stack} .layer=${layer}></pc-layer-item>`
80
+ */
81
+ export declare class PcLayerItem extends PcElement {
82
+ static properties: {
83
+ stack: {
84
+ attribute: boolean;
85
+ };
86
+ layer: {
87
+ attribute: boolean;
88
+ };
89
+ background: {
90
+ attribute: boolean;
91
+ };
92
+ menuOpen: {
93
+ state: boolean;
94
+ };
95
+ confirming: {
96
+ state: boolean;
97
+ };
98
+ dragging: {
99
+ type: BooleanConstructor;
100
+ reflect: boolean;
101
+ };
102
+ dropAction: {
103
+ attribute: string;
104
+ reflect: boolean;
105
+ };
106
+ translations: {
107
+ attribute: boolean;
108
+ };
109
+ icons: {
110
+ attribute: boolean;
111
+ };
112
+ theme: {
113
+ type: StringConstructor;
114
+ reflect: boolean;
115
+ };
116
+ };
117
+ static styles: import("lit").CSSResultGroup[];
118
+ stack?: LayerStack;
119
+ layer?: Layer;
120
+ /** Waits for pauses in drawing to redraw the thumbnail; without it, the thumbnail redraws straight away */
121
+ background?: BackgroundWork;
122
+ /** Whether the reorder handle's context menu is open */
123
+ menuOpen: boolean;
124
+ /** The action the user is being asked to confirm, if any */
125
+ confirming?: ConfirmedAction;
126
+ /** Whether this row's layer is being dragged (set by the layers menu; the row floats with the pointer) */
127
+ dragging: boolean;
128
+ /** While this row's layer is dragged: what dropping it now would do (set by the layers menu; shown by the cursor) */
129
+ dropAction?: LayerDropAction | undefined;
130
+ /** The pointer pressed on the reorder handle, where it was pressed, and whether it has started dragging */
131
+ private press?;
132
+ /** Whether to ignore the next click on the handle (it ended a drag) */
133
+ private suppressClick;
134
+ private changes;
135
+ /** Device pixels per CSS pixel (replaceable for tests) */
136
+ pixelRatio: () => number;
137
+ constructor();
138
+ /**
139
+ * Run a context menu action. Merging down, clearing and deleting ask for confirmation first (see `confirmed`).
140
+ */
141
+ runAction(action: LayerAction): void;
142
+ /**
143
+ * Whether a context menu action can be done to the layer now: not merging down the bottom layer (or with a hidden
144
+ * layer), deleting the only layer, or moving a layer further up or down than it can go.
145
+ */
146
+ canRun(action: LayerAction): boolean;
147
+ /**
148
+ * Do an action the user confirmed.
149
+ */
150
+ confirmed(action: ConfirmedAction): void;
151
+ private readonly onOutsidePointer;
152
+ private readonly onKeyDown;
153
+ /**
154
+ * Open the context menu on right-click, or close it if open.
155
+ */
156
+ private onContextMenu;
157
+ /**
158
+ * Open the context menu on a click or tap on the handle (or Enter or Space), or close it if open; a click that ends a
159
+ * drag does nothing.
160
+ */
161
+ private onHandleClick;
162
+ /**
163
+ * Open the context menu (closing other rows' menus), or close it if open.
164
+ */
165
+ private toggleMenu;
166
+ disconnectedCallback(): void;
167
+ /** Tell the layers menu about a drag of this row's layer */
168
+ private emitDrag;
169
+ /**
170
+ * Press on the reorder handle: follow the pointer, which drags once it has moved far enough. The pointer is followed
171
+ * on the whole window, as browsers don't always grant pointer capture; it is asked for too, so a touch keeps dragging
172
+ * after leaving the handle.
173
+ */
174
+ private onHandlePointerDown;
175
+ /**
176
+ * Start dragging once the pointer has moved {@link DRAG_THRESHOLD} pixels, then report where it is.
177
+ */
178
+ private readonly onHandlePointerMove;
179
+ /**
180
+ * Drop the layer where the pointer is, if it was dragged (a press without dragging opens the menu, on its click).
181
+ */
182
+ private readonly onHandlePointerUp;
183
+ /**
184
+ * Cancel a drag when the browser cancels the pointer (e.g. a system gesture).
185
+ */
186
+ private readonly onHandlePointerCancel;
187
+ /** Escape cancels a drag, leaving the layer where it was */
188
+ private readonly onDragKeyDown;
189
+ /** Stop following the pointer pressed on the handle */
190
+ private endPress;
191
+ /**
192
+ * Start or stop listening for clicks outside and Escape while the menu is open.
193
+ */
194
+ private listenOutside;
195
+ private readonly onScroll;
196
+ /**
197
+ * Place the open layer actions menu beside the reorder handle, floating over the layers panel (so the panel's edges
198
+ * don't cut it off) and kept within the window.
199
+ */
200
+ private placeMenu;
201
+ /**
202
+ * Ask for a mask following the layer's alpha (Shift adds, Alt subtracts; otherwise it replaces the mask).
203
+ */
204
+ private requestMask;
205
+ /**
206
+ * Clicking the row selects the layer. Cmd/Ctrl + click on the thumbnail or name also makes a mask from the layer's alpha.
207
+ */
208
+ private onRowClick;
209
+ /**
210
+ * Rename a layer when the name input changes. Empty names are reverted.
211
+ */
212
+ private onRename;
213
+ updated(changed: Map<PropertyKey, unknown>): void;
214
+ /**
215
+ * Draw the layer's image, scaled to fit, on a checkerboard that shows transparency.
216
+ */
217
+ drawThumbnail(): void;
218
+ /** The dialog asking the user to confirm an action, while asking */
219
+ private renderConfirmation;
220
+ render(): import("lit").TemplateResult<1>;
221
+ }