silvery 0.23.0 → 0.23.1
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/{Text-Ci6UCSTL.mjs → Text-4tWKabKH.mjs} +5 -5
- package/dist/{Text-Ci6UCSTL.mjs.map → Text-4tWKabKH.mjs.map} +1 -1
- package/dist/{ag-q9lRlKlt.mjs → ag-B-7XAHL8.mjs} +9 -9
- package/dist/{ag-q9lRlKlt.mjs.map → ag-B-7XAHL8.mjs.map} +1 -1
- package/dist/animation-CZ4x2R7C.mjs.map +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts → ansi-qYRTDp5m.d.mts} +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts.map → ansi-qYRTDp5m.d.mts.map} +1 -1
- package/dist/{chain-bridge-CkYcMxlq.mjs → chain-bridge-B7LNJwVF.mjs} +8 -8
- package/dist/{chain-bridge-CkYcMxlq.mjs.map → chain-bridge-B7LNJwVF.mjs.map} +1 -1
- package/dist/{chunk-BEJ448es.mjs → chunk-hT5z_Zn9.mjs} +1 -1
- package/dist/cli-CuNV0hTE.mjs +4 -0
- package/dist/devtools-BuTq07Zb.mjs +2 -0
- package/dist/{devtools-td2AjFwc.mjs → devtools-akTjVxxX.mjs} +4 -5
- package/dist/{devtools-td2AjFwc.mjs.map → devtools-akTjVxxX.mjs.map} +1 -1
- package/dist/{easing-C5MrdO7V.d.mts → easing-8OlNopWv.d.mts} +1 -1
- package/dist/{easing-C5MrdO7V.d.mts.map → easing-8OlNopWv.d.mts.map} +1 -1
- package/dist/{eta-BwYWEjfS.mjs → eta-CPZ45g_P.mjs} +5 -1
- package/dist/{eta-BwYWEjfS.mjs.map → eta-CPZ45g_P.mjs.map} +1 -1
- package/dist/flexily-zero-adapter-VoBGHG14.mjs.map +1 -1
- package/dist/{hit-registry-D_nxOivS.d.mts → hit-registry-DRV2ig-Y.d.mts} +2 -2
- package/dist/{hit-registry-D_nxOivS.d.mts.map → hit-registry-DRV2ig-Y.d.mts.map} +1 -1
- package/dist/{image-CIF75xMr.mjs → image-o2WpbrD1.mjs} +22 -22
- package/dist/image-o2WpbrD1.mjs.map +1 -0
- package/dist/{index-377zdPLP.d.mts → index-3vAxA_EQ.d.mts} +1 -1
- package/dist/{index-377zdPLP.d.mts.map → index-3vAxA_EQ.d.mts.map} +1 -1
- package/dist/{index-BcSr0RAQ.d.mts → index-BKujGENR.d.mts} +6 -6
- package/dist/index-BKujGENR.d.mts.map +1 -0
- package/dist/{index-DlNmckTq.d.mts → index-C6oOd9eE.d.mts} +2 -2
- package/dist/{index-DlNmckTq.d.mts.map → index-C6oOd9eE.d.mts.map} +1 -1
- package/dist/{index-DLnpxDAm.d.mts → index-DhYF3m7V.d.mts} +2 -2
- package/dist/{index-DLnpxDAm.d.mts.map → index-DhYF3m7V.d.mts.map} +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +14 -14
- package/dist/index.mjs.map +1 -1
- package/dist/{layout-engine-BgR58vL0.mjs → layout-engine-BYp49XPD.mjs} +2 -2
- package/dist/{layout-engine-BgR58vL0.mjs.map → layout-engine-BYp49XPD.mjs.map} +1 -1
- package/dist/{layout-engine-DNjTha8f.mjs → layout-engine-D0dXw5fr.mjs} +1 -1
- package/dist/{layout-signals-CGYbHmxy.mjs → layout-signals-uQadGDmO.mjs} +2 -2
- package/dist/{layout-signals-CGYbHmxy.mjs.map → layout-signals-uQadGDmO.mjs.map} +1 -1
- package/dist/{mouse-events-WQ2h-uqG.mjs → mouse-events-Pg-XKR3T.mjs} +24 -3
- package/dist/{mouse-events-WQ2h-uqG.mjs.map → mouse-events-Pg-XKR3T.mjs.map} +1 -1
- package/dist/{mouse-events-B2z5tbsL.d.mts → mouse-events-UoUWNIdS.d.mts} +22 -3
- package/dist/{mouse-events-B2z5tbsL.d.mts.map → mouse-events-UoUWNIdS.d.mts.map} +1 -1
- package/dist/{multi-progress-zCWHEm9P.mjs → multi-progress-Bvd1BYED.mjs} +2 -2
- package/dist/{multi-progress-zCWHEm9P.mjs.map → multi-progress-Bvd1BYED.mjs.map} +1 -1
- package/dist/{multi-progress-BaEFfHKP.d.mts → multi-progress-DPOCjomS.d.mts} +2 -2
- package/dist/{multi-progress-BaEFfHKP.d.mts.map → multi-progress-DPOCjomS.d.mts.map} +1 -1
- package/dist/{node-CJ3J_rW-.mjs → node-Cl-kzQcl.mjs} +4 -4
- package/dist/node-Cl-kzQcl.mjs.map +1 -0
- package/dist/{progress-6vJ7nxUg.mjs → progress-1r6M_ZAP.mjs} +4 -4
- package/dist/{progress-6vJ7nxUg.mjs.map → progress-1r6M_ZAP.mjs.map} +1 -1
- package/dist/{progress-bar-BlFNsZL8.mjs → progress-bar-DzW1DzNj.mjs} +3 -3
- package/dist/{progress-bar-BlFNsZL8.mjs.map → progress-bar-DzW1DzNj.mjs.map} +1 -1
- package/dist/{reconciler--_-biN23.mjs → reconciler-lsTL1y8i.mjs} +45 -5
- package/dist/{reconciler--_-biN23.mjs.map → reconciler-lsTL1y8i.mjs.map} +1 -1
- package/dist/{render-string-DtHZP0cU.mjs → render-string-2ZcV8n3B.mjs} +6 -6
- package/dist/{render-string-DtHZP0cU.mjs.map → render-string-2ZcV8n3B.mjs.map} +1 -1
- package/dist/{render-string-DaghHpLN.mjs → render-string-BJZqo5Rr.mjs} +1 -1
- package/dist/runtime.d.mts +3 -3
- package/dist/runtime.mjs +3 -3
- package/dist/{schemes-DWQPxXAi.mjs → schemes-C4SUgVea.mjs} +2 -2
- package/dist/{schemes-DWQPxXAi.mjs.map → schemes-C4SUgVea.mjs.map} +1 -1
- package/dist/{spinner-B50hILqx.mjs → spinner-Ck3SdCpW.mjs} +2 -2
- package/dist/{spinner-B50hILqx.mjs.map → spinner-Ck3SdCpW.mjs.map} +1 -1
- package/dist/{spinner-DN10UfF0.d.mts → spinner-CpcGtQ9L.d.mts} +2 -2
- package/dist/{spinner-DN10UfF0.d.mts.map → spinner-CpcGtQ9L.d.mts.map} +1 -1
- package/dist/{src-BqeBFB3X.mjs → src-B6MuVlOK.mjs} +3 -3
- package/dist/src-B6MuVlOK.mjs.map +1 -0
- package/dist/{src-DbqcSrhy.mjs → src-BZOfzNeo.mjs} +32 -9
- package/dist/src-BZOfzNeo.mjs.map +1 -0
- package/dist/{src-BXeTHHlL.mjs → src-ChuXo--x.mjs} +25 -23
- package/dist/src-ChuXo--x.mjs.map +1 -0
- package/dist/{src-BOLdi3WG.mjs → src-DdGaRDi9.mjs} +3 -3
- package/dist/{src-BOLdi3WG.mjs.map → src-DdGaRDi9.mjs.map} +1 -1
- package/dist/{src-B8lf1kiR.mjs → src-DorsnS70.mjs} +8 -1
- package/dist/src-DorsnS70.mjs.map +1 -0
- package/dist/{steps-B2kBmFpb.d.mts → steps-DV34gm_Z.d.mts} +1 -1
- package/dist/{steps-B2kBmFpb.d.mts.map → steps-DV34gm_Z.d.mts.map} +1 -1
- package/dist/svg-NmV9dgB9.mjs.map +1 -1
- package/dist/{svg-VUr78l5d.d.mts → svg-wvIEu-RS.d.mts} +1 -1
- package/dist/{svg-VUr78l5d.d.mts.map → svg-wvIEu-RS.d.mts.map} +1 -1
- package/dist/term.d.mts +3 -3
- package/dist/term.mjs +4 -4
- package/dist/test.d.mts +3 -3
- package/dist/test.mjs +9 -9
- package/dist/test.mjs.map +1 -1
- package/dist/theme.d.mts +2 -2
- package/dist/theme.mjs +3 -3
- package/dist/{types-D_E0FbqA.d.mts → types-VyreAPAB.d.mts} +1 -1
- package/dist/{types-D_E0FbqA.d.mts.map → types-VyreAPAB.d.mts.map} +1 -1
- package/dist/ui/animation.d.mts +2 -2
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +4 -4
- package/dist/ui/image.d.mts +1 -1
- package/dist/ui/image.mjs +1 -1
- package/dist/ui/progress.d.mts +4 -4
- package/dist/ui/progress.mjs +4 -4
- package/dist/ui/react.d.mts +1 -1
- package/dist/ui/react.mjs +2 -2
- package/dist/ui/react.mjs.map +1 -1
- package/dist/ui/recording-chrome-react.d.mts +1 -1
- package/dist/ui/recording-chrome-react.mjs +1 -1
- package/dist/ui/recording-chrome.d.mts +1 -1
- package/dist/ui/utils.mjs +1 -1
- package/dist/ui/wrappers.d.mts +2 -2
- package/dist/ui/wrappers.mjs +1 -1
- package/dist/ui.d.mts +6 -6
- package/dist/ui.mjs +6 -6
- package/dist/{unicode-CxyxVGmB.mjs → unicode-X43-fdGF.mjs} +3 -3
- package/dist/unicode-X43-fdGF.mjs.map +1 -0
- package/dist/{useLatest-UOvWy0ZW.d.mts → useLatest-D9p0ZDAC.d.mts} +2 -2
- package/dist/{useLatest-UOvWy0ZW.d.mts.map → useLatest-D9p0ZDAC.d.mts.map} +1 -1
- package/dist/{useLayout-D5cE8OCI.mjs → useLayout-Cx01rHVI.mjs} +3 -3
- package/dist/{useLayout-D5cE8OCI.mjs.map → useLayout-Cx01rHVI.mjs.map} +1 -1
- package/dist/{with-text-input-DLoSCBrm.d.mts → with-text-input-CW8MR9Th.d.mts} +3 -3
- package/dist/{with-text-input-DLoSCBrm.d.mts.map → with-text-input-CW8MR9Th.d.mts.map} +1 -1
- package/dist/{wrap-measurer-registration-IV2HtcCd.d.mts → wrap-measurer-registration-DNBmtFNM.d.mts} +3 -3
- package/dist/{wrap-measurer-registration-IV2HtcCd.d.mts.map → wrap-measurer-registration-DNBmtFNM.d.mts.map} +1 -1
- package/dist/{wrapper-CD29afOs.mjs → wrapper-DpMauwdI.mjs} +51 -33
- package/dist/wrapper-DpMauwdI.mjs.map +1 -0
- package/dist/{wrappers-CInBJm44.mjs → wrappers-DHMzvbRo.mjs} +5 -5
- package/dist/{wrappers-CInBJm44.mjs.map → wrappers-DHMzvbRo.mjs.map} +1 -1
- package/dist/yoga-adapter-B-DCP4Bx.mjs +2 -0
- package/dist/{yoga-adapter-9uab5Qn-.mjs → yoga-adapter-CB_7pLyl.mjs} +2 -2
- package/dist/{yoga-adapter-9uab5Qn-.mjs.map → yoga-adapter-CB_7pLyl.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/backend-DSiSIc-h.mjs +0 -13396
- package/dist/backend-DSiSIc-h.mjs.map +0 -1
- package/dist/cli-VNqUKlXw.mjs +0 -4
- package/dist/devtools-BF4IMumr.mjs +0 -2
- package/dist/image-CIF75xMr.mjs.map +0 -1
- package/dist/index-BcSr0RAQ.d.mts.map +0 -1
- package/dist/node-CJ3J_rW-.mjs.map +0 -1
- package/dist/src-B8lf1kiR.mjs.map +0 -1
- package/dist/src-BXeTHHlL.mjs.map +0 -1
- package/dist/src-BqeBFB3X.mjs.map +0 -1
- package/dist/src-DbqcSrhy.mjs.map +0 -1
- package/dist/unicode-CxyxVGmB.mjs.map +0 -1
- package/dist/wrapper-CD29afOs.mjs.map +0 -1
- package/dist/yoga-adapter-yqTl1aXK.mjs +0 -2
|
@@ -6,7 +6,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
9
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
10
10
|
var __exportAll = (all, no_symbols) => {
|
|
11
11
|
let target = {};
|
|
12
12
|
for (var name in all) __defProp(target, name, {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import { i as reconciler } from "./reconciler--_-biN23.mjs";
|
|
1
|
+
import { i as reconciler } from "./reconciler-lsTL1y8i.mjs";
|
|
3
2
|
import { createLogger } from "loggily";
|
|
4
3
|
//#region packages/ag-term/src/devtools.ts
|
|
5
4
|
/**
|
|
@@ -40,7 +39,7 @@ async function connectDevTools() {
|
|
|
40
39
|
if (connected) return true;
|
|
41
40
|
try {
|
|
42
41
|
if (typeof globalThis.WebSocket === "undefined") try {
|
|
43
|
-
const ws = await import("./wrapper-
|
|
42
|
+
const ws = await import("./wrapper-DpMauwdI.mjs");
|
|
44
43
|
globalThis.WebSocket = ws.default ?? ws;
|
|
45
44
|
} catch {
|
|
46
45
|
log.warn?.("WebSocket polyfill (ws) not available. Install ws for DevTools support: bun add -d ws");
|
|
@@ -57,7 +56,7 @@ async function connectDevTools() {
|
|
|
57
56
|
isEnabled: true,
|
|
58
57
|
isValid: true
|
|
59
58
|
}];
|
|
60
|
-
const devtools = await import("
|
|
59
|
+
const devtools = await import("react-devtools-core");
|
|
61
60
|
devtools.initialize();
|
|
62
61
|
devtools.connectToDevTools();
|
|
63
62
|
reconciler.injectIntoDevTools();
|
|
@@ -86,4 +85,4 @@ async function autoConnectDevTools() {
|
|
|
86
85
|
//#endregion
|
|
87
86
|
export { connectDevTools as n, isDevToolsConnected as r, autoConnectDevTools as t };
|
|
88
87
|
|
|
89
|
-
//# sourceMappingURL=devtools-
|
|
88
|
+
//# sourceMappingURL=devtools-akTjVxxX.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-
|
|
1
|
+
{"version":3,"file":"devtools-akTjVxxX.mjs","names":[],"sources":["../packages/ag-term/src/devtools.ts"],"sourcesContent":["/**\n * React DevTools integration for silvery.\n *\n * Provides optional connection to React DevTools standalone app for\n * debugging TUI component trees. Requires `react-devtools-core` to be\n * installed (optional peer dependency).\n *\n * Usage:\n * 1. Install: `bun add -d react-devtools-core`\n * 2. Run devtools: `npx react-devtools`\n * 3. Launch app with: `DEBUG_DEVTOOLS=1 bun run app.ts`\n *\n * Or call `connectDevTools()` manually from your app code.\n *\n * @module\n */\n\nimport { reconciler } from \"@silvery/ag-react/reconciler\"\nimport { createLogger } from \"loggily\"\n\nconst log = createLogger(\"silvery:devtools\")\n\nlet connected = false\n\n/**\n * Connect to React DevTools standalone app.\n *\n * This lazy-loads `react-devtools-core` so it has zero impact on\n * production bundles. The connection is established via WebSocket\n * to the devtools electron app (default: ws://localhost:8097).\n *\n * Safe to call multiple times -- subsequent calls are no-ops.\n *\n * @example\n * ```ts\n * import { connectDevTools } from '@silvery/ag-react';\n * await connectDevTools();\n * // Now open React DevTools standalone to inspect the component tree\n * ```\n */\nexport async function connectDevTools(): Promise<boolean> {\n if (connected) return true\n\n try {\n // Polyfill WebSocket for Node.js environments (required by react-devtools-core)\n if (typeof globalThis.WebSocket === \"undefined\") {\n try {\n // @ts-expect-error -- ws is an optional peer dependency\n const ws = await import(\"ws\")\n globalThis.WebSocket = ws.default ?? ws\n } catch {\n // ws not available -- devtools won't be able to connect\n log.warn?.(\n \"WebSocket polyfill (ws) not available. \" +\n \"Install ws for DevTools support: bun add -d ws\",\n )\n return false\n }\n }\n\n // Ensure window/self exist for react-devtools-core internals\n if (typeof globalThis.window === \"undefined\") {\n // @ts-expect-error -- polyfill for devtools\n globalThis.window = globalThis\n }\n\n // Configure component filters to hide silvery internals from the DevTools tree.\n // Filter types from react-devtools-shared/src/types.js:\n // 1 = ComponentFilterElementType, value 7 = HostComponent\n // 2 = ComponentFilterDisplayName (regex on displayName)\n if (!globalThis.__REACT_DEVTOOLS_COMPONENT_FILTERS__) {\n globalThis.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n { type: 1, value: 7, isEnabled: true },\n { type: 2, value: \"SilveryApp\", isEnabled: true, isValid: true },\n ]\n }\n\n // @ts-expect-error -- react-devtools-core has no type declarations\n const devtools = await import(\"react-devtools-core\")\n devtools.initialize()\n devtools.connectToDevTools()\n\n // Inject renderer info so DevTools can identify silvery.\n // rendererPackageName and rendererVersion are read from the host config\n // passed to Reconciler() -- see reconciler/host-config.ts.\n reconciler.injectIntoDevTools()\n\n connected = true\n return true\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error)\n log.warn?.(\n `Failed to connect to React DevTools. ` +\n `Install react-devtools-core: bun add -d react-devtools-core\\n` +\n ` Error: ${message}`,\n )\n return false\n }\n}\n\n/**\n * Check if DevTools are currently connected.\n */\nexport function isDevToolsConnected(): boolean {\n return connected\n}\n\n/**\n * Auto-connect to DevTools if DEBUG_DEVTOOLS=1 environment variable is set.\n * Called internally during render initialization.\n */\nexport async function autoConnectDevTools(): Promise<void> {\n if (process.env.DEBUG_DEVTOOLS === \"1\" || process.env.DEBUG_DEVTOOLS === \"true\") {\n await connectDevTools()\n }\n}\n\n// Global type augmentation for devtools polyfills\ndeclare global {\n var __REACT_DEVTOOLS_COMPONENT_FILTERS__: Array<{\n type: number\n value: number | string\n isEnabled: boolean\n isValid?: boolean\n }>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM,MAAM,aAAa,mBAAmB;AAE5C,IAAI,YAAY;;;;;;;;;;;;;;;;;AAkBhB,eAAsB,kBAAoC;AACxD,KAAI,UAAW,QAAO;AAEtB,KAAI;AAEF,MAAI,OAAO,WAAW,cAAc,YAClC,KAAI;GAEF,MAAM,KAAK,MAAM,OAAO;AACxB,cAAW,YAAY,GAAG,WAAW;UAC/B;AAEN,OAAI,OACF,wFAED;AACD,UAAO;;AAKX,MAAI,OAAO,WAAW,WAAW,YAE/B,YAAW,SAAS;AAOtB,MAAI,CAAC,WAAW,qCACd,YAAW,uCAAuC,CAChD;GAAE,MAAM;GAAG,OAAO;GAAG,WAAW;GAAM,EACtC;GAAE,MAAM;GAAG,OAAO;GAAc,WAAW;GAAM,SAAS;GAAM,CACjE;EAIH,MAAM,WAAW,MAAM,OAAO;AAC9B,WAAS,YAAY;AACrB,WAAS,mBAAmB;AAK5B,aAAW,oBAAoB;AAE/B,cAAY;AACZ,SAAO;UACA,OAAgB;EACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,MAAI,OACF;WAEc,UACf;AACD,SAAO;;;;;;AAOX,SAAgB,sBAA+B;AAC7C,QAAO;;;;;;AAOT,eAAsB,sBAAqC;AACzD,KAAI,QAAQ,IAAI,mBAAmB,OAAO,QAAQ,IAAI,mBAAmB,OACvE,OAAM,iBAAiB"}
|
|
@@ -21,4 +21,4 @@ type EasingName = keyof typeof easings;
|
|
|
21
21
|
declare function resolveEasing(easing: EasingName | EasingFn): EasingFn;
|
|
22
22
|
//#endregion
|
|
23
23
|
export { resolveEasing as i, EasingName as n, easings as r, EasingFn as t };
|
|
24
|
-
//# sourceMappingURL=easing-
|
|
24
|
+
//# sourceMappingURL=easing-8OlNopWv.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"easing-
|
|
1
|
+
{"version":3,"file":"easing-8OlNopWv.d.mts","names":[],"sources":["../packages/ag-react/src/ui/animation/easing.ts"],"mappings":";;AAYA;;;;;AAMA;AAAA,KANY,QAAA,IAAY,CAAA;AAAA,cAMX,OAAA;EAAA;;;;;;;;KAUD,UAAA,gBAA0B,OAAA;;iBAOtB,aAAA,CAAc,MAAA,EAAQ,UAAA,GAAa,QAAA,GAAW,QAAA"}
|
|
@@ -86,6 +86,7 @@ const DEFAULT_ETA_BUFFER_SIZE = 10;
|
|
|
86
86
|
function createETATracker(bufferSize = 10) {
|
|
87
87
|
const buffer = [];
|
|
88
88
|
return {
|
|
89
|
+
/** Record a new sample */
|
|
89
90
|
record(value) {
|
|
90
91
|
buffer.push({
|
|
91
92
|
time: Date.now(),
|
|
@@ -93,12 +94,15 @@ function createETATracker(bufferSize = 10) {
|
|
|
93
94
|
});
|
|
94
95
|
if (buffer.length > bufferSize) buffer.shift();
|
|
95
96
|
},
|
|
97
|
+
/** Get current ETA */
|
|
96
98
|
getETA(current, total) {
|
|
97
99
|
return getETA(buffer, current, total);
|
|
98
100
|
},
|
|
101
|
+
/** Reset the buffer */
|
|
99
102
|
reset() {
|
|
100
103
|
buffer.length = 0;
|
|
101
104
|
},
|
|
105
|
+
/** Get buffer for external use */
|
|
102
106
|
getBuffer() {
|
|
103
107
|
return buffer;
|
|
104
108
|
}
|
|
@@ -107,4 +111,4 @@ function createETATracker(bufferSize = 10) {
|
|
|
107
111
|
//#endregion
|
|
108
112
|
export { getETA as a, formatETA as i, calculateETA as n, createETATracker as r, DEFAULT_ETA_BUFFER_SIZE as t };
|
|
109
113
|
|
|
110
|
-
//# sourceMappingURL=eta-
|
|
114
|
+
//# sourceMappingURL=eta-CPZ45g_P.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eta-
|
|
1
|
+
{"version":3,"file":"eta-CPZ45g_P.mjs","names":[],"sources":["../packages/ag-react/src/ui/utils/eta.ts"],"sourcesContent":["/**\n * Shared ETA calculation utilities\n */\n\n/** Sample point for ETA calculation */\nexport interface ETASample {\n time: number\n value: number\n}\n\n/** ETA calculation result */\nexport interface ETAResult {\n /** Estimated seconds remaining, or null if insufficient data */\n seconds: number | null\n /** Formatted ETA string (e.g., \"1:30\", \"2:15:30\", \"--:--\") */\n formatted: string\n}\n\n/**\n * Calculate ETA from a buffer of samples\n *\n * @param buffer - Array of {time, value} samples\n * @param current - Current progress value\n * @param total - Total target value\n * @returns ETA in seconds (null if insufficient data)\n *\n * @example\n * ```ts\n * const buffer = [\n * { time: 1000, value: 0 },\n * { time: 2000, value: 10 },\n * ];\n * const eta = calculateETA(buffer, 10, 100);\n * // eta = 9 (9 seconds remaining at 10 items/sec)\n * ```\n */\nexport function calculateETA(buffer: ETASample[], current: number, total: number): number | null {\n if (buffer.length < 2) {\n return null\n }\n\n const first = buffer[0]!\n const last = buffer[buffer.length - 1]!\n\n const elapsed = (last.time - first.time) / 1000 // seconds\n const progress = last.value - first.value\n\n if (elapsed <= 0 || progress <= 0) {\n return null\n }\n\n const rate = progress / elapsed // items per second\n const remaining = total - current\n\n return remaining / rate\n}\n\n/**\n * Format ETA seconds as human-readable string\n *\n * @param eta - ETA in seconds (null for unknown)\n * @returns Formatted string (e.g., \"1:30\", \"2:15:30\", \"--:--\", \">1d\")\n *\n * @example\n * ```ts\n * formatETA(90) // \"1:30\"\n * formatETA(3665) // \"1:01:05\"\n * formatETA(null) // \"--:--\"\n * formatETA(100000) // \">1d\"\n * ```\n */\nexport function formatETA(eta: number | null): string {\n if (eta === null || !isFinite(eta)) {\n return \"--:--\"\n }\n\n if (eta > 86400) {\n // > 24 hours\n return \">1d\"\n }\n\n const hours = Math.floor(eta / 3600)\n const minutes = Math.floor((eta % 3600) / 60)\n const seconds = Math.floor(eta % 60)\n\n if (hours > 0) {\n return `${hours}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`\n }\n\n return `${minutes}:${seconds.toString().padStart(2, \"0\")}`\n}\n\n/**\n * Calculate and format ETA in one call\n *\n * @param buffer - Array of {time, value} samples\n * @param current - Current progress value\n * @param total - Total target value\n * @returns Object with seconds (number|null) and formatted string\n */\nexport function getETA(buffer: ETASample[], current: number, total: number): ETAResult {\n const seconds = calculateETA(buffer, current, total)\n return {\n seconds,\n formatted: formatETA(seconds),\n }\n}\n\n/** Default buffer size for ETA smoothing */\nexport const DEFAULT_ETA_BUFFER_SIZE = 10\n\n/**\n * Create an ETA tracker with automatic buffer management\n *\n * @param bufferSize - Number of samples to keep (default: 10)\n * @returns ETA tracker object\n *\n * @example\n * ```ts\n * const tracker = createETATracker();\n * tracker.record(0);\n * // ... later ...\n * tracker.record(50);\n * const eta = tracker.getETA(50, 100);\n * console.log(eta.formatted); // \"0:30\"\n * ```\n */\nexport function createETATracker(bufferSize = DEFAULT_ETA_BUFFER_SIZE) {\n const buffer: ETASample[] = []\n\n return {\n /** Record a new sample */\n record(value: number): void {\n buffer.push({ time: Date.now(), value })\n if (buffer.length > bufferSize) {\n buffer.shift()\n }\n },\n\n /** Get current ETA */\n getETA(current: number, total: number): ETAResult {\n return getETA(buffer, current, total)\n },\n\n /** Reset the buffer */\n reset(): void {\n buffer.length = 0\n },\n\n /** Get buffer for external use */\n getBuffer(): readonly ETASample[] {\n return buffer\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoCA,SAAgB,aAAa,QAAqB,SAAiB,OAA8B;AAC/F,KAAI,OAAO,SAAS,EAClB,QAAO;CAGT,MAAM,QAAQ,OAAO;CACrB,MAAM,OAAO,OAAO,OAAO,SAAS;CAEpC,MAAM,WAAW,KAAK,OAAO,MAAM,QAAQ;CAC3C,MAAM,WAAW,KAAK,QAAQ,MAAM;AAEpC,KAAI,WAAW,KAAK,YAAY,EAC9B,QAAO;CAGT,MAAM,OAAO,WAAW;AAGxB,SAFkB,QAAQ,WAEP;;;;;;;;;;;;;;;;AAiBrB,SAAgB,UAAU,KAA4B;AACpD,KAAI,QAAQ,QAAQ,CAAC,SAAS,IAAI,CAChC,QAAO;AAGT,KAAI,MAAM,MAER,QAAO;CAGT,MAAM,QAAQ,KAAK,MAAM,MAAM,KAAK;CACpC,MAAM,UAAU,KAAK,MAAO,MAAM,OAAQ,GAAG;CAC7C,MAAM,UAAU,KAAK,MAAM,MAAM,GAAG;AAEpC,KAAI,QAAQ,EACV,QAAO,GAAG,MAAM,GAAG,QAAQ,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,QAAQ,UAAU,CAAC,SAAS,GAAG,IAAI;AAG/F,QAAO,GAAG,QAAQ,GAAG,QAAQ,UAAU,CAAC,SAAS,GAAG,IAAI;;;;;;;;;;AAW1D,SAAgB,OAAO,QAAqB,SAAiB,OAA0B;CACrF,MAAM,UAAU,aAAa,QAAQ,SAAS,MAAM;AACpD,QAAO;EACL;EACA,WAAW,UAAU,QAAQ;EAC9B;;;AAIH,MAAa,0BAA0B;;;;;;;;;;;;;;;;;AAkBvC,SAAgB,iBAAiB,aAAA,IAAsC;CACrE,MAAM,SAAsB,EAAE;AAE9B,QAAO;;EAEL,OAAO,OAAqB;AAC1B,UAAO,KAAK;IAAE,MAAM,KAAK,KAAK;IAAE;IAAO,CAAC;AACxC,OAAI,OAAO,SAAS,WAClB,QAAO,OAAO;;;EAKlB,OAAO,SAAiB,OAA0B;AAChD,UAAO,OAAO,QAAQ,SAAS,MAAM;;;EAIvC,QAAc;AACZ,UAAO,SAAS;;;EAIlB,YAAkC;AAChC,UAAO;;EAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flexily-zero-adapter-VoBGHG14.mjs","names":["FlexilyNode"],"sources":["../packages/ag-term/src/adapters/flexily-zero-adapter.ts"],"sourcesContent":["/**\n * Flexily Layout Engine Adapter\n *\n * Wraps Flexily to implement the LayoutEngine interface.\n * Uses the default zero-allocation algorithm from flexily.\n */\n\nimport {\n ALIGN_AUTO,\n ALIGN_BASELINE,\n ALIGN_CENTER,\n ALIGN_FLEX_END,\n ALIGN_FLEX_START,\n ALIGN_SPACE_AROUND,\n ALIGN_SPACE_BETWEEN,\n ALIGN_SPACE_EVENLY,\n ALIGN_STRETCH,\n DIRECTION_LTR,\n DISPLAY_FLEX,\n DISPLAY_NONE,\n EDGE_ALL,\n EDGE_BOTTOM,\n EDGE_HORIZONTAL,\n EDGE_LEFT,\n EDGE_RIGHT,\n EDGE_TOP,\n EDGE_VERTICAL,\n // Constants\n FLEX_DIRECTION_COLUMN,\n FLEX_DIRECTION_COLUMN_REVERSE,\n FLEX_DIRECTION_ROW,\n FLEX_DIRECTION_ROW_REVERSE,\n Node as FlexilyNode,\n GUTTER_ALL,\n GUTTER_COLUMN,\n GUTTER_ROW,\n JUSTIFY_CENTER,\n JUSTIFY_FLEX_END,\n JUSTIFY_FLEX_START,\n JUSTIFY_SPACE_AROUND,\n JUSTIFY_SPACE_BETWEEN,\n JUSTIFY_SPACE_EVENLY,\n MEASURE_MODE_AT_MOST,\n MEASURE_MODE_EXACTLY,\n MEASURE_MODE_MIN_CONTENT,\n MEASURE_MODE_UNDEFINED,\n OVERFLOW_HIDDEN,\n OVERFLOW_SCROLL,\n OVERFLOW_VISIBLE,\n POSITION_TYPE_ABSOLUTE,\n POSITION_TYPE_RELATIVE,\n POSITION_TYPE_STATIC,\n WRAP_NO_WRAP,\n WRAP_WRAP,\n WRAP_WRAP_REVERSE,\n} from \"flexily\"\n\n// Flexily UNIT_CQI / UNIT_CQMIN constants. Hardcoded at this seam rather than\n// imported from \"flexily\" because the published flexily@0.7.1 does not export\n// them yet — A0.2's export-bump (vendor/flexily commit fb61a79) hasn't shipped\n// to npm. Constants are stable per Phase 1 of @km/silvery/responsive-layout-\n// architecture-reframe; same shape as the CONTAINER_TYPE_INLINE_SIZE=1 hardcode\n// in applyBoxProps. When flexily 0.7.2+ ships with the new exports, this can be\n// replaced with a named import.\nconst UNIT_CQI = 6\nconst UNIT_CQMIN = 7\n\nimport type { FitWidthLane, LayoutNode, MeasureFunc, MeasureMode } from \"@silvery/ag/layout-types\"\nimport type {\n AlignValue,\n DirectionValue,\n DisplayValue,\n EdgeValue,\n EngineCapabilities,\n FlexDirectionValue,\n GutterValue,\n JustifyValue,\n LayoutConstants,\n LayoutEngine,\n MeasureModeValue,\n OverflowValue,\n PositionTypeValue,\n WrapValue,\n} from \"../layout-engine\"\n\n/**\n * Capabilities advertised by the flexily-zero adapter.\n *\n * All six A0 primitives shipped: four at A0.1 (engine-native CQ resolution at\n * vendor/flexily `46141e9`), one at A0.2 (fitWidth single-pass lane snap at\n * vendor/flexily `4b44bf9`), one at A0.3 (CSS math functions at vendor/flexily\n * `0aebb95`).\n *\n * - `containerQueries` → A0.1 ✓ — Pass 1 freezeQuerySize + Pass 2 ancestor walk\n * - `containSize` → A0.1 ✓ — Phase 9 inline-axis shrink-wrap gate\n * - `containerQueryUnits` → A0.1 ✓ — UNIT_CQI / UNIT_CQMIN parsed and resolved\n * - `childStyleMutation` → A0.1 ✓ — setContainerQueryStyle hook (A0.0 substrate)\n * - `fitWidth` → A0.2 ✓ — Phase 3 lane-select prefix; single-pass lane snap\n * - `styleMathFunctions` → A0.3 ✓ — UNIT_CALC + MathExpr; late-bound per\n * vendor/flexily/docs/two-phase-layout.md\n */\nconst FLEXILY_CAPABILITIES: EngineCapabilities = Object.freeze({\n containerQueries: true, // ✓ A0.1\n containSize: true, // ✓ A0.1\n containerQueryUnits: true, // ✓ A0.1\n fitWidth: true, // ✓ A0.2\n styleMathFunctions: true, // ✓ A0.3\n childStyleMutation: true, // ✓ A0.1\n})\n\n// ============================================================================\n// Flexily Zero Node Adapter\n// ============================================================================\n\n/**\n * Wraps a Flexily zero-alloc node to implement LayoutNode interface.\n * Since Flexily already has a Yoga-compatible API, this is mostly delegation.\n */\nclass FlexilyZeroNodeAdapter implements LayoutNode {\n private node: FlexilyNode\n\n constructor(node: FlexilyNode) {\n this.node = node\n }\n\n /** Get the underlying Flexily node (for tree operations) */\n getFlexilyNode(): FlexilyNode {\n return this.node\n }\n\n // Tree operations\n insertChild(child: LayoutNode, index: number): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.insertChild(flexilyChild, index)\n }\n\n removeChild(child: LayoutNode): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.removeChild(flexilyChild)\n }\n\n free(): void {\n this.node.free()\n }\n\n // Measure function\n setMeasureFunc(measureFunc: MeasureFunc): void {\n this.node.setMeasureFunc((width, widthMode, height, heightMode) => {\n const widthModeStr = this.measureModeToString(widthMode)\n const heightModeStr = this.measureModeToString(heightMode)\n return measureFunc(width, widthModeStr, height, heightModeStr)\n })\n }\n\n // Dirty tracking - forces layout recalculation\n markDirty(): void {\n this.node.markDirty()\n }\n isDirty(): boolean {\n return this.node.isDirty()\n }\n\n private measureModeToString(mode: number): MeasureMode {\n if (mode === MEASURE_MODE_EXACTLY) return \"exactly\"\n if (mode === MEASURE_MODE_AT_MOST) return \"at-most\"\n if (mode === MEASURE_MODE_MIN_CONTENT) return \"min-content\"\n return \"undefined\"\n }\n\n // Dimension setters\n setWidth(value: number): void {\n this.node.setWidth(value)\n }\n setWidthPercent(value: number): void {\n this.node.setWidthPercent(value)\n }\n setWidthAuto(): void {\n this.node.setWidthAuto()\n }\n setWidthFitContent(): void {\n this.node.setWidthFitContent()\n }\n setWidthSnugContent(): void {\n this.node.setWidthSnugContent()\n }\n setHeight(value: number): void {\n this.node.setHeight(value)\n }\n setHeightPercent(value: number): void {\n this.node.setHeightPercent(value)\n }\n setHeightAuto(): void {\n this.node.setHeightAuto()\n }\n setMinWidth(value: number): void {\n this.node.setMinWidth(value)\n }\n setMinWidthPercent(value: number): void {\n this.node.setMinWidthPercent(value)\n }\n setMinHeight(value: number): void {\n this.node.setMinHeight(value)\n }\n setMinHeightPercent(value: number): void {\n this.node.setMinHeightPercent(value)\n }\n setMaxWidth(value: number): void {\n this.node.setMaxWidth(value)\n }\n setMaxWidthPercent(value: number): void {\n this.node.setMaxWidthPercent(value)\n }\n setMaxHeight(value: number): void {\n this.node.setMaxHeight(value)\n }\n setMaxHeightPercent(value: number): void {\n this.node.setMaxHeightPercent(value)\n }\n\n // Flex properties\n setFlexGrow(value: number): void {\n this.node.setFlexGrow(value)\n }\n setFlexShrink(value: number): void {\n this.node.setFlexShrink(value)\n }\n setFlexBasis(value: number): void {\n this.node.setFlexBasis(value)\n }\n setFlexBasisPercent(value: number): void {\n this.node.setFlexBasisPercent(value)\n }\n setFlexBasisAuto(): void {\n this.node.setFlexBasisAuto()\n }\n setFlexDirection(direction: number): void {\n this.node.setFlexDirection(direction)\n }\n setFlexWrap(wrap: number): void {\n this.node.setFlexWrap(wrap)\n }\n\n // Alignment\n setAlignItems(align: number): void {\n this.node.setAlignItems(align)\n }\n setAlignSelf(align: number): void {\n this.node.setAlignSelf(align)\n }\n setAlignContent(align: number): void {\n this.node.setAlignContent(align)\n }\n setJustifyContent(justify: number): void {\n this.node.setJustifyContent(justify)\n }\n\n // Spacing\n setPadding(edge: number, value: number): void {\n this.node.setPadding(edge, value)\n }\n setMargin(edge: number, value: number): void {\n this.node.setMargin(edge, value)\n }\n setBorder(edge: number, value: number): void {\n this.node.setBorder(edge, value)\n }\n setGap(gutter: number, value: number): void {\n this.node.setGap(gutter, value)\n }\n\n // Display & Position\n setDisplay(display: number): void {\n this.node.setDisplay(display)\n }\n setPositionType(positionType: number): void {\n this.node.setPositionType(positionType)\n }\n setPosition(edge: number, value: number): void {\n this.node.setPosition(edge, value)\n }\n setPositionPercent(edge: number, value: number): void {\n this.node.setPositionPercent(edge, value)\n }\n setOverflow(overflow: number): void {\n this.node.setOverflow(overflow)\n }\n\n // Container queries (A0.1) — flexily supports both; advertised via FLEXILY_CAPABILITIES.\n setContainerType(containerType: number): void {\n this.node.setContainerType(containerType)\n }\n setContainSize(value: boolean): void {\n this.node.setContainSize(value)\n }\n\n // Fit-width (A0.2) — translate FitWidthLane to flexily's { value, unit: UNIT_* }\n // shape. Lane entries can be plain numbers (treated as UNIT_POINT) or objects\n // with a \"cqi\"/\"cqmin\" unit string.\n setFitWidth(lanes: readonly FitWidthLane[] | undefined): void {\n if (lanes === undefined || lanes.length === 0) {\n this.node.setFitWidth(undefined)\n return\n }\n this.node.setFitWidth(\n lanes.map((entry) => {\n if (typeof entry === \"number\") return entry\n const unit = entry.unit === \"cqi\" ? UNIT_CQI : UNIT_CQMIN\n return { value: entry.value, unit }\n }),\n )\n }\n\n // Aspect Ratio\n setAspectRatio(value: number): void {\n this.node.setAspectRatio(value)\n }\n\n // Layout calculation\n calculateLayout(width: number, height: number, direction?: number): void {\n this.node.calculateLayout(width, height, direction ?? DIRECTION_LTR)\n }\n\n // Layout results\n getComputedLeft(): number {\n return this.node.getComputedLeft()\n }\n getComputedTop(): number {\n return this.node.getComputedTop()\n }\n getComputedWidth(): number {\n return this.node.getComputedWidth()\n }\n getComputedHeight(): number {\n return this.node.getComputedHeight()\n }\n}\n\n// ============================================================================\n// Flexily Zero Layout Engine\n// ============================================================================\n\n/**\n * Layout engine implementation using Flexily zero-allocation variant.\n * Optimized for high-frequency layout with reduced GC pressure.\n */\nexport class FlexilyZeroLayoutEngine implements LayoutEngine {\n private _constants: LayoutConstants = {\n // Flex Direction (cast from Flexily's plain numbers to branded types)\n FLEX_DIRECTION_COLUMN: FLEX_DIRECTION_COLUMN as FlexDirectionValue,\n FLEX_DIRECTION_COLUMN_REVERSE: FLEX_DIRECTION_COLUMN_REVERSE as FlexDirectionValue,\n FLEX_DIRECTION_ROW: FLEX_DIRECTION_ROW as FlexDirectionValue,\n FLEX_DIRECTION_ROW_REVERSE: FLEX_DIRECTION_ROW_REVERSE as FlexDirectionValue,\n\n // Wrap\n WRAP_NO_WRAP: WRAP_NO_WRAP as WrapValue,\n WRAP_WRAP: WRAP_WRAP as WrapValue,\n WRAP_WRAP_REVERSE: WRAP_WRAP_REVERSE as WrapValue,\n\n // Align\n ALIGN_AUTO: ALIGN_AUTO as AlignValue,\n ALIGN_FLEX_START: ALIGN_FLEX_START as AlignValue,\n ALIGN_CENTER: ALIGN_CENTER as AlignValue,\n ALIGN_FLEX_END: ALIGN_FLEX_END as AlignValue,\n ALIGN_STRETCH: ALIGN_STRETCH as AlignValue,\n ALIGN_BASELINE: ALIGN_BASELINE as AlignValue,\n ALIGN_SPACE_BETWEEN: ALIGN_SPACE_BETWEEN as AlignValue,\n ALIGN_SPACE_AROUND: ALIGN_SPACE_AROUND as AlignValue,\n ALIGN_SPACE_EVENLY: ALIGN_SPACE_EVENLY as AlignValue,\n\n // Justify\n JUSTIFY_FLEX_START: JUSTIFY_FLEX_START as JustifyValue,\n JUSTIFY_CENTER: JUSTIFY_CENTER as JustifyValue,\n JUSTIFY_FLEX_END: JUSTIFY_FLEX_END as JustifyValue,\n JUSTIFY_SPACE_BETWEEN: JUSTIFY_SPACE_BETWEEN as JustifyValue,\n JUSTIFY_SPACE_AROUND: JUSTIFY_SPACE_AROUND as JustifyValue,\n JUSTIFY_SPACE_EVENLY: JUSTIFY_SPACE_EVENLY as JustifyValue,\n\n // Edge\n EDGE_LEFT: EDGE_LEFT as EdgeValue,\n EDGE_TOP: EDGE_TOP as EdgeValue,\n EDGE_RIGHT: EDGE_RIGHT as EdgeValue,\n EDGE_BOTTOM: EDGE_BOTTOM as EdgeValue,\n EDGE_HORIZONTAL: EDGE_HORIZONTAL as EdgeValue,\n EDGE_VERTICAL: EDGE_VERTICAL as EdgeValue,\n EDGE_ALL: EDGE_ALL as EdgeValue,\n\n // Gutter\n GUTTER_COLUMN: GUTTER_COLUMN as GutterValue,\n GUTTER_ROW: GUTTER_ROW as GutterValue,\n GUTTER_ALL: GUTTER_ALL as GutterValue,\n\n // Display\n DISPLAY_FLEX: DISPLAY_FLEX as DisplayValue,\n DISPLAY_NONE: DISPLAY_NONE as DisplayValue,\n\n // Position Type\n POSITION_TYPE_STATIC: POSITION_TYPE_STATIC as PositionTypeValue,\n POSITION_TYPE_RELATIVE: POSITION_TYPE_RELATIVE as PositionTypeValue,\n POSITION_TYPE_ABSOLUTE: POSITION_TYPE_ABSOLUTE as PositionTypeValue,\n\n // Overflow\n OVERFLOW_VISIBLE: OVERFLOW_VISIBLE as OverflowValue,\n OVERFLOW_HIDDEN: OVERFLOW_HIDDEN as OverflowValue,\n OVERFLOW_SCROLL: OVERFLOW_SCROLL as OverflowValue,\n\n // Direction\n DIRECTION_LTR: DIRECTION_LTR as DirectionValue,\n\n // Measure Mode\n MEASURE_MODE_UNDEFINED: MEASURE_MODE_UNDEFINED as MeasureModeValue,\n MEASURE_MODE_EXACTLY: MEASURE_MODE_EXACTLY as MeasureModeValue,\n MEASURE_MODE_AT_MOST: MEASURE_MODE_AT_MOST as MeasureModeValue,\n }\n\n createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"css\" }))\n }\n\n get constants(): LayoutConstants {\n return this._constants\n }\n\n get name(): string {\n return \"flexily-zero\"\n }\n\n get capabilities(): EngineCapabilities {\n return FLEXILY_CAPABILITIES\n }\n}\n\n/**\n * Internal-only Yoga-preset variant of FlexilyZeroLayoutEngine.\n *\n * Production silvery uses CSS-correct defaults via the standard\n * {@link FlexilyZeroLayoutEngine}. The Ink-compat layer (which mimics\n * Ink/Yoga semantics — `flexShrink:0`, `alignContent:flex-start`, no auto\n * min-size on flex items) needs Yoga-preset Nodes. This subclass is the\n * only sanctioned way to opt into Yoga semantics from inside silvery; do\n * not export from the public barrel and do not use in app code.\n */\nclass FlexilyZeroLayoutEngineYoga extends FlexilyZeroLayoutEngine {\n override createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"yoga\" }))\n }\n}\n\n// ============================================================================\n// Initialization Helpers\n// ============================================================================\n\n/**\n * Create a Flexily zero-allocation layout engine with CSS-correct defaults.\n *\n * silvery's standard layout engine. Sets `flexShrink: 1`,\n * `alignContent: stretch`, and CSS §4.5 flex-item auto min-size on every\n * Node, matching browser flexbox semantics. Unlike Yoga, Flexily doesn't\n * require async initialization.\n *\n * Yoga-flavored semantics are deliberately not exposed here — consumers\n * needing Yoga compat should use `createFlexily({ defaults: \"yoga\" })` from\n * flexily directly. The Ink-compat layer is the single internal user that\n * stays on Yoga; it imports the `@internal` {@link createFlexilyZeroEngineForInkCompat}.\n */\nexport function createFlexilyZeroEngine(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngine()\n}\n\n/**\n * Yoga-preset variant for Ink-compat tests only.\n *\n * Do not use in production silvery code. The Ink-compat layer (`packages/ink`)\n * mimics Ink semantics, which match Yoga (`flexShrink:0`, `alignContent:flex-start`,\n * no auto min-size). When silvery's auto-generated Ink-compat tests render\n * through silvery's layout pipeline, they need Yoga-preset Nodes — that's\n * the one and only purpose of this factory.\n *\n * @internal Visible to silvery tests/compat/ink/helpers and packages/ink internals.\n */\nexport function createFlexilyZeroEngineForInkCompat(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngineYoga()\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flexily-zero-adapter-VoBGHG14.mjs","names":["FlexilyNode"],"sources":["../packages/ag-term/src/adapters/flexily-zero-adapter.ts"],"sourcesContent":["/**\n * Flexily Layout Engine Adapter\n *\n * Wraps Flexily to implement the LayoutEngine interface.\n * Uses the default zero-allocation algorithm from flexily.\n */\n\nimport {\n ALIGN_AUTO,\n ALIGN_BASELINE,\n ALIGN_CENTER,\n ALIGN_FLEX_END,\n ALIGN_FLEX_START,\n ALIGN_SPACE_AROUND,\n ALIGN_SPACE_BETWEEN,\n ALIGN_SPACE_EVENLY,\n ALIGN_STRETCH,\n DIRECTION_LTR,\n DISPLAY_FLEX,\n DISPLAY_NONE,\n EDGE_ALL,\n EDGE_BOTTOM,\n EDGE_HORIZONTAL,\n EDGE_LEFT,\n EDGE_RIGHT,\n EDGE_TOP,\n EDGE_VERTICAL,\n // Constants\n FLEX_DIRECTION_COLUMN,\n FLEX_DIRECTION_COLUMN_REVERSE,\n FLEX_DIRECTION_ROW,\n FLEX_DIRECTION_ROW_REVERSE,\n Node as FlexilyNode,\n GUTTER_ALL,\n GUTTER_COLUMN,\n GUTTER_ROW,\n JUSTIFY_CENTER,\n JUSTIFY_FLEX_END,\n JUSTIFY_FLEX_START,\n JUSTIFY_SPACE_AROUND,\n JUSTIFY_SPACE_BETWEEN,\n JUSTIFY_SPACE_EVENLY,\n MEASURE_MODE_AT_MOST,\n MEASURE_MODE_EXACTLY,\n MEASURE_MODE_MIN_CONTENT,\n MEASURE_MODE_UNDEFINED,\n OVERFLOW_HIDDEN,\n OVERFLOW_SCROLL,\n OVERFLOW_VISIBLE,\n POSITION_TYPE_ABSOLUTE,\n POSITION_TYPE_RELATIVE,\n POSITION_TYPE_STATIC,\n WRAP_NO_WRAP,\n WRAP_WRAP,\n WRAP_WRAP_REVERSE,\n} from \"flexily\"\n\n// Flexily UNIT_CQI / UNIT_CQMIN constants. Hardcoded at this seam rather than\n// imported from \"flexily\" because the published flexily@0.7.1 does not export\n// them yet — A0.2's export-bump (vendor/flexily commit fb61a79) hasn't shipped\n// to npm. Constants are stable per Phase 1 of @km/silvery/responsive-layout-\n// architecture-reframe; same shape as the CONTAINER_TYPE_INLINE_SIZE=1 hardcode\n// in applyBoxProps. When flexily 0.7.2+ ships with the new exports, this can be\n// replaced with a named import.\nconst UNIT_CQI = 6\nconst UNIT_CQMIN = 7\n\nimport type { FitWidthLane, LayoutNode, MeasureFunc, MeasureMode } from \"@silvery/ag/layout-types\"\nimport type {\n AlignValue,\n DirectionValue,\n DisplayValue,\n EdgeValue,\n EngineCapabilities,\n FlexDirectionValue,\n GutterValue,\n JustifyValue,\n LayoutConstants,\n LayoutEngine,\n MeasureModeValue,\n OverflowValue,\n PositionTypeValue,\n WrapValue,\n} from \"../layout-engine\"\n\n/**\n * Capabilities advertised by the flexily-zero adapter.\n *\n * All six A0 primitives shipped: four at A0.1 (engine-native CQ resolution at\n * vendor/flexily `46141e9`), one at A0.2 (fitWidth single-pass lane snap at\n * vendor/flexily `4b44bf9`), one at A0.3 (CSS math functions at vendor/flexily\n * `0aebb95`).\n *\n * - `containerQueries` → A0.1 ✓ — Pass 1 freezeQuerySize + Pass 2 ancestor walk\n * - `containSize` → A0.1 ✓ — Phase 9 inline-axis shrink-wrap gate\n * - `containerQueryUnits` → A0.1 ✓ — UNIT_CQI / UNIT_CQMIN parsed and resolved\n * - `childStyleMutation` → A0.1 ✓ — setContainerQueryStyle hook (A0.0 substrate)\n * - `fitWidth` → A0.2 ✓ — Phase 3 lane-select prefix; single-pass lane snap\n * - `styleMathFunctions` → A0.3 ✓ — UNIT_CALC + MathExpr; late-bound per\n * vendor/flexily/docs/two-phase-layout.md\n */\nconst FLEXILY_CAPABILITIES: EngineCapabilities = Object.freeze({\n containerQueries: true, // ✓ A0.1\n containSize: true, // ✓ A0.1\n containerQueryUnits: true, // ✓ A0.1\n fitWidth: true, // ✓ A0.2\n styleMathFunctions: true, // ✓ A0.3\n childStyleMutation: true, // ✓ A0.1\n})\n\n// ============================================================================\n// Flexily Zero Node Adapter\n// ============================================================================\n\n/**\n * Wraps a Flexily zero-alloc node to implement LayoutNode interface.\n * Since Flexily already has a Yoga-compatible API, this is mostly delegation.\n */\nclass FlexilyZeroNodeAdapter implements LayoutNode {\n private node: FlexilyNode\n\n constructor(node: FlexilyNode) {\n this.node = node\n }\n\n /** Get the underlying Flexily node (for tree operations) */\n getFlexilyNode(): FlexilyNode {\n return this.node\n }\n\n // Tree operations\n insertChild(child: LayoutNode, index: number): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.insertChild(flexilyChild, index)\n }\n\n removeChild(child: LayoutNode): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.removeChild(flexilyChild)\n }\n\n free(): void {\n this.node.free()\n }\n\n // Measure function\n setMeasureFunc(measureFunc: MeasureFunc): void {\n this.node.setMeasureFunc((width, widthMode, height, heightMode) => {\n const widthModeStr = this.measureModeToString(widthMode)\n const heightModeStr = this.measureModeToString(heightMode)\n return measureFunc(width, widthModeStr, height, heightModeStr)\n })\n }\n\n // Dirty tracking - forces layout recalculation\n markDirty(): void {\n this.node.markDirty()\n }\n isDirty(): boolean {\n return this.node.isDirty()\n }\n\n private measureModeToString(mode: number): MeasureMode {\n if (mode === MEASURE_MODE_EXACTLY) return \"exactly\"\n if (mode === MEASURE_MODE_AT_MOST) return \"at-most\"\n if (mode === MEASURE_MODE_MIN_CONTENT) return \"min-content\"\n return \"undefined\"\n }\n\n // Dimension setters\n setWidth(value: number): void {\n this.node.setWidth(value)\n }\n setWidthPercent(value: number): void {\n this.node.setWidthPercent(value)\n }\n setWidthAuto(): void {\n this.node.setWidthAuto()\n }\n setWidthFitContent(): void {\n this.node.setWidthFitContent()\n }\n setWidthSnugContent(): void {\n this.node.setWidthSnugContent()\n }\n setHeight(value: number): void {\n this.node.setHeight(value)\n }\n setHeightPercent(value: number): void {\n this.node.setHeightPercent(value)\n }\n setHeightAuto(): void {\n this.node.setHeightAuto()\n }\n setMinWidth(value: number): void {\n this.node.setMinWidth(value)\n }\n setMinWidthPercent(value: number): void {\n this.node.setMinWidthPercent(value)\n }\n setMinHeight(value: number): void {\n this.node.setMinHeight(value)\n }\n setMinHeightPercent(value: number): void {\n this.node.setMinHeightPercent(value)\n }\n setMaxWidth(value: number): void {\n this.node.setMaxWidth(value)\n }\n setMaxWidthPercent(value: number): void {\n this.node.setMaxWidthPercent(value)\n }\n setMaxHeight(value: number): void {\n this.node.setMaxHeight(value)\n }\n setMaxHeightPercent(value: number): void {\n this.node.setMaxHeightPercent(value)\n }\n\n // Flex properties\n setFlexGrow(value: number): void {\n this.node.setFlexGrow(value)\n }\n setFlexShrink(value: number): void {\n this.node.setFlexShrink(value)\n }\n setFlexBasis(value: number): void {\n this.node.setFlexBasis(value)\n }\n setFlexBasisPercent(value: number): void {\n this.node.setFlexBasisPercent(value)\n }\n setFlexBasisAuto(): void {\n this.node.setFlexBasisAuto()\n }\n setFlexDirection(direction: number): void {\n this.node.setFlexDirection(direction)\n }\n setFlexWrap(wrap: number): void {\n this.node.setFlexWrap(wrap)\n }\n\n // Alignment\n setAlignItems(align: number): void {\n this.node.setAlignItems(align)\n }\n setAlignSelf(align: number): void {\n this.node.setAlignSelf(align)\n }\n setAlignContent(align: number): void {\n this.node.setAlignContent(align)\n }\n setJustifyContent(justify: number): void {\n this.node.setJustifyContent(justify)\n }\n\n // Spacing\n setPadding(edge: number, value: number): void {\n this.node.setPadding(edge, value)\n }\n setMargin(edge: number, value: number): void {\n this.node.setMargin(edge, value)\n }\n setBorder(edge: number, value: number): void {\n this.node.setBorder(edge, value)\n }\n setGap(gutter: number, value: number): void {\n this.node.setGap(gutter, value)\n }\n\n // Display & Position\n setDisplay(display: number): void {\n this.node.setDisplay(display)\n }\n setPositionType(positionType: number): void {\n this.node.setPositionType(positionType)\n }\n setPosition(edge: number, value: number): void {\n this.node.setPosition(edge, value)\n }\n setPositionPercent(edge: number, value: number): void {\n this.node.setPositionPercent(edge, value)\n }\n setOverflow(overflow: number): void {\n this.node.setOverflow(overflow)\n }\n\n // Container queries (A0.1) — flexily supports both; advertised via FLEXILY_CAPABILITIES.\n setContainerType(containerType: number): void {\n this.node.setContainerType(containerType)\n }\n setContainSize(value: boolean): void {\n this.node.setContainSize(value)\n }\n\n // Fit-width (A0.2) — translate FitWidthLane to flexily's { value, unit: UNIT_* }\n // shape. Lane entries can be plain numbers (treated as UNIT_POINT) or objects\n // with a \"cqi\"/\"cqmin\" unit string.\n setFitWidth(lanes: readonly FitWidthLane[] | undefined): void {\n if (lanes === undefined || lanes.length === 0) {\n this.node.setFitWidth(undefined)\n return\n }\n this.node.setFitWidth(\n lanes.map((entry) => {\n if (typeof entry === \"number\") return entry\n const unit = entry.unit === \"cqi\" ? UNIT_CQI : UNIT_CQMIN\n return { value: entry.value, unit }\n }),\n )\n }\n\n // Aspect Ratio\n setAspectRatio(value: number): void {\n this.node.setAspectRatio(value)\n }\n\n // Layout calculation\n calculateLayout(width: number, height: number, direction?: number): void {\n this.node.calculateLayout(width, height, direction ?? DIRECTION_LTR)\n }\n\n // Layout results\n getComputedLeft(): number {\n return this.node.getComputedLeft()\n }\n getComputedTop(): number {\n return this.node.getComputedTop()\n }\n getComputedWidth(): number {\n return this.node.getComputedWidth()\n }\n getComputedHeight(): number {\n return this.node.getComputedHeight()\n }\n}\n\n// ============================================================================\n// Flexily Zero Layout Engine\n// ============================================================================\n\n/**\n * Layout engine implementation using Flexily zero-allocation variant.\n * Optimized for high-frequency layout with reduced GC pressure.\n */\nexport class FlexilyZeroLayoutEngine implements LayoutEngine {\n private _constants: LayoutConstants = {\n // Flex Direction (cast from Flexily's plain numbers to branded types)\n FLEX_DIRECTION_COLUMN: FLEX_DIRECTION_COLUMN as FlexDirectionValue,\n FLEX_DIRECTION_COLUMN_REVERSE: FLEX_DIRECTION_COLUMN_REVERSE as FlexDirectionValue,\n FLEX_DIRECTION_ROW: FLEX_DIRECTION_ROW as FlexDirectionValue,\n FLEX_DIRECTION_ROW_REVERSE: FLEX_DIRECTION_ROW_REVERSE as FlexDirectionValue,\n\n // Wrap\n WRAP_NO_WRAP: WRAP_NO_WRAP as WrapValue,\n WRAP_WRAP: WRAP_WRAP as WrapValue,\n WRAP_WRAP_REVERSE: WRAP_WRAP_REVERSE as WrapValue,\n\n // Align\n ALIGN_AUTO: ALIGN_AUTO as AlignValue,\n ALIGN_FLEX_START: ALIGN_FLEX_START as AlignValue,\n ALIGN_CENTER: ALIGN_CENTER as AlignValue,\n ALIGN_FLEX_END: ALIGN_FLEX_END as AlignValue,\n ALIGN_STRETCH: ALIGN_STRETCH as AlignValue,\n ALIGN_BASELINE: ALIGN_BASELINE as AlignValue,\n ALIGN_SPACE_BETWEEN: ALIGN_SPACE_BETWEEN as AlignValue,\n ALIGN_SPACE_AROUND: ALIGN_SPACE_AROUND as AlignValue,\n ALIGN_SPACE_EVENLY: ALIGN_SPACE_EVENLY as AlignValue,\n\n // Justify\n JUSTIFY_FLEX_START: JUSTIFY_FLEX_START as JustifyValue,\n JUSTIFY_CENTER: JUSTIFY_CENTER as JustifyValue,\n JUSTIFY_FLEX_END: JUSTIFY_FLEX_END as JustifyValue,\n JUSTIFY_SPACE_BETWEEN: JUSTIFY_SPACE_BETWEEN as JustifyValue,\n JUSTIFY_SPACE_AROUND: JUSTIFY_SPACE_AROUND as JustifyValue,\n JUSTIFY_SPACE_EVENLY: JUSTIFY_SPACE_EVENLY as JustifyValue,\n\n // Edge\n EDGE_LEFT: EDGE_LEFT as EdgeValue,\n EDGE_TOP: EDGE_TOP as EdgeValue,\n EDGE_RIGHT: EDGE_RIGHT as EdgeValue,\n EDGE_BOTTOM: EDGE_BOTTOM as EdgeValue,\n EDGE_HORIZONTAL: EDGE_HORIZONTAL as EdgeValue,\n EDGE_VERTICAL: EDGE_VERTICAL as EdgeValue,\n EDGE_ALL: EDGE_ALL as EdgeValue,\n\n // Gutter\n GUTTER_COLUMN: GUTTER_COLUMN as GutterValue,\n GUTTER_ROW: GUTTER_ROW as GutterValue,\n GUTTER_ALL: GUTTER_ALL as GutterValue,\n\n // Display\n DISPLAY_FLEX: DISPLAY_FLEX as DisplayValue,\n DISPLAY_NONE: DISPLAY_NONE as DisplayValue,\n\n // Position Type\n POSITION_TYPE_STATIC: POSITION_TYPE_STATIC as PositionTypeValue,\n POSITION_TYPE_RELATIVE: POSITION_TYPE_RELATIVE as PositionTypeValue,\n POSITION_TYPE_ABSOLUTE: POSITION_TYPE_ABSOLUTE as PositionTypeValue,\n\n // Overflow\n OVERFLOW_VISIBLE: OVERFLOW_VISIBLE as OverflowValue,\n OVERFLOW_HIDDEN: OVERFLOW_HIDDEN as OverflowValue,\n OVERFLOW_SCROLL: OVERFLOW_SCROLL as OverflowValue,\n\n // Direction\n DIRECTION_LTR: DIRECTION_LTR as DirectionValue,\n\n // Measure Mode\n MEASURE_MODE_UNDEFINED: MEASURE_MODE_UNDEFINED as MeasureModeValue,\n MEASURE_MODE_EXACTLY: MEASURE_MODE_EXACTLY as MeasureModeValue,\n MEASURE_MODE_AT_MOST: MEASURE_MODE_AT_MOST as MeasureModeValue,\n }\n\n createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"css\" }))\n }\n\n get constants(): LayoutConstants {\n return this._constants\n }\n\n get name(): string {\n return \"flexily-zero\"\n }\n\n get capabilities(): EngineCapabilities {\n return FLEXILY_CAPABILITIES\n }\n}\n\n/**\n * Internal-only Yoga-preset variant of FlexilyZeroLayoutEngine.\n *\n * Production silvery uses CSS-correct defaults via the standard\n * {@link FlexilyZeroLayoutEngine}. The Ink-compat layer (which mimics\n * Ink/Yoga semantics — `flexShrink:0`, `alignContent:flex-start`, no auto\n * min-size on flex items) needs Yoga-preset Nodes. This subclass is the\n * only sanctioned way to opt into Yoga semantics from inside silvery; do\n * not export from the public barrel and do not use in app code.\n */\nclass FlexilyZeroLayoutEngineYoga extends FlexilyZeroLayoutEngine {\n override createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"yoga\" }))\n }\n}\n\n// ============================================================================\n// Initialization Helpers\n// ============================================================================\n\n/**\n * Create a Flexily zero-allocation layout engine with CSS-correct defaults.\n *\n * silvery's standard layout engine. Sets `flexShrink: 1`,\n * `alignContent: stretch`, and CSS §4.5 flex-item auto min-size on every\n * Node, matching browser flexbox semantics. Unlike Yoga, Flexily doesn't\n * require async initialization.\n *\n * Yoga-flavored semantics are deliberately not exposed here — consumers\n * needing Yoga compat should use `createFlexily({ defaults: \"yoga\" })` from\n * flexily directly. The Ink-compat layer is the single internal user that\n * stays on Yoga; it imports the `@internal` {@link createFlexilyZeroEngineForInkCompat}.\n */\nexport function createFlexilyZeroEngine(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngine()\n}\n\n/**\n * Yoga-preset variant for Ink-compat tests only.\n *\n * Do not use in production silvery code. The Ink-compat layer (`packages/ink`)\n * mimics Ink semantics, which match Yoga (`flexShrink:0`, `alignContent:flex-start`,\n * no auto min-size). When silvery's auto-generated Ink-compat tests render\n * through silvery's layout pipeline, they need Yoga-preset Nodes — that's\n * the one and only purpose of this factory.\n *\n * @internal Visible to silvery tests/compat/ink/helpers and packages/ink internals.\n */\nexport function createFlexilyZeroEngineForInkCompat(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngineYoga()\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ft as Rect, _ as HitTarget, g as HitRegistry } from "./mouse-events-UoUWNIdS.mjs";
|
|
2
2
|
import * as _$react from "react";
|
|
3
3
|
|
|
4
4
|
//#region packages/ag-term/src/hit-registry.d.ts
|
|
@@ -68,4 +68,4 @@ declare function useHitRegion(target: HitTarget, rect: Rect | null, zIndex?: num
|
|
|
68
68
|
declare function useHitRegionCallback(target: HitTarget, zIndex?: number, enabled?: boolean): (rect: Rect) => void;
|
|
69
69
|
//#endregion
|
|
70
70
|
export { useHitRegistry as i, useHitRegion as n, useHitRegionCallback as r, HitRegistryContext as t };
|
|
71
|
-
//# sourceMappingURL=hit-registry-
|
|
71
|
+
//# sourceMappingURL=hit-registry-DRV2ig-Y.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hit-registry-
|
|
1
|
+
{"version":3,"file":"hit-registry-DRV2ig-Y.d.mts","names":[],"sources":["../packages/ag-term/src/hit-registry.ts"],"mappings":";;;;;;;;cA6Ca,kBAAA,EAAkB,OAAA,CAAA,OAAA,CAAA,WAAA;;AA4G/B;;;;iBAjGgB,cAAA,CAAA,GAAkB,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BlB,YAAA,CACd,MAAA,EAAQ,SAAA,EACR,IAAA,EAAM,IAAA,SACN,MAAA,WACA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+Dc,oBAAA,CACd,MAAA,EAAQ,SAAA,EACR,MAAA,WACA,OAAA,cACE,IAAA,EAAM,IAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-
|
|
2
|
-
import { r as effect } from "./src-
|
|
3
|
-
import { j as createTerminalProfile } from "./src-
|
|
1
|
+
import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-hT5z_Zn9.mjs";
|
|
2
|
+
import { r as effect } from "./src-B6MuVlOK.mjs";
|
|
3
|
+
import { j as createTerminalProfile } from "./src-DorsnS70.mjs";
|
|
4
4
|
import { c as StdoutContext, l as TermContext } from "./context-CEhuD1R_.mjs";
|
|
5
|
-
import { c as useScreenRect, i as useBoxSize } from "./useLayout-
|
|
6
|
-
import { n as Box, t as Text } from "./Text-
|
|
5
|
+
import { c as useScreenRect, i as useBoxSize } from "./useLayout-Cx01rHVI.mjs";
|
|
6
|
+
import { n as Box, t as Text } from "./Text-4tWKabKH.mjs";
|
|
7
7
|
import { readFileSync } from "node:fs";
|
|
8
8
|
import { useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useSyncExternalStore } from "react";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -297,7 +297,7 @@ function splitIntoChunks(str, size) {
|
|
|
297
297
|
return chunks;
|
|
298
298
|
}
|
|
299
299
|
//#endregion
|
|
300
|
-
//#region
|
|
300
|
+
//#region node_modules/pako/lib/utils/common.js
|
|
301
301
|
var require_common = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
302
302
|
var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined";
|
|
303
303
|
function _has(obj, key) {
|
|
@@ -364,7 +364,7 @@ var require_common = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
364
364
|
exports.setTyped(TYPED_OK);
|
|
365
365
|
}));
|
|
366
366
|
//#endregion
|
|
367
|
-
//#region
|
|
367
|
+
//#region node_modules/pako/lib/zlib/trees.js
|
|
368
368
|
var require_trees = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
369
369
|
var utils = require_common();
|
|
370
370
|
var Z_FIXED = 4;
|
|
@@ -979,7 +979,7 @@ var require_trees = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
979
979
|
exports._tr_align = _tr_align;
|
|
980
980
|
}));
|
|
981
981
|
//#endregion
|
|
982
|
-
//#region
|
|
982
|
+
//#region node_modules/pako/lib/zlib/adler32.js
|
|
983
983
|
var require_adler32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
984
984
|
function adler32(adler, buf, len, pos) {
|
|
985
985
|
var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
|
|
@@ -998,7 +998,7 @@ var require_adler32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
998
998
|
module.exports = adler32;
|
|
999
999
|
}));
|
|
1000
1000
|
//#endregion
|
|
1001
|
-
//#region
|
|
1001
|
+
//#region node_modules/pako/lib/zlib/crc32.js
|
|
1002
1002
|
var require_crc32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1003
1003
|
function makeTable() {
|
|
1004
1004
|
var c, table = [];
|
|
@@ -1019,7 +1019,7 @@ var require_crc32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
1019
1019
|
module.exports = crc32;
|
|
1020
1020
|
}));
|
|
1021
1021
|
//#endregion
|
|
1022
|
-
//#region
|
|
1022
|
+
//#region node_modules/pako/lib/zlib/messages.js
|
|
1023
1023
|
var require_messages = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1024
1024
|
module.exports = {
|
|
1025
1025
|
2: "need dictionary",
|
|
@@ -1034,7 +1034,7 @@ var require_messages = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
1034
1034
|
};
|
|
1035
1035
|
}));
|
|
1036
1036
|
//#endregion
|
|
1037
|
-
//#region
|
|
1037
|
+
//#region node_modules/pako/lib/zlib/deflate.js
|
|
1038
1038
|
var require_deflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1039
1039
|
var utils = require_common();
|
|
1040
1040
|
var trees = require_trees();
|
|
@@ -1908,7 +1908,7 @@ while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] &
|
|
|
1908
1908
|
exports.deflateInfo = "pako deflate (from Nodeca project)";
|
|
1909
1909
|
}));
|
|
1910
1910
|
//#endregion
|
|
1911
|
-
//#region
|
|
1911
|
+
//#region node_modules/pako/lib/utils/strings.js
|
|
1912
1912
|
var require_strings = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1913
1913
|
var utils = require_common();
|
|
1914
1914
|
var STR_APPLY_OK = true;
|
|
@@ -2028,7 +2028,7 @@ var require_strings = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
2028
2028
|
};
|
|
2029
2029
|
}));
|
|
2030
2030
|
//#endregion
|
|
2031
|
-
//#region
|
|
2031
|
+
//#region node_modules/pako/lib/zlib/zstream.js
|
|
2032
2032
|
var require_zstream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2033
2033
|
function ZStream() {
|
|
2034
2034
|
this.input = null;
|
|
@@ -2047,7 +2047,7 @@ var require_zstream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
2047
2047
|
module.exports = ZStream;
|
|
2048
2048
|
}));
|
|
2049
2049
|
//#endregion
|
|
2050
|
-
//#region
|
|
2050
|
+
//#region node_modules/pako/lib/deflate.js
|
|
2051
2051
|
var require_deflate = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
2052
2052
|
var zlib_deflate = require_deflate$1();
|
|
2053
2053
|
var utils = require_common();
|
|
@@ -2343,7 +2343,7 @@ var require_deflate = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
2343
2343
|
exports.gzip = gzip;
|
|
2344
2344
|
}));
|
|
2345
2345
|
//#endregion
|
|
2346
|
-
//#region
|
|
2346
|
+
//#region node_modules/pako/lib/zlib/inffast.js
|
|
2347
2347
|
var require_inffast = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2348
2348
|
var BAD = 30;
|
|
2349
2349
|
var TYPE = 12;
|
|
@@ -2560,7 +2560,7 @@ var require_inffast = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
2560
2560
|
};
|
|
2561
2561
|
}));
|
|
2562
2562
|
//#endregion
|
|
2563
|
-
//#region
|
|
2563
|
+
//#region node_modules/pako/lib/zlib/inftrees.js
|
|
2564
2564
|
var require_inftrees = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2565
2565
|
var utils = require_common();
|
|
2566
2566
|
var MAXBITS = 15;
|
|
@@ -2827,7 +2827,7 @@ var require_inftrees = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
2827
2827
|
};
|
|
2828
2828
|
}));
|
|
2829
2829
|
//#endregion
|
|
2830
|
-
//#region
|
|
2830
|
+
//#region node_modules/pako/lib/zlib/inflate.js
|
|
2831
2831
|
var require_inflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
2832
2832
|
var utils = require_common();
|
|
2833
2833
|
var adler32 = require_adler32();
|
|
@@ -3850,7 +3850,7 @@ var require_inflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
3850
3850
|
exports.inflateInfo = "pako inflate (from Nodeca project)";
|
|
3851
3851
|
}));
|
|
3852
3852
|
//#endregion
|
|
3853
|
-
//#region
|
|
3853
|
+
//#region node_modules/pako/lib/zlib/constants.js
|
|
3854
3854
|
var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
3855
3855
|
module.exports = {
|
|
3856
3856
|
Z_NO_FLUSH: 0,
|
|
@@ -3883,7 +3883,7 @@ var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3883
3883
|
};
|
|
3884
3884
|
}));
|
|
3885
3885
|
//#endregion
|
|
3886
|
-
//#region
|
|
3886
|
+
//#region node_modules/pako/lib/zlib/gzheader.js
|
|
3887
3887
|
var require_gzheader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
3888
3888
|
function GZheader() {
|
|
3889
3889
|
this.text = 0;
|
|
@@ -3900,7 +3900,7 @@ var require_gzheader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3900
3900
|
module.exports = GZheader;
|
|
3901
3901
|
}));
|
|
3902
3902
|
//#endregion
|
|
3903
|
-
//#region
|
|
3903
|
+
//#region node_modules/pako/lib/inflate.js
|
|
3904
3904
|
var require_inflate = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
3905
3905
|
var zlib_inflate = require_inflate$1();
|
|
3906
3906
|
var utils = require_common();
|
|
@@ -4200,7 +4200,7 @@ var require_inflate = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
4200
4200
|
exports.ungzip = inflate;
|
|
4201
4201
|
}));
|
|
4202
4202
|
//#endregion
|
|
4203
|
-
//#region
|
|
4203
|
+
//#region node_modules/pako/index.js
|
|
4204
4204
|
var require_pako = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4205
4205
|
var assign = require_common().assign;
|
|
4206
4206
|
var deflate = require_deflate();
|
|
@@ -5957,4 +5957,4 @@ function ImagePlacement({ src, width: effectiveWidth, height: effectiveHeight, f
|
|
|
5957
5957
|
//#endregion
|
|
5958
5958
|
export { deleteKittyImage as a, isKittyGraphicsSupported as c, shallow as d, useTerm as f, isSixelSupported as i, placeKittyImage as l, decodePngToRgba as n, deleteKittyPlacement as o, encodeSixel as r, encodeKittyImage as s, Image as t, useWindowSize as u };
|
|
5959
5959
|
|
|
5960
|
-
//# sourceMappingURL=image-
|
|
5960
|
+
//# sourceMappingURL=image-o2WpbrD1.mjs.map
|