@silvery/examples 0.17.3 → 0.17.5
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/dist/UPNG-ShUlaTDh.mjs +5074 -0
- package/dist/__vite-browser-external-2447137e-Bopa5BFR.mjs +4 -0
- package/dist/_banner-A70_y2Vi.mjs +43 -0
- package/dist/ansi-0VXlUmNn.mjs +16397 -0
- package/dist/apng-B0gRaDVT.mjs +3 -0
- package/dist/apng-BTRDTfDW.mjs +68 -0
- package/dist/apps/aichat/index.mjs +1298 -0
- package/dist/apps/app-todo.mjs +138 -0
- package/dist/apps/async-data.mjs +203 -0
- package/dist/apps/cli-wizard.mjs +338 -0
- package/dist/apps/clipboard.mjs +197 -0
- package/dist/apps/components.mjs +863 -0
- package/dist/apps/data-explorer.mjs +482 -0
- package/dist/apps/dev-tools.mjs +396 -0
- package/dist/apps/explorer.mjs +697 -0
- package/dist/apps/gallery.mjs +765 -0
- package/dist/apps/inline-bench.mjs +115 -0
- package/dist/apps/kanban.mjs +279 -0
- package/dist/apps/layout-ref.mjs +186 -0
- package/dist/apps/outline.mjs +202 -0
- package/dist/apps/paste-demo.mjs +188 -0
- package/dist/apps/scroll.mjs +85 -0
- package/dist/apps/search-filter.mjs +286 -0
- package/dist/apps/selection.mjs +354 -0
- package/dist/apps/spatial-focus-demo.mjs +387 -0
- package/dist/apps/task-list.mjs +257 -0
- package/dist/apps/terminal-caps-demo.mjs +314 -0
- package/dist/apps/terminal.mjs +871 -0
- package/dist/apps/text-selection-demo.mjs +253 -0
- package/dist/apps/textarea.mjs +177 -0
- package/dist/apps/theme.mjs +660 -0
- package/dist/apps/transform.mjs +214 -0
- package/dist/apps/virtual-10k.mjs +421 -0
- package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
- package/dist/backends-Dj-11kZF.mjs +1179 -0
- package/dist/backends-U3QwStfO.mjs +3 -0
- package/dist/{cli.mjs → bin/cli.mjs} +15 -19
- package/dist/chunk-BSw8zbkd.mjs +37 -0
- package/dist/components/counter.mjs +47 -0
- package/dist/components/hello.mjs +30 -0
- package/dist/components/progress-bar.mjs +58 -0
- package/dist/components/select-list.mjs +84 -0
- package/dist/components/spinner.mjs +56 -0
- package/dist/components/text-input.mjs +61 -0
- package/dist/components/virtual-list.mjs +50 -0
- package/dist/flexily-zero-adapter-ByVzLTFP.mjs +3374 -0
- package/dist/gif-B6NGH5gs.mjs +3 -0
- package/dist/gif-CfkOF-iG.mjs +71 -0
- package/dist/gifenc-BI4ihP_T.mjs +728 -0
- package/dist/key-mapping-5oYQdAQE.mjs +3 -0
- package/dist/key-mapping-D4LR1go6.mjs +130 -0
- package/dist/layout/dashboard.mjs +1203 -0
- package/dist/layout/live-resize.mjs +302 -0
- package/dist/layout/overflow.mjs +69 -0
- package/dist/layout/text-layout.mjs +334 -0
- package/dist/node-nsrAOjH4.mjs +1083 -0
- package/dist/plugins-CT0DdV_E.mjs +3056 -0
- package/dist/resvg-js-Cnk2o49d.mjs +201 -0
- package/dist/src-9ZhfQyzD.mjs +814 -0
- package/dist/src-CUUOuRH6.mjs +5322 -0
- package/dist/src-jO3Zuzjj.mjs +23538 -0
- package/dist/usingCtx-CsEf0xO3.mjs +57 -0
- package/dist/yoga-adapter-BSQHuMV9.mjs +237 -0
- package/package.json +21 -14
- package/_banner.tsx +0 -60
- package/apps/aichat/components.tsx +0 -469
- package/apps/aichat/index.tsx +0 -220
- package/apps/aichat/script.ts +0 -460
- package/apps/aichat/state.ts +0 -325
- package/apps/aichat/types.ts +0 -19
- package/apps/app-todo.tsx +0 -201
- package/apps/async-data.tsx +0 -196
- package/apps/cli-wizard.tsx +0 -332
- package/apps/clipboard.tsx +0 -183
- package/apps/components.tsx +0 -658
- package/apps/data-explorer.tsx +0 -490
- package/apps/dev-tools.tsx +0 -395
- package/apps/explorer.tsx +0 -731
- package/apps/gallery.tsx +0 -653
- package/apps/inline-bench.tsx +0 -138
- package/apps/kanban.tsx +0 -265
- package/apps/layout-ref.tsx +0 -173
- package/apps/outline.tsx +0 -160
- package/apps/panes/index.tsx +0 -203
- package/apps/paste-demo.tsx +0 -185
- package/apps/scroll.tsx +0 -80
- package/apps/search-filter.tsx +0 -240
- package/apps/selection.tsx +0 -346
- package/apps/spatial-focus-demo.tsx +0 -372
- package/apps/task-list.tsx +0 -271
- package/apps/terminal-caps-demo.tsx +0 -317
- package/apps/terminal.tsx +0 -784
- package/apps/text-selection-demo.tsx +0 -193
- package/apps/textarea.tsx +0 -155
- package/apps/theme.tsx +0 -515
- package/apps/transform.tsx +0 -229
- package/apps/virtual-10k.tsx +0 -405
- package/apps/vterm-demo/index.tsx +0 -216
- package/components/counter.tsx +0 -49
- package/components/hello.tsx +0 -38
- package/components/progress-bar.tsx +0 -52
- package/components/select-list.tsx +0 -54
- package/components/spinner.tsx +0 -44
- package/components/text-input.tsx +0 -61
- package/components/virtual-list.tsx +0 -56
- package/dist/cli.d.mts +0 -1
- package/dist/cli.mjs.map +0 -1
- package/layout/dashboard.tsx +0 -953
- package/layout/live-resize.tsx +0 -282
- package/layout/overflow.tsx +0 -51
- package/layout/text-layout.tsx +0 -283
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { n as __esmMin, o as __toESM } from "./chunk-BSw8zbkd.mjs";
|
|
2
|
+
//#region ../../termless/src/animation/apng.ts
|
|
3
|
+
async function loadUpng() {
|
|
4
|
+
if (upngModule) return upngModule;
|
|
5
|
+
try {
|
|
6
|
+
upngModule = await import("./UPNG-ShUlaTDh.mjs").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
|
|
7
|
+
return upngModule;
|
|
8
|
+
} catch {
|
|
9
|
+
throw new Error("createApng() requires upng-js. Install it:\n bun add upng-js");
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async function loadResvg() {
|
|
13
|
+
if (resvgModule) return resvgModule;
|
|
14
|
+
try {
|
|
15
|
+
resvgModule = await import("./resvg-js-Cnk2o49d.mjs").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
|
|
16
|
+
return resvgModule;
|
|
17
|
+
} catch {
|
|
18
|
+
throw new Error("createApng() requires @resvg/resvg-js. Install it:\n bun add @resvg/resvg-js");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Encode animation frames as an animated PNG (APNG).
|
|
23
|
+
*
|
|
24
|
+
* Each SVG frame is rasterized to RGBA pixels via @resvg/resvg-js,
|
|
25
|
+
* then combined into a single APNG file via upng-js.
|
|
26
|
+
*
|
|
27
|
+
* @param frames - SVG frames with durations
|
|
28
|
+
* @param options - Animation options plus optional `scale` for rasterization
|
|
29
|
+
* @returns APNG file as Uint8Array
|
|
30
|
+
*/
|
|
31
|
+
async function createApng(frames, options) {
|
|
32
|
+
if (frames.length === 0) throw new Error("createApng requires at least one frame");
|
|
33
|
+
const [UPNG, { Resvg }] = await Promise.all([loadUpng(), loadResvg()]);
|
|
34
|
+
const defaultDuration = options?.defaultDuration ?? 100;
|
|
35
|
+
const scale = options?.scale ?? 2;
|
|
36
|
+
const rgbaBuffers = [];
|
|
37
|
+
const delays = [];
|
|
38
|
+
let width = 0;
|
|
39
|
+
let height = 0;
|
|
40
|
+
for (const frame of frames) {
|
|
41
|
+
const duration = frame.duration || defaultDuration;
|
|
42
|
+
const rendered = new Resvg(frame.svg, {
|
|
43
|
+
fitTo: {
|
|
44
|
+
mode: "zoom",
|
|
45
|
+
value: scale
|
|
46
|
+
},
|
|
47
|
+
font: {
|
|
48
|
+
loadSystemFonts: true,
|
|
49
|
+
defaultFontFamily: "Menlo"
|
|
50
|
+
}
|
|
51
|
+
}).render();
|
|
52
|
+
if (width === 0) {
|
|
53
|
+
width = rendered.width;
|
|
54
|
+
height = rendered.height;
|
|
55
|
+
}
|
|
56
|
+
rgbaBuffers.push(rendered.pixels.buffer);
|
|
57
|
+
delays.push(duration);
|
|
58
|
+
}
|
|
59
|
+
const apng = UPNG.encode(rgbaBuffers, width, height, 0, delays);
|
|
60
|
+
return new Uint8Array(apng);
|
|
61
|
+
}
|
|
62
|
+
var upngModule, resvgModule;
|
|
63
|
+
var init_apng = __esmMin((() => {
|
|
64
|
+
upngModule = null;
|
|
65
|
+
resvgModule = null;
|
|
66
|
+
}));
|
|
67
|
+
//#endregion
|
|
68
|
+
export { init_apng as n, createApng as t };
|