@lvl99dotcom/paintcanvas 0.3.0 → 0.4.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.
- package/README.md +1 -1
- package/dist/lib/brushes/StrokeEngine/index.d.ts +2 -2
- package/dist/lib/brushes/StrokeEngine/index.js +26 -28
- package/dist/lib/classes/BrushSettings/index.d.ts +24 -0
- package/dist/lib/classes/BrushSettings/index.js +35 -1
- package/dist/lib/classes/KeyboardShortcuts/index.d.ts +17 -6
- package/dist/lib/classes/KeyboardShortcuts/index.js +81 -18
- package/dist/lib/classes/PaintCanvas/index.d.ts +77 -27
- package/dist/lib/classes/PaintCanvas/index.js +143 -42
- package/dist/lib/classes/PaintCanvas/tool.d.ts +15 -0
- package/dist/lib/classes/PaintCanvas/tool.js +18 -0
- package/dist/lib/classes/Palette/index.d.ts +58 -0
- package/dist/lib/classes/Palette/index.js +92 -0
- package/dist/lib/classes/SettingsAutosave/index.d.ts +52 -0
- package/dist/lib/classes/SettingsAutosave/index.js +96 -0
- package/dist/lib/classes/ShortcutSettings/index.d.ts +63 -0
- package/dist/lib/classes/ShortcutSettings/index.js +110 -0
- package/dist/lib/palette/index.d.ts +49 -0
- package/dist/lib/palette/index.js +82 -0
- package/dist/lib/palette/schema.d.ts +45 -0
- package/dist/lib/palette/schema.js +41 -0
- package/dist/lib/rendering/cursors/index.d.ts +2 -0
- package/dist/lib/rendering/cursors/index.js +3 -1
- package/dist/lib/rendering/sample/index.js +3 -2
- package/dist/lib/settings/index.d.ts +63 -0
- package/dist/lib/settings/index.js +91 -0
- package/dist/lib/settings/schema.d.ts +150 -0
- package/dist/lib/settings/schema.js +102 -0
- package/dist/lib/storage/index.d.ts +36 -5
- package/dist/lib/storage/index.js +87 -29
- package/dist/lib/utils/colour/index.d.ts +72 -0
- package/dist/lib/utils/colour/index.js +154 -0
- package/dist/lib/utils/shortcuts/index.d.ts +174 -11
- package/dist/lib/utils/shortcuts/index.js +391 -145
- package/dist/lib/validation/validators.generated.d.ts +5 -0
- package/dist/lib/validation/validators.generated.js +872 -1
- package/dist/locales/en-GB.js +87 -1
- package/dist/locales/en-US.js +87 -1
- package/dist/locales/fr.js +87 -1
- package/dist/locales/ja.js +87 -1
- package/dist/locales/ko.js +87 -1
- package/dist/locales/zh-Hans.js +87 -1
- package/dist/locales/zh-Hant.js +87 -1
- package/dist/package.js +1 -1
- package/dist/ui/elements/PaintCanvas/index.d.ts +49 -47
- package/dist/ui/elements/PaintCanvas/index.js +128 -169
- package/dist/ui/elements/PaintCanvas/style.js +1 -1
- package/dist/ui/elements/PcAppSettings/index.d.ts +59 -0
- package/dist/ui/elements/PcAppSettings/index.js +222 -0
- package/dist/ui/elements/PcBrushConfig/index.js +1 -0
- package/dist/ui/elements/PcButton/index.js +1 -0
- package/dist/ui/elements/PcCanvas/index.d.ts +1 -1
- package/dist/ui/elements/PcCanvas/index.js +7 -5
- package/dist/ui/elements/PcColourPair/index.d.ts +43 -0
- package/dist/ui/elements/PcColourPair/index.js +125 -0
- package/dist/ui/elements/PcContextMenu/index.d.ts +70 -33
- package/dist/ui/elements/PcContextMenu/index.js +128 -97
- package/dist/ui/elements/PcDialog/index.js +1 -0
- package/dist/ui/elements/PcIconToggle/index.js +1 -0
- package/dist/ui/elements/PcLayerItem/index.d.ts +13 -34
- package/dist/ui/elements/PcLayerItem/index.js +39 -91
- package/dist/ui/elements/PcLayerItem/style.js +1 -1
- package/dist/ui/elements/PcMenu/index.d.ts +93 -0
- package/dist/ui/elements/PcMenu/index.js +204 -0
- package/dist/ui/elements/PcPane/index.d.ts +118 -0
- package/dist/ui/elements/PcPane/index.js +357 -0
- package/dist/ui/elements/PcPanel/index.d.ts +26 -8
- package/dist/ui/elements/PcPanel/index.js +76 -8
- package/dist/ui/elements/{PcBrushMenu → PcPanelBrushes}/index.d.ts +20 -6
- package/dist/ui/elements/{PcBrushMenu → PcPanelBrushes}/index.js +20 -15
- package/dist/ui/elements/PcPanelBrushes/style.js +3 -0
- package/dist/ui/elements/PcPanelColours/index.d.ts +171 -0
- package/dist/ui/elements/PcPanelColours/index.js +650 -0
- package/dist/ui/elements/PcPanelColours/style.js +3 -0
- package/dist/ui/elements/{PcLayersMenu → PcPanelLayers}/index.d.ts +17 -4
- package/dist/ui/elements/{PcLayersMenu → PcPanelLayers}/index.js +17 -10
- package/dist/ui/elements/PcPanelLayers/style.js +3 -0
- package/dist/ui/elements/PcShortcutSettings/index.d.ts +69 -0
- package/dist/ui/elements/PcShortcutSettings/index.js +273 -0
- package/dist/ui/elements/PcThemePicker/index.js +1 -0
- package/dist/ui/elements/PcToast/index.js +1 -0
- package/dist/ui/elements/PcToolSettings/index.js +2 -1
- package/dist/ui/elements/PcToolbar/index.d.ts +47 -12
- package/dist/ui/elements/PcToolbar/index.js +77 -56
- package/dist/ui/elements/PcToolbar/style.js +1 -1
- package/dist/ui/index.d.ts +7 -1
- package/dist/ui/index.js +8 -2
- package/dist/ui/tokens/index.js +3 -1
- package/locales/en-GB.json +87 -1
- package/locales/en-US.json +87 -1
- package/locales/fr.json +87 -1
- package/locales/ja.json +87 -1
- package/locales/ko.json +87 -1
- package/locales/zh-Hans.json +87 -1
- package/locales/zh-Hant.json +87 -1
- package/package.json +1 -1
- package/dist/ui/elements/PcBrushMenu/style.js +0 -3
- package/dist/ui/elements/PcLayersMenu/style.js +0 -3
|
@@ -1,86 +1,93 @@
|
|
|
1
|
+
import { Tool } from "../../../lib/classes/PaintCanvas/tool.js";
|
|
1
2
|
import style_default from "./style.js";
|
|
2
3
|
import { NO_TEXT_SELECTION_CSS } from "../../styles/index.js";
|
|
3
|
-
import {
|
|
4
|
+
import { defineElement } from "../../base/index.js";
|
|
5
|
+
import { PcPane } from "../PcPane/index.js";
|
|
4
6
|
import ChangeController from "../../ChangeController/index.js";
|
|
5
|
-
import { Panel
|
|
6
|
-
import { cmdSymbol } from "../../../lib/utils/shortcuts/index.js";
|
|
7
|
+
import { Panel } from "../../../lib/classes/PaintCanvas/index.js";
|
|
8
|
+
import { cmdSymbol, shortcutLabel } from "../../../lib/utils/shortcuts/index.js";
|
|
9
|
+
import "../PcColourPair/index.js";
|
|
7
10
|
import { html, nothing, unsafeCSS } from "lit";
|
|
8
11
|
// src/ui/elements/PcToolbar/index.ts
|
|
9
|
-
/** Toolbar buttons in display order: tool, icon name, translation key of its name, and its keyboard shortcut */
|
|
12
|
+
/** Toolbar buttons in display order: tool, icon name, translation key of its name, and its keyboard shortcut action */
|
|
10
13
|
var TOOLBAR_TOOLS = [
|
|
11
14
|
{
|
|
12
15
|
tool: Tool.Brush,
|
|
13
16
|
icon: "brush",
|
|
14
17
|
name: "paintCanvas.tool.brush",
|
|
15
|
-
|
|
18
|
+
shortcutId: "tool-brush"
|
|
16
19
|
},
|
|
17
20
|
{
|
|
18
21
|
tool: Tool.Eraser,
|
|
19
22
|
icon: "eraser",
|
|
20
23
|
name: "paintCanvas.tool.eraser",
|
|
21
|
-
|
|
24
|
+
shortcutId: "tool-eraser"
|
|
22
25
|
},
|
|
23
26
|
{
|
|
24
27
|
tool: Tool.Move,
|
|
25
28
|
icon: "cursor",
|
|
26
29
|
name: "paintCanvas.tool.move",
|
|
27
|
-
|
|
30
|
+
shortcutId: "tool-move"
|
|
28
31
|
},
|
|
29
32
|
{
|
|
30
33
|
tool: Tool.RectangleLasso,
|
|
31
34
|
icon: "rectangleMask",
|
|
32
35
|
name: "paintCanvas.tool.rectangleLasso",
|
|
33
|
-
|
|
36
|
+
shortcutId: "tool-rectangle-mask"
|
|
34
37
|
},
|
|
35
38
|
{
|
|
36
39
|
tool: Tool.CircleLasso,
|
|
37
40
|
icon: "circleMask",
|
|
38
41
|
name: "paintCanvas.tool.circleLasso",
|
|
39
|
-
|
|
42
|
+
shortcutId: "tool-circle-mask"
|
|
40
43
|
},
|
|
41
44
|
{
|
|
42
45
|
tool: Tool.PolygonLasso,
|
|
43
46
|
icon: "polygonMask",
|
|
44
47
|
name: "paintCanvas.tool.polygonLasso",
|
|
45
|
-
|
|
48
|
+
shortcutId: "tool-polygon-mask"
|
|
46
49
|
},
|
|
47
50
|
{
|
|
48
51
|
tool: Tool.FreeformLasso,
|
|
49
52
|
icon: "freehandMask",
|
|
50
53
|
name: "paintCanvas.tool.freeformLasso",
|
|
51
|
-
|
|
54
|
+
shortcutId: "tool-freehand-mask"
|
|
52
55
|
},
|
|
53
56
|
{
|
|
54
57
|
tool: Tool.Pan,
|
|
55
58
|
icon: "pan",
|
|
56
59
|
name: "paintCanvas.tool.pan",
|
|
57
|
-
|
|
60
|
+
shortcutId: "pan"
|
|
58
61
|
},
|
|
59
62
|
{
|
|
60
63
|
tool: Tool.Zoom,
|
|
61
64
|
icon: "zoom",
|
|
62
65
|
name: "paintCanvas.tool.zoom",
|
|
63
|
-
|
|
66
|
+
shortcutId: "tool-zoom"
|
|
64
67
|
},
|
|
65
68
|
{
|
|
66
69
|
tool: Tool.ColourSample,
|
|
67
70
|
icon: "eyedropper",
|
|
68
71
|
name: "paintCanvas.tool.colourSample",
|
|
69
|
-
|
|
72
|
+
shortcutId: "tool-colour-sample"
|
|
70
73
|
}
|
|
71
74
|
];
|
|
72
75
|
/**
|
|
73
|
-
* Vertical toolbar:
|
|
74
|
-
* toggle (unless `layers` is false) and app menu toggle.
|
|
75
|
-
*
|
|
76
|
-
*
|
|
76
|
+
* Vertical toolbar: the foreground and background colours, tools, undo and redo (disabled when there is nothing to undo
|
|
77
|
+
* or redo), layers menu toggle (unless `layers` is false) and app menu toggle. Pressing a colour selects it and opens the
|
|
78
|
+
* colour palette (if it isn't open). Tools, undo, redo and the layers toggle show
|
|
79
|
+
* their icons; tools have the user's keyboard shortcuts in their tooltips, and undo and redo theirs (⌘ on Apple
|
|
80
|
+
* devices, ^ elsewhere). The app menu button shows `menuText` and is named `menuLabel` for screen readers.
|
|
81
|
+
*
|
|
82
|
+
* It's a `PcPane`: the colours and tools are at its start, and undo, redo, the layers toggle and the app menu toggle at
|
|
83
|
+
* its end, after anything slotted there.
|
|
77
84
|
*
|
|
78
85
|
* @example
|
|
79
86
|
* html`<pc-toolbar .app=${app} menuText="App" menuLabel="App menu"></pc-toolbar>`
|
|
80
87
|
*/
|
|
81
|
-
var PcToolbar = class extends
|
|
88
|
+
var PcToolbar = class extends PcPane {
|
|
82
89
|
static properties = {
|
|
83
|
-
...
|
|
90
|
+
...PcPane.properties,
|
|
84
91
|
app: { attribute: false },
|
|
85
92
|
menuText: { type: String },
|
|
86
93
|
menuLabel: { type: String },
|
|
@@ -88,7 +95,7 @@ var PcToolbar = class extends PcElement {
|
|
|
88
95
|
layers: { type: Boolean }
|
|
89
96
|
};
|
|
90
97
|
static styles = [
|
|
91
|
-
|
|
98
|
+
...PcPane.styles,
|
|
92
99
|
unsafeCSS(NO_TEXT_SELECTION_CSS),
|
|
93
100
|
unsafeCSS(style_default)
|
|
94
101
|
];
|
|
@@ -98,7 +105,11 @@ var PcToolbar = class extends PcElement {
|
|
|
98
105
|
this.menu = true;
|
|
99
106
|
this.layers = true;
|
|
100
107
|
}
|
|
101
|
-
changes = new ChangeController(this, () => [
|
|
108
|
+
changes = new ChangeController(this, () => [
|
|
109
|
+
this.app,
|
|
110
|
+
this.app?.history,
|
|
111
|
+
this.app?.shortcuts
|
|
112
|
+
]);
|
|
102
113
|
/**
|
|
103
114
|
* Select a tool (the brush and eraser presets open from the settings bar, not here).
|
|
104
115
|
*/
|
|
@@ -106,43 +117,54 @@ var PcToolbar = class extends PcElement {
|
|
|
106
117
|
this.app?.selectTool(tool, { fromToolbar: true });
|
|
107
118
|
}
|
|
108
119
|
/**
|
|
109
|
-
*
|
|
120
|
+
* Select the pressed colour, and open the colour palette if it isn't open.
|
|
110
121
|
*/
|
|
111
|
-
|
|
112
|
-
this.app
|
|
122
|
+
onColourClick(event) {
|
|
123
|
+
const app = this.app;
|
|
124
|
+
app.selectColour(event.detail.slot);
|
|
125
|
+
if (app.panel !== Panel.Palette) app.togglePanel(Panel.Palette);
|
|
126
|
+
}
|
|
127
|
+
/** A tool's name, with its keyboard shortcut if it has one */
|
|
128
|
+
toolLabel(app, name, shortcutId) {
|
|
129
|
+
const combo = app.shortcuts.combo(shortcutId);
|
|
130
|
+
return combo ? this.t("paintCanvas.tool.withShortcut", {
|
|
131
|
+
tool: this.t(name),
|
|
132
|
+
shortcut: shortcutLabel(combo)
|
|
133
|
+
}) : this.t(name);
|
|
134
|
+
}
|
|
135
|
+
/** The colours and tools */
|
|
136
|
+
renderStart() {
|
|
137
|
+
const app = this.app;
|
|
138
|
+
if (!app) return nothing;
|
|
139
|
+
return html`<pc-colour-pair
|
|
140
|
+
.app=${app}
|
|
141
|
+
@pc-colour-click=${this.onColourClick}
|
|
142
|
+
></pc-colour-pair>
|
|
143
|
+
${TOOLBAR_TOOLS.map(({ tool, icon, name, shortcutId }) => {
|
|
144
|
+
const label = this.toolLabel(app, name, shortcutId);
|
|
145
|
+
return html`<button
|
|
146
|
+
type="button"
|
|
147
|
+
data-tool=${tool}
|
|
148
|
+
title=${label}
|
|
149
|
+
aria-label=${label}
|
|
150
|
+
aria-pressed=${app.tool === tool}
|
|
151
|
+
@click=${() => this.onToolClick(tool)}
|
|
152
|
+
>
|
|
153
|
+
<img src=${this.iconUrl(icon)} alt="" />
|
|
154
|
+
</button>`;
|
|
155
|
+
})}`;
|
|
156
|
+
}
|
|
157
|
+
/** The space between the tools and the end */
|
|
158
|
+
renderMiddle() {
|
|
159
|
+
return html`<div class="spacer"></div>`;
|
|
113
160
|
}
|
|
114
|
-
|
|
161
|
+
/** Undo, redo, and the layers and app menu toggles */
|
|
162
|
+
renderEnd() {
|
|
115
163
|
const app = this.app;
|
|
116
|
-
if (!app) return
|
|
164
|
+
if (!app) return nothing;
|
|
117
165
|
const cmd = cmdSymbol();
|
|
118
166
|
const cmdKey = cmd === "⌘" ? "Meta" : "Control";
|
|
119
|
-
return html
|
|
120
|
-
<input
|
|
121
|
-
type="color"
|
|
122
|
-
aria-label=${this.t("paintCanvas.toolbar.currentColour")}
|
|
123
|
-
.value=${app.colour}
|
|
124
|
-
@input=${this.onColourInput}
|
|
125
|
-
/>
|
|
126
|
-
${TOOLBAR_TOOLS.map(({ tool, icon, name, shortcut }) => {
|
|
127
|
-
const label = this.t("paintCanvas.tool.withShortcut", {
|
|
128
|
-
tool: this.t(name),
|
|
129
|
-
shortcut
|
|
130
|
-
});
|
|
131
|
-
return html`
|
|
132
|
-
<button
|
|
133
|
-
type="button"
|
|
134
|
-
data-tool=${tool}
|
|
135
|
-
title=${label}
|
|
136
|
-
aria-label=${label}
|
|
137
|
-
aria-pressed=${app.tool === tool}
|
|
138
|
-
@click=${() => this.onToolClick(tool)}
|
|
139
|
-
>
|
|
140
|
-
<img src=${this.iconUrl(icon)} alt="" />
|
|
141
|
-
</button>
|
|
142
|
-
`;
|
|
143
|
-
})}
|
|
144
|
-
<div class="spacer"></div>
|
|
145
|
-
<button
|
|
167
|
+
return html`<button
|
|
146
168
|
type="button"
|
|
147
169
|
data-action="undo"
|
|
148
170
|
title=${this.t("paintCanvas.toolbar.undoWithShortcut", { shortcut: `${cmd}Z` })}
|
|
@@ -182,8 +204,7 @@ var PcToolbar = class extends PcElement {
|
|
|
182
204
|
@click=${() => app.togglePanel(Panel.Menu)}
|
|
183
205
|
>
|
|
184
206
|
${this.menuText}
|
|
185
|
-
</button>` : nothing}
|
|
186
|
-
`;
|
|
207
|
+
</button>` : nothing}`;
|
|
187
208
|
}
|
|
188
209
|
};
|
|
189
210
|
defineElement("pc-toolbar", PcToolbar);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// src/ui/elements/PcToolbar/style.css?inline
|
|
2
|
-
var style_default = ":host {\n
|
|
2
|
+
var style_default = ":host {\n width: 50px;\n height: 100%;\n background: var(--pc-bar);\n border-right: 1px solid var(--pc-border);\n}\nbutton {\n width: 50px;\n height: 50px;\n}\npc-colour-pair {\n border-bottom: 1px solid var(--pc-border);\n}\n/* Buttons separated by thin lines, as designed */\nbutton {\n border: 0;\n border-bottom: 1px solid var(--pc-border);\n background: transparent;\n font-size: 20px;\n}\nbutton:hover {\n background: var(--pc-surface-hover);\n}\n/* The open panel */\nbutton[aria-expanded=\"true\"] {\n background: var(--pc-surface-active);\n}\n/* The selected tool, like other pressed icon buttons */\nbutton[aria-pressed=\"true\"],\nbutton[aria-pressed=\"true\"]:hover {\n background: var(--pc-accent);\n}\nbutton:disabled {\n opacity: 0.4;\n background: transparent;\n}\nbutton:focus-visible {\n outline: var(--pc-focus-width) solid var(--pc-focus);\n outline-offset: -3px;\n}\nimg {\n display: block;\n width: 40px;\n height: 40px;\n margin: auto;\n}\n/* All the buttons in one column, so they shrink together when the toolbar is short */\n.start,\n.middle,\n.end {\n display: contents;\n}\n/* The space between the tools and the end */\n.spacer {\n flex: 1;\n border-bottom: 1px solid var(--pc-border);\n}\n";
|
|
3
3
|
export { style_default as default };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -7,14 +7,20 @@ export { PcButtonGroup } from "./elements/PcButtonGroup";
|
|
|
7
7
|
export { PcIconToggle } from "./elements/PcIconToggle";
|
|
8
8
|
export { PcToggleCheckbox } from "./elements/PcToggleCheckbox";
|
|
9
9
|
export { PcSlider } from "./elements/PcSlider";
|
|
10
|
-
export {
|
|
10
|
+
export { PcMenu, type MenuItem } from "./elements/PcMenu";
|
|
11
|
+
export { PcContextMenu, CONTEXT_MENU_TOGGLE_EVENT, MENU_MARGIN, menuLeft, menuTop, type MenuPlacement, } from "./elements/PcContextMenu";
|
|
11
12
|
export { PcDialog, CANCEL_CHOICE, type DialogChoice, } from "./elements/PcDialog";
|
|
12
13
|
export { PcToast, TOAST_DURATION_MS, type ToastKind } from "./elements/PcToast";
|
|
13
14
|
export { PcInfoTip } from "./elements/PcInfoTip";
|
|
14
15
|
export { PcPopover } from "./elements/PcPopover";
|
|
15
16
|
export { PcPanel } from "./elements/PcPanel";
|
|
17
|
+
export { PcPane, PANE_COLLAPSE_EVENT, type PaneEdge, type PaneOrientation, } from "./elements/PcPane";
|
|
16
18
|
export { PcInputSettings, type InputSettingsLike, } from "./elements/PcInputSettings";
|
|
17
19
|
export { PcMatch } from "./elements/PcMatch";
|
|
20
|
+
export { PcColourPair, COLOUR_CLICK_EVENT } from "./elements/PcColourPair";
|
|
21
|
+
export { PcShortcutSettings, type ShortcutSettingsLike, } from "./elements/PcShortcutSettings";
|
|
22
|
+
export { PcAppSettings } from "./elements/PcAppSettings";
|
|
23
|
+
export { PcPanelColours, LONG_PRESS_MS, type ColourModel, } from "./elements/PcPanelColours";
|
|
18
24
|
export { PcStats, formatBytes } from "./elements/PcStats";
|
|
19
25
|
export { PcThemePicker, THEMES, THEME_ICONS, isTheme, type Theme, } from "./elements/PcThemePicker";
|
|
20
26
|
export { PaintCanvasElement } from "./elements/PaintCanvas";
|
package/dist/ui/index.js
CHANGED
|
@@ -7,16 +7,22 @@ import { PcButtonGroup } from "./elements/PcButtonGroup/index.js";
|
|
|
7
7
|
import { PcIconToggle } from "./elements/PcIconToggle/index.js";
|
|
8
8
|
import { PcToggleCheckbox } from "./elements/PcToggleCheckbox/index.js";
|
|
9
9
|
import { PcSlider } from "./elements/PcSlider/index.js";
|
|
10
|
-
import {
|
|
10
|
+
import { PcMenu } from "./elements/PcMenu/index.js";
|
|
11
|
+
import { CONTEXT_MENU_TOGGLE_EVENT, MENU_MARGIN, PcContextMenu, menuLeft, menuTop } from "./elements/PcContextMenu/index.js";
|
|
11
12
|
import { CANCEL_CHOICE, PcDialog } from "./elements/PcDialog/index.js";
|
|
12
13
|
import { PcToast, TOAST_DURATION_MS } from "./elements/PcToast/index.js";
|
|
13
14
|
import { PcInfoTip } from "./elements/PcInfoTip/index.js";
|
|
14
15
|
import { PcPopover } from "./elements/PcPopover/index.js";
|
|
15
16
|
import { PcPanel } from "./elements/PcPanel/index.js";
|
|
17
|
+
import { PANE_COLLAPSE_EVENT, PcPane } from "./elements/PcPane/index.js";
|
|
16
18
|
import { PcInputSettings } from "./elements/PcInputSettings/index.js";
|
|
17
19
|
import { PcMatch } from "./elements/PcMatch/index.js";
|
|
20
|
+
import { COLOUR_CLICK_EVENT, PcColourPair } from "./elements/PcColourPair/index.js";
|
|
21
|
+
import { PcShortcutSettings } from "./elements/PcShortcutSettings/index.js";
|
|
22
|
+
import { PcAppSettings } from "./elements/PcAppSettings/index.js";
|
|
23
|
+
import { LONG_PRESS_MS, PcPanelColours } from "./elements/PcPanelColours/index.js";
|
|
18
24
|
import { PcStats, formatBytes } from "./elements/PcStats/index.js";
|
|
19
25
|
import { PcThemePicker, THEMES, THEME_ICONS, isTheme } from "./elements/PcThemePicker/index.js";
|
|
20
26
|
import { PaintCanvasElement } from "./elements/PaintCanvas/index.js";
|
|
21
27
|
import { DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, LayoutStateController, STATE_EVENT, matchesState, parseSideModes, sideModeFor } from "./layout/index.js";
|
|
22
|
-
export { CANCEL_CHOICE, DARK_TOKENS, DEFAULT_ICONS, DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, IconRegistry, LIGHT_TOKENS, LayoutStateController, PaintCanvasElement, PcButton, PcButtonGroup, PcContextMenu, PcDialog, PcElement, PcIcon, PcIconToggle, PcInfoTip, PcInputSettings, PcMatch, PcPanel, PcPopover, PcSlider, PcStats, PcThemePicker, PcToast, PcToggleCheckbox, STATE_EVENT, THEMES, THEME_ICONS, TOAST_DURATION_MS, TOKENS_CSS, defineElement, emit, formatBytes, icons, installTokens, isTheme, matchesState, parseSideModes, sideModeFor, tokens };
|
|
28
|
+
export { CANCEL_CHOICE, COLOUR_CLICK_EVENT, CONTEXT_MENU_TOGGLE_EVENT, DARK_TOKENS, DEFAULT_ICONS, DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, IconRegistry, LIGHT_TOKENS, LONG_PRESS_MS, LayoutStateController, MENU_MARGIN, PANE_COLLAPSE_EVENT, PaintCanvasElement, PcAppSettings, PcButton, PcButtonGroup, PcColourPair, PcContextMenu, PcDialog, PcElement, PcIcon, PcIconToggle, PcInfoTip, PcInputSettings, PcMatch, PcMenu, PcPane, PcPanel, PcPanelColours, PcPopover, PcShortcutSettings, PcSlider, PcStats, PcThemePicker, PcToast, PcToggleCheckbox, STATE_EVENT, THEMES, THEME_ICONS, TOAST_DURATION_MS, TOKENS_CSS, defineElement, emit, formatBytes, icons, installTokens, isTheme, matchesState, menuLeft, menuTop, parseSideModes, sideModeFor, tokens };
|
package/dist/ui/tokens/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DELETE_CURSOR } from "../../lib/rendering/cursors/index.js";
|
|
1
2
|
import { unsafeCSS } from "lit";
|
|
2
3
|
// src/ui/tokens/index.ts
|
|
3
4
|
/** The light theme's tokens: colours, spacing, corner radius, fonts and focus ring */
|
|
@@ -42,7 +43,8 @@ var LIGHT_TOKENS = {
|
|
|
42
43
|
"font-size-small": "12px",
|
|
43
44
|
focus: "#000000",
|
|
44
45
|
"focus-width": "3px",
|
|
45
|
-
"color-scheme": "light"
|
|
46
|
+
"color-scheme": "light",
|
|
47
|
+
"delete-cursor": DELETE_CURSOR
|
|
46
48
|
};
|
|
47
49
|
/** The dark theme's tokens that differ from the light theme's */
|
|
48
50
|
var DARK_TOKENS = {
|
package/locales/en-GB.json
CHANGED
|
@@ -25,8 +25,34 @@
|
|
|
25
25
|
"paintCanvas.tool.zoom": "Zoom",
|
|
26
26
|
"paintCanvas.tool.colourSample": "Colour sample",
|
|
27
27
|
"paintCanvas.tool.withShortcut": "{tool} ({shortcut})",
|
|
28
|
+
"paintCanvas.colours.foreground": "Foreground colour ({colour})",
|
|
29
|
+
"paintCanvas.colours.background": "Background colour ({colour})",
|
|
30
|
+
"paintCanvas.palette.label": "Colour palette",
|
|
31
|
+
"paintCanvas.palette.hex": "Hex colour",
|
|
32
|
+
"paintCanvas.palette.model": "Colour model",
|
|
33
|
+
"paintCanvas.palette.rgb": "RGB",
|
|
34
|
+
"paintCanvas.palette.hsl": "HSL",
|
|
35
|
+
"paintCanvas.palette.red": "Red",
|
|
36
|
+
"paintCanvas.palette.green": "Green",
|
|
37
|
+
"paintCanvas.palette.blue": "Blue",
|
|
38
|
+
"paintCanvas.palette.hue": "Hue",
|
|
39
|
+
"paintCanvas.palette.saturation": "Saturation",
|
|
40
|
+
"paintCanvas.palette.lightness": "Lightness",
|
|
41
|
+
"paintCanvas.palette.saved": "Saved colours",
|
|
42
|
+
"paintCanvas.palette.add": "Save {colour} to the palette",
|
|
43
|
+
"paintCanvas.palette.colourActions": "{colour} actions",
|
|
44
|
+
"paintCanvas.palette.deleteColour": "Delete colour",
|
|
45
|
+
"paintCanvas.palette.deleteMessage": "Do you want to delete this colour?",
|
|
46
|
+
"paintCanvas.palette.deleteConfirm": "Yes, delete colour",
|
|
47
|
+
"paintCanvas.palette.import": "Import",
|
|
48
|
+
"paintCanvas.palette.export": "Export",
|
|
49
|
+
"paintCanvas.palette.importFile": "Import colour palette file",
|
|
50
|
+
"paintCanvas.palette.imported.one": "Added {count} colour",
|
|
51
|
+
"paintCanvas.palette.imported.other": "Added {count} colours",
|
|
52
|
+
"paintCanvas.palette.fileIncompatible": "Colour palette JSON file not compatible",
|
|
53
|
+
"paintCanvas.palette.fileReadFailed": "Failed to read colour palette JSON file",
|
|
54
|
+
"paintCanvas.palette.exportFailed": "Error exporting colour palette JSON file",
|
|
28
55
|
"paintCanvas.toolbar.label": "Tools",
|
|
29
|
-
"paintCanvas.toolbar.currentColour": "Current colour",
|
|
30
56
|
"paintCanvas.toolbar.layers": "Layers",
|
|
31
57
|
"paintCanvas.toolbar.menu": "Menu",
|
|
32
58
|
"paintCanvas.toolbar.undoWithShortcut": "Undo ({shortcut})",
|
|
@@ -167,6 +193,66 @@
|
|
|
167
193
|
"paintCanvas.autosave.elsewhereMessage": "This drawing is open in another window or tab, and only one can draw on it at a time. Choose \"Draw here instead\" to continue in this window; the other one stops.",
|
|
168
194
|
"paintCanvas.autosave.takeOver": "Draw here instead",
|
|
169
195
|
"paintCanvas.autosave.failed": "Couldn't keep the drawing in this browser",
|
|
196
|
+
"paintCanvas.settings.saveFailed": "Couldn't keep your settings in this browser",
|
|
197
|
+
"paintCanvas.shortcuts.title": "Keyboard shortcuts",
|
|
198
|
+
"paintCanvas.shortcuts.recordHint": "Press the keys to use",
|
|
199
|
+
"paintCanvas.shortcuts.none": "None",
|
|
200
|
+
"paintCanvas.shortcuts.remove": "Remove the {action} shortcut",
|
|
201
|
+
"paintCanvas.shortcuts.fixed": "Can't be changed",
|
|
202
|
+
"paintCanvas.shortcuts.fixedUsed": "{keys} is used by {action}, which can't be changed",
|
|
203
|
+
"paintCanvas.shortcuts.moved": "{keys} moved from {from} to {to}",
|
|
204
|
+
"paintCanvas.shortcuts.reset": "Reset to defaults",
|
|
205
|
+
"paintCanvas.shortcuts.wasReset": "Keyboard shortcuts reset to defaults",
|
|
206
|
+
"paintCanvas.shortcuts.group.tools": "Tools",
|
|
207
|
+
"paintCanvas.shortcuts.group.brushes": "Brushes & erasers",
|
|
208
|
+
"paintCanvas.shortcuts.group.clipboard": "Clipboard",
|
|
209
|
+
"paintCanvas.shortcuts.group.masking": "Masking",
|
|
210
|
+
"paintCanvas.shortcuts.group.fills": "Fills and colours",
|
|
211
|
+
"paintCanvas.shortcuts.group.viewport": "View",
|
|
212
|
+
"paintCanvas.shortcuts.group.layers": "Layers",
|
|
213
|
+
"paintCanvas.shortcuts.group.history": "History",
|
|
214
|
+
"paintCanvas.shortcuts.group.general": "General",
|
|
215
|
+
"paintCanvas.shortcuts.pan": "Pan while held (back to the last tool when let go)",
|
|
216
|
+
"paintCanvas.shortcuts.tool-move": "Move",
|
|
217
|
+
"paintCanvas.shortcuts.tool-brush": "Brush",
|
|
218
|
+
"paintCanvas.shortcuts.tool-eraser": "Eraser",
|
|
219
|
+
"paintCanvas.shortcuts.tool-rectangle-mask": "Rectangle mask",
|
|
220
|
+
"paintCanvas.shortcuts.tool-circle-mask": "Circle mask",
|
|
221
|
+
"paintCanvas.shortcuts.tool-polygon-mask": "Polygon mask",
|
|
222
|
+
"paintCanvas.shortcuts.tool-freehand-mask": "Freehand mask",
|
|
223
|
+
"paintCanvas.shortcuts.tool-colour-sample": "Colour sampler",
|
|
224
|
+
"paintCanvas.shortcuts.tool-zoom": "Zoom",
|
|
225
|
+
"paintCanvas.shortcuts.brush-bigger": "Increase size",
|
|
226
|
+
"paintCanvas.shortcuts.brush-smaller": "Decrease size",
|
|
227
|
+
"paintCanvas.shortcuts.brush-more-opaque": "Increase opacity",
|
|
228
|
+
"paintCanvas.shortcuts.brush-less-opaque": "Decrease opacity",
|
|
229
|
+
"paintCanvas.shortcuts.cut": "Cut",
|
|
230
|
+
"paintCanvas.shortcuts.copy": "Copy",
|
|
231
|
+
"paintCanvas.shortcuts.paste": "Paste",
|
|
232
|
+
"paintCanvas.shortcuts.select-all": "Select all",
|
|
233
|
+
"paintCanvas.shortcuts.invert-selection": "Invert selection",
|
|
234
|
+
"paintCanvas.shortcuts.deselect": "Deselect",
|
|
235
|
+
"paintCanvas.shortcuts.fill-foreground": "Fill with foreground colour",
|
|
236
|
+
"paintCanvas.shortcuts.fill-background": "Fill with background colour",
|
|
237
|
+
"paintCanvas.shortcuts.swap-colours": "Swap foreground and background colours",
|
|
238
|
+
"paintCanvas.shortcuts.zoom-in": "Zoom in",
|
|
239
|
+
"paintCanvas.shortcuts.zoom-out": "Zoom out",
|
|
240
|
+
"paintCanvas.shortcuts.reset-zoom": "Zoom to 100%",
|
|
241
|
+
"paintCanvas.shortcuts.toggle-interface": "Show or hide the interface",
|
|
242
|
+
"paintCanvas.shortcuts.save": "Save as PNG",
|
|
243
|
+
"paintCanvas.shortcuts.undo": "Undo",
|
|
244
|
+
"paintCanvas.shortcuts.redo": "Redo",
|
|
245
|
+
"paintCanvas.shortcuts.delete": "Delete the masked area",
|
|
246
|
+
"paintCanvas.shortcuts.cancel": "Cancel",
|
|
247
|
+
"paintCanvas.shortcuts.commit": "Apply",
|
|
248
|
+
"paintCanvas.shortcuts.layerOpacity": "Set layer opacity to {percent}%",
|
|
249
|
+
"paintCanvas.settings.import": "Import settings",
|
|
250
|
+
"paintCanvas.settings.export": "Export settings",
|
|
251
|
+
"paintCanvas.settings.importFile": "Import settings file",
|
|
252
|
+
"paintCanvas.settings.imported": "Settings imported",
|
|
253
|
+
"paintCanvas.settings.fileIncompatible": "Settings JSON file not compatible",
|
|
254
|
+
"paintCanvas.settings.fileReadFailed": "Failed to read settings JSON file",
|
|
255
|
+
"paintCanvas.settings.exportFailed": "Error exporting settings JSON file",
|
|
170
256
|
"paintCanvas.stats.label": "Canvas details",
|
|
171
257
|
"paintCanvas.stats.size": "Canvas: {width} × {height} px",
|
|
172
258
|
"paintCanvas.stats.zoom": "Zoom: {zoom}",
|
package/locales/en-US.json
CHANGED
|
@@ -25,8 +25,34 @@
|
|
|
25
25
|
"paintCanvas.tool.zoom": "Zoom",
|
|
26
26
|
"paintCanvas.tool.colourSample": "Color sample",
|
|
27
27
|
"paintCanvas.tool.withShortcut": "{tool} ({shortcut})",
|
|
28
|
+
"paintCanvas.colours.foreground": "Foreground color ({colour})",
|
|
29
|
+
"paintCanvas.colours.background": "Background color ({colour})",
|
|
30
|
+
"paintCanvas.palette.label": "Color palette",
|
|
31
|
+
"paintCanvas.palette.hex": "Hex color",
|
|
32
|
+
"paintCanvas.palette.model": "Color model",
|
|
33
|
+
"paintCanvas.palette.rgb": "RGB",
|
|
34
|
+
"paintCanvas.palette.hsl": "HSL",
|
|
35
|
+
"paintCanvas.palette.red": "Red",
|
|
36
|
+
"paintCanvas.palette.green": "Green",
|
|
37
|
+
"paintCanvas.palette.blue": "Blue",
|
|
38
|
+
"paintCanvas.palette.hue": "Hue",
|
|
39
|
+
"paintCanvas.palette.saturation": "Saturation",
|
|
40
|
+
"paintCanvas.palette.lightness": "Lightness",
|
|
41
|
+
"paintCanvas.palette.saved": "Saved colors",
|
|
42
|
+
"paintCanvas.palette.add": "Save {colour} to the palette",
|
|
43
|
+
"paintCanvas.palette.colourActions": "{colour} actions",
|
|
44
|
+
"paintCanvas.palette.deleteColour": "Delete color",
|
|
45
|
+
"paintCanvas.palette.deleteMessage": "Do you want to delete this color?",
|
|
46
|
+
"paintCanvas.palette.deleteConfirm": "Yes, delete color",
|
|
47
|
+
"paintCanvas.palette.import": "Import",
|
|
48
|
+
"paintCanvas.palette.export": "Export",
|
|
49
|
+
"paintCanvas.palette.importFile": "Import color palette file",
|
|
50
|
+
"paintCanvas.palette.imported.one": "Added {count} color",
|
|
51
|
+
"paintCanvas.palette.imported.other": "Added {count} colors",
|
|
52
|
+
"paintCanvas.palette.fileIncompatible": "Color palette JSON file not compatible",
|
|
53
|
+
"paintCanvas.palette.fileReadFailed": "Failed to read color palette JSON file",
|
|
54
|
+
"paintCanvas.palette.exportFailed": "Error exporting color palette JSON file",
|
|
28
55
|
"paintCanvas.toolbar.label": "Tools",
|
|
29
|
-
"paintCanvas.toolbar.currentColour": "Current color",
|
|
30
56
|
"paintCanvas.toolbar.layers": "Layers",
|
|
31
57
|
"paintCanvas.toolbar.menu": "Menu",
|
|
32
58
|
"paintCanvas.toolbar.undoWithShortcut": "Undo ({shortcut})",
|
|
@@ -167,6 +193,66 @@
|
|
|
167
193
|
"paintCanvas.autosave.elsewhereMessage": "This drawing is open in another window or tab, and only one can draw on it at a time. Choose \"Draw here instead\" to continue in this window; the other one stops.",
|
|
168
194
|
"paintCanvas.autosave.takeOver": "Draw here instead",
|
|
169
195
|
"paintCanvas.autosave.failed": "Couldn't keep the drawing in this browser",
|
|
196
|
+
"paintCanvas.settings.saveFailed": "Couldn't keep your settings in this browser",
|
|
197
|
+
"paintCanvas.shortcuts.title": "Keyboard shortcuts",
|
|
198
|
+
"paintCanvas.shortcuts.recordHint": "Press the keys to use",
|
|
199
|
+
"paintCanvas.shortcuts.none": "None",
|
|
200
|
+
"paintCanvas.shortcuts.remove": "Remove the {action} shortcut",
|
|
201
|
+
"paintCanvas.shortcuts.fixed": "Can't be changed",
|
|
202
|
+
"paintCanvas.shortcuts.fixedUsed": "{keys} is used by {action}, which can't be changed",
|
|
203
|
+
"paintCanvas.shortcuts.moved": "{keys} moved from {from} to {to}",
|
|
204
|
+
"paintCanvas.shortcuts.reset": "Reset to defaults",
|
|
205
|
+
"paintCanvas.shortcuts.wasReset": "Keyboard shortcuts reset to defaults",
|
|
206
|
+
"paintCanvas.shortcuts.group.tools": "Tools",
|
|
207
|
+
"paintCanvas.shortcuts.group.brushes": "Brushes & erasers",
|
|
208
|
+
"paintCanvas.shortcuts.group.clipboard": "Clipboard",
|
|
209
|
+
"paintCanvas.shortcuts.group.masking": "Masking",
|
|
210
|
+
"paintCanvas.shortcuts.group.fills": "Fills and colors",
|
|
211
|
+
"paintCanvas.shortcuts.group.viewport": "View",
|
|
212
|
+
"paintCanvas.shortcuts.group.layers": "Layers",
|
|
213
|
+
"paintCanvas.shortcuts.group.history": "History",
|
|
214
|
+
"paintCanvas.shortcuts.group.general": "General",
|
|
215
|
+
"paintCanvas.shortcuts.pan": "Pan while held (back to the last tool when let go)",
|
|
216
|
+
"paintCanvas.shortcuts.tool-move": "Move",
|
|
217
|
+
"paintCanvas.shortcuts.tool-brush": "Brush",
|
|
218
|
+
"paintCanvas.shortcuts.tool-eraser": "Eraser",
|
|
219
|
+
"paintCanvas.shortcuts.tool-rectangle-mask": "Rectangle mask",
|
|
220
|
+
"paintCanvas.shortcuts.tool-circle-mask": "Circle mask",
|
|
221
|
+
"paintCanvas.shortcuts.tool-polygon-mask": "Polygon mask",
|
|
222
|
+
"paintCanvas.shortcuts.tool-freehand-mask": "Freehand mask",
|
|
223
|
+
"paintCanvas.shortcuts.tool-colour-sample": "Color sampler",
|
|
224
|
+
"paintCanvas.shortcuts.tool-zoom": "Zoom",
|
|
225
|
+
"paintCanvas.shortcuts.brush-bigger": "Increase size",
|
|
226
|
+
"paintCanvas.shortcuts.brush-smaller": "Decrease size",
|
|
227
|
+
"paintCanvas.shortcuts.brush-more-opaque": "Increase opacity",
|
|
228
|
+
"paintCanvas.shortcuts.brush-less-opaque": "Decrease opacity",
|
|
229
|
+
"paintCanvas.shortcuts.cut": "Cut",
|
|
230
|
+
"paintCanvas.shortcuts.copy": "Copy",
|
|
231
|
+
"paintCanvas.shortcuts.paste": "Paste",
|
|
232
|
+
"paintCanvas.shortcuts.select-all": "Select all",
|
|
233
|
+
"paintCanvas.shortcuts.invert-selection": "Invert selection",
|
|
234
|
+
"paintCanvas.shortcuts.deselect": "Deselect",
|
|
235
|
+
"paintCanvas.shortcuts.fill-foreground": "Fill with foreground color",
|
|
236
|
+
"paintCanvas.shortcuts.fill-background": "Fill with background color",
|
|
237
|
+
"paintCanvas.shortcuts.swap-colours": "Swap foreground and background colors",
|
|
238
|
+
"paintCanvas.shortcuts.zoom-in": "Zoom in",
|
|
239
|
+
"paintCanvas.shortcuts.zoom-out": "Zoom out",
|
|
240
|
+
"paintCanvas.shortcuts.reset-zoom": "Zoom to 100%",
|
|
241
|
+
"paintCanvas.shortcuts.toggle-interface": "Show or hide the interface",
|
|
242
|
+
"paintCanvas.shortcuts.save": "Save as PNG",
|
|
243
|
+
"paintCanvas.shortcuts.undo": "Undo",
|
|
244
|
+
"paintCanvas.shortcuts.redo": "Redo",
|
|
245
|
+
"paintCanvas.shortcuts.delete": "Delete the masked area",
|
|
246
|
+
"paintCanvas.shortcuts.cancel": "Cancel",
|
|
247
|
+
"paintCanvas.shortcuts.commit": "Apply",
|
|
248
|
+
"paintCanvas.shortcuts.layerOpacity": "Set layer opacity to {percent}%",
|
|
249
|
+
"paintCanvas.settings.import": "Import settings",
|
|
250
|
+
"paintCanvas.settings.export": "Export settings",
|
|
251
|
+
"paintCanvas.settings.importFile": "Import settings file",
|
|
252
|
+
"paintCanvas.settings.imported": "Settings imported",
|
|
253
|
+
"paintCanvas.settings.fileIncompatible": "Settings JSON file not compatible",
|
|
254
|
+
"paintCanvas.settings.fileReadFailed": "Failed to read settings JSON file",
|
|
255
|
+
"paintCanvas.settings.exportFailed": "Error exporting settings JSON file",
|
|
170
256
|
"paintCanvas.stats.label": "Canvas details",
|
|
171
257
|
"paintCanvas.stats.size": "Canvas: {width} × {height} px",
|
|
172
258
|
"paintCanvas.stats.zoom": "Zoom: {zoom}",
|
package/locales/fr.json
CHANGED
|
@@ -25,8 +25,34 @@
|
|
|
25
25
|
"paintCanvas.tool.zoom": "Zoom",
|
|
26
26
|
"paintCanvas.tool.colourSample": "Pipette",
|
|
27
27
|
"paintCanvas.tool.withShortcut": "{tool} ({shortcut})",
|
|
28
|
+
"paintCanvas.colours.foreground": "Couleur de premier plan ({colour})",
|
|
29
|
+
"paintCanvas.colours.background": "Couleur d'arrière-plan ({colour})",
|
|
30
|
+
"paintCanvas.palette.label": "Palette de couleurs",
|
|
31
|
+
"paintCanvas.palette.hex": "Couleur hexadécimale",
|
|
32
|
+
"paintCanvas.palette.model": "Modèle de couleur",
|
|
33
|
+
"paintCanvas.palette.rgb": "RVB",
|
|
34
|
+
"paintCanvas.palette.hsl": "TSL",
|
|
35
|
+
"paintCanvas.palette.red": "Rouge",
|
|
36
|
+
"paintCanvas.palette.green": "Vert",
|
|
37
|
+
"paintCanvas.palette.blue": "Bleu",
|
|
38
|
+
"paintCanvas.palette.hue": "Teinte",
|
|
39
|
+
"paintCanvas.palette.saturation": "Saturation",
|
|
40
|
+
"paintCanvas.palette.lightness": "Luminosité",
|
|
41
|
+
"paintCanvas.palette.saved": "Couleurs enregistrées",
|
|
42
|
+
"paintCanvas.palette.add": "Enregistrer {colour} dans la palette",
|
|
43
|
+
"paintCanvas.palette.colourActions": "Actions pour {colour}",
|
|
44
|
+
"paintCanvas.palette.deleteColour": "Supprimer la couleur",
|
|
45
|
+
"paintCanvas.palette.deleteMessage": "Voulez-vous supprimer cette couleur ?",
|
|
46
|
+
"paintCanvas.palette.deleteConfirm": "Oui, supprimer la couleur",
|
|
47
|
+
"paintCanvas.palette.import": "Importer",
|
|
48
|
+
"paintCanvas.palette.export": "Exporter",
|
|
49
|
+
"paintCanvas.palette.importFile": "Importer un fichier de palette de couleurs",
|
|
50
|
+
"paintCanvas.palette.imported.one": "{count} couleur ajoutée",
|
|
51
|
+
"paintCanvas.palette.imported.other": "{count} couleurs ajoutées",
|
|
52
|
+
"paintCanvas.palette.fileIncompatible": "Fichier JSON de palette de couleurs incompatible",
|
|
53
|
+
"paintCanvas.palette.fileReadFailed": "Échec de la lecture du fichier JSON de palette de couleurs",
|
|
54
|
+
"paintCanvas.palette.exportFailed": "Erreur lors de l'exportation du fichier JSON de palette de couleurs",
|
|
28
55
|
"paintCanvas.toolbar.label": "Outils",
|
|
29
|
-
"paintCanvas.toolbar.currentColour": "Couleur actuelle",
|
|
30
56
|
"paintCanvas.toolbar.layers": "Calques",
|
|
31
57
|
"paintCanvas.toolbar.menu": "Menu",
|
|
32
58
|
"paintCanvas.toolbar.undoWithShortcut": "Annuler ({shortcut})",
|
|
@@ -167,6 +193,66 @@
|
|
|
167
193
|
"paintCanvas.autosave.elsewhereMessage": "Ce dessin est ouvert dans une autre fenêtre ou un autre onglet, et un seul peut dessiner dessus à la fois. Choisissez « Dessiner ici » pour continuer dans cette fenêtre ; l’autre s’arrête.",
|
|
168
194
|
"paintCanvas.autosave.takeOver": "Dessiner ici",
|
|
169
195
|
"paintCanvas.autosave.failed": "Impossible de conserver le dessin dans ce navigateur",
|
|
196
|
+
"paintCanvas.settings.saveFailed": "Impossible de conserver vos réglages dans ce navigateur",
|
|
197
|
+
"paintCanvas.shortcuts.title": "Raccourcis clavier",
|
|
198
|
+
"paintCanvas.shortcuts.recordHint": "Appuyez sur les touches à utiliser",
|
|
199
|
+
"paintCanvas.shortcuts.none": "Aucun",
|
|
200
|
+
"paintCanvas.shortcuts.remove": "Supprimer le raccourci de {action}",
|
|
201
|
+
"paintCanvas.shortcuts.fixed": "Non modifiable",
|
|
202
|
+
"paintCanvas.shortcuts.fixedUsed": "{keys} est utilisé par {action}, qui n'est pas modifiable",
|
|
203
|
+
"paintCanvas.shortcuts.moved": "{keys} déplacé de {from} vers {to}",
|
|
204
|
+
"paintCanvas.shortcuts.reset": "Rétablir les valeurs par défaut",
|
|
205
|
+
"paintCanvas.shortcuts.wasReset": "Raccourcis clavier rétablis",
|
|
206
|
+
"paintCanvas.shortcuts.group.tools": "Outils",
|
|
207
|
+
"paintCanvas.shortcuts.group.brushes": "Pinceaux et gommes",
|
|
208
|
+
"paintCanvas.shortcuts.group.clipboard": "Presse-papiers",
|
|
209
|
+
"paintCanvas.shortcuts.group.masking": "Masques",
|
|
210
|
+
"paintCanvas.shortcuts.group.fills": "Remplissages et couleurs",
|
|
211
|
+
"paintCanvas.shortcuts.group.viewport": "Affichage",
|
|
212
|
+
"paintCanvas.shortcuts.group.layers": "Calques",
|
|
213
|
+
"paintCanvas.shortcuts.group.history": "Historique",
|
|
214
|
+
"paintCanvas.shortcuts.group.general": "Général",
|
|
215
|
+
"paintCanvas.shortcuts.pan": "Déplacer la vue tant que maintenu (retour à l'outil précédent au relâchement)",
|
|
216
|
+
"paintCanvas.shortcuts.tool-move": "Déplacer",
|
|
217
|
+
"paintCanvas.shortcuts.tool-brush": "Pinceau",
|
|
218
|
+
"paintCanvas.shortcuts.tool-eraser": "Gomme",
|
|
219
|
+
"paintCanvas.shortcuts.tool-rectangle-mask": "Masque rectangulaire",
|
|
220
|
+
"paintCanvas.shortcuts.tool-circle-mask": "Masque circulaire",
|
|
221
|
+
"paintCanvas.shortcuts.tool-polygon-mask": "Masque polygonal",
|
|
222
|
+
"paintCanvas.shortcuts.tool-freehand-mask": "Masque à main levée",
|
|
223
|
+
"paintCanvas.shortcuts.tool-colour-sample": "Pipette",
|
|
224
|
+
"paintCanvas.shortcuts.tool-zoom": "Zoom",
|
|
225
|
+
"paintCanvas.shortcuts.brush-bigger": "Augmenter la taille",
|
|
226
|
+
"paintCanvas.shortcuts.brush-smaller": "Réduire la taille",
|
|
227
|
+
"paintCanvas.shortcuts.brush-more-opaque": "Augmenter l'opacité",
|
|
228
|
+
"paintCanvas.shortcuts.brush-less-opaque": "Réduire l'opacité",
|
|
229
|
+
"paintCanvas.shortcuts.cut": "Couper",
|
|
230
|
+
"paintCanvas.shortcuts.copy": "Copier",
|
|
231
|
+
"paintCanvas.shortcuts.paste": "Coller",
|
|
232
|
+
"paintCanvas.shortcuts.select-all": "Tout sélectionner",
|
|
233
|
+
"paintCanvas.shortcuts.invert-selection": "Inverser la sélection",
|
|
234
|
+
"paintCanvas.shortcuts.deselect": "Désélectionner",
|
|
235
|
+
"paintCanvas.shortcuts.fill-foreground": "Remplir avec la couleur de premier plan",
|
|
236
|
+
"paintCanvas.shortcuts.fill-background": "Remplir avec la couleur d'arrière-plan",
|
|
237
|
+
"paintCanvas.shortcuts.swap-colours": "Inverser les couleurs de premier plan et d'arrière-plan",
|
|
238
|
+
"paintCanvas.shortcuts.zoom-in": "Zoom avant",
|
|
239
|
+
"paintCanvas.shortcuts.zoom-out": "Zoom arrière",
|
|
240
|
+
"paintCanvas.shortcuts.reset-zoom": "Zoom à 100 %",
|
|
241
|
+
"paintCanvas.shortcuts.toggle-interface": "Afficher ou masquer l'interface",
|
|
242
|
+
"paintCanvas.shortcuts.save": "Enregistrer en PNG",
|
|
243
|
+
"paintCanvas.shortcuts.undo": "Annuler",
|
|
244
|
+
"paintCanvas.shortcuts.redo": "Rétablir",
|
|
245
|
+
"paintCanvas.shortcuts.delete": "Supprimer la zone masquée",
|
|
246
|
+
"paintCanvas.shortcuts.cancel": "Annuler l'action en cours",
|
|
247
|
+
"paintCanvas.shortcuts.commit": "Appliquer",
|
|
248
|
+
"paintCanvas.shortcuts.layerOpacity": "Régler l'opacité du calque à {percent} %",
|
|
249
|
+
"paintCanvas.settings.import": "Importer les réglages",
|
|
250
|
+
"paintCanvas.settings.export": "Exporter les réglages",
|
|
251
|
+
"paintCanvas.settings.importFile": "Importer un fichier de réglages",
|
|
252
|
+
"paintCanvas.settings.imported": "Réglages importés",
|
|
253
|
+
"paintCanvas.settings.fileIncompatible": "Fichier JSON de réglages incompatible",
|
|
254
|
+
"paintCanvas.settings.fileReadFailed": "Échec de la lecture du fichier JSON de réglages",
|
|
255
|
+
"paintCanvas.settings.exportFailed": "Erreur lors de l'exportation du fichier JSON de réglages",
|
|
170
256
|
"paintCanvas.stats.label": "Détails de la toile",
|
|
171
257
|
"paintCanvas.stats.size": "Toile : {width} × {height} px",
|
|
172
258
|
"paintCanvas.stats.zoom": "Zoom : {zoom}",
|