@lvl99dotcom/paintcanvas 0.5.0 → 0.6.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 (97) hide show
  1. package/dist/lib/brushes/configRanges/index.d.ts +17 -0
  2. package/dist/lib/brushes/configRanges/index.js +31 -1
  3. package/dist/lib/brushes/params/index.d.ts +2 -1
  4. package/dist/lib/brushes/params/index.js +7 -4
  5. package/dist/lib/brushes/types/index.d.ts +8 -0
  6. package/dist/lib/classes/Layer/index.d.ts +10 -0
  7. package/dist/lib/classes/Layer/index.js +15 -1
  8. package/dist/lib/classes/LayerAutosave/index.d.ts +9 -15
  9. package/dist/lib/classes/LayerAutosave/index.js +30 -43
  10. package/dist/lib/classes/LayerStack/index.d.ts +15 -0
  11. package/dist/lib/classes/LayerStack/index.js +26 -2
  12. package/dist/lib/classes/PaintCanvas/index.d.ts +26 -3
  13. package/dist/lib/classes/PaintCanvas/index.js +39 -12
  14. package/dist/lib/classes/PngEncoder/index.d.ts +41 -0
  15. package/dist/lib/classes/PngEncoder/index.js +104 -0
  16. package/dist/lib/classes/ProfileGraphs/index.d.ts +87 -0
  17. package/dist/lib/classes/ProfileGraphs/index.js +148 -0
  18. package/dist/lib/classes/SettingsAutosave/index.d.ts +1 -1
  19. package/dist/lib/classes/SettingsAutosave/index.js +2 -1
  20. package/dist/lib/messages/schema.d.ts +720 -0
  21. package/dist/lib/presets/schema.d.ts +360 -0
  22. package/dist/lib/presets/schema.js +8 -1
  23. package/dist/lib/profiles/index.d.ts +61 -0
  24. package/dist/lib/profiles/index.js +131 -0
  25. package/dist/lib/profiles/schema.d.ts +73 -0
  26. package/dist/lib/profiles/schema.js +53 -0
  27. package/dist/lib/rendering/sample/index.d.ts +11 -0
  28. package/dist/lib/rendering/sample/index.js +36 -5
  29. package/dist/lib/settings/index.d.ts +2 -1
  30. package/dist/lib/settings/index.js +4 -1
  31. package/dist/lib/settings/schema.d.ts +49 -0
  32. package/dist/lib/settings/schema.js +6 -0
  33. package/dist/lib/validation/validators.generated.js +13064 -3696
  34. package/dist/locales/en-GB.js +30 -0
  35. package/dist/locales/en-US.js +30 -0
  36. package/dist/locales/fr.js +30 -0
  37. package/dist/locales/ja.js +30 -0
  38. package/dist/locales/ko.js +30 -0
  39. package/dist/locales/zh-Hans.js +30 -0
  40. package/dist/locales/zh-Hant.js +30 -0
  41. package/dist/package.js +1 -1
  42. package/dist/ui/ask/index.d.ts +48 -0
  43. package/dist/ui/ask/index.js +67 -0
  44. package/dist/ui/base/index.d.ts +8 -1
  45. package/dist/ui/base/index.js +19 -4
  46. package/dist/ui/elements/PaintCanvas/index.js +3 -1
  47. package/dist/ui/elements/PaintCanvas/style.js +1 -1
  48. package/dist/ui/elements/PcAppSettings/index.d.ts +6 -6
  49. package/dist/ui/elements/PcAppSettings/index.js +21 -65
  50. package/dist/ui/elements/PcBrushConfig/index.d.ts +25 -14
  51. package/dist/ui/elements/PcBrushConfig/index.js +216 -146
  52. package/dist/ui/elements/PcBrushConfig/style.js +1 -1
  53. package/dist/ui/elements/PcBrushTest/index.js +7 -2
  54. package/dist/ui/elements/PcBrushTest/style.js +1 -1
  55. package/dist/ui/elements/PcButton/index.d.ts +12 -3
  56. package/dist/ui/elements/PcButton/index.js +18 -10
  57. package/dist/ui/elements/PcCanvas/index.d.ts +6 -1
  58. package/dist/ui/elements/PcCanvas/index.js +10 -3
  59. package/dist/ui/elements/PcCanvas/style.js +1 -1
  60. package/dist/ui/elements/PcClipboardTools/index.d.ts +5 -4
  61. package/dist/ui/elements/PcClipboardTools/index.js +12 -5
  62. package/dist/ui/elements/PcDialog/index.d.ts +46 -10
  63. package/dist/ui/elements/PcDialog/index.js +102 -51
  64. package/dist/ui/elements/PcDialogWindow/index.d.ts +141 -0
  65. package/dist/ui/elements/PcDialogWindow/index.js +385 -0
  66. package/dist/ui/elements/PcPanelBrushes/index.d.ts +3 -2
  67. package/dist/ui/elements/PcPanelBrushes/index.js +7 -5
  68. package/dist/ui/elements/PcPanelBrushes/style.js +1 -1
  69. package/dist/ui/elements/PcPanelColours/index.js +2 -2
  70. package/dist/ui/elements/PcPanelColours/style.js +1 -1
  71. package/dist/ui/elements/PcPanelLayers/index.js +1 -1
  72. package/dist/ui/elements/PcPanelLayers/style.js +1 -1
  73. package/dist/ui/elements/PcProfileEditor/index.d.ts +103 -0
  74. package/dist/ui/elements/PcProfileEditor/index.js +259 -0
  75. package/dist/ui/elements/PcProfileGraph/index.d.ts +84 -0
  76. package/dist/ui/elements/PcProfileGraph/index.js +317 -0
  77. package/dist/ui/elements/PcShortcutSettings/index.js +9 -13
  78. package/dist/ui/elements/PcSliderRange/index.d.ts +147 -0
  79. package/dist/ui/elements/PcSliderRange/index.js +307 -0
  80. package/dist/ui/elements/PcStats/index.d.ts +19 -4
  81. package/dist/ui/elements/PcStats/index.js +29 -13
  82. package/dist/ui/elements/PcToolSettings/index.js +6 -6
  83. package/dist/ui/icons/images/icon-profile-graph@2x.js +3 -0
  84. package/dist/ui/icons/index.d.ts +1 -1
  85. package/dist/ui/icons/index.js +2 -0
  86. package/dist/ui/index.d.ts +6 -1
  87. package/dist/ui/index.js +6 -1
  88. package/dist/ui/styles/index.d.ts +21 -1
  89. package/dist/ui/styles/index.js +73 -14
  90. package/locales/en-GB.json +30 -0
  91. package/locales/en-US.json +30 -0
  92. package/locales/fr.json +30 -0
  93. package/locales/ja.json +30 -0
  94. package/locales/ko.json +30 -0
  95. package/locales/zh-Hans.json +30 -0
  96. package/locales/zh-Hant.json +30 -0
  97. package/package.json +25 -23
