silvery 0.17.3 → 0.18.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 +7 -13
- package/dist/{UPNG-AVSMjiFE.mjs → UPNG-DvKjM6wE.mjs} +1 -1
- package/dist/{UPNG-AVSMjiFE.mjs.map → UPNG-DvKjM6wE.mjs.map} +1 -1
- package/dist/{__vite-browser-external-2447137e-D3GdsvS_.mjs → __vite-browser-external-2447137e-DPKHHqQK.mjs} +1 -1
- package/dist/{__vite-browser-external-2447137e-D3GdsvS_.mjs.map → __vite-browser-external-2447137e-DPKHHqQK.mjs.map} +1 -1
- package/dist/{animation-C_PTO0uH.mjs → animation-DhINOJk8.mjs} +1 -1
- package/dist/{animation-C_PTO0uH.mjs.map → animation-DhINOJk8.mjs.map} +1 -1
- package/dist/{ansi-CXLE_pt1.mjs → ansi-C6Qs1Wn2.mjs} +1 -1
- package/dist/{ansi-CXLE_pt1.mjs.map → ansi-C6Qs1Wn2.mjs.map} +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts → ansi-CsjnZtAw.d.mts} +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts.map → ansi-CsjnZtAw.d.mts.map} +1 -1
- package/dist/apng-CvSlLBtc.mjs +3 -0
- package/dist/{apng-ENBAJk-H.mjs → apng-DFFVOItr.mjs} +3 -3
- package/dist/{apng-ENBAJk-H.mjs.map → apng-DFFVOItr.mjs.map} +1 -1
- package/dist/{backend-CkIkIHR-.mjs → backend-DU0Y938U.mjs} +1 -1
- package/dist/{backend-CkIkIHR-.mjs.map → backend-DU0Y938U.mjs.map} +1 -1
- package/dist/{backends-CkvbG3js.mjs → backends-BihMKFY_.mjs} +3 -3
- package/dist/{backends-CkvbG3js.mjs.map → backends-BihMKFY_.mjs.map} +1 -1
- package/dist/backends-Dk_5G_gC.mjs +3 -0
- package/dist/cli-GwJ0S2In.mjs +4 -0
- package/dist/{context-QreF3UHr.mjs → context-BjWgrikx.mjs} +1 -1
- package/dist/{context-QreF3UHr.mjs.map → context-BjWgrikx.mjs.map} +1 -1
- package/dist/{derive-D7bFJdfU.d.mts → derive-O_Kb1Bk_.d.mts} +3 -3
- package/dist/derive-O_Kb1Bk_.d.mts.map +1 -0
- package/dist/{devtools-owvUPfBi.mjs → devtools-CeO9X_uv.mjs} +4 -4
- package/dist/{devtools-owvUPfBi.mjs.map → devtools-CeO9X_uv.mjs.map} +1 -1
- package/dist/devtools-nX4tj6OH.mjs +2 -0
- package/dist/{eta-DLiVPaSD.mjs → eta-BnQSZcWf.mjs} +1 -1
- package/dist/{eta-DLiVPaSD.mjs.map → eta-BnQSZcWf.mjs.map} +1 -1
- package/dist/{flexily-zero-adapter-DmG4Ge8t.mjs → flexily-zero-adapter-BOM0cl8R.mjs} +61 -9
- package/dist/flexily-zero-adapter-BOM0cl8R.mjs.map +1 -0
- package/dist/{flexily-zero-adapter-GHwEW11s.mjs → flexily-zero-adapter-V8R3HQtK.mjs} +1 -1
- package/dist/{gif-Bp6fIyN3.mjs → gif-B9Uq4qZA.mjs} +3 -3
- package/dist/{gif-Bp6fIyN3.mjs.map → gif-B9Uq4qZA.mjs.map} +1 -1
- package/dist/gif-BdrLRBmM.mjs +3 -0
- package/dist/{gifenc-GiVCZ9-3.mjs → gifenc-DfhOb4xr.mjs} +1 -1
- package/dist/{gifenc-GiVCZ9-3.mjs.map → gifenc-DfhOb4xr.mjs.map} +1 -1
- package/dist/{image-Dx7gYjkq.mjs → image-B0zMbVUr.mjs} +136 -5
- package/dist/image-B0zMbVUr.mjs.map +1 -0
- package/dist/index-Bh3U1K09.d.mts +10823 -0
- package/dist/index-Bh3U1K09.d.mts.map +1 -0
- package/dist/{index-p-wBs_wH.d.mts → index-C4vrhbud.d.mts} +1 -1
- package/dist/{index-p-wBs_wH.d.mts.map → index-C4vrhbud.d.mts.map} +1 -1
- package/dist/{index-DCVL3jHo.d.mts → index-dehZ18K-.d.mts} +144 -99
- package/dist/index-dehZ18K-.d.mts.map +1 -0
- package/dist/index.d.mts +7 -7219
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -9343
- package/dist/index.mjs.map +1 -1
- package/dist/{key-mapping-BsUHe_nk.mjs → key-mapping-7k2ufK2b.mjs} +1 -1
- package/dist/{key-mapping-DsyfLEdC.mjs → key-mapping-WLUmxjx1.mjs} +1 -1
- package/dist/{key-mapping-DsyfLEdC.mjs.map → key-mapping-WLUmxjx1.mjs.map} +1 -1
- package/dist/{layout-engine-D_lSR4i9.mjs → layout-engine--drvrWjD.mjs} +1 -1
- package/dist/{layout-engine-B3dsnVLU.mjs → layout-engine-Dr3cY5U4.mjs} +3 -3
- package/dist/{layout-engine-B3dsnVLU.mjs.map → layout-engine-Dr3cY5U4.mjs.map} +1 -1
- package/dist/{multi-progress-CQVB9lES.mjs → multi-progress-CcdqJFlf.mjs} +3 -3
- package/dist/{multi-progress-CQVB9lES.mjs.map → multi-progress-CcdqJFlf.mjs.map} +1 -1
- package/dist/{multi-progress-C0-rkn86.d.mts → multi-progress-DQ-uUzLf.d.mts} +2 -2
- package/dist/{multi-progress-C0-rkn86.d.mts.map → multi-progress-DQ-uUzLf.d.mts.map} +1 -1
- package/dist/{node-Dedx-6xF.mjs → node-CP5WChgr.mjs} +1 -1
- package/dist/{node-Dedx-6xF.mjs.map → node-CP5WChgr.mjs.map} +1 -1
- package/dist/{progress-bar-COPSBlT9.mjs → progress-bar-IrUjkLfU.mjs} +4 -4
- package/dist/{progress-bar-COPSBlT9.mjs.map → progress-bar-IrUjkLfU.mjs.map} +1 -1
- package/dist/{reconciler-B-NaZvbO.mjs → reconciler-B8uxQxaU.mjs} +57 -81
- package/dist/reconciler-B8uxQxaU.mjs.map +1 -0
- package/dist/{render-string-CZKpuKXo.mjs → render-string-BwLG7rIX.mjs} +1 -1
- package/dist/{pipeline-BmfaZb1O.mjs → render-string-DVfgc8xr.mjs} +836 -508
- package/dist/render-string-DVfgc8xr.mjs.map +1 -0
- package/dist/{resvg-js-V6oMi8CY.mjs → resvg-js-Cwipz-_J.mjs} +1 -1
- package/dist/{resvg-js-V6oMi8CY.mjs.map → resvg-js-Cwipz-_J.mjs.map} +1 -1
- package/dist/runtime.d.mts +2 -2
- package/dist/runtime.mjs +3 -3
- package/dist/{spinner-Cgej6Vnb.d.mts → spinner-BRkaJI0N.d.mts} +2 -2
- package/dist/{spinner-Cgej6Vnb.d.mts.map → spinner-BRkaJI0N.d.mts.map} +1 -1
- package/dist/{spinner-DSByknyx.mjs → spinner-BmldKx0M.mjs} +3 -3
- package/dist/{spinner-DSByknyx.mjs.map → spinner-BmldKx0M.mjs.map} +1 -1
- package/dist/{src-C9f3hiVG.mjs → src-C0sOQW-t.mjs} +402 -156
- package/dist/src-C0sOQW-t.mjs.map +1 -0
- package/dist/src-CJPXf3fC.mjs +18348 -0
- package/dist/src-CJPXf3fC.mjs.map +1 -0
- package/dist/{src-fJVbhdn-.mjs → src-D8kLrQBT.mjs} +1 -1
- package/dist/{src-fJVbhdn-.mjs.map → src-D8kLrQBT.mjs.map} +1 -1
- package/dist/{src-9B5k0JmY.mjs → src-D_BS-as7.mjs} +1130 -100
- package/dist/src-D_BS-as7.mjs.map +1 -0
- package/dist/theme.d.mts +45 -30
- package/dist/theme.d.mts.map +1 -1
- package/dist/theme.mjs +3 -3
- package/dist/{types-CDgkE-Rw.d.mts → types-B4A8Ebba.d.mts} +1 -1
- package/dist/{types-CDgkE-Rw.d.mts.map → types-B4A8Ebba.d.mts.map} +1 -1
- package/dist/types-e4dpfbSa.mjs +468 -0
- package/dist/types-e4dpfbSa.mjs.map +1 -0
- package/dist/ui/animation.d.mts +1 -1
- package/dist/ui/animation.mjs +1 -1
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/ansi.mjs +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +5 -5
- package/dist/ui/display.d.mts +2 -2
- package/dist/ui/display.mjs +1 -1
- package/dist/ui/display.mjs.map +1 -1
- package/dist/ui/image.d.mts +1 -1
- package/dist/ui/image.mjs +1 -1
- package/dist/ui/input.d.mts +3 -3
- package/dist/ui/input.mjs +2 -2
- package/dist/ui/input.mjs.map +1 -1
- package/dist/ui/progress.d.mts +3 -3
- package/dist/ui/progress.mjs +4 -4
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/react.d.mts +3 -3
- package/dist/ui/react.mjs +4 -4
- package/dist/ui/react.mjs.map +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 +5 -5
- package/dist/ui.mjs +6 -6
- package/dist/{useLatest-BMIYXd6e.d.mts → useLatest-6xqnGIU6.d.mts} +1 -1
- package/dist/{useLatest-BMIYXd6e.d.mts.map → useLatest-6xqnGIU6.d.mts.map} +1 -1
- package/dist/{with-text-input-CmHf_9d6.d.mts → with-text-input-lUh9gYAG.d.mts} +3 -3
- package/dist/{with-text-input-CmHf_9d6.d.mts.map → with-text-input-lUh9gYAG.d.mts.map} +1 -1
- package/dist/{wrapper-Dqh0zi2W.mjs → wrapper-CE6GQ27z.mjs} +1 -1
- package/dist/{wrapper-Dqh0zi2W.mjs.map → wrapper-CE6GQ27z.mjs.map} +1 -1
- package/dist/{wrappers-hhL8EQ_n.mjs → wrappers-JrEYTuKA.mjs} +4 -4
- package/dist/wrappers-JrEYTuKA.mjs.map +1 -0
- package/dist/yoga-adapter-B8LZpQcE.mjs +2 -0
- package/dist/{yoga-adapter-BJ9SOhTY.mjs → yoga-adapter-Bc8XT9cN.mjs} +11 -2
- package/dist/yoga-adapter-Bc8XT9cN.mjs.map +1 -0
- package/package.json +20 -17
- package/dist/apng-DCWY913R.mjs +0 -3
- package/dist/backends-CyJqNLeK.mjs +0 -3
- package/dist/cli-B-k7Bm56.mjs +0 -4
- package/dist/derive-D7bFJdfU.d.mts.map +0 -1
- package/dist/devtools-DS9NseGT.mjs +0 -2
- package/dist/flexily-zero-adapter-DmG4Ge8t.mjs.map +0 -1
- package/dist/gif-BaJNREpP.mjs +0 -3
- package/dist/image-Dx7gYjkq.mjs.map +0 -1
- package/dist/index-CBcSpGSM.d.mts +0 -3416
- package/dist/index-CBcSpGSM.d.mts.map +0 -1
- package/dist/index-DCVL3jHo.d.mts.map +0 -1
- package/dist/pipeline-BmfaZb1O.mjs.map +0 -1
- package/dist/reconciler-B-NaZvbO.mjs.map +0 -1
- package/dist/render-string-Bvh1XzBv.mjs +0 -201
- package/dist/render-string-Bvh1XzBv.mjs.map +0 -1
- package/dist/runtime-PH2xY1DM.mjs +0 -8723
- package/dist/runtime-PH2xY1DM.mjs.map +0 -1
- package/dist/src-9B5k0JmY.mjs.map +0 -1
- package/dist/src-C9f3hiVG.mjs.map +0 -1
- package/dist/types-Bhj5QkIQ.mjs +0 -13
- package/dist/types-Bhj5QkIQ.mjs.map +0 -1
- package/dist/useLayout-BG2cGl15.mjs +0 -139
- package/dist/useLayout-BG2cGl15.mjs.map +0 -1
- package/dist/wrappers-hhL8EQ_n.mjs.map +0 -1
- package/dist/yoga-adapter-BJ9SOhTY.mjs.map +0 -1
- package/dist/yoga-adapter-Daq6-dw1.mjs +0 -2
package/dist/theme.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as detectTheme, A as everforestDark, At as
|
|
2
|
-
import { n as deriveTheme, r as resolveThemeColor, t as ThemeAdjustment } from "./derive-
|
|
1
|
+
import { $ as detectTheme, A as everforestDark, At as AnsiPrimary, B as oneDark, C as ayuMirage, Ct as presetTheme, D as snazzy, Dt as ThemeProvider, E as materialLight, Et as ThemeContext, F as rosePine, Ft as AnsiColorName, G as solarizedLight, H as tokyoNightDay, I as rosePineDawn, J as catppuccinFrappe, K as dracula, L as rosePineMoon, M as kanagawaDragon, Mt as ColorScheme, N as kanagawaLotus, Nt as HueName, O as monokai, Ot as ThemeProviderProps, P as kanagawaWave, Pt as Theme, Q as DetectThemeOptions, R as gruvboxDark, S as ayuLight, St as createTheme, T as materialDark, Tt as generateTheme, U as tokyoNightStorm, V as tokyoNight, W as solarizedDark, X as catppuccinMacchiato, Y as catppuccinLatte, Z as catppuccinMocha, _ as moonfly, _t as setActiveColorLevel, a as defaultDarkTheme, at as resolveAliases, b as nightfox, bt as fromColors, c as getThemeByName, ct as ThemeValidationResult, d as edgeDark, dt as validateColorScheme, et as exportBase16, f as edgeLight, ft as ActiveColorLevel, g as nightfly, gt as pushContextTheme, h as oxocarbonLight, ht as popContextTheme, i as builtinThemes, it as themeToCSSVars, j as everforestLight, jt as COLOR_SCHEME_FIELDS, k as monokaiPro, kt as useTheme, l as modusOperandi, lt as validateTheme, m as oxocarbonDark, mt as getActiveTheme, n as ansi16LightTheme, nt as Base16Scheme, o as defaultLightTheme, ot as resolveTokenAlias, p as sonokai, pt as getActiveColorLevel, q as nord, r as builtinPalettes, rt as autoGenerateTheme, s as getSchemeByName, st as THEME_TOKEN_KEYS, t as ansi16DarkTheme, tt as importBase16, u as modusVivendi, ut as ValidationResult, v as horizon, vt as setActiveTheme, w as palenight, wt as quickTheme, x as ayuDark, xt as fromPreset, y as dawnfox, yt as fromBase16, z as gruvboxLight } from "./index-dehZ18K-.mjs";
|
|
2
|
+
import { n as deriveTheme, r as resolveThemeColor, t as ThemeAdjustment } from "./derive-O_Kb1Bk_.mjs";
|
|
3
3
|
|
|
4
4
|
//#region packages/color/src/types.d.ts
|
|
5
5
|
/** HSL color: [hue: 0-360, saturation: 0-1, lightness: 0-1] */
|
|
@@ -20,39 +20,54 @@ declare function hexToRgb(hex: string): [number, number, number] | null;
|
|
|
20
20
|
/** Convert [r, g, b] (0-255) to hex string. */
|
|
21
21
|
declare function rgbToHex(r: number, g: number, b: number): string;
|
|
22
22
|
/**
|
|
23
|
-
* Blend two hex colors. t=0 returns a, t=1 returns b.
|
|
23
|
+
* Blend two hex colors in OKLab space. t=0 returns a, t=1 returns b.
|
|
24
|
+
* Perceptually-uniform midpoints (unlike naive RGB blending which produces
|
|
25
|
+
* muddy halfway colors).
|
|
26
|
+
*
|
|
27
|
+
* Interpolation is done in OKLab (rectangular a/b), not OKLCH (polar). This
|
|
28
|
+
* matches CSS Color Module 4's default interpolation space and avoids hue-arc
|
|
29
|
+
* weirdness when one endpoint is near-neutral (its hue is effectively
|
|
30
|
+
* undefined). For explicit hue-rotation blending, use `lerpOklch` directly.
|
|
31
|
+
*
|
|
24
32
|
* For non-hex inputs (ANSI names), returns `a` unchanged.
|
|
25
33
|
*/
|
|
26
34
|
declare function blend(a: string, b: string, t: number): string;
|
|
27
35
|
/**
|
|
28
|
-
* Brighten a hex color. amount=0.1 adds
|
|
29
|
-
*
|
|
36
|
+
* Brighten a hex color by raising OKLCH lightness. amount=0.1 adds 0.1 to L
|
|
37
|
+
* (perceptually linear — 10% brighter looks 10% brighter regardless of hue).
|
|
38
|
+
*
|
|
39
|
+
* For non-hex inputs, returns the color unchanged.
|
|
30
40
|
*/
|
|
31
41
|
declare function brighten(color: string, amount: number): string;
|
|
32
42
|
/**
|
|
33
|
-
* Darken a hex color. amount=0.1
|
|
34
|
-
*
|
|
43
|
+
* Darken a hex color by lowering OKLCH lightness. amount=0.1 subtracts 0.1 from L.
|
|
44
|
+
*
|
|
45
|
+
* For non-hex inputs, returns the color unchanged.
|
|
35
46
|
*/
|
|
36
47
|
declare function darken(color: string, amount: number): string;
|
|
37
48
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
declare function rgbToHsl(r: number, g: number, b: number): HSL;
|
|
43
|
-
declare function hslToHex(h: number, s: number, l: number): string;
|
|
44
|
-
declare function hexToHsl(hex: string): HSL | null;
|
|
45
|
-
/**
|
|
46
|
-
* Desaturate a hex color by reducing saturation.
|
|
47
|
-
* amount=0.4 reduces saturation by 40%.
|
|
49
|
+
* Desaturate a hex color by lowering OKLCH chroma. amount=0.4 reduces C by 40%
|
|
50
|
+
* (relative — consistent with the original HSL-based contract). For a flat
|
|
51
|
+
* subtraction, use `saturate(color, -amount)`.
|
|
52
|
+
*
|
|
48
53
|
* For non-hex inputs, returns the color unchanged.
|
|
49
54
|
*/
|
|
50
55
|
declare function desaturate(color: string, amount: number): string;
|
|
51
56
|
/**
|
|
52
|
-
* Get the complementary color (180° hue rotation).
|
|
57
|
+
* Get the complementary color (180° hue rotation) in OKLCH. Preserves L + C,
|
|
58
|
+
* so the complement has the same perceived brightness and colorfulness.
|
|
59
|
+
*
|
|
53
60
|
* For non-hex inputs, returns the color unchanged.
|
|
54
61
|
*/
|
|
55
62
|
declare function complement(color: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Pick black or white text for readability on the given background.
|
|
65
|
+
* Uses WCAG 2.1 relative luminance.
|
|
66
|
+
*/
|
|
67
|
+
declare function contrastFg(bg: string): "#000000" | "#FFFFFF";
|
|
68
|
+
declare function rgbToHsl(r: number, g: number, b: number): HSL;
|
|
69
|
+
declare function hslToHex(h: number, s: number, l: number): string;
|
|
70
|
+
declare function hexToHsl(hex: string): HSL | null;
|
|
56
71
|
//#endregion
|
|
57
72
|
//#region packages/color/src/contrast.d.ts
|
|
58
73
|
/**
|
|
@@ -76,24 +91,24 @@ declare function complement(color: string): string;
|
|
|
76
91
|
*/
|
|
77
92
|
declare function checkContrast(fg: string, bg: string): ContrastResult | null;
|
|
78
93
|
/**
|
|
79
|
-
* Adjust a color's lightness until it meets a minimum contrast ratio
|
|
80
|
-
* against a reference color. Preserves hue and
|
|
81
|
-
*
|
|
94
|
+
* Adjust a color's OKLCH lightness until it meets a minimum WCAG contrast ratio
|
|
95
|
+
* against a reference color. Preserves hue and chroma — only lightness shifts,
|
|
96
|
+
* and only as much as needed.
|
|
82
97
|
*
|
|
83
98
|
* Returns the original color unchanged if it already meets the target.
|
|
84
99
|
*
|
|
100
|
+
* For impossible targets (e.g. 21:1 against mid-gray), returns the
|
|
101
|
+
* best achievable color (near-black or near-white in the same hue).
|
|
102
|
+
*
|
|
85
103
|
* @param color - The color to adjust (hex)
|
|
86
104
|
* @param against - The reference background color (hex)
|
|
87
105
|
* @param minRatio - Minimum contrast ratio to achieve (e.g. 4.5 for AA)
|
|
88
106
|
* @returns Adjusted hex color meeting the target, or original if already OK
|
|
89
107
|
*
|
|
90
|
-
* For impossible targets (e.g. 21:1 against mid-gray), returns the
|
|
91
|
-
* best achievable color (near-black or near-white in the same hue).
|
|
92
|
-
*
|
|
93
108
|
* @example
|
|
94
109
|
* ```typescript
|
|
95
|
-
* // Yellow on white — too low contrast, gets darkened
|
|
96
|
-
* ensureContrast("#FFAB91", "#FFFFFF", 4.5)
|
|
110
|
+
* // Yellow on white — too low contrast, gets darkened (perceptually; same hue preserved)
|
|
111
|
+
* ensureContrast("#FFAB91", "#FFFFFF", 4.5)
|
|
97
112
|
*
|
|
98
113
|
* // Blue on dark bg — already fine, returned unchanged
|
|
99
114
|
* ensureContrast("#5C9FFF", "#1A1A2E", 4.5) // → "#5C9FFF"
|
|
@@ -102,14 +117,14 @@ declare function checkContrast(fg: string, bg: string): ContrastResult | null;
|
|
|
102
117
|
declare function ensureContrast(color: string, against: string, minRatio: number): string;
|
|
103
118
|
//#endregion
|
|
104
119
|
//#region packages/ansi/src/theme/detect.d.ts
|
|
105
|
-
interface
|
|
120
|
+
interface DetectedScheme {
|
|
106
121
|
fg: string | null;
|
|
107
122
|
bg: string | null;
|
|
108
123
|
ansi: (string | null)[];
|
|
109
124
|
dark: boolean;
|
|
110
|
-
palette: Partial<
|
|
125
|
+
palette: Partial<ColorScheme>;
|
|
111
126
|
}
|
|
112
|
-
declare function
|
|
127
|
+
declare function detectTerminalScheme(timeoutMs?: number): Promise<DetectedScheme | null>;
|
|
113
128
|
//#endregion
|
|
114
|
-
export { AnsiColorName, AnsiPrimary, Base16Scheme,
|
|
129
|
+
export { ActiveColorLevel, AnsiColorName, AnsiPrimary, Base16Scheme, COLOR_SCHEME_FIELDS, ColorScheme, ContrastResult, DetectThemeOptions, DetectedScheme, HSL, HueName, THEME_TOKEN_KEYS, Theme, ThemeAdjustment, ThemeContext, ThemeProvider, ThemeProviderProps, ThemeValidationResult, ValidationResult, ansi16DarkTheme, ansi16LightTheme, autoGenerateTheme, ayuDark, ayuLight, ayuMirage, blend, brighten, builtinPalettes, builtinThemes, catppuccinFrappe, catppuccinLatte, catppuccinMacchiato, catppuccinMocha, checkContrast, complement, contrastFg, createTheme, darken, dawnfox, defaultDarkTheme, defaultLightTheme, deriveTheme, desaturate, detectTerminalScheme, detectTheme, dracula, edgeDark, edgeLight, ensureContrast, everforestDark, everforestLight, exportBase16, fromBase16, fromColors, fromPreset, generateTheme, getActiveColorLevel, getActiveTheme, getSchemeByName, getThemeByName, gruvboxDark, gruvboxLight, hexToHsl, hexToRgb, horizon, hslToHex, importBase16, kanagawaDragon, kanagawaLotus, kanagawaWave, materialDark, materialLight, modusOperandi, modusVivendi, monokai, monokaiPro, moonfly, nightfly, nightfox, nord, oneDark, oxocarbonDark, oxocarbonLight, palenight, popContextTheme, presetTheme, pushContextTheme, quickTheme, resolveAliases, resolveThemeColor, resolveTokenAlias, rgbToHex, rgbToHsl, rosePine, rosePineDawn, rosePineMoon, setActiveColorLevel, setActiveTheme, snazzy, solarizedDark, solarizedLight, sonokai, themeToCSSVars, tokyoNight, tokyoNightDay, tokyoNightStorm, useTheme, validateColorScheme, validateTheme };
|
|
115
130
|
//# sourceMappingURL=theme.d.mts.map
|
package/dist/theme.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.mts","names":[],"sources":["../packages/color/src/types.ts","../packages/color/src/color.ts","../packages/color/src/contrast.ts","../packages/ansi/src/theme/detect.ts"],"mappings":";;;;;KACY,GAAA;;UAGK,cAAA;EAHL;EAKV,KAAA;;EAEA,EAAA;EAPa;EASb,GAAA;AAAA;;;;
|
|
1
|
+
{"version":3,"file":"theme.d.mts","names":[],"sources":["../packages/color/src/types.ts","../packages/color/src/color.ts","../packages/color/src/contrast.ts","../packages/ansi/src/theme/detect.ts"],"mappings":";;;;;KACY,GAAA;;UAGK,cAAA;EAHL;EAKV,KAAA;;EAEA,EAAA;EAPa;EASb,GAAA;AAAA;;;;iBCYc,QAAA,CAAS,GAAA;;iBAaT,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA;;;;;AAA/C;;;;;;;;iBAmCgB,KAAA,CAAM,CAAA,UAAW,CAAA,UAAW,CAAA;AAA5C;;;;;;AAAA,iBAUgB,QAAA,CAAS,KAAA,UAAe,MAAA;;;AAAxC;;;iBAWgB,MAAA,CAAO,KAAA,UAAe,MAAA;;;;;AAqCtC;;;iBAZgB,UAAA,CAAW,KAAA,UAAe,MAAA;;AAqD1C;;;;;iBAzCgB,UAAA,CAAW,KAAA;;;;;iBAyCX,UAAA,CAAW,EAAA;AAAA,iBAUX,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA,WAAY,GAAA;AAAA,iBAiB3C,QAAA,CAAS,CAAA,UAAW,CAAA,UAAW,CAAA;AAAA,iBAU/B,QAAA,CAAS,GAAA,WAAc,GAAA;;;;;;;;;;;;;AAxLvC;;;;;AAaA;;;;iBCDgB,aAAA,CAAc,EAAA,UAAY,EAAA,WAAa,cAAA;;;;;ADoCvD;;;;;;;;;AAUA;;;;;AAWA;;;;;AAyBA;iBC1CgB,cAAA,CAAe,KAAA,UAAe,OAAA,UAAiB,QAAA;;;UChE9C,cAAA;EACf,EAAA;EACA,EAAA;EACA,IAAA;EACA,IAAA;EACA,OAAA,EAAS,OAAA,CAAQ,WAAA;AAAA;AAAA,iBAGG,oBAAA,CAAqB,SAAA,YAAkB,OAAA,CAAQ,cAAA"}
|
package/dist/theme.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { $ as
|
|
1
|
+
import { A as brighten, B as rgbToHsl, D as checkContrast, F as hexToHsl, I as hexToRgb, L as hslToHex, M as contrastFg, N as darken, O as ensureContrast, P as desaturate, S as deriveTheme, T as resolveThemeColor, b as COLOR_SCHEME_FIELDS, j as complement, k as blend, r as detectTerminalScheme, z as rgbToHex } from "./src-D_BS-as7.mjs";
|
|
2
|
+
import { $ as ayuDark, A as pushContextTheme, B as getThemeByName, C as ThemeProvider, Ct as solarizedLight, D as getActiveTheme, Dt as catppuccinLatte, E as getActiveColorLevel, Et as catppuccinFrappe, F as builtinPalettes, G as sonokai, H as modusVivendi, I as builtinThemes, J as nightfly, K as oxocarbonDark, L as defaultDarkTheme, M as setActiveTheme, N as ansi16DarkTheme, Ot as catppuccinMacchiato, P as ansi16LightTheme, Q as nightfox, R as defaultLightTheme, S as ThemeContext, St as solarizedDark, T as useTheme, Tt as nord, U as edgeDark, V as modusOperandi, W as edgeLight, X as horizon, Y as moonfly, Z as dawnfox, _ as fromColors, _t as gruvboxLight, a as exportBase16, at as snazzy, b as generateTheme, bt as tokyoNightDay, c as resolveAliases, ct as everforestDark, d as validateTheme, dt as kanagawaLotus, et as ayuLight, f as validateColorScheme, ft as kanagawaWave, g as fromBase16, gt as gruvboxDark, h as quickTheme, ht as rosePineMoon, it as materialLight, j as setActiveColorLevel, k as popContextTheme, kt as catppuccinMocha, l as resolveTokenAlias, lt as everforestLight, m as presetTheme, mt as rosePineDawn, nt as palenight, o as autoGenerateTheme, ot as monokai, p as createTheme, pt as rosePine, q as oxocarbonLight, r as detectTheme, rt as materialDark, s as themeToCSSVars, st as monokaiPro, t as init_src, tt as ayuMirage, u as THEME_TOKEN_KEYS, ut as kanagawaDragon, v as fromPreset, vt as oneDark, wt as dracula, xt as tokyoNightStorm, y as importBase16, yt as tokyoNight, z as getSchemeByName } from "./src-C0sOQW-t.mjs";
|
|
3
3
|
//#region src/theme.ts
|
|
4
4
|
init_src();
|
|
5
5
|
//#endregion
|
|
6
|
-
export {
|
|
6
|
+
export { COLOR_SCHEME_FIELDS, THEME_TOKEN_KEYS, ThemeContext, ThemeProvider, ansi16DarkTheme, ansi16LightTheme, autoGenerateTheme, ayuDark, ayuLight, ayuMirage, blend, brighten, builtinPalettes, builtinThemes, catppuccinFrappe, catppuccinLatte, catppuccinMacchiato, catppuccinMocha, checkContrast, complement, contrastFg, createTheme, darken, dawnfox, defaultDarkTheme, defaultLightTheme, deriveTheme, desaturate, detectTerminalScheme, detectTheme, dracula, edgeDark, edgeLight, ensureContrast, everforestDark, everforestLight, exportBase16, fromBase16, fromColors, fromPreset, generateTheme, getActiveColorLevel, getActiveTheme, getSchemeByName, getThemeByName, gruvboxDark, gruvboxLight, hexToHsl, hexToRgb, horizon, hslToHex, importBase16, kanagawaDragon, kanagawaLotus, kanagawaWave, materialDark, materialLight, modusOperandi, modusVivendi, monokai, monokaiPro, moonfly, nightfly, nightfox, nord, oneDark, oxocarbonDark, oxocarbonLight, palenight, popContextTheme, presetTheme, pushContextTheme, quickTheme, resolveAliases, resolveThemeColor, resolveTokenAlias, rgbToHex, rgbToHsl, rosePine, rosePineDawn, rosePineMoon, setActiveColorLevel, setActiveTheme, snazzy, solarizedDark, solarizedLight, sonokai, themeToCSSVars, tokyoNight, tokyoNightDay, tokyoNightStorm, useTheme, validateColorScheme, validateTheme };
|
|
7
7
|
|
|
8
8
|
//# sourceMappingURL=theme.mjs.map
|
|
@@ -238,4 +238,4 @@ interface WithSelectOptions {
|
|
|
238
238
|
}
|
|
239
239
|
//#endregion
|
|
240
240
|
export { TextInputOptions as _, ProgressInfo as a, WithSelectOptions as b, SpinnerOptions as c, StepProgress as d, TableColumn as f, TaskStatus as g, TaskState as h, ProgressGenerator as i, SpinnerProps as l, TaskProps as m, ProgressBarProps as n, SelectOption as o, TableProps as p, ProgressCallback as r, SelectProps as s, ProgressBarOptions as t, SpinnerStyle as u, TextInputProps as v, WithSpinnerOptions as x, WithProgressOptions as y };
|
|
241
|
-
//# sourceMappingURL=types-
|
|
241
|
+
//# sourceMappingURL=types-B4A8Ebba.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-B4A8Ebba.d.mts","names":[],"sources":["../packages/ag-react/src/ui/types.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
//#region ../../node_modules/.bun/alien-signals@3.1.2/node_modules/alien-signals/esm/system.mjs
|
|
2
|
+
function createReactiveSystem({ update, notify, unwatched }) {
|
|
3
|
+
return {
|
|
4
|
+
link,
|
|
5
|
+
unlink,
|
|
6
|
+
propagate,
|
|
7
|
+
checkDirty,
|
|
8
|
+
shallowPropagate
|
|
9
|
+
};
|
|
10
|
+
function link(dep, sub, version) {
|
|
11
|
+
const prevDep = sub.depsTail;
|
|
12
|
+
if (prevDep !== void 0 && prevDep.dep === dep) return;
|
|
13
|
+
const nextDep = prevDep !== void 0 ? prevDep.nextDep : sub.deps;
|
|
14
|
+
if (nextDep !== void 0 && nextDep.dep === dep) {
|
|
15
|
+
nextDep.version = version;
|
|
16
|
+
sub.depsTail = nextDep;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const prevSub = dep.subsTail;
|
|
20
|
+
if (prevSub !== void 0 && prevSub.version === version && prevSub.sub === sub) return;
|
|
21
|
+
const newLink = sub.depsTail = dep.subsTail = {
|
|
22
|
+
version,
|
|
23
|
+
dep,
|
|
24
|
+
sub,
|
|
25
|
+
prevDep,
|
|
26
|
+
nextDep,
|
|
27
|
+
prevSub,
|
|
28
|
+
nextSub: void 0
|
|
29
|
+
};
|
|
30
|
+
if (nextDep !== void 0) nextDep.prevDep = newLink;
|
|
31
|
+
if (prevDep !== void 0) prevDep.nextDep = newLink;
|
|
32
|
+
else sub.deps = newLink;
|
|
33
|
+
if (prevSub !== void 0) prevSub.nextSub = newLink;
|
|
34
|
+
else dep.subs = newLink;
|
|
35
|
+
}
|
|
36
|
+
function unlink(link, sub = link.sub) {
|
|
37
|
+
const dep = link.dep;
|
|
38
|
+
const prevDep = link.prevDep;
|
|
39
|
+
const nextDep = link.nextDep;
|
|
40
|
+
const nextSub = link.nextSub;
|
|
41
|
+
const prevSub = link.prevSub;
|
|
42
|
+
if (nextDep !== void 0) nextDep.prevDep = prevDep;
|
|
43
|
+
else sub.depsTail = prevDep;
|
|
44
|
+
if (prevDep !== void 0) prevDep.nextDep = nextDep;
|
|
45
|
+
else sub.deps = nextDep;
|
|
46
|
+
if (nextSub !== void 0) nextSub.prevSub = prevSub;
|
|
47
|
+
else dep.subsTail = prevSub;
|
|
48
|
+
if (prevSub !== void 0) prevSub.nextSub = nextSub;
|
|
49
|
+
else if ((dep.subs = nextSub) === void 0) unwatched(dep);
|
|
50
|
+
return nextDep;
|
|
51
|
+
}
|
|
52
|
+
function propagate(link) {
|
|
53
|
+
let next = link.nextSub;
|
|
54
|
+
let stack;
|
|
55
|
+
top: do {
|
|
56
|
+
const sub = link.sub;
|
|
57
|
+
let flags = sub.flags;
|
|
58
|
+
if (!(flags & 60)) sub.flags = flags | 32;
|
|
59
|
+
else if (!(flags & 12)) flags = 0;
|
|
60
|
+
else if (!(flags & 4)) sub.flags = flags & -9 | 32;
|
|
61
|
+
else if (!(flags & 48) && isValidLink(link, sub)) {
|
|
62
|
+
sub.flags = flags | 40;
|
|
63
|
+
flags &= 1;
|
|
64
|
+
} else flags = 0;
|
|
65
|
+
if (flags & 2) notify(sub);
|
|
66
|
+
if (flags & 1) {
|
|
67
|
+
const subSubs = sub.subs;
|
|
68
|
+
if (subSubs !== void 0) {
|
|
69
|
+
const nextSub = (link = subSubs).nextSub;
|
|
70
|
+
if (nextSub !== void 0) {
|
|
71
|
+
stack = {
|
|
72
|
+
value: next,
|
|
73
|
+
prev: stack
|
|
74
|
+
};
|
|
75
|
+
next = nextSub;
|
|
76
|
+
}
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if ((link = next) !== void 0) {
|
|
81
|
+
next = link.nextSub;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
while (stack !== void 0) {
|
|
85
|
+
link = stack.value;
|
|
86
|
+
stack = stack.prev;
|
|
87
|
+
if (link !== void 0) {
|
|
88
|
+
next = link.nextSub;
|
|
89
|
+
continue top;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
} while (true);
|
|
94
|
+
}
|
|
95
|
+
function checkDirty(link, sub) {
|
|
96
|
+
let stack;
|
|
97
|
+
let checkDepth = 0;
|
|
98
|
+
let dirty = false;
|
|
99
|
+
top: do {
|
|
100
|
+
const dep = link.dep;
|
|
101
|
+
const flags = dep.flags;
|
|
102
|
+
if (sub.flags & 16) dirty = true;
|
|
103
|
+
else if ((flags & 17) === 17) {
|
|
104
|
+
if (update(dep)) {
|
|
105
|
+
const subs = dep.subs;
|
|
106
|
+
if (subs.nextSub !== void 0) shallowPropagate(subs);
|
|
107
|
+
dirty = true;
|
|
108
|
+
}
|
|
109
|
+
} else if ((flags & 33) === 33) {
|
|
110
|
+
if (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {
|
|
111
|
+
value: link,
|
|
112
|
+
prev: stack
|
|
113
|
+
};
|
|
114
|
+
link = dep.deps;
|
|
115
|
+
sub = dep;
|
|
116
|
+
++checkDepth;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (!dirty) {
|
|
120
|
+
const nextDep = link.nextDep;
|
|
121
|
+
if (nextDep !== void 0) {
|
|
122
|
+
link = nextDep;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
while (checkDepth--) {
|
|
127
|
+
const firstSub = sub.subs;
|
|
128
|
+
const hasMultipleSubs = firstSub.nextSub !== void 0;
|
|
129
|
+
if (hasMultipleSubs) {
|
|
130
|
+
link = stack.value;
|
|
131
|
+
stack = stack.prev;
|
|
132
|
+
} else link = firstSub;
|
|
133
|
+
if (dirty) {
|
|
134
|
+
if (update(sub)) {
|
|
135
|
+
if (hasMultipleSubs) shallowPropagate(firstSub);
|
|
136
|
+
sub = link.sub;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
dirty = false;
|
|
140
|
+
} else sub.flags &= -33;
|
|
141
|
+
sub = link.sub;
|
|
142
|
+
const nextDep = link.nextDep;
|
|
143
|
+
if (nextDep !== void 0) {
|
|
144
|
+
link = nextDep;
|
|
145
|
+
continue top;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return dirty;
|
|
149
|
+
} while (true);
|
|
150
|
+
}
|
|
151
|
+
function shallowPropagate(link) {
|
|
152
|
+
do {
|
|
153
|
+
const sub = link.sub;
|
|
154
|
+
const flags = sub.flags;
|
|
155
|
+
if ((flags & 48) === 32) {
|
|
156
|
+
sub.flags = flags | 16;
|
|
157
|
+
if ((flags & 6) === 2) notify(sub);
|
|
158
|
+
}
|
|
159
|
+
} while ((link = link.nextSub) !== void 0);
|
|
160
|
+
}
|
|
161
|
+
function isValidLink(checkLink, sub) {
|
|
162
|
+
let link = sub.depsTail;
|
|
163
|
+
while (link !== void 0) {
|
|
164
|
+
if (link === checkLink) return true;
|
|
165
|
+
link = link.prevDep;
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//#endregion
|
|
171
|
+
//#region ../../node_modules/.bun/alien-signals@3.1.2/node_modules/alien-signals/esm/index.mjs
|
|
172
|
+
let cycle = 0;
|
|
173
|
+
let notifyIndex = 0;
|
|
174
|
+
let queuedLength = 0;
|
|
175
|
+
let activeSub;
|
|
176
|
+
const queued = [];
|
|
177
|
+
const { link, unlink, propagate, checkDirty, shallowPropagate } = createReactiveSystem({
|
|
178
|
+
update(node) {
|
|
179
|
+
if (node.depsTail !== void 0) return updateComputed(node);
|
|
180
|
+
else return updateSignal(node);
|
|
181
|
+
},
|
|
182
|
+
notify(effect) {
|
|
183
|
+
let insertIndex = queuedLength;
|
|
184
|
+
let firstInsertedIndex = insertIndex;
|
|
185
|
+
do {
|
|
186
|
+
queued[insertIndex++] = effect;
|
|
187
|
+
effect.flags &= -3;
|
|
188
|
+
effect = effect.subs?.sub;
|
|
189
|
+
if (effect === void 0 || !(effect.flags & 2)) break;
|
|
190
|
+
} while (true);
|
|
191
|
+
queuedLength = insertIndex;
|
|
192
|
+
while (firstInsertedIndex < --insertIndex) {
|
|
193
|
+
const left = queued[firstInsertedIndex];
|
|
194
|
+
queued[firstInsertedIndex++] = queued[insertIndex];
|
|
195
|
+
queued[insertIndex] = left;
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
unwatched(node) {
|
|
199
|
+
if (!(node.flags & 1)) effectScopeOper.call(node);
|
|
200
|
+
else if (node.depsTail !== void 0) {
|
|
201
|
+
node.depsTail = void 0;
|
|
202
|
+
node.flags = 17;
|
|
203
|
+
purgeDeps(node);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
function setActiveSub(sub) {
|
|
208
|
+
const prevSub = activeSub;
|
|
209
|
+
activeSub = sub;
|
|
210
|
+
return prevSub;
|
|
211
|
+
}
|
|
212
|
+
function signal(initialValue) {
|
|
213
|
+
return signalOper.bind({
|
|
214
|
+
currentValue: initialValue,
|
|
215
|
+
pendingValue: initialValue,
|
|
216
|
+
subs: void 0,
|
|
217
|
+
subsTail: void 0,
|
|
218
|
+
flags: 1
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function computed(getter) {
|
|
222
|
+
return computedOper.bind({
|
|
223
|
+
value: void 0,
|
|
224
|
+
subs: void 0,
|
|
225
|
+
subsTail: void 0,
|
|
226
|
+
deps: void 0,
|
|
227
|
+
depsTail: void 0,
|
|
228
|
+
flags: 0,
|
|
229
|
+
getter
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function effect(fn) {
|
|
233
|
+
const e = {
|
|
234
|
+
fn,
|
|
235
|
+
subs: void 0,
|
|
236
|
+
subsTail: void 0,
|
|
237
|
+
deps: void 0,
|
|
238
|
+
depsTail: void 0,
|
|
239
|
+
flags: 6
|
|
240
|
+
};
|
|
241
|
+
const prevSub = setActiveSub(e);
|
|
242
|
+
if (prevSub !== void 0) link(e, prevSub, 0);
|
|
243
|
+
try {
|
|
244
|
+
e.fn();
|
|
245
|
+
} finally {
|
|
246
|
+
activeSub = prevSub;
|
|
247
|
+
e.flags &= -5;
|
|
248
|
+
}
|
|
249
|
+
return effectOper.bind(e);
|
|
250
|
+
}
|
|
251
|
+
function updateComputed(c) {
|
|
252
|
+
++cycle;
|
|
253
|
+
c.depsTail = void 0;
|
|
254
|
+
c.flags = 5;
|
|
255
|
+
const prevSub = setActiveSub(c);
|
|
256
|
+
try {
|
|
257
|
+
const oldValue = c.value;
|
|
258
|
+
return oldValue !== (c.value = c.getter(oldValue));
|
|
259
|
+
} finally {
|
|
260
|
+
activeSub = prevSub;
|
|
261
|
+
c.flags &= -5;
|
|
262
|
+
purgeDeps(c);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
function updateSignal(s) {
|
|
266
|
+
s.flags = 1;
|
|
267
|
+
return s.currentValue !== (s.currentValue = s.pendingValue);
|
|
268
|
+
}
|
|
269
|
+
function run(e) {
|
|
270
|
+
const flags = e.flags;
|
|
271
|
+
if (flags & 16 || flags & 32 && checkDirty(e.deps, e)) {
|
|
272
|
+
++cycle;
|
|
273
|
+
e.depsTail = void 0;
|
|
274
|
+
e.flags = 6;
|
|
275
|
+
const prevSub = setActiveSub(e);
|
|
276
|
+
try {
|
|
277
|
+
e.fn();
|
|
278
|
+
} finally {
|
|
279
|
+
activeSub = prevSub;
|
|
280
|
+
e.flags &= -5;
|
|
281
|
+
purgeDeps(e);
|
|
282
|
+
}
|
|
283
|
+
} else e.flags = 2;
|
|
284
|
+
}
|
|
285
|
+
function flush() {
|
|
286
|
+
try {
|
|
287
|
+
while (notifyIndex < queuedLength) {
|
|
288
|
+
const effect = queued[notifyIndex];
|
|
289
|
+
queued[notifyIndex++] = void 0;
|
|
290
|
+
run(effect);
|
|
291
|
+
}
|
|
292
|
+
} finally {
|
|
293
|
+
while (notifyIndex < queuedLength) {
|
|
294
|
+
const effect = queued[notifyIndex];
|
|
295
|
+
queued[notifyIndex++] = void 0;
|
|
296
|
+
effect.flags |= 10;
|
|
297
|
+
}
|
|
298
|
+
notifyIndex = 0;
|
|
299
|
+
queuedLength = 0;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function computedOper() {
|
|
303
|
+
const flags = this.flags;
|
|
304
|
+
if (flags & 16 || flags & 32 && (checkDirty(this.deps, this) || (this.flags = flags & -33, false))) {
|
|
305
|
+
if (updateComputed(this)) {
|
|
306
|
+
const subs = this.subs;
|
|
307
|
+
if (subs !== void 0) shallowPropagate(subs);
|
|
308
|
+
}
|
|
309
|
+
} else if (!flags) {
|
|
310
|
+
this.flags = 5;
|
|
311
|
+
const prevSub = setActiveSub(this);
|
|
312
|
+
try {
|
|
313
|
+
this.value = this.getter();
|
|
314
|
+
} finally {
|
|
315
|
+
activeSub = prevSub;
|
|
316
|
+
this.flags &= -5;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
const sub = activeSub;
|
|
320
|
+
if (sub !== void 0) link(this, sub, cycle);
|
|
321
|
+
return this.value;
|
|
322
|
+
}
|
|
323
|
+
function signalOper(...value) {
|
|
324
|
+
if (value.length) {
|
|
325
|
+
if (this.pendingValue !== (this.pendingValue = value[0])) {
|
|
326
|
+
this.flags = 17;
|
|
327
|
+
const subs = this.subs;
|
|
328
|
+
if (subs !== void 0) {
|
|
329
|
+
propagate(subs);
|
|
330
|
+
flush();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
} else {
|
|
334
|
+
if (this.flags & 16) {
|
|
335
|
+
if (updateSignal(this)) {
|
|
336
|
+
const subs = this.subs;
|
|
337
|
+
if (subs !== void 0) shallowPropagate(subs);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
let sub = activeSub;
|
|
341
|
+
while (sub !== void 0) {
|
|
342
|
+
if (sub.flags & 3) {
|
|
343
|
+
link(this, sub, cycle);
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
sub = sub.subs?.sub;
|
|
347
|
+
}
|
|
348
|
+
return this.currentValue;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function effectOper() {
|
|
352
|
+
effectScopeOper.call(this);
|
|
353
|
+
}
|
|
354
|
+
function effectScopeOper() {
|
|
355
|
+
this.depsTail = void 0;
|
|
356
|
+
this.flags = 0;
|
|
357
|
+
purgeDeps(this);
|
|
358
|
+
const sub = this.subs;
|
|
359
|
+
if (sub !== void 0) unlink(sub);
|
|
360
|
+
}
|
|
361
|
+
function purgeDeps(sub) {
|
|
362
|
+
const depsTail = sub.depsTail;
|
|
363
|
+
let dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;
|
|
364
|
+
while (dep !== void 0) dep = unlink(dep, sub);
|
|
365
|
+
}
|
|
366
|
+
//#endregion
|
|
367
|
+
//#region packages/ag/src/layout-signals.ts
|
|
368
|
+
/**
|
|
369
|
+
* withLayoutSignals — reactive signal layer for AgNode layout outputs.
|
|
370
|
+
*
|
|
371
|
+
* Composable plugin that wraps an AgNode with reactive signals for layout
|
|
372
|
+
* rects, text content, and focus state. Engine-agnostic — works with
|
|
373
|
+
* Flexily, Yoga, or any future layout engine.
|
|
374
|
+
*
|
|
375
|
+
* Signals are WeakMap-backed and lazily created. Nodes without subscribers
|
|
376
|
+
* pay zero cost. After layout completes, the pipeline calls `syncSignals()`
|
|
377
|
+
* to propagate imperative state into signals.
|
|
378
|
+
*
|
|
379
|
+
* ## Usage
|
|
380
|
+
*
|
|
381
|
+
* ```ts
|
|
382
|
+
* import { getLayoutSignals, syncSignals } from "@silvery/ag/layout-signals"
|
|
383
|
+
*
|
|
384
|
+
* // Get (or create) signals for a node
|
|
385
|
+
* const signals = getLayoutSignals(node)
|
|
386
|
+
* signals.boxRect() // read current rect
|
|
387
|
+
* signals.textContent() // read current text
|
|
388
|
+
*
|
|
389
|
+
* // After layout/reconciler mutations, sync imperative → reactive
|
|
390
|
+
* syncSignals(node)
|
|
391
|
+
* ```
|
|
392
|
+
*
|
|
393
|
+
* ## Three-layer stack
|
|
394
|
+
*
|
|
395
|
+
* Layer 0: alien-signals (signal, computed, effect)
|
|
396
|
+
* Layer 1: getLayoutSignals() — this module (@silvery/ag, framework-agnostic)
|
|
397
|
+
* Layer 2: useSignal(signal) — @silvery/ag-react (React bridge)
|
|
398
|
+
* Layer 3: useBoxRect(), useAgNode() — semantic convenience hooks
|
|
399
|
+
*/
|
|
400
|
+
const signalMap = /* @__PURE__ */ new WeakMap();
|
|
401
|
+
/**
|
|
402
|
+
* Get or create layout signals for a node.
|
|
403
|
+
*
|
|
404
|
+
* Lazily created on first access. Automatically garbage-collected
|
|
405
|
+
* when the node is removed from the tree (WeakMap semantics).
|
|
406
|
+
*/
|
|
407
|
+
function getLayoutSignals(node) {
|
|
408
|
+
let s = signalMap.get(node);
|
|
409
|
+
if (!s) {
|
|
410
|
+
s = {
|
|
411
|
+
boxRect: signal(node.boxRect),
|
|
412
|
+
scrollRect: signal(node.scrollRect),
|
|
413
|
+
screenRect: signal(node.screenRect),
|
|
414
|
+
textContent: signal(node.textContent),
|
|
415
|
+
focused: signal(node.interactiveState?.focused ?? false)
|
|
416
|
+
};
|
|
417
|
+
signalMap.set(node, s);
|
|
418
|
+
}
|
|
419
|
+
return s;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Sync all rect signals from the node's current values.
|
|
423
|
+
*
|
|
424
|
+
* Called from notifyLayoutSubscribers after layout + scroll + sticky
|
|
425
|
+
* phases complete. Only syncs nodes that have signals allocated.
|
|
426
|
+
* Reference-equality check prevents unnecessary downstream updates.
|
|
427
|
+
*/
|
|
428
|
+
function syncRectSignals(node) {
|
|
429
|
+
const s = signalMap.get(node);
|
|
430
|
+
if (!s) return;
|
|
431
|
+
if (node.boxRect !== s.boxRect()) s.boxRect(node.boxRect);
|
|
432
|
+
if (node.scrollRect !== s.scrollRect()) s.scrollRect(node.scrollRect);
|
|
433
|
+
if (node.screenRect !== s.screenRect()) s.screenRect(node.screenRect);
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Sync textContent signal from the node's current value.
|
|
437
|
+
*
|
|
438
|
+
* Called from commitTextUpdate in the reconciler.
|
|
439
|
+
*/
|
|
440
|
+
function syncTextContentSignal(node) {
|
|
441
|
+
const s = signalMap.get(node);
|
|
442
|
+
if (!s) return;
|
|
443
|
+
if (node.textContent !== s.textContent()) s.textContent(node.textContent);
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Sync focused signal for a node.
|
|
447
|
+
*
|
|
448
|
+
* Called from FocusManager when focus changes.
|
|
449
|
+
*/
|
|
450
|
+
function syncFocusedSignal(node, focused) {
|
|
451
|
+
const s = signalMap.get(node);
|
|
452
|
+
if (!s) return;
|
|
453
|
+
if (focused !== s.focused()) s.focused(focused);
|
|
454
|
+
}
|
|
455
|
+
//#endregion
|
|
456
|
+
//#region packages/ag/src/types.ts
|
|
457
|
+
/**
|
|
458
|
+
* Check if two rects are equal (same position and size).
|
|
459
|
+
*/
|
|
460
|
+
function rectEqual(a, b) {
|
|
461
|
+
if (a === b) return true;
|
|
462
|
+
if (!a || !b) return false;
|
|
463
|
+
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
464
|
+
}
|
|
465
|
+
//#endregion
|
|
466
|
+
export { syncTextContentSignal as a, signal as c, syncRectSignals as i, getLayoutSignals as n, computed as o, syncFocusedSignal as r, effect as s, rectEqual as t };
|
|
467
|
+
|
|
468
|
+
//# sourceMappingURL=types-e4dpfbSa.mjs.map
|