@zakmandhro/bunti 0.1.5 → 0.2.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/AGENTS.md +65 -0
- package/README.md +81 -11
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +147 -0
- package/dist/cli.js.map +1 -0
- package/dist/colors.d.ts +77 -7
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +238 -39
- package/dist/colors.js.map +1 -1
- package/dist/components/Box.d.ts +6 -0
- package/dist/components/Box.d.ts.map +1 -1
- package/dist/components/Box.js +5 -0
- package/dist/components/Box.js.map +1 -1
- package/dist/components/Button.d.ts +12 -2
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +35 -24
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.d.ts +24 -2
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Card.js +56 -14
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Header.d.ts +11 -1
- package/dist/components/Header.d.ts.map +1 -1
- package/dist/components/Header.js +12 -8
- package/dist/components/Header.js.map +1 -1
- package/dist/components/Input.d.ts +10 -1
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Input.js +172 -41
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Link.d.ts +21 -0
- package/dist/components/Link.d.ts.map +1 -0
- package/dist/components/Link.js +29 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/Modal.d.ts +25 -0
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +83 -24
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/Progress.d.ts +27 -0
- package/dist/components/Progress.d.ts.map +1 -0
- package/dist/components/Progress.js +39 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/Spinner.d.ts +19 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +27 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/data/nf-glyphs.d.ts +11 -0
- package/dist/data/nf-glyphs.d.ts.map +1 -0
- package/dist/data/nf-glyphs.js +535 -0
- package/dist/data/nf-glyphs.js.map +1 -0
- package/dist/data/nf-names.d.ts +8 -0
- package/dist/data/nf-names.d.ts.map +1 -0
- package/dist/data/nf-names.js +2 -0
- package/dist/data/nf-names.js.map +1 -0
- package/dist/demo-registry.d.ts +27 -0
- package/dist/demo-registry.d.ts.map +1 -0
- package/dist/demo-registry.js +57 -0
- package/dist/demo-registry.js.map +1 -0
- package/dist/demos/2048.ts +743 -0
- package/dist/demos/animation.ts +246 -0
- package/dist/demos/demo-layout.ts +124 -0
- package/dist/demos/engine.ts +374 -0
- package/dist/demos/interaction.ts +91 -0
- package/dist/demos/login.ts +203 -0
- package/dist/demos/mission-control.ts +558 -0
- package/dist/demos/showcase.ts +224 -0
- package/dist/detect.d.ts +92 -3
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +218 -40
- package/dist/detect.js.map +1 -1
- package/dist/diagnostics.d.ts +73 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +225 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dsl/context.d.ts +11 -0
- package/dist/dsl/context.d.ts.map +1 -0
- package/dist/dsl/context.js +563 -0
- package/dist/dsl/context.js.map +1 -0
- package/dist/dsl/hooks.d.ts +12 -0
- package/dist/dsl/hooks.d.ts.map +1 -0
- package/dist/dsl/hooks.js +148 -0
- package/dist/dsl/hooks.js.map +1 -0
- package/dist/dsl/interaction.d.ts +16 -0
- package/dist/dsl/interaction.d.ts.map +1 -0
- package/dist/dsl/interaction.js +101 -0
- package/dist/dsl/interaction.js.map +1 -0
- package/dist/dsl/layers.d.ts +14 -0
- package/dist/dsl/layers.d.ts.map +1 -0
- package/dist/dsl/layers.js +87 -0
- package/dist/dsl/layers.js.map +1 -0
- package/dist/dsl/motion.d.ts +10 -0
- package/dist/dsl/motion.d.ts.map +1 -0
- package/dist/dsl/motion.js +150 -0
- package/dist/dsl/motion.js.map +1 -0
- package/dist/dsl/render.d.ts +22 -0
- package/dist/dsl/render.d.ts.map +1 -0
- package/dist/dsl/render.js +69 -0
- package/dist/dsl/render.js.map +1 -0
- package/dist/dsl/types.d.ts +510 -0
- package/dist/dsl/types.d.ts.map +1 -0
- package/dist/dsl/types.js +33 -0
- package/dist/dsl/types.js.map +1 -0
- package/dist/dsl.d.ts +13 -154
- package/dist/dsl.d.ts.map +1 -1
- package/dist/dsl.js +12 -658
- package/dist/dsl.js.map +1 -1
- package/dist/easing.d.ts +41 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +105 -2
- package/dist/easing.js.map +1 -1
- package/dist/geometry.d.ts +39 -0
- package/dist/geometry.d.ts.map +1 -1
- package/dist/geometry.js +20 -0
- package/dist/geometry.js.map +1 -1
- package/dist/icons-full.d.ts +5 -0
- package/dist/icons-full.d.ts.map +1 -0
- package/dist/icons-full.js +31 -0
- package/dist/icons-full.js.map +1 -0
- package/dist/icons.d.ts +426 -5
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +144 -15
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +93 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +177 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +533 -0
- package/dist/input.js.map +1 -0
- package/dist/layout.d.ts +111 -6
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +163 -23
- package/dist/layout.js.map +1 -1
- package/dist/render.d.ts +33 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +431 -116
- package/dist/render.js.map +1 -1
- package/dist/state.d.ts +137 -3
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +25 -0
- package/dist/state.js.map +1 -1
- package/dist/theme.d.ts +129 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +167 -0
- package/dist/theme.js.map +1 -0
- package/dist/themes/catppuccin-mocha.d.ts +19 -0
- package/dist/themes/catppuccin-mocha.d.ts.map +1 -0
- package/dist/themes/catppuccin-mocha.js +36 -0
- package/dist/themes/catppuccin-mocha.js.map +1 -0
- package/dist/themes/dracula.d.ts +21 -0
- package/dist/themes/dracula.d.ts.map +1 -0
- package/dist/themes/dracula.js +37 -0
- package/dist/themes/dracula.js.map +1 -0
- package/dist/themes/github-light.d.ts +21 -0
- package/dist/themes/github-light.d.ts.map +1 -0
- package/dist/themes/github-light.js +36 -0
- package/dist/themes/github-light.js.map +1 -0
- package/dist/themes/index.d.ts +19 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +17 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/nord.d.ts +23 -0
- package/dist/themes/nord.d.ts.map +1 -0
- package/dist/themes/nord.js +38 -0
- package/dist/themes/nord.js.map +1 -0
- package/dist/themes/one-dark-pro.d.ts +21 -0
- package/dist/themes/one-dark-pro.d.ts.map +1 -0
- package/dist/themes/one-dark-pro.js +36 -0
- package/dist/themes/one-dark-pro.js.map +1 -0
- package/dist/themes/tokyo-night.d.ts +20 -0
- package/dist/themes/tokyo-night.d.ts.map +1 -0
- package/dist/themes/tokyo-night.js +37 -0
- package/dist/themes/tokyo-night.js.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -0
- package/dist/utils.js.map +1 -1
- package/dist/vendor/colors.d.ts +45 -0
- package/dist/vendor/colors.d.ts.map +1 -0
- package/dist/vendor/colors.js +72 -0
- package/dist/vendor/colors.js.map +1 -0
- package/llms.txt +79 -0
- package/package.json +23 -7
- package/dist/data/glyphs.d.ts +0 -5
- package/dist/data/glyphs.d.ts.map +0 -1
- package/dist/data/glyphs.js +0 -29
- package/dist/data/glyphs.js.map +0 -1
package/dist/colors.js
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bunti Semantic & Palette Color System
|
|
3
3
|
*/
|
|
4
|
+
import { colorTier } from './detect';
|
|
5
|
+
import { hintsSuppressed, nearestMatch, recordHint } from './diagnostics';
|
|
6
|
+
/**
|
|
7
|
+
* Internal brand carried by ThemeColor instances so callable theme tokens can
|
|
8
|
+
* be distinguished from plain function-style border wrappers.
|
|
9
|
+
*/
|
|
10
|
+
export const THEME_COLOR = Symbol.for('bunti.theme-color');
|
|
11
|
+
/**
|
|
12
|
+
* Returns true when the value is a ThemeColor (callable fg-styler carrying
|
|
13
|
+
* `.rgb` and `.hex`), detected via the internal brand symbol.
|
|
14
|
+
*/
|
|
15
|
+
export function isThemeColor(value) {
|
|
16
|
+
return (typeof value === 'function' &&
|
|
17
|
+
value[THEME_COLOR] === true);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Bunti's named color palette (ANSI-256 codes). Any name here works as a
|
|
21
|
+
* color value: `fg('bunti-blue', text)`, `{ bgColor: 'midnight' }`.
|
|
22
|
+
*/
|
|
4
23
|
export const PALETTE = {
|
|
5
24
|
// Greyscale
|
|
6
25
|
slate: '235',
|
|
@@ -72,38 +91,173 @@ const NAME_TO_ANSI = {
|
|
|
72
91
|
gray: '244',
|
|
73
92
|
};
|
|
74
93
|
/**
|
|
75
|
-
* Parses a hex color string (#RRGGBB or #
|
|
94
|
+
* Parses a hex color string (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA) to an RGB
|
|
95
|
+
* object. Alpha channels are composited over `base` (defaults to black), so
|
|
96
|
+
* `#ffffff80` over black resolves to mid-gray.
|
|
76
97
|
*/
|
|
77
|
-
export function hexToRGB(hex) {
|
|
78
|
-
|
|
79
|
-
if (h.length === 3) {
|
|
98
|
+
export function hexToRGB(hex, base = { r: 0, g: 0, b: 0 }) {
|
|
99
|
+
let h = hex.replace('#', '');
|
|
100
|
+
if (h.length === 3 || h.length === 4) {
|
|
101
|
+
let expanded = '';
|
|
102
|
+
for (const c of h)
|
|
103
|
+
expanded += c + c;
|
|
104
|
+
h = expanded;
|
|
105
|
+
}
|
|
106
|
+
const r = parseInt(h.substring(0, 2), 16);
|
|
107
|
+
const g = parseInt(h.substring(2, 4), 16);
|
|
108
|
+
const b = parseInt(h.substring(4, 6), 16);
|
|
109
|
+
if (h.length === 8) {
|
|
110
|
+
const a = parseInt(h.substring(6, 8), 16) / 255;
|
|
80
111
|
return {
|
|
81
|
-
r:
|
|
82
|
-
g:
|
|
83
|
-
b:
|
|
112
|
+
r: Math.round(r * a + base.r * (1 - a)),
|
|
113
|
+
g: Math.round(g * a + base.g * (1 - a)),
|
|
114
|
+
b: Math.round(b * a + base.b * (1 - a)),
|
|
84
115
|
};
|
|
85
116
|
}
|
|
86
|
-
return {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
117
|
+
return { r, g, b };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Formats an RGB object as a #rrggbb hex string.
|
|
121
|
+
*/
|
|
122
|
+
export function rgbToHex(rgb) {
|
|
123
|
+
const h = (v) => Math.max(0, Math.min(255, Math.round(v)))
|
|
124
|
+
.toString(16)
|
|
125
|
+
.padStart(2, '0');
|
|
126
|
+
return `#${h(rgb.r)}${h(rgb.g)}${h(rgb.b)}`;
|
|
127
|
+
}
|
|
128
|
+
// Exact xterm 256-color model: 16 base colors + 6x6x6 cube + 24-step gray ramp.
|
|
129
|
+
const CUBE_LEVELS = [0, 95, 135, 175, 215, 255];
|
|
130
|
+
const BASE16 = [
|
|
131
|
+
{ r: 0, g: 0, b: 0 },
|
|
132
|
+
{ r: 128, g: 0, b: 0 },
|
|
133
|
+
{ r: 0, g: 128, b: 0 },
|
|
134
|
+
{ r: 128, g: 128, b: 0 },
|
|
135
|
+
{ r: 0, g: 0, b: 128 },
|
|
136
|
+
{ r: 128, g: 0, b: 128 },
|
|
137
|
+
{ r: 0, g: 128, b: 128 },
|
|
138
|
+
{ r: 192, g: 192, b: 192 },
|
|
139
|
+
{ r: 128, g: 128, b: 128 },
|
|
140
|
+
{ r: 255, g: 0, b: 0 },
|
|
141
|
+
{ r: 0, g: 255, b: 0 },
|
|
142
|
+
{ r: 255, g: 255, b: 0 },
|
|
143
|
+
{ r: 0, g: 0, b: 255 },
|
|
144
|
+
{ r: 255, g: 0, b: 255 },
|
|
145
|
+
{ r: 0, g: 255, b: 255 },
|
|
146
|
+
{ r: 255, g: 255, b: 255 },
|
|
147
|
+
];
|
|
148
|
+
/**
|
|
149
|
+
* Converts an ANSI-256 code to its exact xterm RGB value
|
|
150
|
+
* (16 base + 6x6x6 color cube + 24-step gray ramp).
|
|
151
|
+
*/
|
|
152
|
+
export function ansi256ToRGB(code) {
|
|
153
|
+
const c = Math.max(0, Math.min(255, Math.trunc(code)));
|
|
154
|
+
if (c < 16)
|
|
155
|
+
return { ...BASE16[c] };
|
|
156
|
+
if (c < 232) {
|
|
157
|
+
const n = c - 16;
|
|
158
|
+
return {
|
|
159
|
+
r: CUBE_LEVELS[Math.floor(n / 36)],
|
|
160
|
+
g: CUBE_LEVELS[Math.floor(n / 6) % 6],
|
|
161
|
+
b: CUBE_LEVELS[n % 6],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const v = 8 + (c - 232) * 10;
|
|
165
|
+
return { r: v, g: v, b: v };
|
|
166
|
+
}
|
|
167
|
+
function nearestCubeIndex(v) {
|
|
168
|
+
return v < 48 ? 0 : v < 115 ? 1 : Math.min(5, Math.floor((v - 35) / 40));
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Quantizes an RGB value to the nearest ANSI-256 code
|
|
172
|
+
* (best of the 6x6x6 cube vs the gray ramp).
|
|
173
|
+
*/
|
|
174
|
+
export function rgbTo256(rgb) {
|
|
175
|
+
const ri = nearestCubeIndex(rgb.r);
|
|
176
|
+
const gi = nearestCubeIndex(rgb.g);
|
|
177
|
+
const bi = nearestCubeIndex(rgb.b);
|
|
178
|
+
const cr = CUBE_LEVELS[ri];
|
|
179
|
+
const cg = CUBE_LEVELS[gi];
|
|
180
|
+
const cb = CUBE_LEVELS[bi];
|
|
181
|
+
const cubeDist = (cr - rgb.r) ** 2 + (cg - rgb.g) ** 2 + (cb - rgb.b) ** 2;
|
|
182
|
+
const avg = (rgb.r + rgb.g + rgb.b) / 3;
|
|
183
|
+
const grayIdx = Math.max(0, Math.min(23, Math.round((avg - 8) / 10)));
|
|
184
|
+
const gv = 8 + grayIdx * 10;
|
|
185
|
+
const grayDist = (gv - rgb.r) ** 2 + (gv - rgb.g) ** 2 + (gv - rgb.b) ** 2;
|
|
186
|
+
return grayDist < cubeDist ? 232 + grayIdx : 16 + 36 * ri + 6 * gi + bi;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Quantizes an RGB value to the nearest of the 16 base ANSI colors.
|
|
190
|
+
*/
|
|
191
|
+
export function rgbTo16(rgb) {
|
|
192
|
+
let best = 0;
|
|
193
|
+
let bestDist = Infinity;
|
|
194
|
+
for (let i = 0; i < 16; i++) {
|
|
195
|
+
const c = BASE16[i];
|
|
196
|
+
const dist = (c.r - rgb.r) ** 2 + (c.g - rgb.g) ** 2 + (c.b - rgb.b) ** 2;
|
|
197
|
+
if (dist < bestDist) {
|
|
198
|
+
bestDist = dist;
|
|
199
|
+
best = i;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return best;
|
|
203
|
+
}
|
|
204
|
+
function quantizeRGB(rgb, tier) {
|
|
205
|
+
if (tier === 'truecolor')
|
|
206
|
+
return `2;${rgb.r};${rgb.g};${rgb.b}`;
|
|
207
|
+
return tier === '256' ? rgbTo256(rgb) : rgbTo16(rgb);
|
|
208
|
+
}
|
|
209
|
+
// Dev diagnostics: unknown color names hint once each (buffered to exit).
|
|
210
|
+
// The Set keeps the per-cell hot path O(1) after the first sighting.
|
|
211
|
+
const reportedUnknownColors = new Set();
|
|
212
|
+
function reportUnknownColorName(name) {
|
|
213
|
+
if (reportedUnknownColors.has(name))
|
|
214
|
+
return;
|
|
215
|
+
reportedUnknownColors.add(name);
|
|
216
|
+
if (hintsSuppressed())
|
|
217
|
+
return;
|
|
218
|
+
const suggestion = nearestMatch(name, [
|
|
219
|
+
...Object.keys(PALETTE),
|
|
220
|
+
...Object.keys(NAME_TO_ANSI),
|
|
221
|
+
]);
|
|
222
|
+
recordHint(`unknown color name '${name}' passed through as a raw ANSI code` +
|
|
223
|
+
`${suggestion ? ` (did you mean '${suggestion}'?)` : ''}`);
|
|
91
224
|
}
|
|
92
225
|
/**
|
|
93
|
-
* Resolves a palette name, color code,
|
|
226
|
+
* Resolves a palette name, color code, RGB object, or ThemeColor to an ANSI
|
|
227
|
+
* color code, quantized to the active color tier. Returns undefined on the
|
|
228
|
+
* 'mono' tier (NO_COLOR), which suppresses color output entirely.
|
|
94
229
|
*/
|
|
95
230
|
export function resolveColor(color) {
|
|
96
|
-
|
|
97
|
-
|
|
231
|
+
const tier = colorTier();
|
|
232
|
+
if (tier === 'mono')
|
|
233
|
+
return undefined;
|
|
234
|
+
const value = isThemeColor(color)
|
|
235
|
+
? color.rgb
|
|
236
|
+
: color;
|
|
237
|
+
if (typeof value === 'object' && 'r' in value) {
|
|
238
|
+
return quantizeRGB(value, tier);
|
|
98
239
|
}
|
|
99
|
-
if (typeof
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
return `2;${rgb.r};${rgb.g};${rgb.b}`;
|
|
240
|
+
if (typeof value === 'string') {
|
|
241
|
+
if (value.startsWith('#')) {
|
|
242
|
+
return quantizeRGB(hexToRGB(value), tier);
|
|
103
243
|
}
|
|
104
|
-
|
|
244
|
+
const resolved = PALETTE[value] || NAME_TO_ANSI[value] || value;
|
|
245
|
+
// Unrecognized non-numeric names fall through as raw ANSI codes and
|
|
246
|
+
// render garbage — hint once with a nearest-name suggestion.
|
|
247
|
+
if (resolved === value && !/^\d+$/.test(value) && !value.startsWith('2;')) {
|
|
248
|
+
reportUnknownColorName(value);
|
|
249
|
+
}
|
|
250
|
+
if (tier === '16') {
|
|
251
|
+
const code = Number.parseInt(String(resolved), 10);
|
|
252
|
+
if (Number.isFinite(code) && code > 15) {
|
|
253
|
+
return rgbTo16(ansi256ToRGB(code));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return resolved;
|
|
105
257
|
}
|
|
106
|
-
|
|
258
|
+
if (tier === '16' && value > 15)
|
|
259
|
+
return rgbTo16(ansi256ToRGB(value));
|
|
260
|
+
return value;
|
|
107
261
|
}
|
|
108
262
|
/**
|
|
109
263
|
* Creates a multi-stop gradient (array of RGB objects) between multiple colors.
|
|
@@ -143,27 +297,61 @@ export function createGradient(arg1, arg2, arg3) {
|
|
|
143
297
|
return result;
|
|
144
298
|
}
|
|
145
299
|
/**
|
|
146
|
-
*
|
|
300
|
+
* Resolves any color value (name, hex, ANSI-256 code, RGB, ThemeColor) to an
|
|
301
|
+
* exact RGB object. Numeric codes use the exact xterm 256-color table.
|
|
147
302
|
*/
|
|
148
|
-
function resolveColorToRGB(color) {
|
|
149
|
-
if (
|
|
303
|
+
export function resolveColorToRGB(color) {
|
|
304
|
+
if (isThemeColor(color))
|
|
305
|
+
return color.rgb;
|
|
306
|
+
if (typeof color === 'object' && color !== null && 'r' in color) {
|
|
150
307
|
return color;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (typeof color === 'string'
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
308
|
+
}
|
|
309
|
+
if (typeof color === 'number')
|
|
310
|
+
return ansi256ToRGB(color);
|
|
311
|
+
if (typeof color === 'string') {
|
|
312
|
+
if (color.startsWith('#'))
|
|
313
|
+
return hexToRGB(color);
|
|
314
|
+
// Resolved truecolor code ('2;r;g;b') — cells store these after
|
|
315
|
+
// resolveColor(); dimRect and friends must round-trip them.
|
|
316
|
+
if (color.startsWith('2;')) {
|
|
317
|
+
const parts = color.split(';');
|
|
318
|
+
return {
|
|
319
|
+
r: Number(parts[1]) || 0,
|
|
320
|
+
g: Number(parts[2]) || 0,
|
|
321
|
+
b: Number(parts[3]) || 0,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
if (RGB_REGISTRY[color])
|
|
325
|
+
return RGB_REGISTRY[color];
|
|
326
|
+
const paletteValue = PALETTE[color] ?? NAME_TO_ANSI[color];
|
|
327
|
+
const code = Number.parseInt(paletteValue ?? color, 10);
|
|
328
|
+
if (Number.isFinite(code))
|
|
329
|
+
return ansi256ToRGB(code);
|
|
163
330
|
}
|
|
164
331
|
// Fallback
|
|
165
332
|
return { r: 128, g: 128, b: 128 };
|
|
166
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* WCAG 2.x relative luminance (0 = black, 1 = white) of any color value.
|
|
336
|
+
*/
|
|
337
|
+
export function relativeLuminance(color) {
|
|
338
|
+
const { r, g, b } = resolveColorToRGB(color);
|
|
339
|
+
const lin = (v) => {
|
|
340
|
+
const s = v / 255;
|
|
341
|
+
return s <= 0.04045 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;
|
|
342
|
+
};
|
|
343
|
+
return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Picks pure black or pure white text for maximum WCAG contrast against the
|
|
347
|
+
* given background color. (White wins below luminance ~0.179, the point where
|
|
348
|
+
* both contrast ratios are equal.)
|
|
349
|
+
*/
|
|
350
|
+
export function contrastText(bgColor) {
|
|
351
|
+
return relativeLuminance(bgColor) < 0.1791
|
|
352
|
+
? { r: 255, g: 255, b: 255 }
|
|
353
|
+
: { r: 0, g: 0, b: 0 };
|
|
354
|
+
}
|
|
167
355
|
/**
|
|
168
356
|
* Adjusts the brightness of a color.
|
|
169
357
|
*/
|
|
@@ -210,18 +398,29 @@ export function rgb(r, g, b) {
|
|
|
210
398
|
return { r, g, b };
|
|
211
399
|
}
|
|
212
400
|
/**
|
|
213
|
-
*
|
|
401
|
+
* Wraps text in a foreground-color ANSI sequence (any color value:
|
|
402
|
+
* palette name, hex, ANSI-256 code, RGB, ThemeColor). On the 'mono' tier
|
|
403
|
+
* the text is returned unstyled.
|
|
404
|
+
* @example fg('#3bbce1', 'hello') // truecolor cyan text
|
|
214
405
|
*/
|
|
215
406
|
export function fg(color, text) {
|
|
216
407
|
const code = resolveColor(color);
|
|
408
|
+
if (code === undefined)
|
|
409
|
+
return text;
|
|
217
410
|
const codeStr = String(code);
|
|
218
|
-
const prefix =
|
|
411
|
+
const prefix = codeStr.startsWith('2;') ? '38' : '38;5';
|
|
219
412
|
return `\x1b[${prefix};${codeStr}m${text}\x1b[0m`;
|
|
220
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Wraps text in a background-color ANSI sequence (any color value). On the
|
|
416
|
+
* 'mono' tier the text is returned unstyled.
|
|
417
|
+
*/
|
|
221
418
|
export function bg(color, text) {
|
|
222
419
|
const code = resolveColor(color);
|
|
420
|
+
if (code === undefined)
|
|
421
|
+
return text;
|
|
223
422
|
const codeStr = String(code);
|
|
224
|
-
const prefix =
|
|
423
|
+
const prefix = codeStr.startsWith('2;') ? '48' : '48;5';
|
|
225
424
|
return `\x1b[${prefix};${codeStr}m${text}\x1b[0m`;
|
|
226
425
|
}
|
|
227
426
|
//# sourceMappingURL=colors.js.map
|
package/dist/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsB1E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,CACL,OAAO,KAAK,KAAK,UAAU;QAC1B,KAA4C,CAAC,WAAW,CAAC,KAAK,IAAI,CACpE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,YAAY;IACZ,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IAEV,qBAAqB;IACrB,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IAEb,WAAW;IACX,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IAEV,UAAU;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;CACH,CAAC;AAEX,MAAM,YAAY,GAAwB;IACxC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAC3B,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IAC7B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;IAC/B,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;IACjC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IAC9B,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IAClC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAC/B,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACjC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAChC,YAAY;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IAC9B,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAClC,qBAAqB;IACrB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IACjC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IAC9B,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAC7B,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACvC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACpC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IAChC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;IAChC,WAAW;IACX,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IAC/B,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IACjC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAC9B,UAAU;IACV,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAChC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CACjC,CAAC;AAEF,kDAAkD;AAClD,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,KAAK;CACZ,CAAC;AAIF;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACpE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,CAAC;YAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,GAAG,QAAQ,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAChD,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC/B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,gFAAgF;AAChF,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEzD,MAAM,MAAM,GAAmB;IAC7B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACpB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACtB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IACtB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IACxB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACtB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IACtB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;IACxB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO;YACL,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAE;YACnC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE;YACtC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE;SACvB,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3E,OAAO,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAQ;IAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAClB,GAAQ,EACR,IAAgC;IAEhC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,0EAA0E;AAC1E,qEAAqE;AACrE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEhD,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IAC5C,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,eAAe,EAAE;QAAE,OAAO;IAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE;QACpC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;KAC7B,CAAC,CAAC;IACH,UAAU,CACR,uBAAuB,IAAI,qCAAqC;QAC9D,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAgC;IAEhC,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAEtC,MAAM,KAAK,GAA0B,YAAY,CAAC,KAAK,CAAC;QACtD,CAAC,CAAC,KAAK,CAAC,GAAG;QACX,CAAC,CAAE,KAA+B,CAAC;IAErC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAC9C,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAI,OAAe,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACzE,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;gBACvC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA+B,EAC/B,IAA0B,EAC1B,IAAa;IAEb,IAAI,MAAM,GAAiB,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC;QACd,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,GAAG,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;QAC7B,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,EAClC,YAAY,GAAG,CAAC,CACjB,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC;YACV,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC,GAAG,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC,GAAG,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC,GAAG,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAChE,OAAO,KAAY,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,gEAAgE;QAChE,4DAA4D;QAC5D,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,YAAY,GACf,OAAkC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,WAAW;IACX,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;IACjE,CAAC,CAAC;IACF,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAmB;IAC9C,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,MAAM;QACxC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAU,EAAE,MAAc;IACzD,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;IAChC,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,IAAgB,EAAE,EAAc,EAAE,QAAgB;IACrE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7C,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAU,EAAE,SAAiB,EAAE;IACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAU,EAAE,SAAiB,EAAE;IACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACjD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,EAAE,CAAC,KAAU,EAAE,IAAY;IACzC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,QAAQ,MAAM,IAAI,OAAO,IAAI,IAAI,SAAS,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,EAAE,CAAC,KAAU,EAAE,IAAY;IACzC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,QAAQ,MAAM,IAAI,OAAO,IAAI,IAAI,SAAS,CAAC;AACpD,CAAC"}
|
package/dist/components/Box.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { BuntiContext, DSLBoxOptions } from '../dsl';
|
|
2
|
+
/** Props for Box — identical to ctx.box() options. */
|
|
2
3
|
export interface BoxProps extends DSLBoxOptions {
|
|
3
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Component-style alias for ctx.box(): draws a styled box and renders the
|
|
7
|
+
* callback inside its padded interior. Returns the rendered string.
|
|
8
|
+
* @example Box(ctx, { width: 40, border: 'rounded' }, (s) => s.text('hi'));
|
|
9
|
+
*/
|
|
4
10
|
export declare function Box(ctx: BuntiContext, props: BoxProps, callback: (sub: BuntiContext) => void): string;
|
|
5
11
|
//# sourceMappingURL=Box.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../src/components/Box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE1D,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG;AAElD,wBAAgB,GAAG,CACjB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,UAGtC"}
|
|
1
|
+
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../src/components/Box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE1D,sDAAsD;AACtD,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG;AAElD;;;;GAIG;AACH,wBAAgB,GAAG,CACjB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,UAGtC"}
|
package/dist/components/Box.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component-style alias for ctx.box(): draws a styled box and renders the
|
|
3
|
+
* callback inside its padded interior. Returns the rendered string.
|
|
4
|
+
* @example Box(ctx, { width: 40, border: 'rounded' }, (s) => s.text('hi'));
|
|
5
|
+
*/
|
|
1
6
|
export function Box(ctx, props, callback) {
|
|
2
7
|
return ctx.box(props, callback);
|
|
3
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,UAAU,GAAG,CACjB,GAAiB,EACjB,KAAe,EACf,QAAqC;IAErC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import type { BuntiContext, DSLBoxOptions } from '../dsl';
|
|
2
|
+
/** Props for Button. */
|
|
2
3
|
export interface ButtonProps extends DSLBoxOptions {
|
|
4
|
+
/** Stable id: keys the hitbox, Tab-focus slot, and hover state. */
|
|
3
5
|
id: string;
|
|
6
|
+
/** Button text. */
|
|
4
7
|
label: string;
|
|
8
|
+
/** Glyph rendered before the label (use ctx.icon(name)). */
|
|
5
9
|
icon?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Visual style, mapped to theme tokens: 'primary' = filled pill,
|
|
12
|
+
* 'danger' = filled red, 'ghost' = borderless text, default = outlined.
|
|
13
|
+
*/
|
|
6
14
|
variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
|
|
15
|
+
/** Fires once per activation (mouse click release, Enter, or Space). */
|
|
7
16
|
onClick?: () => void;
|
|
8
17
|
}
|
|
9
18
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
19
|
+
* Themed push button: Tab-focusable, hover/press styled from ctx.theme
|
|
20
|
+
* tokens, activated by click, Enter, or Space (onClick fires once).
|
|
21
|
+
* @example Button(ctx, { id: 'go', label: 'Deploy', variant: 'primary', onClick: deploy });
|
|
12
22
|
*/
|
|
13
23
|
export declare function Button(ctx: BuntiContext, props: ButtonProps): string;
|
|
14
24
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAO1D,wBAAwB;AACxB,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,UAoG3D"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { adjustBrightness } from '../colors';
|
|
1
|
+
import { adjustBrightness, contrastText } from '../colors';
|
|
2
2
|
import { indentBlock } from '../utils';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Themed push button: Tab-focusable, hover/press styled from ctx.theme
|
|
5
|
+
* tokens, activated by click, Enter, or Space (onClick fires once).
|
|
6
|
+
* @example Button(ctx, { id: 'go', label: 'Deploy', variant: 'primary', onClick: deploy });
|
|
6
7
|
*/
|
|
7
8
|
export function Button(ctx, props) {
|
|
8
9
|
const { box, color, focusable, state, hitbox, resolveLocalRect } = ctx;
|
|
@@ -31,35 +32,45 @@ export function Button(ctx, props) {
|
|
|
31
32
|
});
|
|
32
33
|
const isHovered = interaction.hovered;
|
|
33
34
|
const isActive = isSelected || isHovered;
|
|
34
|
-
// 3. Resolve Theme & State
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
// 3. Resolve Theme & State — every color derives from ctx.theme tokens so
|
|
36
|
+
// a live theme swap restyles the button. Hover/pressed shifts are
|
|
37
|
+
// mode-aware: brighten on dark themes, darken on light themes.
|
|
38
|
+
const theme = ctx.theme;
|
|
39
|
+
const shiftDir = theme.mode === 'dark' ? 1 : -1;
|
|
40
|
+
const hover = (base) => adjustBrightness(base, 15 * shiftDir);
|
|
41
|
+
const press = (base) => adjustBrightness(base, 30 * shiftDir);
|
|
42
|
+
let bg = theme.surface;
|
|
43
|
+
let fg = theme.foreground;
|
|
44
|
+
let borderCol = theme.border;
|
|
38
45
|
if (props.variant === 'primary') {
|
|
39
|
-
bg = isActive ?
|
|
40
|
-
|
|
46
|
+
bg = isActive ? hover(theme.primary) : theme.primary;
|
|
47
|
+
if (interaction.pressed)
|
|
48
|
+
bg = press(theme.primary);
|
|
49
|
+
fg = theme.onPrimary;
|
|
41
50
|
borderCol = bg;
|
|
42
51
|
}
|
|
43
52
|
else if (props.variant === 'danger') {
|
|
44
|
-
bg =
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
bg = isActive ? hover(theme.danger) : theme.danger;
|
|
54
|
+
if (interaction.pressed)
|
|
55
|
+
bg = press(theme.danger);
|
|
56
|
+
fg = contrastText(bg);
|
|
57
|
+
borderCol = bg;
|
|
47
58
|
}
|
|
48
59
|
else if (isGhost) {
|
|
49
60
|
bg = undefined;
|
|
50
|
-
fg = isActive ?
|
|
51
|
-
|
|
61
|
+
fg = isActive ? hover(theme.foreground) : theme.foreground;
|
|
62
|
+
}
|
|
63
|
+
else if (isActive) {
|
|
64
|
+
// Default variant: focus ring + mode-aware surface shift.
|
|
65
|
+
borderCol = theme.focus;
|
|
66
|
+
bg = interaction.pressed ? press(theme.surface) : hover(theme.surface);
|
|
52
67
|
}
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
borderCol = 'black';
|
|
56
|
-
if (interaction.pressed) {
|
|
57
|
-
bg = adjustBrightness(bg, -5); // Pressed state
|
|
58
|
-
}
|
|
59
|
-
}
|
|
68
|
+
if (isSelected && props.variant !== 'primary' && !isGhost) {
|
|
69
|
+
borderCol = theme.focus; // Keyboard focus ring
|
|
60
70
|
}
|
|
61
|
-
// 4. Handle Interaction
|
|
62
|
-
|
|
71
|
+
// 4. Handle Interaction — clicks fire once, on mouse release at the
|
|
72
|
+
// press origin (interaction.pressed would repeat every held frame).
|
|
73
|
+
const wasClicked = interaction.clicked;
|
|
63
74
|
const wasActivated = isSelected && (state.lastKey === 'enter' || state.lastKey === ' ');
|
|
64
75
|
if (wasClicked || wasActivated) {
|
|
65
76
|
if (props.onClick)
|
|
@@ -76,7 +87,7 @@ export function Button(ctx, props) {
|
|
|
76
87
|
height: area.height,
|
|
77
88
|
border: filled || isGhost ? 'none' : props.border || 'rounded',
|
|
78
89
|
borderColor: borderCol,
|
|
79
|
-
bgColor:
|
|
90
|
+
bgColor: isPill || isGhost ? undefined : bg,
|
|
80
91
|
align: props.align || 'center',
|
|
81
92
|
valign: props.valign || 'middle',
|
|
82
93
|
padding: props.padding || [0, isGhost ? 0 : 1],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
import type { BuntiContext, DSLBoxOptions } from '../dsl';
|
|
2
|
+
/** Card visual variants, mapped to theme tokens. */
|
|
3
|
+
export type CardVariant = 'default' | 'accent' | 'danger';
|
|
4
|
+
/** Props for Card. */
|
|
2
5
|
export interface CardProps extends DSLBoxOptions {
|
|
6
|
+
/** Uppercased header line rendered above the content. */
|
|
3
7
|
title?: string;
|
|
4
|
-
theme
|
|
8
|
+
/** Visual variant, mapped to theme tokens (border + title color). */
|
|
9
|
+
variant?: CardVariant;
|
|
10
|
+
/** @deprecated Use `variant` — kept as an alias to avoid breaking callers. */
|
|
11
|
+
theme?: CardVariant;
|
|
12
|
+
/**
|
|
13
|
+
* Registers a hitbox and enables the hover affordance: border lifts to
|
|
14
|
+
* theme.focus and the background shifts one step (mode-aware). Without an
|
|
15
|
+
* id the card has no hitbox and behaves exactly as before.
|
|
16
|
+
*/
|
|
17
|
+
id?: string;
|
|
5
18
|
}
|
|
6
19
|
/**
|
|
7
20
|
* Tactical Card Component
|
|
8
|
-
* A structural container with an integrated header.
|
|
21
|
+
* A structural container with an integrated header. Colors derive from
|
|
22
|
+
* ctx.theme tokens:
|
|
23
|
+
* - default: border `theme.border`, title `theme.muted`
|
|
24
|
+
* - accent: border `theme.border`, title `theme.accent`
|
|
25
|
+
* - danger: border `theme.danger`, title `theme.danger`
|
|
26
|
+
*
|
|
27
|
+
* With an `id`, hovering lifts the border to `theme.focus` and shifts the
|
|
28
|
+
* background one step. Hover styling reads the hitbox registered on the
|
|
29
|
+
* previous frame (immediate-mode: geometry is only exact after a render),
|
|
30
|
+
* which is invisible at interactive frame rates.
|
|
9
31
|
*/
|
|
10
32
|
export declare function Card(ctx: BuntiContext, props: CardProps, callback: (sub: BuntiContext) => void): string;
|
|
11
33
|
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAI1D,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1D,sBAAsB;AACtB,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAClB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,UAyEtC"}
|