@@ -295,7 +295,7 @@ var PcToolSettings = class extends PcElement {
295
295
  })}
296
296
  <button
297
297
  type="button"
298
- class="configure"
298
+ class="configure pill-s"
299
299
  @click=${() => this.emit("pc-configure-brush", kind)}
300
300
  >
301
301
  ${this.t("paintCanvas.toolSettings.configure")}
@@ -359,14 +359,14 @@ var PcToolSettings = class extends PcElement {
359
359
  label: this.t("paintCanvas.toolSettings.maskSettings"),
360
360
  start: html`<button
361
361
  type="button"
362
- class="pill select-all"
362
+ class="pill-s select-all"
363
363
  @click=${() => app.selection.selectAll()}
364
364
  >
365
365
  ${this.t("paintCanvas.toolSettings.selectAll")}
366
366
  </button>
367
367
  <button
368
368
  type="button"
369
- class="pill invert"
369
+ class="pill-s invert"
370
370
  ?disabled=${!app.selection.active}
371
371
  @click=${() => app.selection.invert()}
372
372
  >
@@ -374,7 +374,7 @@ var PcToolSettings = class extends PcElement {
374
374
  </button>
375
375
  <button
376
376
  type="button"
377
- class="pill deselect"
377
+ class="pill-s deselect"
378
378
  ?disabled=${!app.selection.active}
379
379
  @click=${() => app.selection.clear()}
380
380
  >
@@ -486,7 +486,7 @@ var PcToolSettings = class extends PcElement {
486
486
  </button>
487
487
  <button
488
488
  type="button"
489
- class="pill reset"
489
+ class="pill-s reset"
490
490
  ?disabled=${disabled}
491
491
  @click=${() => app.cancelTransform()}
492
492
  >
@@ -538,7 +538,7 @@ var PcToolSettings = class extends PcElement {
538
538
  </label>
539
539
  <button
540
540
  type="button"
541
- class="pill reset"
541
+ class="pill-s reset"
542
542
  @click=${() => view.zoomAt(centre, 1)}
543
543
  >
544
544
  ${this.t("paintCanvas.toolSettings.reset")}
@@ -0,0 +1,3 @@
1
+ // src/ui/icons/images/icon-profile-graph@2x.png?url
2
+ var icon_profile_graph_2x_default = "data:image/png;base64,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";
3
+ export { icon_profile_graph_2x_default as default };
@@ -1,5 +1,5 @@
1
1
  /** Names of the icons that come with PaintCanvas */
2
- export type IconName = "brush" | "eraser" | "cursor" | "rectangleMask" | "circleMask" | "polygonMask" | "freehandMask" | "eyedropper" | "zoom" | "zoomIn" | "zoomOut" | "pan" | "undo" | "redo" | "layers" | "locked" | "unlocked" | "visible" | "hidden" | "linked" | "unlinked" | "pressure" | "focusPen" | "tilt" | "randomise" | "flipHorizontal" | "flipVertical" | "rotate90Left" | "rotate90Right" | "rotate" | "horizontalSize" | "verticalSize" | "diagonalTlbrSize" | "diagonalTrblSize" | "clipboard" | "smoothingLinear" | "smoothingBezierQuad" | "smoothingBezierCubic" | "sun" | "moon" | "star" | "cog";
2
+ export type IconName = "brush" | "eraser" | "cursor" | "rectangleMask" | "circleMask" | "polygonMask" | "freehandMask" | "eyedropper" | "zoom" | "zoomIn" | "zoomOut" | "pan" | "undo" | "redo" | "layers" | "locked" | "unlocked" | "visible" | "hidden" | "linked" | "unlinked" | "pressure" | "focusPen" | "tilt" | "randomise" | "profileGraph" | "flipHorizontal" | "flipVertical" | "rotate90Left" | "rotate90Right" | "rotate" | "horizontalSize" | "verticalSize" | "diagonalTlbrSize" | "diagonalTrblSize" | "clipboard" | "smoothingLinear" | "smoothingBezierQuad" | "smoothingBezierCubic" | "sun" | "moon" | "star" | "cog";
3
3
  /** The icons that come with PaintCanvas, as URLs */
4
4
  export declare const DEFAULT_ICONS: Readonly<Record<IconName, string>>;
5
5
  /**
@@ -23,6 +23,7 @@ import icon_pressure_2x_default from "./images/icon-pressure@2x.js";
23
23
  import icon_focus_pen_2x_default from "./images/icon-focus-pen@2x.js";
24
24
  import icon_tilt_2x_default from "./images/icon-tilt@2x.js";
25
25
  import icon_randomise_2x_default from "./images/icon-randomise@2x.js";
26
+ import icon_profile_graph_2x_default from "./images/icon-profile-graph@2x.js";
26
27
  import icon_flip_horizontal_2x_default from "./images/icon-flip-horizontal@2x.js";
27
28
  import icon_flip_vertical_2x_default from "./images/icon-flip-vertical@2x.js";
28
29
  import icon_rotate_90_left_2x_default from "./images/icon-rotate-90-left@2x.js";
@@ -69,6 +70,7 @@ var DEFAULT_ICONS = {
69
70
  focusPen: icon_focus_pen_2x_default,
70
71
  tilt: icon_tilt_2x_default,
71
72
  randomise: icon_randomise_2x_default,
73
+ profileGraph: icon_profile_graph_2x_default,
72
74
  flipHorizontal: icon_flip_horizontal_2x_default,
73
75
  flipVertical: icon_flip_vertical_2x_default,
74
76
  rotate90Left: icon_rotate_90_left_2x_default,
@@ -8,12 +8,17 @@ export { PcIconToggle } from "./elements/PcIconToggle";
8
8
  export { PcToggleCheckbox } from "./elements/PcToggleCheckbox";
9
9
  export { PcSlider } from "./elements/PcSlider";
10
10
  export { PcNumberSlider, fitNumber } from "./elements/PcNumberSlider";
11
+ export { PcProfileEditor, type ProfileSaveDetail, } from "./elements/PcProfileEditor";
12
+ export { PcProfileGraph, curvePath, movePoint, } from "./elements/PcProfileGraph";
13
+ export { PcSliderRange, rangeFraction, type RangeDetail, type RangeEnd, } from "./elements/PcSliderRange";
11
14
  export { PcBrushSize, sizeText } from "./elements/PcBrushSize";
12
15
  export { PointerDrag, DRAG_THRESHOLD, dragDelta } from "./drag";
13
16
  export { markDismissingPress, isDismissingPress } from "./dismiss";
14
17
  export { PcMenu, isMenuItem, menuSections, type MenuItem, type MenuLabel, type MenuDivider, type MenuEntry, } from "./elements/PcMenu";
15
18
  export { PcContextMenu, CONTEXT_MENU_TOGGLE_EVENT, MENU_MARGIN, menuLeft, menuTop, type MenuPlacement, } from "./elements/PcContextMenu";
16
- export { PcDialog, CANCEL_CHOICE, type DialogChoice, } from "./elements/PcDialog";
19
+ export { PcDialogWindow, DIALOG_DISMISS_EVENT, type DialogCloseReason, } from "./elements/PcDialogWindow";
20
+ export { PcDialog, CANCEL_CHOICE, type DialogChoice, type DialogChoiceDetail, type DialogField, } from "./elements/PcDialog";
21
+ export { askConfirm, askText, deletePresetQuestion, OK_CHOICE, type AskOptions, type AskTextOptions, type ConfirmFn, type PromptFn, } from "./ask";
17
22
  export { PcToast, TOAST_DURATION_MS, type ToastKind } from "./elements/PcToast";
18
23
  export { PcInfoTip } from "./elements/PcInfoTip";
19
24
  export { PcPopover } from "./elements/PcPopover";
package/dist/ui/index.js CHANGED
@@ -9,12 +9,17 @@ import { PcIconToggle } from "./elements/PcIconToggle/index.js";
9
9
  import { PcToggleCheckbox } from "./elements/PcToggleCheckbox/index.js";
10
10
  import { PcSlider } from "./elements/PcSlider/index.js";
11
11
  import { PcNumberSlider, fitNumber } from "./elements/PcNumberSlider/index.js";
12
+ import { PcProfileEditor } from "./elements/PcProfileEditor/index.js";
13
+ import { PcProfileGraph, curvePath, movePoint } from "./elements/PcProfileGraph/index.js";
14
+ import { PcSliderRange, rangeFraction } from "./elements/PcSliderRange/index.js";
12
15
  import { PcBrushSize, sizeText } from "./elements/PcBrushSize/index.js";
13
16
  import { DRAG_THRESHOLD, PointerDrag, dragDelta } from "./drag/index.js";
14
17
  import { isDismissingPress, markDismissingPress } from "./dismiss/index.js";
15
18
  import { PcMenu, isMenuItem, menuSections } from "./elements/PcMenu/index.js";
16
19
  import { CONTEXT_MENU_TOGGLE_EVENT, MENU_MARGIN, PcContextMenu, menuLeft, menuTop } from "./elements/PcContextMenu/index.js";
20
+ import { DIALOG_DISMISS_EVENT, PcDialogWindow } from "./elements/PcDialogWindow/index.js";
17
21
  import { CANCEL_CHOICE, PcDialog } from "./elements/PcDialog/index.js";
22
+ import { OK_CHOICE, askConfirm, askText, deletePresetQuestion } from "./ask/index.js";
18
23
  import { PcToast, TOAST_DURATION_MS } from "./elements/PcToast/index.js";
19
24
  import { PcInfoTip } from "./elements/PcInfoTip/index.js";
20
25
  import { PcPopover } from "./elements/PcPopover/index.js";
@@ -31,4 +36,4 @@ import { PcStats, formatBytes } from "./elements/PcStats/index.js";
31
36
  import { PcThemePicker, THEME_ICONS } from "./elements/PcThemePicker/index.js";
32
37
  import { PaintCanvasElement } from "./elements/PaintCanvas/index.js";
33
38
  import { DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, LayoutStateController, STATE_EVENT, matchesState, parseSideModes, showsRail, sideModeFor } from "./layout/index.js";
34
- export { CANCEL_CHOICE, CLIPBOARD_TOOLS, COLOUR_CLICK_EVENT, CONTEXT_MENU_TOGGLE_EVENT, DARK_TOKENS, DEFAULT_ICONS, DEFAULT_NARROW_WIDTH, DEFAULT_SIDE_MODES, DRAG_THRESHOLD, IconRegistry, LIGHT_TOKENS, LONG_PRESS_MS, LayoutStateController, MENU_MARGIN, PANE_COLLAPSE_EVENT, PaintCanvasElement, PcAppSettings, PcBrushSize, PcButton, PcButtonGroup, PcClipboardTools, PcColourPair, PcContextMenu, PcDialog, PcElement, PcIcon, PcIconToggle, PcInfoTip, PcInputSettings, PcMatch, PcMenu, PcNumberSlider, PcPane, PcPanel, PcPanelColours, PcPopover, PcShortcutSettings, PcSlider, PcStats, PcThemePicker, PcToast, PcToggleCheckbox, PointerDrag, STATE_EVENT, THEMES, THEME_ICONS, TOAST_DURATION_MS, TOKENS_CSS, defineElement, dragDelta, emit, fitNumber, formatBytes, icons, installTokens, isDismissingPress, isMenuItem, isTheme, markDismissingPress, matchesState, menuLeft, menuSections, menuTop, parseSideModes, showsRail, sideModeFor, sizeText, tokens };
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 };
@@ -1,10 +1,30 @@
1
+ /** The sizes of pill buttons, from small to extra extra large (`pill` is the usual size) */
2
+ export declare const PILL_SIZES: readonly ["pill-s", "pill", "pill-l", "pill-xl", "pill-xxl"];
3
+ /** A pill button size */
4
+ export type PillSize = (typeof PILL_SIZES)[number];
5
+ /** Each pill size's least height, font size and padding, in pixels */
6
+ export declare const PILL_SIZE_STYLES: Readonly<Record<PillSize, {
7
+ height: number;
8
+ fontSize: number;
9
+ padding: string;
10
+ }>>;
11
+ /**
12
+ * CSS declarations giving a pill size (its least height, font size and padding), with text on one centred line.
13
+ *
14
+ * @example
15
+ * pillSizeDeclarations("pill-s"); // "min-height: 24px; font-size: 14px; padding: 2px 8px; line-height: 1;"
16
+ */
17
+ export declare const pillSizeDeclarations: (size: PillSize) => string;
1
18
  /** Windows, menus and dialog buttons: affirmative buttons purple, cancel and close buttons pink */
2
19
  export declare const windows: import("lit").CSSResult;
3
20
  /** Interface controls whose text isn't selected by clicking or dragging (form fields stay selectable) */
4
21
  export declare const noTextSelection: import("lit").CSSResult;
5
22
  /** Icon toggles (a checkbox hidden behind its icon, purple while on) and boxed icon buttons */
6
23
  export declare const iconControls: import("lit").CSSResult;
7
- /** Small purple pill buttons, e.g. "Configure", "New Layer", "Import" */
24
+ /**
25
+ * Purple pill buttons, e.g. "Configure", "New Layer", "Import": `pill` is the usual size; `pill-s`, `pill-l`, `pill-xl`
26
+ * and `pill-xxl` are the others (see `PILL_SIZE_STYLES`).
27
+ */
8
28
  export declare const pills: import("lit").CSSResult;
9
29
  /** The shared styles as text, e.g. for `unsafeCSS` */
10
30
  export declare const WINDOWS_CSS: string;
@@ -1,5 +1,53 @@
1
- import { css } from "lit";
1
+ import { css, unsafeCSS } from "lit";
2
2
  // src/ui/styles/index.ts
3
+ /** The sizes of pill buttons, from small to extra extra large (`pill` is the usual size) */
4
+ var PILL_SIZES = [
5
+ "pill-s",
6
+ "pill",
7
+ "pill-l",
8
+ "pill-xl",
9
+ "pill-xxl"
10
+ ];
11
+ /** Each pill size's least height, font size and padding, in pixels */
12
+ var PILL_SIZE_STYLES = {
13
+ "pill-s": {
14
+ height: 24,
15
+ fontSize: 14,
16
+ padding: "2px 8px"
17
+ },
18
+ pill: {
19
+ height: 32,
20
+ fontSize: 16,
21
+ padding: "8px 16px"
22
+ },
23
+ "pill-l": {
24
+ height: 50,
25
+ fontSize: 20,
26
+ padding: "15px 25px"
27
+ },
28
+ "pill-xl": {
29
+ height: 75,
30
+ fontSize: 24,
31
+ padding: "25px 37px"
32
+ },
33
+ "pill-xxl": {
34
+ height: 100,
35
+ fontSize: 28,
36
+ padding: "36px 50px"
37
+ }
38
+ };
39
+ /**
40
+ * CSS declarations giving a pill size (its least height, font size and padding), with text on one centred line.
41
+ *
42
+ * @example
43
+ * pillSizeDeclarations("pill-s"); // "min-height: 24px; font-size: 14px; padding: 2px 8px; line-height: 1;"
44
+ */
45
+ var pillSizeDeclarations = (size) => {
46
+ const { height, fontSize, padding } = PILL_SIZE_STYLES[size];
47
+ return `min-height: ${height}px; font-size: ${fontSize}px; padding: ${padding}; line-height: 1;`;
48
+ };
49
+ /** The usual pill size, for buttons shaped as pills without a size of their own */
50
+ var PILL = unsafeCSS(pillSizeDeclarations("pill"));
3
51
  /** Windows, menus and dialog buttons: affirmative buttons purple, cancel and close buttons pink */
4
52
  var windows = css`
5
53
  button,
@@ -25,12 +73,15 @@ var windows = css`
25
73
  button[type="submit"],
26
74
  button.cancel,
27
75
  button.close {
28
- min-height: var(--pc-control-size);
29
- padding: var(--pc-space-1) var(--pc-space-3);
76
+ display: inline-flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ box-sizing: border-box;
30
80
  border: 0;
31
81
  border-radius: var(--pc-radius-pill);
32
82
  color: var(--pc-accent-text);
33
83
  font: inherit;
84
+ ${PILL}
34
85
  font-weight: bold;
35
86
  cursor: pointer;
36
87
  }
@@ -159,30 +210,38 @@ var iconControls = css`
159
210
  outline: var(--pc-focus-width) solid var(--pc-focus);
160
211
  }
