busybar-kit 2.0.0 → 2.1.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/LICENSE +21 -21
- package/README.md +148 -148
- package/dist/image/index.d.ts +5 -2
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/index.js +5 -2
- package/dist/image/index.js.map +1 -1
- package/dist/image/png.d.ts +9 -0
- package/dist/image/png.d.ts.map +1 -0
- package/dist/image/png.js +165 -0
- package/dist/image/png.js.map +1 -0
- package/dist/image/resize.d.ts +12 -0
- package/dist/image/resize.d.ts.map +1 -0
- package/dist/image/resize.js +83 -0
- package/dist/image/resize.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/input.d.ts +54 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +222 -0
- package/dist/input/input.js.map +1 -0
- package/dist/input/protobuf.d.ts +28 -0
- package/dist/input/protobuf.d.ts.map +1 -0
- package/dist/input/protobuf.js +81 -0
- package/dist/input/protobuf.js.map +1 -0
- package/dist/preview/png.d.ts.map +1 -1
- package/dist/preview/png.js +20 -4
- package/dist/preview/png.js.map +1 -1
- package/dist/preview/raster.d.ts +8 -0
- package/dist/preview/raster.d.ts.map +1 -1
- package/dist/preview/raster.js +55 -7
- package/dist/preview/raster.js.map +1 -1
- package/package.json +2 -1
- package/scripts/fix-esm-extensions.mjs +32 -32
package/dist/preview/raster.d.ts
CHANGED
|
@@ -3,4 +3,12 @@ import { Bitmap } from './png.js';
|
|
|
3
3
|
export type { AnyElement };
|
|
4
4
|
export declare function renderFront(elements: AnyElement[]): Bitmap;
|
|
5
5
|
export declare function renderBack(elements: AnyElement[]): Bitmap;
|
|
6
|
+
/**
|
|
7
|
+
* Draws onto a panel that already has something on it.
|
|
8
|
+
*
|
|
9
|
+
* The device layers elements in the order they arrive, and an app that puts a
|
|
10
|
+
* picture under an outline needs the preview to agree. `renderFront` cannot,
|
|
11
|
+
* having made the bitmap itself; this can.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderOnto(bitmap: Bitmap, elements: AnyElement[], display: 'front' | 'back'): Bitmap;
|
|
6
14
|
//# sourceMappingURL=raster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster.d.ts","sourceRoot":"","sources":["../../src/preview/raster.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAyB,MAAM,OAAO,CAAC;AAEtD,YAAY,EAAE,UAAU,EAAE,CAAC;AAI3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAE1D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAEzD"}
|
|
1
|
+
{"version":3,"file":"raster.d.ts","sourceRoot":"","sources":["../../src/preview/raster.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAyB,MAAM,OAAO,CAAC;AAEtD,YAAY,EAAE,UAAU,EAAE,CAAC;AAI3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAE1D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,EAAE,OAAO,GAAG,MAAM,GACxB,MAAM,CAER"}
|
package/dist/preview/raster.js
CHANGED
|
@@ -9,8 +9,20 @@ export function renderFront(elements) {
|
|
|
9
9
|
export function renderBack(elements) {
|
|
10
10
|
return render(elements, 'back', BACK.width, BACK.height, true);
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Draws onto a panel that already has something on it.
|
|
14
|
+
*
|
|
15
|
+
* The device layers elements in the order they arrive, and an app that puts a
|
|
16
|
+
* picture under an outline needs the preview to agree. `renderFront` cannot,
|
|
17
|
+
* having made the bitmap itself; this can.
|
|
18
|
+
*/
|
|
19
|
+
export function renderOnto(bitmap, elements, display) {
|
|
20
|
+
return paintAll(bitmap, elements, display, display === 'back');
|
|
21
|
+
}
|
|
12
22
|
function render(elements, display, width, height, greyscale) {
|
|
13
|
-
|
|
23
|
+
return paintAll(new Bitmap(width, height, shade(OFF_PIXEL, greyscale)), elements, display, greyscale);
|
|
24
|
+
}
|
|
25
|
+
function paintAll(bitmap, elements, display, greyscale) {
|
|
14
26
|
for (const element of elements) {
|
|
15
27
|
if (element.display !== display) {
|
|
16
28
|
continue;
|
|
@@ -38,21 +50,57 @@ function drawRectangle(bitmap, element, greyscale) {
|
|
|
38
50
|
const width = element.width ?? 0;
|
|
39
51
|
const height = element.height ?? 0;
|
|
40
52
|
const { x, y } = anchor(element.align, element.x, element.y, width, height);
|
|
53
|
+
// A radius of half the shorter side is a circle, which is how the device is
|
|
54
|
+
// asked for one. Clamped, because a larger radius has nowhere left to go.
|
|
55
|
+
const radius = Math.max(0, Math.min(element.radius ?? 0, Math.floor(Math.min(width, height) / 2)));
|
|
41
56
|
if (element.fill !== 'none') {
|
|
42
57
|
const fill = shade(parseColor(element.fill_colors?.[0] ?? '#00000000'), greyscale);
|
|
43
|
-
bitmap
|
|
58
|
+
paint(bitmap, x, y, width, height, radius, 0, fill);
|
|
44
59
|
}
|
|
45
60
|
const borderWidth = element.border_width ?? 0;
|
|
46
61
|
if (borderWidth <= 0) {
|
|
47
62
|
return;
|
|
48
63
|
}
|
|
49
64
|
const border = shade(parseColor(element.border_color ?? '#00000000'), greyscale);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
65
|
+
paint(bitmap, x, y, width, height, radius, borderWidth, border);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A rounded rectangle, filled or as an outline `thickness` pixels wide.
|
|
69
|
+
*
|
|
70
|
+
* Corners are measured from the centre of the corner's arc, so a radius of
|
|
71
|
+
* half the side collapses the straight edges entirely and what is left is a
|
|
72
|
+
* circle. `thickness` of zero fills; anything else keeps the ring between the
|
|
73
|
+
* outer shape and the same shape inset by that much.
|
|
74
|
+
*/
|
|
75
|
+
function paint(bitmap, x, y, width, height, radius, thickness, color) {
|
|
76
|
+
for (let row = 0; row < height; row += 1) {
|
|
77
|
+
for (let column = 0; column < width; column += 1) {
|
|
78
|
+
if (!within(column, row, width, height, radius)) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (thickness > 0 &&
|
|
82
|
+
within(column - thickness, row - thickness, width - thickness * 2, height - thickness * 2, Math.max(0, radius - thickness))) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
bitmap.set(x + column, y + row, color);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Whether a pixel is inside a rounded rectangle of this size. */
|
|
90
|
+
function within(column, row, width, height, radius) {
|
|
91
|
+
if (column < 0 || row < 0 || column >= width || row >= height) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (radius <= 0) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
// Only the four corner squares are curved; everything else is a rectangle.
|
|
98
|
+
const dx = column < radius ? radius - column : column >= width - radius ? column - (width - radius) + 1 : 0;
|
|
99
|
+
const dy = row < radius ? radius - row : row >= height - radius ? row - (height - radius) + 1 : 0;
|
|
100
|
+
if (dx === 0 || dy === 0) {
|
|
101
|
+
return true;
|
|
55
102
|
}
|
|
103
|
+
return Math.hypot(dx, dy) <= radius + 0.5;
|
|
56
104
|
}
|
|
57
105
|
function drawText(bitmap, element, greyscale) {
|
|
58
106
|
const text = element.text ?? '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raster.js","sourceRoot":"","sources":["../../src/preview/raster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAItD,MAAM,SAAS,GAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,WAAW,CAAC,QAAsB;IAChD,OAAO,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAsB;IAC/C,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CACb,QAAsB,EACtB,OAAyB,EACzB,KAAa,EACb,MAAc,EACd,SAAkB;IAElB,
|
|
1
|
+
{"version":3,"file":"raster.js","sourceRoot":"","sources":["../../src/preview/raster.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "busybar-kit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Shared building blocks for BUSY Bar apps: device geometry, colours, formatters, ticker text, error taxonomy and an offline PNG preview renderer",
|
|
5
5
|
"author": "viirtualp1",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"./errors": "./dist/errors.js",
|
|
28
28
|
"./format": "./dist/format.js",
|
|
29
29
|
"./image": "./dist/image/index.js",
|
|
30
|
+
"./input": "./dist/input/index.js",
|
|
30
31
|
"./preview": "./dist/preview/index.js",
|
|
31
32
|
"./profile": "./dist/profile.js",
|
|
32
33
|
"./ticker": "./dist/ticker/index.js",
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
3
|
-
import { isAbsolute, join, resolve } from 'node:path';
|
|
4
|
-
|
|
5
|
-
// Node's ESM loader wants a real file name; tsc leaves extensionless specifiers.
|
|
6
|
-
const argument = process.argv[2] ?? 'dist';
|
|
7
|
-
const dist = isAbsolute(argument) ? argument : resolve(process.cwd(), argument);
|
|
8
|
-
const EXTENSIONS = /\.(?:js|json|mjs|cjs|node)$/;
|
|
9
|
-
|
|
10
|
-
function walk(dir) {
|
|
11
|
-
for (const name of readdirSync(dir)) {
|
|
12
|
-
const path = join(dir, name);
|
|
13
|
-
if (statSync(path).isDirectory()) {
|
|
14
|
-
walk(path);
|
|
15
|
-
continue;
|
|
16
|
-
}
|
|
17
|
-
if (!/\.(?:js|d\.ts)$/.test(name)) {
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const source = readFileSync(path, 'utf8');
|
|
22
|
-
const next = source.replace(
|
|
23
|
-
/(from\s+|import\s*\()(['"])(\.[^'"]+)\2/g,
|
|
24
|
-
(match, prefix, quote, spec) =>
|
|
25
|
-
EXTENSIONS.test(spec) ? match : `${prefix}${quote}${spec}.js${quote}`,
|
|
26
|
-
);
|
|
27
|
-
if (next !== source) {
|
|
28
|
-
writeFileSync(path, next);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
walk(dist);
|
|
2
|
+
import { readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
4
|
+
|
|
5
|
+
// Node's ESM loader wants a real file name; tsc leaves extensionless specifiers.
|
|
6
|
+
const argument = process.argv[2] ?? 'dist';
|
|
7
|
+
const dist = isAbsolute(argument) ? argument : resolve(process.cwd(), argument);
|
|
8
|
+
const EXTENSIONS = /\.(?:js|json|mjs|cjs|node)$/;
|
|
9
|
+
|
|
10
|
+
function walk(dir) {
|
|
11
|
+
for (const name of readdirSync(dir)) {
|
|
12
|
+
const path = join(dir, name);
|
|
13
|
+
if (statSync(path).isDirectory()) {
|
|
14
|
+
walk(path);
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (!/\.(?:js|d\.ts)$/.test(name)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const source = readFileSync(path, 'utf8');
|
|
22
|
+
const next = source.replace(
|
|
23
|
+
/(from\s+|import\s*\()(['"])(\.[^'"]+)\2/g,
|
|
24
|
+
(match, prefix, quote, spec) =>
|
|
25
|
+
EXTENSIONS.test(spec) ? match : `${prefix}${quote}${spec}.js${quote}`,
|
|
26
|
+
);
|
|
27
|
+
if (next !== source) {
|
|
28
|
+
writeFileSync(path, next);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
walk(dist);
|