@frame-kit/utils 0.2.9 → 0.2.11

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 0.2.10 (2026-09-14)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **ui-ng:** reactive i18n service and framework-agnostic core ([#91](https://github.com/frame-kit/packages/pull/91), [#81](https://github.com/frame-kit/packages/issues/81), [#80](https://github.com/frame-kit/packages/issues/80), [#77](https://github.com/frame-kit/packages/issues/77), [#79](https://github.com/frame-kit/packages/issues/79), [#83](https://github.com/frame-kit/packages/issues/83), [#85](https://github.com/frame-kit/packages/issues/85), [#86](https://github.com/frame-kit/packages/issues/86), [#88](https://github.com/frame-kit/packages/issues/88), [#90](https://github.com/frame-kit/packages/issues/90))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Aaron Balthaser
10
+ - abalthaser
11
+ - Claude Opus 5
12
+
13
+ ## 0.2.9 (2026-09-13)
14
+
15
+ This was a version bump only for utils to align it with other projects, there were no code changes.
16
+
1
17
  ## 0.2.8 (2026-09-13)
2
18
 
3
19
  This was a version bump only for utils to align it with other projects, there were no code changes.
package/README.md CHANGED
@@ -1,7 +1,13 @@
1
1
  # @frame-kit/utils
2
2
 
3
- Framework-agnostic **color** and **date** utilities for FrameKit — no Angular, no framework
4
- dependency. Pure ESM, fully tree-shakeable.
3
+ Framework-agnostic **color**, **date** and **i18n** utilities for FrameKit — no Angular, no
4
+ framework dependency, fully tree-shakeable.
5
+
6
+ Ships **both ESM and CommonJS**. That matters because these run outside the browser as well as
7
+ in it: the i18n engine renders server-side auth pages in a NestJS app, and a CommonJS project —
8
+ most notably one testing through ts-jest — has to be able to `require` this package without
9
+ adding `transformIgnorePatterns` to work around it. `import` gets the ESM build, `require` gets
10
+ the CommonJS one, and the build fails if either stops loading.
5
11
 
6
12
  ## Install
7
13
 
package/cjs/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/color/color.js"), exports);
5
+ tslib_1.__exportStar(require("./lib/color/color.types.js"), exports);
6
+ tslib_1.__exportStar(require("./lib/date/date.js"), exports);
7
+ tslib_1.__exportStar(require("./lib/date/date.types.js"), exports);
8
+ tslib_1.__exportStar(require("./lib/i18n/i18n.js"), exports);
9
+ tslib_1.__exportStar(require("./lib/i18n/i18n.locale.js"), exports);
10
+ tslib_1.__exportStar(require("./lib/i18n/i18n.types.js"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/utils/src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,qEAA2C;AAC3C,6DAAmC;AACnC,mEAAyC;AACzC,6DAAmC;AACnC,oEAA0C;AAC1C,mEAAyC"}
@@ -0,0 +1,393 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Color = void 0;
4
+ /**
5
+ * Lightweight, dependency-free color utility class.
6
+ *
7
+ * Supports parsing hex, rgb, hsl, and object formats.
8
+ * All manipulation methods return new instances (immutable).
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const base = new Color("#3498db");
13
+ * const darker = base.darken(0.15).toHex();
14
+ * const palette = base.palette();
15
+ * const shades = base.shades(7);
16
+ * ```
17
+ */
18
+ class Color {
19
+ constructor(input) {
20
+ var _c;
21
+ const parsed = Color.parse(input);
22
+ this._r = parsed.r;
23
+ this._g = parsed.g;
24
+ this._b = parsed.b;
25
+ this._a = (_c = parsed.a) !== null && _c !== void 0 ? _c : 1;
26
+ }
27
+ // ---------------------------------------------------------------------------
28
+ // Static factory
29
+ // ---------------------------------------------------------------------------
30
+ static random() {
31
+ return new Color({
32
+ r: Math.floor(Math.random() * 256),
33
+ g: Math.floor(Math.random() * 256),
34
+ b: Math.floor(Math.random() * 256),
35
+ });
36
+ }
37
+ static mix(color1, color2, amount = 0.5) {
38
+ const c1 = color1 instanceof Color ? color1 : new Color(color1);
39
+ const c2 = color2 instanceof Color ? color2 : new Color(color2);
40
+ return c1.mix(c2, amount);
41
+ }
42
+ static scale(colors, steps) {
43
+ if (colors.length < 2 || steps < 2) {
44
+ return colors.map((c) => (c instanceof Color ? c : new Color(c)).toHex());
45
+ }
46
+ const result = [];
47
+ const segments = colors.length - 1;
48
+ const stepsPerSegment = Math.max(1, Math.floor((steps - 1) / segments));
49
+ for (let i = 0; i < segments; i++) {
50
+ const c1 = colors[i] instanceof Color
51
+ ? colors[i]
52
+ : new Color(colors[i]);
53
+ const c2 = colors[i + 1] instanceof Color
54
+ ? colors[i + 1]
55
+ : new Color(colors[i + 1]);
56
+ const count = i === segments - 1 ? steps - result.length : stepsPerSegment;
57
+ for (let j = 0; j < count; j++) {
58
+ const t = count === 1 ? 0 : j / (count - 1);
59
+ result.push(c1.mix(c2, t).toHex());
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Parsing
66
+ // ---------------------------------------------------------------------------
67
+ static parse(input) {
68
+ if (typeof input === 'string') {
69
+ return Color.parseString(input);
70
+ }
71
+ if ('r' in input) {
72
+ return {
73
+ r: Color.clamp(input.r, 0, 255),
74
+ g: Color.clamp(input.g, 0, 255),
75
+ b: Color.clamp(input.b, 0, 255),
76
+ a: input.a != null ? Color.clamp(input.a, 0, 1) : 1,
77
+ };
78
+ }
79
+ if ('h' in input) {
80
+ const rgb = Color.hslToRgb(input.h, input.s, input.l);
81
+ return Object.assign(Object.assign({}, rgb), { a: input.a != null ? Color.clamp(input.a, 0, 1) : 1 });
82
+ }
83
+ throw new Error(`Invalid color input: ${JSON.stringify(input)}`);
84
+ }
85
+ static parseString(str) {
86
+ const s = str.trim();
87
+ // Hex
88
+ if (s.startsWith('#')) {
89
+ return Color.parseHex(s);
90
+ }
91
+ // RGB/RGBA
92
+ const rgbMatch = s.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);
93
+ if (rgbMatch) {
94
+ return {
95
+ r: Color.clamp(parseInt(rgbMatch[1], 10), 0, 255),
96
+ g: Color.clamp(parseInt(rgbMatch[2], 10), 0, 255),
97
+ b: Color.clamp(parseInt(rgbMatch[3], 10), 0, 255),
98
+ a: rgbMatch[4] != null ? Color.clamp(parseFloat(rgbMatch[4]), 0, 1) : 1,
99
+ };
100
+ }
101
+ // HSL/HSLA
102
+ const hslMatch = s.match(/hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+))?\s*\)/);
103
+ if (hslMatch) {
104
+ const h = parseFloat(hslMatch[1]);
105
+ const sat = parseFloat(hslMatch[2]) / 100;
106
+ const l = parseFloat(hslMatch[3]) / 100;
107
+ const a = hslMatch[4] != null ? Color.clamp(parseFloat(hslMatch[4]), 0, 1) : 1;
108
+ const rgb = Color.hslToRgb(h, sat, l);
109
+ return Object.assign(Object.assign({}, rgb), { a });
110
+ }
111
+ throw new Error(`Cannot parse color string: "${str}"`);
112
+ }
113
+ static parseHex(hex) {
114
+ let h = hex.replace('#', '');
115
+ if (h.length === 3) {
116
+ h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
117
+ }
118
+ if (h.length === 8) {
119
+ return {
120
+ r: parseInt(h.substring(0, 2), 16),
121
+ g: parseInt(h.substring(2, 4), 16),
122
+ b: parseInt(h.substring(4, 6), 16),
123
+ a: parseInt(h.substring(6, 8), 16) / 255,
124
+ };
125
+ }
126
+ if (h.length !== 6) {
127
+ throw new Error(`Invalid hex color: "${hex}"`);
128
+ }
129
+ return {
130
+ r: parseInt(h.substring(0, 2), 16),
131
+ g: parseInt(h.substring(2, 4), 16),
132
+ b: parseInt(h.substring(4, 6), 16),
133
+ a: 1,
134
+ };
135
+ }
136
+ // ---------------------------------------------------------------------------
137
+ // Conversion outputs
138
+ // ---------------------------------------------------------------------------
139
+ toHex() {
140
+ const r = Color.toHexPart(this._r);
141
+ const g = Color.toHexPart(this._g);
142
+ const b = Color.toHexPart(this._b);
143
+ return `#${r}${g}${b}`;
144
+ }
145
+ toRgb() {
146
+ return { r: this._r, g: this._g, b: this._b, a: this._a };
147
+ }
148
+ toRgbString() {
149
+ if (this._a < 1) {
150
+ return `rgba(${this._r}, ${this._g}, ${this._b}, ${this._a})`;
151
+ }
152
+ return `rgb(${this._r}, ${this._g}, ${this._b})`;
153
+ }
154
+ toHsl() {
155
+ const hsl = Color.rgbToHsl(this._r, this._g, this._b);
156
+ return Object.assign(Object.assign({}, hsl), { a: this._a });
157
+ }
158
+ toHslString() {
159
+ const hsl = this.toHsl();
160
+ const h = Math.round(hsl.h);
161
+ const s = Math.round(hsl.s * 100);
162
+ const l = Math.round(hsl.l * 100);
163
+ if (this._a < 1) {
164
+ return `hsla(${h}, ${s}%, ${l}%, ${this._a})`;
165
+ }
166
+ return `hsl(${h}, ${s}%, ${l}%)`;
167
+ }
168
+ // ---------------------------------------------------------------------------
169
+ // Manipulation (immutable — returns new Color)
170
+ // ---------------------------------------------------------------------------
171
+ lighten(amount) {
172
+ const hsl = this.toHsl();
173
+ return Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + amount, 0, 1), hsl.a);
174
+ }
175
+ darken(amount) {
176
+ const hsl = this.toHsl();
177
+ return Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l - amount, 0, 1), hsl.a);
178
+ }
179
+ saturate(amount) {
180
+ const hsl = this.toHsl();
181
+ return Color.fromHsl(hsl.h, Color.clamp(hsl.s + amount, 0, 1), hsl.l, hsl.a);
182
+ }
183
+ desaturate(amount) {
184
+ const hsl = this.toHsl();
185
+ return Color.fromHsl(hsl.h, Color.clamp(hsl.s - amount, 0, 1), hsl.l, hsl.a);
186
+ }
187
+ alpha(value) {
188
+ return new Color({
189
+ r: this._r,
190
+ g: this._g,
191
+ b: this._b,
192
+ a: Color.clamp(value, 0, 1),
193
+ });
194
+ }
195
+ // ---------------------------------------------------------------------------
196
+ // Shade system
197
+ // ---------------------------------------------------------------------------
198
+ /**
199
+ * Step-based shading.
200
+ * Positive steps = lighter, negative steps = darker.
201
+ */
202
+ shade(steps, stepSize = 0.1) {
203
+ const amount = steps * stepSize;
204
+ if (amount > 0) {
205
+ return this.lighten(amount);
206
+ }
207
+ return this.darken(Math.abs(amount));
208
+ }
209
+ /**
210
+ * Generate an array of shades — lighter on one end, darker on the other.
211
+ * The original color sits in the middle.
212
+ */
213
+ shades(count) {
214
+ if (count <= 0) {
215
+ return [];
216
+ }
217
+ if (count === 1) {
218
+ return [this.toHex()];
219
+ }
220
+ const result = [];
221
+ const half = Math.floor(count / 2);
222
+ for (let i = half; i > 0; i--) {
223
+ result.push(this.lighten(i * 0.08).toHex());
224
+ }
225
+ result.push(this.toHex());
226
+ for (let i = 1; i <= count - half - 1; i++) {
227
+ result.push(this.darken(i * 0.08).toHex());
228
+ }
229
+ return result;
230
+ }
231
+ /**
232
+ * Generate a Tailwind-style 10-step palette.
233
+ * 50 = lightest, 900 = darkest, 500 = base color.
234
+ */
235
+ palette() {
236
+ const hsl = this.toHsl();
237
+ return {
238
+ 50: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + 0.4, 0, 0.97), hsl.a).toHex(),
239
+ 100: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + 0.34, 0, 0.95), hsl.a).toHex(),
240
+ 200: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + 0.26, 0, 0.9), hsl.a).toHex(),
241
+ 300: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + 0.18, 0, 0.85), hsl.a).toHex(),
242
+ 400: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l + 0.09, 0, 0.8), hsl.a).toHex(),
243
+ 500: this.toHex(),
244
+ 600: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l - 0.08, 0.05, 1), hsl.a).toHex(),
245
+ 700: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l - 0.16, 0.05, 1), hsl.a).toHex(),
246
+ 800: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l - 0.24, 0.05, 1), hsl.a).toHex(),
247
+ 900: Color.fromHsl(hsl.h, hsl.s, Color.clamp(hsl.l - 0.32, 0.05, 1), hsl.a).toHex(),
248
+ };
249
+ }
250
+ // ---------------------------------------------------------------------------
251
+ // Mixing & blending
252
+ // ---------------------------------------------------------------------------
253
+ mix(other, amount = 0.5) {
254
+ const c2 = other instanceof Color ? other : new Color(other);
255
+ const t = Color.clamp(amount, 0, 1);
256
+ return new Color({
257
+ r: Math.round(this._r + (c2._r - this._r) * t),
258
+ g: Math.round(this._g + (c2._g - this._g) * t),
259
+ b: Math.round(this._b + (c2._b - this._b) * t),
260
+ a: this._a + (c2._a - this._a) * t,
261
+ });
262
+ }
263
+ // ---------------------------------------------------------------------------
264
+ // Analysis
265
+ // ---------------------------------------------------------------------------
266
+ /**
267
+ * Relative luminance (WCAG).
268
+ * Returns 0 (darkest) to 1 (lightest).
269
+ */
270
+ luminance() {
271
+ const rLin = Color.linearize(this._r / 255);
272
+ const gLin = Color.linearize(this._g / 255);
273
+ const bLin = Color.linearize(this._b / 255);
274
+ return 0.2126 * rLin + 0.7152 * gLin + 0.0722 * bLin;
275
+ }
276
+ isLight() {
277
+ return this.luminance() > 0.5;
278
+ }
279
+ isDark() {
280
+ return !this.isLight();
281
+ }
282
+ // ---------------------------------------------------------------------------
283
+ // Accessibility
284
+ // ---------------------------------------------------------------------------
285
+ /**
286
+ * WCAG contrast ratio between two colors.
287
+ * Returns a value between 1 and 21.
288
+ */
289
+ contrast(other) {
290
+ const c2 = other instanceof Color ? other : new Color(other);
291
+ const l1 = this.luminance();
292
+ const l2 = c2.luminance();
293
+ const lighter = Math.max(l1, l2);
294
+ const darker = Math.min(l1, l2);
295
+ return (lighter + 0.05) / (darker + 0.05);
296
+ }
297
+ /**
298
+ * Check if text is readable against a background.
299
+ * Default threshold is WCAG AA (4.5:1).
300
+ */
301
+ isReadable(other, threshold = 4.5) {
302
+ return this.contrast(other) >= threshold;
303
+ }
304
+ // ---------------------------------------------------------------------------
305
+ // Internal helpers
306
+ // ---------------------------------------------------------------------------
307
+ static fromHsl(h, s, l, a = 1) {
308
+ const rgb = Color.hslToRgb(h, s, l);
309
+ return new Color(Object.assign(Object.assign({}, rgb), { a }));
310
+ }
311
+ static hslToRgb(h, s, l) {
312
+ const hNorm = ((h % 360) + 360) % 360;
313
+ const c = (1 - Math.abs(2 * l - 1)) * s;
314
+ const x = c * (1 - Math.abs(((hNorm / 60) % 2) - 1));
315
+ const m = l - c / 2;
316
+ let r = 0;
317
+ let g = 0;
318
+ let b = 0;
319
+ if (hNorm < 60) {
320
+ r = c;
321
+ g = x;
322
+ b = 0;
323
+ }
324
+ else if (hNorm < 120) {
325
+ r = x;
326
+ g = c;
327
+ b = 0;
328
+ }
329
+ else if (hNorm < 180) {
330
+ r = 0;
331
+ g = c;
332
+ b = x;
333
+ }
334
+ else if (hNorm < 240) {
335
+ r = 0;
336
+ g = x;
337
+ b = c;
338
+ }
339
+ else if (hNorm < 300) {
340
+ r = x;
341
+ g = 0;
342
+ b = c;
343
+ }
344
+ else {
345
+ r = c;
346
+ g = 0;
347
+ b = x;
348
+ }
349
+ return {
350
+ r: Math.round((r + m) * 255),
351
+ g: Math.round((g + m) * 255),
352
+ b: Math.round((b + m) * 255),
353
+ };
354
+ }
355
+ static rgbToHsl(r, g, b) {
356
+ const rNorm = r / 255;
357
+ const gNorm = g / 255;
358
+ const bNorm = b / 255;
359
+ const max = Math.max(rNorm, gNorm, bNorm);
360
+ const min = Math.min(rNorm, gNorm, bNorm);
361
+ const delta = max - min;
362
+ let h = 0;
363
+ let s = 0;
364
+ const l = (max + min) / 2;
365
+ if (delta !== 0) {
366
+ s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);
367
+ if (max === rNorm) {
368
+ h = ((gNorm - bNorm) / delta + (gNorm < bNorm ? 6 : 0)) * 60;
369
+ }
370
+ else if (max === gNorm) {
371
+ h = ((bNorm - rNorm) / delta + 2) * 60;
372
+ }
373
+ else {
374
+ h = ((rNorm - gNorm) / delta + 4) * 60;
375
+ }
376
+ }
377
+ return { h, s, l };
378
+ }
379
+ static linearize(channel) {
380
+ return channel <= 0.03928
381
+ ? channel / 12.92
382
+ : Math.pow((channel + 0.055) / 1.055, 2.4);
383
+ }
384
+ static clamp(value, min, max) {
385
+ return Math.min(max, Math.max(min, value));
386
+ }
387
+ static toHexPart(n) {
388
+ const hex = Math.round(Color.clamp(n, 0, 255)).toString(16);
389
+ return hex.length === 1 ? `0${hex}` : hex;
390
+ }
391
+ }
392
+ exports.Color = Color;
393
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../../../packages/utils/src/lib/color/color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=color.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.types.js","sourceRoot":"","sources":["../../../../../../packages/utils/src/lib/color/color.types.ts"],"names":[],"mappings":""}