161
212
  `;
162
- /** Small purple pill buttons, e.g. "Configure", "New Layer", "Import" */
213
+ /** Pill buttons, of each size in `PILL_SIZES` as classes */
214
+ var PILL_SELECTOR = unsafeCSS(["configure", ...PILL_SIZES].map((name) => `button.${name}`).join(", "));
215
+ /** Each pill size's class, giving it its height, font size and padding */
216
+ var PILL_SIZE_CLASSES = unsafeCSS(PILL_SIZES.map((size) => `button.${size} { ${pillSizeDeclarations(size)} }`).join("\n"));
217
+ /**
218
+ * Purple pill buttons, e.g. "Configure", "New Layer", "Import": `pill` is the usual size; `pill-s`, `pill-l`, `pill-xl`
219
+ * and `pill-xxl` are the others (see `PILL_SIZE_STYLES`).
220
+ */
163
221
  var pills = css`
164
- button.configure,
165
- button.pill {
166
- min-height: 30px;
167
- padding: var(--pc-space-1) var(--pc-space-3);
222
+ ${PILL_SELECTOR} {
223
+ display: inline-flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ box-sizing: border-box;
168
227
  border: 0;
169
228
  border-radius: var(--pc-radius-pill);
170
229
  background: var(--pc-accent);
171
230
  color: var(--pc-accent-text);
172
231
  font: inherit;
232
+ ${PILL}
173
233
  font-weight: bold;
174
234
  cursor: pointer;
175
235
  }
176
- button.configure:hover:not(:disabled),
177
- button.pill:hover:not(:disabled) {
236
+ ${PILL_SIZE_CLASSES}
237
+ :is(${PILL_SELECTOR}):hover:not(:disabled) {
178
238
  filter: brightness(1.15);
179
239
  }
180
- button.configure:focus-visible,
181
- button.pill:focus-visible {
240
+ :is(${PILL_SELECTOR}):focus-visible {
182
241
  outline: var(--pc-focus-width) solid var(--pc-focus);
183
242
  outline-offset: 2px;
184
243
  }
185
- button.pill:disabled {
244
+ :is(${PILL_SELECTOR}):disabled {
186
245
  background: var(--pc-disabled);
187
246
  cursor: default;
188
247
  }
@@ -192,4 +251,4 @@ var WINDOWS_CSS = windows.cssText;
192
251
  var NO_TEXT_SELECTION_CSS = noTextSelection.cssText;
193
252
  var ICON_CONTROLS_CSS = iconControls.cssText;
194
253
  var PILLS_CSS = pills.cssText;
195
- export { ICON_CONTROLS_CSS, NO_TEXT_SELECTION_CSS, PILLS_CSS, WINDOWS_CSS, iconControls, noTextSelection, pills, windows };
254
+ export { ICON_CONTROLS_CSS, NO_TEXT_SELECTION_CSS, PILLS_CSS, PILL_SIZES, PILL_SIZE_STYLES, WINDOWS_CSS, iconControls, noTextSelection, pillSizeDeclarations, pills, windows };
@@ -7,6 +7,7 @@
7
7
  "paintCanvas.common.clear": "Clear",
8
8
  "paintCanvas.common.cut": "Cut",
9
9
  "paintCanvas.common.copy": "Copy",
10
+ "paintCanvas.common.copyMerged": "Copy merged",
10
11
  "paintCanvas.common.paste": "Paste",
11
12
  "paintCanvas.common.undo": "Undo",
12
13
  "paintCanvas.common.redo": "Redo",
@@ -16,6 +17,31 @@
16
17
  "paintCanvas.common.height": "Height",
17
18
  "paintCanvas.common.size": "Size",
18
19
  "paintCanvas.common.opacity": "Opacity",
20
+ "paintCanvas.range.low": "{label} (min)",
21
+ "paintCanvas.range.high": "{label} (max)",
22
+ "paintCanvas.profileGraph.point": "Point {number}: {x}, {y}",
23
+ "paintCanvas.profileGraph.remove": "Remove point",
24
+ "paintCanvas.profileGraph.linear": "Sharp corner (linear)",
25
+ "paintCanvas.profileGraph.bezier": "Smooth (bezier cubic)",
26
+ "paintCanvas.profiles.linear": "Linear",
27
+ "paintCanvas.profiles.overweight": "Overweight",
28
+ "paintCanvas.profiles.underweight": "Underweight",
29
+ "paintCanvas.profileEditor.title": "{param} profile graph",
30
+ "paintCanvas.profileEditor.button": "{param}: profile graph",
31
+ "paintCanvas.profileEditor.custom": "Custom",
32
+ "paintCanvas.profileEditor.actions": "Profile graph actions",
33
+ "paintCanvas.profileEditor.new": "New graph",
34
+ "paintCanvas.profileEditor.duplicate": "Duplicate…",
35
+ "paintCanvas.profileEditor.rename": "Rename…",
36
+ "paintCanvas.profileEditor.delete": "Delete…",
37
+ "paintCanvas.profileEditor.reset": "Reset",
38
+ "paintCanvas.profileEditor.name": "Name",
39
+ "paintCanvas.profileEditor.saveHeading": "Save profile graph",
40
+ "paintCanvas.profileEditor.renameHeading": "Rename profile graph",
41
+ "paintCanvas.profileEditor.deleteHeading": "Delete profile graph",
42
+ "paintCanvas.profileEditor.deleteConfirm": "Delete \"{name}\"? This can't be undone.",
43
+ "paintCanvas.profileEditor.replaceHeading": "Replace profile graph",
44
+ "paintCanvas.profileEditor.replaceConfirm": "You already have a profile graph called \"{name}\". Replace it?",
19
45
  "paintCanvas.tool.brush": "Brush",
20
46
  "paintCanvas.tool.eraser": "Eraser",
21
47
  "paintCanvas.tool.move": "Move, scale and rotate",
@@ -88,6 +114,9 @@
88
114
  "paintCanvas.presets.myPresets": "My presets",
89
115
  "paintCanvas.presets.unknownAuthor": "Unknown",
90
116
  "paintCanvas.presets.deleteConfirm": "Delete \"{name}\"? This can't be undone.",
117
+ "paintCanvas.presets.deleteHeading": "Delete preset",
118
+ "paintCanvas.presets.replaceHeading": "Replace preset",
119
+ "paintCanvas.presets.replace": "Replace",
91
120
  "paintCanvas.presets.deleted": "Deleted \"{name}\"",
92
121
  "paintCanvas.presets.deleteFailed": "Couldn't delete \"{name}\"",
93
122
  "paintCanvas.presets.saved": "Saved \"{name}\" to My presets",
@@ -181,6 +210,7 @@
181
210
  "paintCanvas.brushConfig.snapToPixelGrid": "Snap to pixel grid",
182
211
  "paintCanvas.brushConfig.addToPresets": "Add to presets",
183
212
  "paintCanvas.brushConfig.variation": "{param}: {source}",
213
+ "paintCanvas.brushConfig.varyWith": "{param}: vary with",
184
214
  "paintCanvas.layers.mergeDownTitle": "Merge down",
185
215
  "paintCanvas.layers.clear": "Clear…",
186
216
  "paintCanvas.layers.delete": "Delete…",
@@ -7,6 +7,7 @@
7
7
  "paintCanvas.common.clear": "Clear",
8
8
  "paintCanvas.common.cut": "Cut",
9
9
  "paintCanvas.common.copy": "Copy",
10
+ "paintCanvas.common.copyMerged": "Copy merged",
10
11
  "paintCanvas.common.paste": "Paste",
11
12
  "paintCanvas.common.undo": "Undo",
12
13
  "paintCanvas.common.redo": "Redo",
@@ -16,6 +17,31 @@
16
17
  "paintCanvas.common.height": "Height",
17
18
  "paintCanvas.common.size": "Size",
18
19
  "paintCanvas.common.opacity": "Opacity",
20
+ "paintCanvas.range.low": "{label} (min)",
21
+ "paintCanvas.range.high": "{label} (max)",
22
+ "paintCanvas.profileGraph.point": "Point {number}: {x}, {y}",
23
+ "paintCanvas.profileGraph.remove": "Remove point",
24
+ "paintCanvas.profileGraph.linear": "Sharp corner (linear)",
25
+ "paintCanvas.profileGraph.bezier": "Smooth (bezier cubic)",
26
+ "paintCanvas.profiles.linear": "Linear",
27
+ "paintCanvas.profiles.overweight": "Overweight",
28
+ "paintCanvas.profiles.underweight": "Underweight",
29
+ "paintCanvas.profileEditor.title": "{param} profile graph",
30
+ "paintCanvas.profileEditor.button": "{param}: profile graph",
31
+ "paintCanvas.profileEditor.custom": "Custom",
32
+ "paintCanvas.profileEditor.actions": "Profile graph actions",
33
+ "paintCanvas.profileEditor.new": "New graph",
34
+ "paintCanvas.profileEditor.duplicate": "Duplicate…",
35
+ "paintCanvas.profileEditor.rename": "Rename…",
36
+ "paintCanvas.profileEditor.delete": "Delete…",
37
+ "paintCanvas.profileEditor.reset": "Reset",
38
+ "paintCanvas.profileEditor.name": "Name",
39
+ "paintCanvas.profileEditor.saveHeading": "Save profile graph",
40
+ "paintCanvas.profileEditor.renameHeading": "Rename profile graph",
41
+ "paintCanvas.profileEditor.deleteHeading": "Delete profile graph",
42
+ "paintCanvas.profileEditor.deleteConfirm": "Delete \"{name}\"? This can't be undone.",
43
+ "paintCanvas.profileEditor.replaceHeading": "Replace profile graph",
44
+ "paintCanvas.profileEditor.replaceConfirm": "You already have a profile graph called \"{name}\". Replace it?",
19
45
  "paintCanvas.tool.brush": "Brush",
20
46
  "paintCanvas.tool.eraser": "Eraser",
21
47
  "paintCanvas.tool.move": "Move, scale and rotate",
@@ -88,6 +114,9 @@
88
114
  "paintCanvas.presets.myPresets": "My presets",
89
115
  "paintCanvas.presets.unknownAuthor": "Unknown",
90
116
  "paintCanvas.presets.deleteConfirm": "Delete \"{name}\"? This can't be undone.",
117
+ "paintCanvas.presets.deleteHeading": "Delete preset",
118
+ "paintCanvas.presets.replaceHeading": "Replace preset",
119
+ "paintCanvas.presets.replace": "Replace",
91
120
  "paintCanvas.presets.deleted": "Deleted \"{name}\"",
92
121
  "paintCanvas.presets.deleteFailed": "Couldn't delete \"{name}\"",
93
122
  "paintCanvas.presets.saved": "Saved \"{name}\" to My presets",
@@ -181,6 +210,7 @@
181
210
  "paintCanvas.brushConfig.snapToPixelGrid": "Snap to pixel grid",
182
211
  "paintCanvas.brushConfig.addToPresets": "Add to presets",
183
212
  "paintCanvas.brushConfig.variation": "{param}: {source}",
213
+ "paintCanvas.brushConfig.varyWith": "{param}: vary with",
184
214
  "paintCanvas.layers.mergeDownTitle": "Merge down",
185
215
  "paintCanvas.layers.clear": "Clear…",
186
216
  "paintCanvas.layers.delete": "Delete…",
package/locales/fr.json CHANGED
@@ -7,6 +7,7 @@
7
7
  "paintCanvas.common.clear": "Effacer",
8
8
  "paintCanvas.common.cut": "Couper",
9
9
  "paintCanvas.common.copy": "Copier",
10
+ "paintCanvas.common.copyMerged": "Copier avec fusion",
10
11
  "paintCanvas.common.paste": "Coller",
11
12
  "paintCanvas.common.undo": "Annuler",
12
13
  "paintCanvas.common.redo": "Rétablir",
@@ -16,6 +17,31 @@
16
17
  "paintCanvas.common.height": "Hauteur",
17
18
  "paintCanvas.common.size": "Taille",
18
19
  "paintCanvas.common.opacity": "Opacité",
20
+ "paintCanvas.range.low": "{label} (min)",
21
+ "paintCanvas.range.high": "{label} (max)",
22
+ "paintCanvas.profileGraph.point": "Point {number} : {x}, {y}",
23
+ "paintCanvas.profileGraph.remove": "Supprimer le point",
24
+ "paintCanvas.profileGraph.linear": "Angle net (linéaire)",
25
+ "paintCanvas.profileGraph.bezier": "Lisse (bézier cubique)",
26
+ "paintCanvas.profiles.linear": "Linéaire",
27
+ "paintCanvas.profiles.overweight": "Surpondéré",
28
+ "paintCanvas.profiles.underweight": "Sous-pondéré",
29
+ "paintCanvas.profileEditor.title": "Courbe de profil : {param}",
30
+ "paintCanvas.profileEditor.button": "{param} : courbe de profil",
31
+ "paintCanvas.profileEditor.custom": "Personnalisé",
32
+ "paintCanvas.profileEditor.actions": "Actions de la courbe",
33
+ "paintCanvas.profileEditor.new": "Nouvelle courbe",
34
+ "paintCanvas.profileEditor.duplicate": "Dupliquer…",
35
+ "paintCanvas.profileEditor.rename": "Renommer…",
36
+ "paintCanvas.profileEditor.delete": "Supprimer…",
37
+ "paintCanvas.profileEditor.reset": "Réinitialiser",
38
+ "paintCanvas.profileEditor.name": "Nom",
39
+ "paintCanvas.profileEditor.saveHeading": "Enregistrer la courbe",
40
+ "paintCanvas.profileEditor.renameHeading": "Renommer la courbe",
41
+ "paintCanvas.profileEditor.deleteHeading": "Supprimer la courbe",
42
+ "paintCanvas.profileEditor.deleteConfirm": "Supprimer « {name} » ? Cette action est irréversible.",
43
+ "paintCanvas.profileEditor.replaceHeading": "Remplacer la courbe",
44
+ "paintCanvas.profileEditor.replaceConfirm": "Vous avez déjà une courbe nommée « {name} ». La remplacer ?",
19
45
  "paintCanvas.tool.brush": "Pinceau",
20
46
  "paintCanvas.tool.eraser": "Gomme",
21
47
  "paintCanvas.tool.move": "Déplacer, redimensionner et faire pivoter",
@@ -88,6 +114,9 @@
88
114
  "paintCanvas.presets.myPresets": "Mes préréglages",
89
115
  "paintCanvas.presets.unknownAuthor": "Inconnu",
90
116
  "paintCanvas.presets.deleteConfirm": "Supprimer « {name} » ? Cette action est irréversible.",
117
+ "paintCanvas.presets.deleteHeading": "Supprimer le préréglage",
118
+ "paintCanvas.presets.replaceHeading": "Remplacer le préréglage",
119
+ "paintCanvas.presets.replace": "Remplacer",
91
120
  "paintCanvas.presets.deleted": "« {name} » supprimé",
92
121
  "paintCanvas.presets.deleteFailed": "Impossible de supprimer « {name} »",
93
122
  "paintCanvas.presets.saved": "« {name} » enregistré dans Mes préréglages",
@@ -181,6 +210,7 @@
181
210
  "paintCanvas.brushConfig.snapToPixelGrid": "Aligner sur la grille de pixels",
182
211
  "paintCanvas.brushConfig.addToPresets": "Ajouter aux préréglages",
183
212
  "paintCanvas.brushConfig.variation": "{param} : {source}",
213
+ "paintCanvas.brushConfig.varyWith": "{param} : varier selon",
184
214
  "paintCanvas.layers.mergeDownTitle": "Fusionner avec le calque inférieur",
185
215
  "paintCanvas.layers.clear": "Effacer…",
186
216
  "paintCanvas.layers.delete": "Supprimer…",
package/locales/ja.json CHANGED
@@ -7,6 +7,7 @@
7
7
  "paintCanvas.common.clear": "クリア",
8
8
  "paintCanvas.common.cut": "切り取り",
9
9
  "paintCanvas.common.copy": "コピー",
10
+ "paintCanvas.common.copyMerged": "結合部分をコピー",
10
11
  "paintCanvas.common.paste": "ペースト",
11
12
  "paintCanvas.common.undo": "取り消す",
12
13
  "paintCanvas.common.redo": "やり直す",
@@ -16,6 +17,31 @@
16
17
  "paintCanvas.common.height": "高さ",
17
18
  "paintCanvas.common.size": "サイズ",
18
19
  "paintCanvas.common.opacity": "不透明度",
20
+ "paintCanvas.range.low": "{label}(最小)",
21
+ "paintCanvas.range.high": "{label}(最大)",
22
+ "paintCanvas.profileGraph.point": "点 {number}:{x}, {y}",
23
+ "paintCanvas.profileGraph.remove": "点を削除",
24
+ "paintCanvas.profileGraph.linear": "角(直線)",
25
+ "paintCanvas.profileGraph.bezier": "なめらか(3次ベジェ)",
26
+ "paintCanvas.profiles.linear": "リニア",
27
+ "paintCanvas.profiles.overweight": "重め",
28
+ "paintCanvas.profiles.underweight": "軽め",
29
+ "paintCanvas.profileEditor.title": "{param}のプロファイルグラフ",
30
+ "paintCanvas.profileEditor.button": "{param}:プロファイルグラフ",
31
+ "paintCanvas.profileEditor.custom": "カスタム",
32
+ "paintCanvas.profileEditor.actions": "グラフの操作",
33
+ "paintCanvas.profileEditor.new": "新しいグラフ",
34
+ "paintCanvas.profileEditor.duplicate": "複製…",
35
+ "paintCanvas.profileEditor.rename": "名前を変更…",
36
+ "paintCanvas.profileEditor.delete": "削除…",
37
+ "paintCanvas.profileEditor.reset": "リセット",
38
+ "paintCanvas.profileEditor.name": "名前",
39
+ "paintCanvas.profileEditor.saveHeading": "グラフを保存",
40
+ "paintCanvas.profileEditor.renameHeading": "グラフの名前を変更",
41
+ "paintCanvas.profileEditor.deleteHeading": "グラフを削除",
42
+ "paintCanvas.profileEditor.deleteConfirm": "「{name}」を削除しますか?元に戻せません。",
43
+ "paintCanvas.profileEditor.replaceHeading": "グラフを置き換え",
44
+ "paintCanvas.profileEditor.replaceConfirm": "「{name}」という名前のグラフがすでにあります。置き換えますか?",
19
45
  "paintCanvas.tool.brush": "ブラシ",
20
46
  "paintCanvas.tool.eraser": "消しゴム",
21
47
  "paintCanvas.tool.move": "移動・拡大縮小・回転",
@@ -88,6 +114,9 @@
88
114
  "paintCanvas.presets.myPresets": "マイプリセット",
89
115
  "paintCanvas.presets.unknownAuthor": "不明",
90
116
  "paintCanvas.presets.deleteConfirm": "「{name}」を削除しますか?元に戻せません。",
117
+ "paintCanvas.presets.deleteHeading": "プリセットを削除",
118
+ "paintCanvas.presets.replaceHeading": "プリセットを置き換え",
119
+ "paintCanvas.presets.replace": "置き換え",
91
120
  "paintCanvas.presets.deleted": "「{name}」を削除しました",
92
121
  "paintCanvas.presets.deleteFailed": "「{name}」を削除できませんでした",
93
122
  "paintCanvas.presets.saved": "「{name}」をマイプリセットに保存しました",
@@ -181,6 +210,7 @@
181
210
  "paintCanvas.brushConfig.snapToPixelGrid": "ピクセルグリッドに吸着",
182
211
  "paintCanvas.brushConfig.addToPresets": "プリセットに追加",
183
212
  "paintCanvas.brushConfig.variation": "{param}:{source}",
213
+ "paintCanvas.brushConfig.varyWith": "{param}:変化の元",
184
214
  "paintCanvas.layers.mergeDownTitle": "下のレイヤーと結合",
185
215
  "paintCanvas.layers.clear": "クリア…",
186
216
  "paintCanvas.layers.delete": "削除…",
package/locales/ko.json CHANGED
@@ -7,6 +7,7 @@
7
7
  "paintCanvas.common.clear": "지우기",
8
8
  "paintCanvas.common.cut": "잘라내기",
9
9
  "paintCanvas.common.copy": "복사",
10
+ "paintCanvas.common.copyMerged": "병합하여 복사",
10
11
  "paintCanvas.common.paste": "붙여넣기",
11
12
  "paintCanvas.common.undo": "실행 취소",
12
13
  "paintCanvas.common.redo": "다시 실행",
@@ -16,6 +17,31 @@
16
17
  "paintCanvas.common.height": "높이",
17
18
  "paintCanvas.common.size": "크기",
18
19
  "paintCanvas.common.opacity": "불투명도",
20
+ "paintCanvas.range.low": "{label} (최소)",
21
+ "paintCanvas.range.high": "{label} (최대)",
22
+ "paintCanvas.profileGraph.point": "점 {number}: {x}, {y}",
23
+ "paintCanvas.profileGraph.remove": "점 삭제",
24
+ "paintCanvas.profileGraph.linear": "뾰족한 모서리 (선형)",
25
+ "paintCanvas.profileGraph.bezier": "부드럽게 (3차 베지어)",
26
+ "paintCanvas.profiles.linear": "선형",
27
+ "paintCanvas.profiles.overweight": "강하게",
28
+ "paintCanvas.profiles.underweight": "약하게",
29
+ "paintCanvas.profileEditor.title": "{param} 프로필 그래프",
30
+ "paintCanvas.profileEditor.button": "{param}: 프로필 그래프",
31
+ "paintCanvas.profileEditor.custom": "사용자 지정",
32
+ "paintCanvas.profileEditor.actions": "그래프 작업",
33
+ "paintCanvas.profileEditor.new": "새 그래프",
34
+ "paintCanvas.profileEditor.duplicate": "복제…",
35
+ "paintCanvas.profileEditor.rename": "이름 바꾸기…",
36
+ "paintCanvas.profileEditor.delete": "삭제…",
37
+ "paintCanvas.profileEditor.reset": "초기화",
38
+ "paintCanvas.profileEditor.name": "이름",
39
+ "paintCanvas.profileEditor.saveHeading": "그래프 저장",
40
+ "paintCanvas.profileEditor.renameHeading": "그래프 이름 바꾸기",
41
+ "paintCanvas.profileEditor.deleteHeading": "그래프 삭제",
42
+ "paintCanvas.profileEditor.deleteConfirm": "\"{name}\"을(를) 삭제할까요? 되돌릴 수 없습니다.",
43
+ "paintCanvas.profileEditor.replaceHeading": "그래프 바꾸기",
44
+ "paintCanvas.profileEditor.replaceConfirm": "\"{name}\"(이)라는 그래프가 이미 있습니다. 바꿀까요?",
19
45
  "paintCanvas.tool.brush": "브러시",
20
46
  "paintCanvas.tool.eraser": "지우개",
21
47
  "paintCanvas.tool.move": "이동, 크기 조절 및 회전",
@@ -88,6 +114,9 @@
88
114
  "paintCanvas.presets.myPresets": "내 프리셋",
89
115
  "paintCanvas.presets.unknownAuthor": "알 수 없음",
90
116
  "paintCanvas.presets.deleteConfirm": "\"{name}\"을(를) 삭제할까요? 되돌릴 수 없습니다.",
117
+ "paintCanvas.presets.deleteHeading": "프리셋 삭제",
118
+ "paintCanvas.presets.replaceHeading": "프리셋 바꾸기",
119
+ "paintCanvas.presets.replace": "바꾸기",
91
120
  "paintCanvas.presets.deleted": "\"{name}\"을(를) 삭제했습니다",
92
121
  "paintCanvas.presets.deleteFailed": "\"{name}\"을(를) 삭제하지 못했습니다",
93
122
  "paintCanvas.presets.saved": "\"{name}\"을(를) 내 프리셋에 저장했습니다",
@@ -181,6 +210,7 @@
181
210
  "paintCanvas.brushConfig.snapToPixelGrid": "픽셀 격자에 맞추기",
182
211
  "paintCanvas.brushConfig.addToPresets": "프리셋에 추가",
183
212
  "paintCanvas.brushConfig.variation": "{param}: {source}",
213
+ "paintCanvas.brushConfig.varyWith": "{param}: 변화 기준",
184
214
  "paintCanvas.layers.mergeDownTitle": "아래 레이어와 병합",
185
215
  "paintCanvas.layers.clear": "지우기…",
186
216
  "paintCanvas.layers.delete": "삭제…",