@lvl99dotcom/paintcanvas 0.6.0 → 0.7.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 +2 -2
- package/dist/lib/classes/PaintCanvas/index.d.ts +13 -5
- package/dist/lib/classes/PaintCanvas/index.js +10 -6
- package/dist/lib/classes/UiSettings/index.d.ts +24 -2
- package/dist/lib/classes/UiSettings/index.js +32 -7
- package/dist/lib/settings/schema.d.ts +4 -1
- package/dist/lib/settings/schema.js +3 -2
- package/dist/lib/storage/index.d.ts +26 -0
- package/dist/lib/storage/index.js +38 -1
- package/dist/lib/validation/validators.generated.js +20 -2
- package/dist/lib/version/index.d.ts +25 -0
- package/dist/lib/version/index.js +35 -0
- package/dist/locales/en-GB.js +5 -0
- package/dist/locales/en-US.js +5 -0
- package/dist/locales/fr.js +5 -0
- package/dist/locales/ja.js +5 -0
- package/dist/locales/ko.js +5 -0
- package/dist/locales/zh-Hans.js +5 -0
- package/dist/locales/zh-Hant.js +5 -0
- package/dist/package.js +1 -1
- package/dist/ui/elements/PaintCanvas/index.d.ts +13 -3
- package/dist/ui/elements/PaintCanvas/index.js +22 -5
- package/dist/ui/elements/PcAppSettings/index.d.ts +10 -2
- package/dist/ui/elements/PcAppSettings/index.js +42 -7
- package/dist/ui/elements/PcBrushConfig/index.d.ts +1 -0
- package/dist/ui/elements/PcBrushConfig/index.js +8 -9
- package/dist/ui/elements/PcBrushTest/index.d.ts +1 -0
- package/dist/ui/elements/PcBrushTest/index.js +8 -7
- package/dist/ui/elements/PcBrushTest/style.js +1 -1
- package/dist/ui/elements/PcButtonMenu/index.d.ts +88 -0
- package/dist/ui/elements/PcButtonMenu/index.js +125 -0
- package/dist/ui/elements/PcCanvas/index.d.ts +9 -0
- package/dist/ui/elements/PcCanvas/index.js +33 -17
- package/dist/ui/elements/PcClipboardTools/index.d.ts +7 -4
- package/dist/ui/elements/PcClipboardTools/index.js +20 -26
- package/dist/ui/elements/PcInputSettings/index.d.ts +2 -1
- package/dist/ui/elements/PcInputSettings/index.js +9 -15
- package/dist/ui/elements/PcLayerItem/index.d.ts +21 -6
- package/dist/ui/elements/PcLayerItem/index.js +53 -26
- package/dist/ui/elements/PcLayerItem/style.js +1 -1
- package/dist/ui/elements/PcSliderRange/index.js +3 -2
- package/dist/ui/elements/PcToggleCheckbox/index.d.ts +13 -2
- package/dist/ui/elements/PcToggleCheckbox/index.js +27 -8
- package/dist/ui/elements/PcToolSettings/index.d.ts +1 -0
- package/dist/ui/elements/PcToolSettings/index.js +8 -8
- package/dist/ui/elements/PcVersion/index.d.ts +12 -0
- package/dist/ui/elements/PcVersion/index.js +43 -0
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.js +4 -2
- package/dist/ui/layout/index.d.ts +2 -2
- package/dist/ui/layout/index.js +2 -2
- package/locales/en-GB.json +5 -0
- package/locales/en-US.json +5 -0
- package/locales/fr.json +5 -0
- package/locales/ja.json +5 -0
- package/locales/ko.json +5 -0
- package/locales/zh-Hans.json +5 -0
- package/locales/zh-Hant.json +5 -0
- package/package.json +2 -2
|
@@ -2,12 +2,16 @@ import { PcElement, defineElement, emit } from "../../base/index.js";
|
|
|
2
2
|
import { css, html } from "lit";
|
|
3
3
|
import { live } from "lit/directives/live.js";
|
|
4
4
|
// src/ui/elements/PcToggleCheckbox/index.ts
|
|
5
|
+
/** Sizes of the switch: `m` (20px high, the default) and `s` (16px high, e.g. in toolbars) */
|
|
6
|
+
var TOGGLE_SIZES = ["m", "s"];
|
|
5
7
|
/**
|
|
6
|
-
* An on/off switch with its text (the element's content) beside it, e.g. for settings.
|
|
7
|
-
*
|
|
8
|
+
* An on/off switch with its text (the element's content) beside it, e.g. for settings. Use it instead of plain
|
|
9
|
+
* checkboxes. It comes in two sizes (`size`: `m`, 20px high, by default, or `s`, 16px high), both pressable over at
|
|
10
|
+
* least 24px of height. Fires `change` when the user turns it on or off.
|
|
8
11
|
*
|
|
9
12
|
* @example
|
|
10
13
|
* html`<pc-toggle-checkbox .checked=${pinchZoom} @change=${toggle}>Pinch to zoom</pc-toggle-checkbox>`
|
|
14
|
+
* html`<pc-toggle-checkbox size="s">Show stroke points</pc-toggle-checkbox>`
|
|
11
15
|
*/
|
|
12
16
|
var PcToggleCheckbox = class extends PcElement {
|
|
13
17
|
static properties = {
|
|
@@ -19,15 +23,27 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
19
23
|
disabled: {
|
|
20
24
|
type: Boolean,
|
|
21
25
|
reflect: true
|
|
26
|
+
},
|
|
27
|
+
size: {
|
|
28
|
+
type: String,
|
|
29
|
+
reflect: true
|
|
22
30
|
}
|
|
23
31
|
};
|
|
24
32
|
static styles = [PcElement.styles, css`
|
|
25
33
|
:host {
|
|
34
|
+
--pc-toggle-height: 20px;
|
|
35
|
+
--pc-toggle-width: 36px;
|
|
26
36
|
display: flex;
|
|
27
37
|
}
|
|
38
|
+
:host([size="s"]) {
|
|
39
|
+
--pc-toggle-height: 16px;
|
|
40
|
+
--pc-toggle-width: 28px;
|
|
41
|
+
}
|
|
28
42
|
label {
|
|
29
43
|
display: flex;
|
|
30
44
|
flex: 1;
|
|
45
|
+
/* The pressable area is at least 24px high, whatever the switch's size */
|
|
46
|
+
min-height: 24px;
|
|
31
47
|
gap: var(--pc-space-2);
|
|
32
48
|
align-items: center;
|
|
33
49
|
color: var(--pc-text);
|
|
@@ -42,8 +58,8 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
42
58
|
input {
|
|
43
59
|
position: relative;
|
|
44
60
|
flex: none;
|
|
45
|
-
width:
|
|
46
|
-
height:
|
|
61
|
+
width: var(--pc-toggle-width);
|
|
62
|
+
height: var(--pc-toggle-height);
|
|
47
63
|
margin: 0;
|
|
48
64
|
border-radius: var(--pc-radius-pill);
|
|
49
65
|
background: var(--pc-disabled);
|
|
@@ -54,8 +70,8 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
54
70
|
position: absolute;
|
|
55
71
|
top: 2px;
|
|
56
72
|
left: 2px;
|
|
57
|
-
width:
|
|
58
|
-
height:
|
|
73
|
+
width: calc(var(--pc-toggle-height) - 4px);
|
|
74
|
+
height: calc(var(--pc-toggle-height) - 4px);
|
|
59
75
|
border-radius: 50%;
|
|
60
76
|
background: #ffffff;
|
|
61
77
|
content: "";
|
|
@@ -65,7 +81,9 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
65
81
|
background: var(--pc-accent);
|
|
66
82
|
}
|
|
67
83
|
input:checked::before {
|
|
68
|
-
transform: translateX(
|
|
84
|
+
transform: translateX(
|
|
85
|
+
calc(var(--pc-toggle-width) - var(--pc-toggle-height))
|
|
86
|
+
);
|
|
69
87
|
}
|
|
70
88
|
input:focus-visible {
|
|
71
89
|
outline: var(--pc-focus-width) solid var(--pc-focus);
|
|
@@ -81,6 +99,7 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
81
99
|
super();
|
|
82
100
|
this.checked = false;
|
|
83
101
|
this.disabled = false;
|
|
102
|
+
this.size = "m";
|
|
84
103
|
}
|
|
85
104
|
/** Follow the user's change, and tell listeners */
|
|
86
105
|
onChange(event) {
|
|
@@ -102,4 +121,4 @@ var PcToggleCheckbox = class extends PcElement {
|
|
|
102
121
|
}
|
|
103
122
|
};
|
|
104
123
|
defineElement("pc-toggle-checkbox", PcToggleCheckbox);
|
|
105
|
-
export { PcToggleCheckbox };
|
|
124
|
+
export { PcToggleCheckbox, TOGGLE_SIZES };
|
|
@@ -3,6 +3,7 @@ import { PcElement } from "../../base";
|
|
|
3
3
|
import PaintCanvas, { Tool } from "../../../lib/classes/PaintCanvas";
|
|
4
4
|
import type { BrushConfig } from "../../../lib/brushes/types";
|
|
5
5
|
import "../PcBrushSize";
|
|
6
|
+
import "../PcToggleCheckbox";
|
|
6
7
|
import "../PcNumberSlider";
|
|
7
8
|
import "../PcPopover";
|
|
8
9
|
/** Settings varied with pen tilt by the tilt toggle */
|
|
@@ -8,6 +8,7 @@ import "../../../lib/classes/BrushSettings/index.js";
|
|
|
8
8
|
import { MAX_ZOOM, MIN_ZOOM } from "../../../lib/classes/Viewport/index.js";
|
|
9
9
|
import { iconLabel } from "../../icons/index.js";
|
|
10
10
|
import "../PcBrushSize/index.js";
|
|
11
|
+
import "../PcToggleCheckbox/index.js";
|
|
11
12
|
import "../PcNumberSlider/index.js";
|
|
12
13
|
import "../PcPopover/index.js";
|
|
13
14
|
import { html, nothing, svg, unsafeCSS } from "lit";
|
|
@@ -430,15 +431,14 @@ var PcToolSettings = class extends PcElement {
|
|
|
430
431
|
${iconLabel(this.iconUrl(app.constrainProportions ? "linked" : "unlinked"), this.t("paintCanvas.toolSettings.constrainProportions"))}
|
|
431
432
|
</label>
|
|
432
433
|
${side("height", this.t("paintCanvas.common.height"))}
|
|
433
|
-
<
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
/>
|
|
434
|
+
<pc-toggle-checkbox
|
|
435
|
+
class="percent"
|
|
436
|
+
size="s"
|
|
437
|
+
.checked=${this.percent}
|
|
438
|
+
@change=${(e) => this.percent = e.detail.checked}
|
|
439
|
+
>
|
|
440
440
|
${this.t("paintCanvas.toolSettings.percent")}
|
|
441
|
-
</
|
|
441
|
+
</pc-toggle-checkbox>
|
|
442
442
|
<button
|
|
443
443
|
type="button"
|
|
444
444
|
class="icon-button flip-horizontal"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PcElement } from "../../base";
|
|
2
|
+
/**
|
|
3
|
+
* PaintCanvas's version and the commit it was built from, e.g. "PaintCanvas v0.6.0 (ac12a0d)", as a link to its GitHub
|
|
4
|
+
* repository (opened in a new tab). For an app's settings or about panel.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* html`<pc-version></pc-version>`
|
|
8
|
+
*/
|
|
9
|
+
export declare class PcVersion extends PcElement {
|
|
10
|
+
static styles: import("lit").CSSResultGroup[];
|
|
11
|
+
render(): import("lit").TemplateResult<1>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PcElement, defineElement } from "../../base/index.js";
|
|
2
|
+
import { PAINTCANVAS_REPOSITORY_URL, versionText } from "../../../lib/version/index.js";
|
|
3
|
+
import { css, html } from "lit";
|
|
4
|
+
// src/ui/elements/PcVersion/index.ts
|
|
5
|
+
/**
|
|
6
|
+
* PaintCanvas's version and the commit it was built from, e.g. "PaintCanvas v0.6.0 (ac12a0d)", as a link to its GitHub
|
|
7
|
+
* repository (opened in a new tab). For an app's settings or about panel.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* html`<pc-version></pc-version>`
|
|
11
|
+
*/
|
|
12
|
+
var PcVersion = class extends PcElement {
|
|
13
|
+
static styles = [PcElement.styles, css`
|
|
14
|
+
:host {
|
|
15
|
+
display: block;
|
|
16
|
+
font-family: var(--pc-font);
|
|
17
|
+
font-size: var(--pc-font-size-small);
|
|
18
|
+
}
|
|
19
|
+
a {
|
|
20
|
+
color: var(--pc-text-muted);
|
|
21
|
+
text-decoration: none;
|
|
22
|
+
}
|
|
23
|
+
a:hover {
|
|
24
|
+
color: var(--pc-text);
|
|
25
|
+
text-decoration: underline;
|
|
26
|
+
}
|
|
27
|
+
a:focus-visible {
|
|
28
|
+
outline: var(--pc-focus-width) solid var(--pc-focus);
|
|
29
|
+
outline-offset: 2px;
|
|
30
|
+
}
|
|
31
|
+
`];
|
|
32
|
+
render() {
|
|
33
|
+
return html`<a
|
|
34
|
+
part="link"
|
|
35
|
+
href=${PAINTCANVAS_REPOSITORY_URL}
|
|
36
|
+
target="_blank"
|
|
37
|
+
rel="noopener noreferrer"
|
|
38
|
+
>${versionText()}</a
|
|
39
|
+
>`;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
defineElement("pc-version", PcVersion);
|
|
43
|
+
export { PcVersion };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { PcElement, defineElement, emit } from "./base";
|
|
|
4
4
|
export { PcIcon } from "./elements/PcIcon";
|
|
5
5
|
export { PcButton, type ButtonVariant } from "./elements/PcButton";
|
|
6
6
|
export { PcButtonGroup } from "./elements/PcButtonGroup";
|
|
7
|
+
export { PcButtonMenu, isNarrowerThan, type ButtonMenuItem, } from "./elements/PcButtonMenu";
|
|
7
8
|
export { PcIconToggle } from "./elements/PcIconToggle";
|
|
8
9
|
export { PcToggleCheckbox } from "./elements/PcToggleCheckbox";
|
|
9
10
|
export { PcSlider } from "./elements/PcSlider";
|
|
@@ -27,11 +28,12 @@ export { PcPane, PANE_COLLAPSE_EVENT, type PaneEdge, type PaneOrientation, } fro
|
|
|
27
28
|
export { PcInputSettings, type InputSettingsLike, } from "./elements/PcInputSettings";
|
|
28
29
|
export { PcMatch } from "./elements/PcMatch";
|
|
29
30
|
export { PcColourPair, COLOUR_CLICK_EVENT } from "./elements/PcColourPair";
|
|
30
|
-
export { PcClipboardTools, CLIPBOARD_TOOLS } from "./elements/PcClipboardTools";
|
|
31
|
+
export { PcClipboardTools, CLIPBOARD_MENU_BELOW, CLIPBOARD_TOOLS, } from "./elements/PcClipboardTools";
|
|
31
32
|
export { PcShortcutSettings, type ShortcutSettingsLike, } from "./elements/PcShortcutSettings";
|
|
32
33
|
export { PcAppSettings } from "./elements/PcAppSettings";
|
|
33
34
|
export { PcPanelColours, LONG_PRESS_MS, type ColourModel, } from "./elements/PcPanelColours";
|
|
34
35
|
export { PcStats, formatBytes } from "./elements/PcStats";
|
|
36
|
+
export { PcVersion } from "./elements/PcVersion";
|
|
35
37
|
export { PcThemePicker, THEMES, THEME_ICONS, isTheme, type Theme, } from "./elements/PcThemePicker";
|
|
36
38
|
export { PaintCanvasElement } from "./elements/PaintCanvas";
|
|
37
39
|
export { DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, LayoutStateController, STATE_EVENT, matchesState, parseSideModes, showsRail, sideModeFor, type InputKind, type LayoutState, type SideMode, type SideModeRule, } from "./layout";
|
package/dist/ui/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { PcElement, defineElement, emit } from "./base/index.js";
|
|
|
5
5
|
import { PcIcon } from "./elements/PcIcon/index.js";
|
|
6
6
|
import { PcButton } from "./elements/PcButton/index.js";
|
|
7
7
|
import { PcButtonGroup } from "./elements/PcButtonGroup/index.js";
|
|
8
|
+
import { PcButtonMenu, isNarrowerThan } from "./elements/PcButtonMenu/index.js";
|
|
8
9
|
import { PcIconToggle } from "./elements/PcIconToggle/index.js";
|
|
9
10
|
import { PcToggleCheckbox } from "./elements/PcToggleCheckbox/index.js";
|
|
10
11
|
import { PcSlider } from "./elements/PcSlider/index.js";
|
|
@@ -28,12 +29,13 @@ import { PANE_COLLAPSE_EVENT, PcPane } from "./elements/PcPane/index.js";
|
|
|
28
29
|
import { PcInputSettings } from "./elements/PcInputSettings/index.js";
|
|
29
30
|
import { PcMatch } from "./elements/PcMatch/index.js";
|
|
30
31
|
import { COLOUR_CLICK_EVENT, PcColourPair } from "./elements/PcColourPair/index.js";
|
|
31
|
-
import { CLIPBOARD_TOOLS, PcClipboardTools } from "./elements/PcClipboardTools/index.js";
|
|
32
|
+
import { CLIPBOARD_MENU_BELOW, CLIPBOARD_TOOLS, PcClipboardTools } from "./elements/PcClipboardTools/index.js";
|
|
32
33
|
import { PcShortcutSettings } from "./elements/PcShortcutSettings/index.js";
|
|
33
34
|
import { PcAppSettings } from "./elements/PcAppSettings/index.js";
|
|
34
35
|
import { LONG_PRESS_MS, PcPanelColours } from "./elements/PcPanelColours/index.js";
|
|
35
36
|
import { PcStats, formatBytes } from "./elements/PcStats/index.js";
|
|
37
|
+
import { PcVersion } from "./elements/PcVersion/index.js";
|
|
36
38
|
import { PcThemePicker, THEME_ICONS } from "./elements/PcThemePicker/index.js";
|
|
37
39
|
import { PaintCanvasElement } from "./elements/PaintCanvas/index.js";
|
|
38
40
|
import { DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, LayoutStateController, STATE_EVENT, matchesState, parseSideModes, showsRail, sideModeFor } from "./layout/index.js";
|
|
39
|
-
export { CANCEL_CHOICE, CLIPBOARD_TOOLS, COLOUR_CLICK_EVENT, CONTEXT_MENU_TOGGLE_EVENT, DARK_TOKENS, DEFAULT_ICONS, DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, DIALOG_DISMISS_EVENT, DRAG_THRESHOLD, IconRegistry, LIGHT_TOKENS, LONG_PRESS_MS, LayoutStateController, MENU_MARGIN, OK_CHOICE, PANE_COLLAPSE_EVENT, PaintCanvasElement, PcAppSettings, PcBrushSize, PcButton, PcButtonGroup, PcClipboardTools, PcColourPair, PcContextMenu, PcDialog, PcDialogWindow, PcElement, PcIcon, PcIconToggle, PcInfoTip, PcInputSettings, PcMatch, PcMenu, PcNumberSlider, PcPane, PcPanel, PcPanelColours, PcPopover, PcProfileEditor, PcProfileGraph, PcShortcutSettings, PcSlider, PcSliderRange, PcStats, PcThemePicker, PcToast, PcToggleCheckbox, PointerDrag, STATE_EVENT, THEMES, THEME_ICONS, TOAST_DURATION_MS, TOKENS_CSS, askConfirm, askText, curvePath, defineElement, deletePresetQuestion, dragDelta, emit, fitNumber, formatBytes, icons, installTokens, isDismissingPress, isMenuItem, isTheme, markDismissingPress, matchesState, menuLeft, menuSections, menuTop, movePoint, parseSideModes, rangeFraction, showsRail, sideModeFor, sizeText, tokens };
|
|
41
|
+
export { CANCEL_CHOICE, CLIPBOARD_MENU_BELOW, CLIPBOARD_TOOLS, COLOUR_CLICK_EVENT, CONTEXT_MENU_TOGGLE_EVENT, DARK_TOKENS, DEFAULT_ICONS, DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, DIALOG_DISMISS_EVENT, DRAG_THRESHOLD, IconRegistry, LIGHT_TOKENS, LONG_PRESS_MS, LayoutStateController, MENU_MARGIN, OK_CHOICE, PANE_COLLAPSE_EVENT, PaintCanvasElement, PcAppSettings, PcBrushSize, PcButton, PcButtonGroup, PcButtonMenu, PcClipboardTools, PcColourPair, PcContextMenu, PcDialog, PcDialogWindow, PcElement, PcIcon, PcIconToggle, PcInfoTip, PcInputSettings, PcMatch, PcMenu, PcNumberSlider, PcPane, PcPanel, PcPanelColours, PcPopover, PcProfileEditor, PcProfileGraph, PcShortcutSettings, PcSlider, PcSliderRange, PcStats, PcThemePicker, PcToast, PcToggleCheckbox, PcVersion, PointerDrag, STATE_EVENT, THEMES, THEME_ICONS, TOAST_DURATION_MS, TOKENS_CSS, askConfirm, askText, curvePath, defineElement, deletePresetQuestion, dragDelta, emit, fitNumber, formatBytes, icons, installTokens, isDismissingPress, isMenuItem, isNarrowerThan, isTheme, markDismissingPress, matchesState, menuLeft, menuSections, menuTop, movePoint, parseSideModes, rangeFraction, showsRail, sideModeFor, sizeText, tokens };
|
|
@@ -16,8 +16,8 @@ export interface SideModeRule {
|
|
|
16
16
|
mode: SideMode;
|
|
17
17
|
below?: number;
|
|
18
18
|
}
|
|
19
|
-
/** Side modes used unless the implementer chooses others: docked, and
|
|
20
|
-
export declare const DEFAULT_SIDE_MODES = "docked,
|
|
19
|
+
/** Side modes used unless the implementer chooses others: docked, and floating below 600px wide */
|
|
20
|
+
export declare const DEFAULT_SIDE_MODES = "docked, floating@600";
|
|
21
21
|
/** Layout width (CSS pixels) below which the layout counts as narrow, unless the implementer chooses another */
|
|
22
22
|
export declare const DEFAULT_NARROW_WIDTH = 600;
|
|
23
23
|
/**
|
package/dist/ui/layout/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var SIDE_MODES = [
|
|
|
14
14
|
* showsRail("docked"); // false
|
|
15
15
|
*/
|
|
16
16
|
var showsRail = (mode) => mode === "rail" || mode === "overlay";
|
|
17
|
-
/** Side modes used unless the implementer chooses others: docked, and
|
|
18
|
-
var DEFAULT_SIDE_MODES = "docked,
|
|
17
|
+
/** Side modes used unless the implementer chooses others: docked, and floating below 600px wide */
|
|
18
|
+
var DEFAULT_SIDE_MODES = "docked, floating@600";
|
|
19
19
|
/** Layout width (CSS pixels) below which the layout counts as narrow, unless the implementer chooses another */
|
|
20
20
|
var DEFAULT_NARROW_WIDTH = 600;
|
|
21
21
|
/**
|
package/locales/en-GB.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "Alpha lock",
|
|
164
164
|
"paintCanvas.layers.blendMode": "Blending mode",
|
|
165
165
|
"paintCanvas.layers.actions": "Layer actions",
|
|
166
|
+
"paintCanvas.layers.rename": "Rename…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "Rename layer",
|
|
166
168
|
"paintCanvas.layers.reorder": "Reorder {name}: drag, or press for actions",
|
|
167
169
|
"paintCanvas.layers.duplicate": "Duplicate",
|
|
168
170
|
"paintCanvas.layers.createMask": "Create mask",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "Settings JSON file not compatible",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "Failed to read settings JSON file",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "Error exporting settings JSON file",
|
|
295
|
+
"paintCanvas.settings.gpu": "Draw with the GPU",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "Try this if drawing is slow. It applies after reloading the page.",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "Reload the page to apply this change.",
|
|
293
298
|
"paintCanvas.stats.label": "Canvas details",
|
|
294
299
|
"paintCanvas.stats.size": "Canvas: {width} × {height} px",
|
|
295
300
|
"paintCanvas.stats.zoom": "Zoom: {zoom}",
|
package/locales/en-US.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "Alpha lock",
|
|
164
164
|
"paintCanvas.layers.blendMode": "Blending mode",
|
|
165
165
|
"paintCanvas.layers.actions": "Layer actions",
|
|
166
|
+
"paintCanvas.layers.rename": "Rename…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "Rename layer",
|
|
166
168
|
"paintCanvas.layers.reorder": "Reorder {name}: drag, or press for actions",
|
|
167
169
|
"paintCanvas.layers.duplicate": "Duplicate",
|
|
168
170
|
"paintCanvas.layers.createMask": "Create mask",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "Settings JSON file not compatible",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "Failed to read settings JSON file",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "Error exporting settings JSON file",
|
|
295
|
+
"paintCanvas.settings.gpu": "Draw with the GPU",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "Try this if drawing is slow. It applies after reloading the page.",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "Reload the page to apply this change.",
|
|
293
298
|
"paintCanvas.stats.label": "Canvas details",
|
|
294
299
|
"paintCanvas.stats.size": "Canvas: {width} × {height} px",
|
|
295
300
|
"paintCanvas.stats.zoom": "Zoom: {zoom}",
|
package/locales/fr.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "Verrouillage alpha",
|
|
164
164
|
"paintCanvas.layers.blendMode": "Mode de fusion",
|
|
165
165
|
"paintCanvas.layers.actions": "Actions du calque",
|
|
166
|
+
"paintCanvas.layers.rename": "Renommer…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "Renommer le calque",
|
|
166
168
|
"paintCanvas.layers.reorder": "Réorganiser {name} : faire glisser, ou appuyer pour les actions",
|
|
167
169
|
"paintCanvas.layers.duplicate": "Dupliquer",
|
|
168
170
|
"paintCanvas.layers.createMask": "Créer un masque",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "Fichier JSON de réglages incompatible",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "Échec de la lecture du fichier JSON de réglages",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "Erreur lors de l'exportation du fichier JSON de réglages",
|
|
295
|
+
"paintCanvas.settings.gpu": "Dessiner avec le GPU",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "Essayez ceci si le dessin est lent. Le changement s’applique après le rechargement de la page.",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "Rechargez la page pour appliquer ce changement.",
|
|
293
298
|
"paintCanvas.stats.label": "Détails de la toile",
|
|
294
299
|
"paintCanvas.stats.size": "Toile : {width} × {height} px",
|
|
295
300
|
"paintCanvas.stats.zoom": "Zoom : {zoom}",
|
package/locales/ja.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "透明部分をロック",
|
|
164
164
|
"paintCanvas.layers.blendMode": "描画モード",
|
|
165
165
|
"paintCanvas.layers.actions": "レイヤーの操作",
|
|
166
|
+
"paintCanvas.layers.rename": "名前を変更…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "レイヤー名を変更",
|
|
166
168
|
"paintCanvas.layers.reorder": "{name}の並べ替え:ドラッグ、または押して操作を表示",
|
|
167
169
|
"paintCanvas.layers.duplicate": "複製",
|
|
168
170
|
"paintCanvas.layers.createMask": "マスクを作成",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "この設定のJSONファイルには対応していません",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "設定のJSONファイルを読み込めませんでした",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "設定のJSONファイルを書き出せませんでした",
|
|
295
|
+
"paintCanvas.settings.gpu": "GPU で描画する",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "描画が遅い場合にお試しください。ページを再読み込みすると適用されます。",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "この変更を適用するにはページを再読み込みしてください。",
|
|
293
298
|
"paintCanvas.stats.label": "キャンバスの詳細",
|
|
294
299
|
"paintCanvas.stats.size": "キャンバス: {width} × {height} px",
|
|
295
300
|
"paintCanvas.stats.zoom": "ズーム: {zoom}",
|
package/locales/ko.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "투명 픽셀 잠금",
|
|
164
164
|
"paintCanvas.layers.blendMode": "혼합 모드",
|
|
165
165
|
"paintCanvas.layers.actions": "레이어 작업",
|
|
166
|
+
"paintCanvas.layers.rename": "이름 바꾸기…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "레이어 이름 바꾸기",
|
|
166
168
|
"paintCanvas.layers.reorder": "{name} 순서 변경: 드래그하거나 눌러서 작업 보기",
|
|
167
169
|
"paintCanvas.layers.duplicate": "복제",
|
|
168
170
|
"paintCanvas.layers.createMask": "마스크 만들기",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "호환되지 않는 설정 JSON 파일입니다",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "설정 JSON 파일을 읽지 못했습니다",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "설정 JSON 파일을 내보내지 못했습니다",
|
|
295
|
+
"paintCanvas.settings.gpu": "GPU로 그리기",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "그리기가 느리면 사용해 보세요. 페이지를 새로 고친 후 적용됩니다.",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "이 변경 사항을 적용하려면 페이지를 새로 고치세요.",
|
|
293
298
|
"paintCanvas.stats.label": "캔버스 정보",
|
|
294
299
|
"paintCanvas.stats.size": "캔버스: {width} × {height} px",
|
|
295
300
|
"paintCanvas.stats.zoom": "확대/축소: {zoom}",
|
package/locales/zh-Hans.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "锁定透明像素",
|
|
164
164
|
"paintCanvas.layers.blendMode": "混合模式",
|
|
165
165
|
"paintCanvas.layers.actions": "图层操作",
|
|
166
|
+
"paintCanvas.layers.rename": "重命名…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "重命名图层",
|
|
166
168
|
"paintCanvas.layers.reorder": "调整{name}的顺序:拖动,或按下以显示操作",
|
|
167
169
|
"paintCanvas.layers.duplicate": "复制",
|
|
168
170
|
"paintCanvas.layers.createMask": "创建蒙版",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "不兼容的设置 JSON 文件",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "无法读取设置 JSON 文件",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "导出设置 JSON 文件时出错",
|
|
295
|
+
"paintCanvas.settings.gpu": "使用 GPU 绘制",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "如果绘制缓慢,请尝试此选项。重新加载页面后生效。",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "重新加载页面以应用此更改。",
|
|
293
298
|
"paintCanvas.stats.label": "画布详情",
|
|
294
299
|
"paintCanvas.stats.size": "画布:{width} × {height} 像素",
|
|
295
300
|
"paintCanvas.stats.zoom": "缩放:{zoom}",
|
package/locales/zh-Hant.json
CHANGED
|
@@ -163,6 +163,8 @@
|
|
|
163
163
|
"paintCanvas.layers.alphaLock": "鎖定透明像素",
|
|
164
164
|
"paintCanvas.layers.blendMode": "混合模式",
|
|
165
165
|
"paintCanvas.layers.actions": "圖層動作",
|
|
166
|
+
"paintCanvas.layers.rename": "重新命名…",
|
|
167
|
+
"paintCanvas.layers.renameTitle": "重新命名圖層",
|
|
166
168
|
"paintCanvas.layers.reorder": "調整{name}的順序:拖曳,或按下以顯示動作",
|
|
167
169
|
"paintCanvas.layers.duplicate": "複製",
|
|
168
170
|
"paintCanvas.layers.createMask": "建立遮罩",
|
|
@@ -290,6 +292,9 @@
|
|
|
290
292
|
"paintCanvas.settings.fileIncompatible": "不相容的設定 JSON 檔案",
|
|
291
293
|
"paintCanvas.settings.fileReadFailed": "無法讀取設定 JSON 檔案",
|
|
292
294
|
"paintCanvas.settings.exportFailed": "匯出設定 JSON 檔案時發生錯誤",
|
|
295
|
+
"paintCanvas.settings.gpu": "使用 GPU 繪製",
|
|
296
|
+
"paintCanvas.settings.gpuHint": "如果繪製緩慢,請嘗試此選項。重新載入頁面後生效。",
|
|
297
|
+
"paintCanvas.settings.reloadToApply": "重新載入頁面以套用此變更。",
|
|
293
298
|
"paintCanvas.stats.label": "畫布詳細資料",
|
|
294
299
|
"paintCanvas.stats.size": "畫布:{width} × {height} 像素",
|
|
295
300
|
"paintCanvas.stats.zoom": "縮放:{zoom}",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvl99dotcom/paintcanvas",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Open-source painting engine and renderer for the browser, with optional UI.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"drawing",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"format:check": "prettier --check .",
|
|
65
65
|
"build:validators": "node scripts/build-validators.ts",
|
|
66
66
|
"icons:build": "node scripts/build-icons.ts",
|
|
67
|
-
"dev": "pnpm icons:build && vite demo --port 5190 --strictPort --open",
|
|
67
|
+
"dev": "pnpm icons:build && vite --config vite.demo.config.ts --port 5190 --strictPort --open",
|
|
68
68
|
"demo": "pnpm dev",
|
|
69
69
|
"docs": "pnpm --filter paintcanvas-docs start",
|
|
70
70
|
"docs:build": "pnpm --filter paintcanvas-docs build",
|