zx-kit 0.19.0 → 0.20.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 +242 -3
- package/dist/audio.d.ts +28 -3
- package/dist/audio.d.ts.map +1 -1
- package/dist/audio.js +28 -3
- package/dist/audio.js.map +1 -1
- package/dist/ay.d.ts +42 -3
- package/dist/ay.d.ts.map +1 -1
- package/dist/ay.js +42 -3
- package/dist/ay.js.map +1 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +25 -15
- package/dist/renderer.js.map +1 -1
- package/dist/ui.d.ts +259 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +357 -0
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
package/dist/ui.js
CHANGED
|
@@ -108,6 +108,363 @@ export function drawPanelTitle(ctx, options) {
|
|
|
108
108
|
: x + padding;
|
|
109
109
|
drawText(ctx, text, tx, y + padding, ink, paper);
|
|
110
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Draws a regularly-spaced dot pattern covering a rectangular area.
|
|
113
|
+
*
|
|
114
|
+
* Useful for: radar / sonar screens, tactical scanner overlays, debug grids,
|
|
115
|
+
* stippled backgrounds, "dotted line" decorative elements, alien-invasion
|
|
116
|
+
* style detection grids.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* // Sonar background (submarine)
|
|
120
|
+
* drawDottedGrid(ctx, {
|
|
121
|
+
* x: 8, y: 8, width: 64, height: 48,
|
|
122
|
+
* spacing: 4, color: C.GREEN, paper: C.BLACK,
|
|
123
|
+
* })
|
|
124
|
+
*
|
|
125
|
+
* // Tactical overlay
|
|
126
|
+
* drawDottedGrid(ctx, { x: 0, y: 0, width: 256, height: 192, spacing: 8, color: C.B_WHITE })
|
|
127
|
+
*/
|
|
128
|
+
export function drawDottedGrid(ctx, options) {
|
|
129
|
+
const { x, y, width, height, spacing, color, paper, dotSize = 1 } = options;
|
|
130
|
+
if (paper !== undefined) {
|
|
131
|
+
ctx.fillStyle = paper;
|
|
132
|
+
ctx.fillRect(x, y, width, height);
|
|
133
|
+
}
|
|
134
|
+
ctx.fillStyle = color;
|
|
135
|
+
for (let dy = 0; dy < height; dy += spacing) {
|
|
136
|
+
for (let dx = 0; dx < width; dx += spacing) {
|
|
137
|
+
ctx.fillRect(x + dx, y + dy, dotSize, dotSize);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Draws a discrete segmented bar — health, ammo, shield, fuel, stamina, mana,
|
|
143
|
+
* battery, damage indicators. The bar shows `round(value/max * segments)` filled
|
|
144
|
+
* segments out of `segments` total.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* // Robocop-style health (single colour):
|
|
148
|
+
* drawSegmentedBar(ctx, {
|
|
149
|
+
* x: 0, y: 0, segments: 10, value: 7, max: 10, color: C.B_GREEN,
|
|
150
|
+
* })
|
|
151
|
+
*
|
|
152
|
+
* // Oxygen with threshold gradient (red → yellow → green):
|
|
153
|
+
* drawSegmentedBar(ctx, {
|
|
154
|
+
* x: 0, y: 0, segments: 10, value: 8, max: 10,
|
|
155
|
+
* colors: [C.B_RED, C.B_YELLOW, C.B_GREEN],
|
|
156
|
+
* paper: C.BLACK,
|
|
157
|
+
* })
|
|
158
|
+
*
|
|
159
|
+
* // Vertical bar (e.g. oxygen indicator next to ballast tanks):
|
|
160
|
+
* drawSegmentedBar(ctx, {
|
|
161
|
+
* x: 0, y: 0, segments: 8, value: 5, max: 8,
|
|
162
|
+
* orientation: 'vertical', color: C.B_GREEN,
|
|
163
|
+
* })
|
|
164
|
+
*/
|
|
165
|
+
export function drawSegmentedBar(ctx, options) {
|
|
166
|
+
const { x, y, segments, value, max, segmentWidth = CELL, segmentHeight = CELL, gap = 1, color, colors, paper, orientation = 'horizontal', } = options;
|
|
167
|
+
if ((color === undefined) === (colors === undefined)) {
|
|
168
|
+
throw new Error('drawSegmentedBar: provide exactly one of `color` or `colors`');
|
|
169
|
+
}
|
|
170
|
+
const clamped = Math.max(0, Math.min(max, value));
|
|
171
|
+
const ratio = max === 0 ? 0 : clamped / max;
|
|
172
|
+
const filled = Math.round(ratio * segments);
|
|
173
|
+
let fillColor;
|
|
174
|
+
if (color !== undefined) {
|
|
175
|
+
fillColor = color;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const [lo, mid, hi] = colors;
|
|
179
|
+
fillColor = ratio < 1 / 3 ? lo : ratio < 2 / 3 ? mid : hi;
|
|
180
|
+
}
|
|
181
|
+
for (let i = 0; i < segments; i++) {
|
|
182
|
+
const filledHere = i < filled;
|
|
183
|
+
const drawColor = filledHere ? fillColor : paper;
|
|
184
|
+
if (drawColor === undefined)
|
|
185
|
+
continue;
|
|
186
|
+
const dx = orientation === 'horizontal' ? i * (segmentWidth + gap) : 0;
|
|
187
|
+
const dy = orientation === 'horizontal' ? 0 : (segments - 1 - i) * (segmentHeight + gap);
|
|
188
|
+
ctx.fillStyle = drawColor;
|
|
189
|
+
ctx.fillRect(x + dx, y + dy, segmentWidth, segmentHeight);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Draws a fluid container — ballast tanks, fuel gauges, water reservoirs,
|
|
194
|
+
* lava levels, oil drums, chemical canisters. Liquid fills from the bottom up.
|
|
195
|
+
*
|
|
196
|
+
* **Shape `'pill'`** renders rounded semicircular caps at top and bottom for a
|
|
197
|
+
* sci-fi / submarine look. **Shape `'rect'`** uses sharp corners — simpler and
|
|
198
|
+
* more industrial. Both share the same fill semantics.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* // Submarine ballast tank (pill, cyan fluid)
|
|
202
|
+
* drawTank(ctx, {
|
|
203
|
+
* x: 8, y: 16, width: 16, height: 48,
|
|
204
|
+
* fillPct: 0.66,
|
|
205
|
+
* shape: 'pill',
|
|
206
|
+
* liquidColor: C.B_CYAN,
|
|
207
|
+
* containerColor: C.WHITE,
|
|
208
|
+
* emptyColor: C.BLACK,
|
|
209
|
+
* })
|
|
210
|
+
*
|
|
211
|
+
* // Generic fuel gauge (rect, yellow fluid)
|
|
212
|
+
* drawTank(ctx, {
|
|
213
|
+
* x: 200, y: 8, width: 24, height: 32,
|
|
214
|
+
* fillPct: 0.4, shape: 'rect',
|
|
215
|
+
* liquidColor: C.B_YELLOW, containerColor: C.WHITE, emptyColor: C.BLACK,
|
|
216
|
+
* })
|
|
217
|
+
*/
|
|
218
|
+
export function drawTank(ctx, options) {
|
|
219
|
+
const { x, y, width, height, fillPct, shape = 'pill', liquidColor, containerColor = liquidColor, emptyColor = C.BLACK, } = options;
|
|
220
|
+
const pct = Math.max(0, Math.min(1, fillPct));
|
|
221
|
+
const fillHeight = Math.round(height * pct);
|
|
222
|
+
const fillTop = y + height - fillHeight;
|
|
223
|
+
// For pill shape, the cap radius is half the width capped to a sensible max.
|
|
224
|
+
const capRadius = shape === 'pill' ? Math.min(Math.floor(width / 2), Math.floor(height / 2)) : 0;
|
|
225
|
+
// ── Empty region fill ────────────────────────────────────────────────────
|
|
226
|
+
if (emptyColor !== 'transparent') {
|
|
227
|
+
ctx.fillStyle = emptyColor;
|
|
228
|
+
if (shape === 'rect') {
|
|
229
|
+
ctx.fillRect(x, y, width, height - fillHeight);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
// Pill: fill the body (rectangle middle), and add top semicircle if
|
|
233
|
+
// empty area extends into it.
|
|
234
|
+
for (let dy = 0; dy < height - fillHeight; dy++) {
|
|
235
|
+
const py = y + dy;
|
|
236
|
+
const insetLeft = _capInset(dy, height, capRadius, width);
|
|
237
|
+
ctx.fillRect(x + insetLeft, py, width - 2 * insetLeft, 1);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// ── Liquid region fill ──────────────────────────────────────────────────
|
|
242
|
+
if (fillHeight > 0) {
|
|
243
|
+
ctx.fillStyle = liquidColor;
|
|
244
|
+
if (shape === 'rect') {
|
|
245
|
+
ctx.fillRect(x, fillTop, width, fillHeight);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
for (let dy = 0; dy < fillHeight; dy++) {
|
|
249
|
+
const py = fillTop + dy;
|
|
250
|
+
const trueDy = (height - fillHeight) + dy; // offset within full container
|
|
251
|
+
const insetLeft = _capInset(trueDy, height, capRadius, width);
|
|
252
|
+
ctx.fillRect(x + insetLeft, py, width - 2 * insetLeft, 1);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// ── Container outline ────────────────────────────────────────────────────
|
|
257
|
+
ctx.fillStyle = containerColor;
|
|
258
|
+
if (shape === 'rect') {
|
|
259
|
+
// 4 thin lines for the rectangular outline (1 px thick)
|
|
260
|
+
ctx.fillRect(x, y, width, 1); // top
|
|
261
|
+
ctx.fillRect(x, y + height - 1, width, 1); // bottom
|
|
262
|
+
ctx.fillRect(x, y, 1, height); // left
|
|
263
|
+
ctx.fillRect(x + width - 1, y, 1, height); // right
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// Pill outline: vertical sides + curved top/bottom via _capInset
|
|
267
|
+
for (let dy = 0; dy < height; dy++) {
|
|
268
|
+
const inset = _capInset(dy, height, capRadius, width);
|
|
269
|
+
// Left and right edge pixels of the outline at this row
|
|
270
|
+
ctx.fillRect(x + inset, y + dy, 1, 1);
|
|
271
|
+
ctx.fillRect(x + width - 1 - inset, y + dy, 1, 1);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Internal helper: for a pill shape of given dimensions and cap radius,
|
|
277
|
+
* returns how many pixels are inset from the left edge at row `dy` (0-indexed
|
|
278
|
+
* from the top). Returns 0 in the rectangular middle. The shape is symmetric,
|
|
279
|
+
* so the right edge inset equals the left edge inset.
|
|
280
|
+
*/
|
|
281
|
+
function _capInset(dy, totalHeight, capRadius, _width) {
|
|
282
|
+
if (capRadius === 0)
|
|
283
|
+
return 0;
|
|
284
|
+
// Top cap: rows 0..capRadius-1
|
|
285
|
+
if (dy < capRadius) {
|
|
286
|
+
const r = capRadius;
|
|
287
|
+
const offsetFromCenter = r - 1 - dy;
|
|
288
|
+
const horiz = Math.round(r - Math.sqrt(Math.max(0, r * r - (offsetFromCenter + 0.5) * (offsetFromCenter + 0.5))));
|
|
289
|
+
return horiz;
|
|
290
|
+
}
|
|
291
|
+
// Bottom cap: rows (totalHeight - capRadius)..totalHeight-1
|
|
292
|
+
if (dy >= totalHeight - capRadius) {
|
|
293
|
+
const r = capRadius;
|
|
294
|
+
const offsetFromCenter = dy - (totalHeight - capRadius);
|
|
295
|
+
const horiz = Math.round(r - Math.sqrt(Math.max(0, r * r - (offsetFromCenter + 0.5) * (offsetFromCenter + 0.5))));
|
|
296
|
+
return horiz;
|
|
297
|
+
}
|
|
298
|
+
return 0; // straight middle
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Draws a circular analog gauge with a movable needle — RPM, speedometer,
|
|
302
|
+
* fuel level, temperature, volume knob, anything that maps a scalar to an angle.
|
|
303
|
+
*
|
|
304
|
+
* Optional decorations: filled face background, circular rim outline, evenly
|
|
305
|
+
* spaced tick marks. None of these are required; the needle alone is the
|
|
306
|
+
* minimum visible output.
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* // Submarine motor RPM gauge (range 0-3000)
|
|
310
|
+
* drawDial(ctx, {
|
|
311
|
+
* cx: 128, cy: 100, radius: 24,
|
|
312
|
+
* value: 1500, min: 0, max: 3000,
|
|
313
|
+
* needleColor: C.B_RED,
|
|
314
|
+
* rimColor: C.WHITE,
|
|
315
|
+
* tickColor: C.WHITE,
|
|
316
|
+
* ticks: 7,
|
|
317
|
+
* })
|
|
318
|
+
*
|
|
319
|
+
* // Bare minimum: just the needle
|
|
320
|
+
* drawDial(ctx, { cx: 50, cy: 50, radius: 10, value: 75, needleColor: C.B_GREEN })
|
|
321
|
+
*/
|
|
322
|
+
export function drawDial(ctx, options) {
|
|
323
|
+
const { cx, cy, radius, value, min = 0, max = 100, startAngle = 3 * Math.PI / 4, endAngle = Math.PI / 4 + 2 * Math.PI, needleColor, faceColor, rimColor, tickColor, ticks = 0, } = options;
|
|
324
|
+
// Face
|
|
325
|
+
if (faceColor !== undefined) {
|
|
326
|
+
ctx.fillStyle = faceColor;
|
|
327
|
+
_fillCircle(ctx, cx, cy, radius);
|
|
328
|
+
}
|
|
329
|
+
// Rim
|
|
330
|
+
if (rimColor !== undefined) {
|
|
331
|
+
ctx.fillStyle = rimColor;
|
|
332
|
+
_plotCircle(ctx, cx, cy, radius);
|
|
333
|
+
}
|
|
334
|
+
// Ticks
|
|
335
|
+
if (tickColor !== undefined && ticks > 0) {
|
|
336
|
+
ctx.fillStyle = tickColor;
|
|
337
|
+
const sweep = endAngle - startAngle;
|
|
338
|
+
const innerR = Math.max(0, radius - 3);
|
|
339
|
+
for (let i = 0; i < ticks; i++) {
|
|
340
|
+
const t = ticks === 1 ? 0 : i / (ticks - 1);
|
|
341
|
+
const a = startAngle + sweep * t;
|
|
342
|
+
const cosA = Math.cos(a), sinA = Math.sin(a);
|
|
343
|
+
_plotLine(ctx, cx + innerR * cosA, cy + innerR * sinA, cx + radius * cosA, cy + radius * sinA);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
// Needle
|
|
347
|
+
const clamped = Math.max(min, Math.min(max, value));
|
|
348
|
+
const t = max === min ? 0 : (clamped - min) / (max - min);
|
|
349
|
+
const angle = startAngle + (endAngle - startAngle) * t;
|
|
350
|
+
ctx.fillStyle = needleColor;
|
|
351
|
+
_plotLine(ctx, cx, cy, cx + radius * Math.cos(angle), cy + radius * Math.sin(angle));
|
|
352
|
+
}
|
|
353
|
+
const _COMPASS_DIRS = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'];
|
|
354
|
+
/**
|
|
355
|
+
* Draws a text-based compass heading indicator — the classic 80s tactical
|
|
356
|
+
* display `[W [NW] N [NE] E]` style with the current direction in the centre,
|
|
357
|
+
* highlighted, and the two neighbouring directions on each side.
|
|
358
|
+
*
|
|
359
|
+
* Useful for: submarine HUD, space sim navigation, rally / driving game
|
|
360
|
+
* heading, any first-person game that needs a cheap-to-render compass.
|
|
361
|
+
*
|
|
362
|
+
* The heading is rounded to the nearest 45° step and then five labels are
|
|
363
|
+
* shown — the centre direction plus two on each side, wrapping around as
|
|
364
|
+
* needed (heading `0` → `W [NW] N [NE] E`, heading `90` → `N [NE] E [SE] S`).
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* drawCompassText(ctx, {
|
|
368
|
+
* x: 0, y: 168,
|
|
369
|
+
* heading: 0, // N
|
|
370
|
+
* color: C.WHITE,
|
|
371
|
+
* highlightColor: C.B_YELLOW,
|
|
372
|
+
* paper: C.BLACK,
|
|
373
|
+
* })
|
|
374
|
+
* // Renders: `W [NW] N [NE] E` — centre "N" in bright yellow, ±1 in brackets,
|
|
375
|
+
* // outer ±2 ("W", "E") plain.
|
|
376
|
+
*/
|
|
377
|
+
export function drawCompassText(ctx, options) {
|
|
378
|
+
const { x, y, heading, color, highlightColor = color, paper, brackets = true, } = options;
|
|
379
|
+
// Normalise heading into [0, 360)
|
|
380
|
+
const h = ((heading % 360) + 360) % 360;
|
|
381
|
+
// Round to nearest 45° step → index 0..7
|
|
382
|
+
const centerIdx = Math.round(h / 45) % 8;
|
|
383
|
+
// Five directions: centre and ±1, ±2 (wrapping)
|
|
384
|
+
const indices = [
|
|
385
|
+
(centerIdx + 6) % 8, // -2
|
|
386
|
+
(centerIdx + 7) % 8, // -1
|
|
387
|
+
centerIdx, // 0
|
|
388
|
+
(centerIdx + 1) % 8, // +1
|
|
389
|
+
(centerIdx + 2) % 8, // +2
|
|
390
|
+
];
|
|
391
|
+
let cursorX = x;
|
|
392
|
+
for (let i = 0; i < indices.length; i++) {
|
|
393
|
+
const label = _COMPASS_DIRS[indices[i]];
|
|
394
|
+
const isCenter = i === 2;
|
|
395
|
+
const isAdjacent = i === 1 || i === 3;
|
|
396
|
+
const shown = isAdjacent && brackets ? `[${label}]` : label;
|
|
397
|
+
const ink = isCenter ? highlightColor : color;
|
|
398
|
+
drawText(ctx, shown, cursorX, y, ink, paper);
|
|
399
|
+
cursorX += shown.length * CELL;
|
|
400
|
+
// single-cell space between tokens
|
|
401
|
+
cursorX += CELL;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// ─── Drawing primitives (private) ────────────────────────────────────────────
|
|
405
|
+
/**
|
|
406
|
+
* Bresenham line algorithm — plots a 1-pixel-wide line from (x0,y0) to (x1,y1)
|
|
407
|
+
* using the current `ctx.fillStyle`. Coordinates are rounded to integers.
|
|
408
|
+
*/
|
|
409
|
+
function _plotLine(ctx, x0, y0, x1, y1) {
|
|
410
|
+
let ix0 = Math.round(x0), iy0 = Math.round(y0);
|
|
411
|
+
const ix1 = Math.round(x1), iy1 = Math.round(y1);
|
|
412
|
+
const dx = Math.abs(ix1 - ix0);
|
|
413
|
+
const dy = -Math.abs(iy1 - iy0);
|
|
414
|
+
const sx = ix0 < ix1 ? 1 : -1;
|
|
415
|
+
const sy = iy0 < iy1 ? 1 : -1;
|
|
416
|
+
let err = dx + dy;
|
|
417
|
+
while (true) {
|
|
418
|
+
ctx.fillRect(ix0, iy0, 1, 1);
|
|
419
|
+
if (ix0 === ix1 && iy0 === iy1)
|
|
420
|
+
break;
|
|
421
|
+
const e2 = 2 * err;
|
|
422
|
+
if (e2 >= dy) {
|
|
423
|
+
err += dy;
|
|
424
|
+
ix0 += sx;
|
|
425
|
+
}
|
|
426
|
+
if (e2 <= dx) {
|
|
427
|
+
err += dx;
|
|
428
|
+
iy0 += sy;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Midpoint circle algorithm — plots a 1-pixel-wide circle outline of radius
|
|
434
|
+
* `r` centred at (cx,cy) using the current `ctx.fillStyle`.
|
|
435
|
+
*/
|
|
436
|
+
function _plotCircle(ctx, cx, cy, r) {
|
|
437
|
+
let x = 0, y = r, d = 1 - r;
|
|
438
|
+
while (y >= x) {
|
|
439
|
+
ctx.fillRect(cx + x, cy + y, 1, 1);
|
|
440
|
+
ctx.fillRect(cx + y, cy + x, 1, 1);
|
|
441
|
+
ctx.fillRect(cx - x, cy + y, 1, 1);
|
|
442
|
+
ctx.fillRect(cx - y, cy + x, 1, 1);
|
|
443
|
+
ctx.fillRect(cx + x, cy - y, 1, 1);
|
|
444
|
+
ctx.fillRect(cx + y, cy - x, 1, 1);
|
|
445
|
+
ctx.fillRect(cx - x, cy - y, 1, 1);
|
|
446
|
+
ctx.fillRect(cx - y, cy - x, 1, 1);
|
|
447
|
+
x++;
|
|
448
|
+
if (d < 0) {
|
|
449
|
+
d += 2 * x + 1;
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
y--;
|
|
453
|
+
d += 2 * (x - y) + 1;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Fills a solid disc of radius `r` centred at (cx,cy) using the current
|
|
459
|
+
* `ctx.fillStyle`. Uses horizontal `fillRect` spans for efficiency.
|
|
460
|
+
*/
|
|
461
|
+
function _fillCircle(ctx, cx, cy, r) {
|
|
462
|
+
for (let dy = -r; dy <= r; dy++) {
|
|
463
|
+
const xMax = Math.floor(Math.sqrt(Math.max(0, r * r - dy * dy)));
|
|
464
|
+
if (xMax >= 0)
|
|
465
|
+
ctx.fillRect(cx - xMax, cy + dy, 2 * xMax + 1, 1);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
111
468
|
// ─── Public API — stateful widget ────────────────────────────────────────────
|
|
112
469
|
/**
|
|
113
470
|
* Draws a ZX-style progress / value bar and registers it for managed redraws.
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|