@flyingrobots/bijou 0.9.0 → 1.0.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/dist/adapters/test/assertions.d.ts +51 -0
- package/dist/adapters/test/assertions.d.ts.map +1 -0
- package/dist/adapters/test/assertions.js +67 -0
- package/dist/adapters/test/assertions.js.map +1 -0
- package/dist/adapters/test/audit-style.d.ts +28 -7
- package/dist/adapters/test/audit-style.d.ts.map +1 -1
- package/dist/adapters/test/audit-style.js +61 -4
- package/dist/adapters/test/audit-style.js.map +1 -1
- package/dist/adapters/test/index.d.ts +36 -1
- package/dist/adapters/test/index.d.ts.map +1 -1
- package/dist/adapters/test/index.js +12 -1
- package/dist/adapters/test/index.js.map +1 -1
- package/dist/adapters/test/io.d.ts +27 -0
- package/dist/adapters/test/io.d.ts.map +1 -1
- package/dist/adapters/test/io.js +56 -0
- package/dist/adapters/test/io.js.map +1 -1
- package/dist/adapters/test/runtime.d.ts +17 -0
- package/dist/adapters/test/runtime.d.ts.map +1 -1
- package/dist/adapters/test/runtime.js +14 -0
- package/dist/adapters/test/runtime.js.map +1 -1
- package/dist/adapters/test/style.d.ts +9 -0
- package/dist/adapters/test/style.d.ts.map +1 -1
- package/dist/adapters/test/style.js +54 -0
- package/dist/adapters/test/style.js.map +1 -1
- package/dist/context.d.ts +21 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +21 -0
- package/dist/context.js.map +1 -1
- package/dist/core/bg-fill.d.ts +32 -0
- package/dist/core/bg-fill.d.ts.map +1 -0
- package/dist/core/bg-fill.js +42 -0
- package/dist/core/bg-fill.js.map +1 -0
- package/dist/core/components/accordion.d.ts +20 -0
- package/dist/core/components/accordion.d.ts.map +1 -1
- package/dist/core/components/accordion.js +13 -6
- package/dist/core/components/accordion.js.map +1 -1
- package/dist/core/components/alert.d.ts +16 -0
- package/dist/core/components/alert.d.ts.map +1 -1
- package/dist/core/components/alert.js +17 -6
- package/dist/core/components/alert.js.map +1 -1
- package/dist/core/components/badge.d.ts +18 -0
- package/dist/core/components/badge.d.ts.map +1 -1
- package/dist/core/components/badge.js +15 -11
- package/dist/core/components/badge.js.map +1 -1
- package/dist/core/components/box.d.ts +33 -0
- package/dist/core/components/box.d.ts.map +1 -1
- package/dist/core/components/box.js +72 -23
- package/dist/core/components/box.js.map +1 -1
- package/dist/core/components/breadcrumb.d.ts +15 -0
- package/dist/core/components/breadcrumb.d.ts.map +1 -1
- package/dist/core/components/breadcrumb.js +13 -6
- package/dist/core/components/breadcrumb.js.map +1 -1
- package/dist/core/components/dag-source.d.ts +52 -9
- package/dist/core/components/dag-source.d.ts.map +1 -1
- package/dist/core/components/dag-source.js +53 -9
- package/dist/core/components/dag-source.js.map +1 -1
- package/dist/core/components/dag-stats.d.ts +2 -0
- package/dist/core/components/dag-stats.d.ts.map +1 -1
- package/dist/core/components/dag-stats.js.map +1 -1
- package/dist/core/components/dag.d.ts +88 -1
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js +127 -6
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/enumerated-list.d.ts +30 -0
- package/dist/core/components/enumerated-list.d.ts.map +1 -1
- package/dist/core/components/enumerated-list.js +50 -11
- package/dist/core/components/enumerated-list.js.map +1 -1
- package/dist/core/components/hyperlink.d.ts +16 -0
- package/dist/core/components/hyperlink.d.ts.map +1 -1
- package/dist/core/components/hyperlink.js +22 -11
- package/dist/core/components/hyperlink.js.map +1 -1
- package/dist/core/components/index.d.ts +7 -0
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js +7 -0
- package/dist/core/components/index.js.map +1 -1
- package/dist/core/components/kbd.d.ts +14 -0
- package/dist/core/components/kbd.d.ts.map +1 -1
- package/dist/core/components/kbd.js +13 -6
- package/dist/core/components/kbd.js.map +1 -1
- package/dist/core/components/log.d.ts +20 -0
- package/dist/core/components/log.d.ts.map +1 -1
- package/dist/core/components/log.js +24 -11
- package/dist/core/components/log.js.map +1 -1
- package/dist/core/components/logo.d.ts +32 -0
- package/dist/core/components/logo.d.ts.map +1 -1
- package/dist/core/components/logo.js +38 -0
- package/dist/core/components/logo.js.map +1 -1
- package/dist/core/components/markdown.d.ts +7 -1
- package/dist/core/components/markdown.d.ts.map +1 -1
- package/dist/core/components/markdown.js +76 -0
- package/dist/core/components/markdown.js.map +1 -1
- package/dist/core/components/paginator.d.ts +16 -0
- package/dist/core/components/paginator.d.ts.map +1 -1
- package/dist/core/components/paginator.js +12 -6
- package/dist/core/components/paginator.js.map +1 -1
- package/dist/core/components/progress.d.ts +55 -0
- package/dist/core/components/progress.d.ts.map +1 -1
- package/dist/core/components/progress.js +37 -6
- package/dist/core/components/progress.js.map +1 -1
- package/dist/core/components/separator.d.ts +16 -0
- package/dist/core/components/separator.d.ts.map +1 -1
- package/dist/core/components/separator.js +12 -6
- package/dist/core/components/separator.js.map +1 -1
- package/dist/core/components/skeleton.d.ts +15 -0
- package/dist/core/components/skeleton.d.ts.map +1 -1
- package/dist/core/components/skeleton.js +12 -6
- package/dist/core/components/skeleton.js.map +1 -1
- package/dist/core/components/spinner.d.ts +37 -0
- package/dist/core/components/spinner.d.ts.map +1 -1
- package/dist/core/components/spinner.js +26 -6
- package/dist/core/components/spinner.js.map +1 -1
- package/dist/core/components/stepper.d.ts +20 -0
- package/dist/core/components/stepper.d.ts.map +1 -1
- package/dist/core/components/stepper.js +16 -6
- package/dist/core/components/stepper.js.map +1 -1
- package/dist/core/components/table.d.ts +20 -0
- package/dist/core/components/table.d.ts.map +1 -1
- package/dist/core/components/table.js +31 -6
- package/dist/core/components/table.js.map +1 -1
- package/dist/core/components/tabs.d.ts +19 -0
- package/dist/core/components/tabs.d.ts.map +1 -1
- package/dist/core/components/tabs.js +19 -6
- package/dist/core/components/tabs.js.map +1 -1
- package/dist/core/components/timeline.d.ts +19 -0
- package/dist/core/components/timeline.d.ts.map +1 -1
- package/dist/core/components/timeline.js +20 -6
- package/dist/core/components/timeline.js.map +1 -1
- package/dist/core/components/tree.d.ts +19 -0
- package/dist/core/components/tree.d.ts.map +1 -1
- package/dist/core/components/tree.js +49 -11
- package/dist/core/components/tree.js.map +1 -1
- package/dist/core/detect/index.d.ts +8 -2
- package/dist/core/detect/index.d.ts.map +1 -1
- package/dist/core/detect/index.js +7 -1
- package/dist/core/detect/index.js.map +1 -1
- package/dist/core/detect/tty.d.ts +36 -0
- package/dist/core/detect/tty.d.ts.map +1 -1
- package/dist/core/detect/tty.js +34 -0
- package/dist/core/detect/tty.js.map +1 -1
- package/dist/core/forms/confirm.d.ts +14 -0
- package/dist/core/forms/confirm.d.ts.map +1 -1
- package/dist/core/forms/confirm.js +15 -5
- package/dist/core/forms/confirm.js.map +1 -1
- package/dist/core/forms/filter.d.ts +30 -0
- package/dist/core/forms/filter.d.ts.map +1 -1
- package/dist/core/forms/filter.js +67 -49
- package/dist/core/forms/filter.js.map +1 -1
- package/dist/core/forms/form-utils.d.ts +103 -0
- package/dist/core/forms/form-utils.d.ts.map +1 -0
- package/dist/core/forms/form-utils.js +135 -0
- package/dist/core/forms/form-utils.js.map +1 -0
- package/dist/core/forms/group.d.ts +12 -0
- package/dist/core/forms/group.d.ts.map +1 -1
- package/dist/core/forms/group.js +7 -0
- package/dist/core/forms/group.js.map +1 -1
- package/dist/core/forms/index.d.ts +6 -0
- package/dist/core/forms/index.d.ts.map +1 -1
- package/dist/core/forms/index.js +6 -0
- package/dist/core/forms/index.js.map +1 -1
- package/dist/core/forms/input.d.ts +17 -0
- package/dist/core/forms/input.d.ts.map +1 -1
- package/dist/core/forms/input.js +27 -15
- package/dist/core/forms/input.js.map +1 -1
- package/dist/core/forms/multiselect.d.ts +16 -0
- package/dist/core/forms/multiselect.d.ts.map +1 -1
- package/dist/core/forms/multiselect.js +54 -38
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/forms/select.d.ts +17 -0
- package/dist/core/forms/select.d.ts.map +1 -1
- package/dist/core/forms/select.js +51 -37
- package/dist/core/forms/select.js.map +1 -1
- package/dist/core/forms/textarea.d.ts +19 -0
- package/dist/core/forms/textarea.d.ts.map +1 -1
- package/dist/core/forms/textarea.js +51 -47
- package/dist/core/forms/textarea.js.map +1 -1
- package/dist/core/forms/types.d.ts +41 -2
- package/dist/core/forms/types.d.ts.map +1 -1
- package/dist/core/forms/wizard.d.ts +19 -0
- package/dist/core/forms/wizard.d.ts.map +1 -1
- package/dist/core/forms/wizard.js +4 -0
- package/dist/core/forms/wizard.js.map +1 -1
- package/dist/core/resolve-ctx.d.ts +30 -0
- package/dist/core/resolve-ctx.d.ts.map +1 -0
- package/dist/core/resolve-ctx.js +43 -0
- package/dist/core/resolve-ctx.js.map +1 -0
- package/dist/core/text/clip.d.ts +21 -0
- package/dist/core/text/clip.d.ts.map +1 -0
- package/dist/core/text/clip.js +75 -0
- package/dist/core/text/clip.js.map +1 -0
- package/dist/core/text/grapheme.d.ts +15 -3
- package/dist/core/text/grapheme.d.ts.map +1 -1
- package/dist/core/text/grapheme.js +21 -3
- package/dist/core/text/grapheme.js.map +1 -1
- package/dist/core/text/index.d.ts +8 -0
- package/dist/core/text/index.d.ts.map +1 -1
- package/dist/core/text/index.js +8 -0
- package/dist/core/text/index.js.map +1 -1
- package/dist/core/theme/color.d.ts +47 -8
- package/dist/core/theme/color.d.ts.map +1 -1
- package/dist/core/theme/color.js +77 -8
- package/dist/core/theme/color.js.map +1 -1
- package/dist/core/theme/downsample.d.ts +24 -6
- package/dist/core/theme/downsample.d.ts.map +1 -1
- package/dist/core/theme/downsample.js +41 -10
- package/dist/core/theme/downsample.js.map +1 -1
- package/dist/core/theme/dtcg.d.ts +28 -2
- package/dist/core/theme/dtcg.d.ts.map +1 -1
- package/dist/core/theme/dtcg.js +112 -9
- package/dist/core/theme/dtcg.js.map +1 -1
- package/dist/core/theme/extend.d.ts +14 -0
- package/dist/core/theme/extend.d.ts.map +1 -1
- package/dist/core/theme/extend.js +14 -0
- package/dist/core/theme/extend.js.map +1 -1
- package/dist/core/theme/gradient.d.ts +16 -0
- package/dist/core/theme/gradient.d.ts.map +1 -1
- package/dist/core/theme/gradient.js +13 -0
- package/dist/core/theme/gradient.js.map +1 -1
- package/dist/core/theme/index.d.ts +7 -0
- package/dist/core/theme/index.d.ts.map +1 -1
- package/dist/core/theme/index.js +7 -0
- package/dist/core/theme/index.js.map +1 -1
- package/dist/core/theme/presets.d.ts +6 -1
- package/dist/core/theme/presets.d.ts.map +1 -1
- package/dist/core/theme/presets.js +34 -1
- package/dist/core/theme/presets.js.map +1 -1
- package/dist/core/theme/resolve.d.ts +59 -13
- package/dist/core/theme/resolve.d.ts.map +1 -1
- package/dist/core/theme/resolve.js +36 -9
- package/dist/core/theme/resolve.js.map +1 -1
- package/dist/core/theme/styled.d.ts +12 -0
- package/dist/core/theme/styled.d.ts.map +1 -1
- package/dist/core/theme/styled.js +12 -0
- package/dist/core/theme/styled.js.map +1 -1
- package/dist/core/theme/tokens.d.ts +29 -0
- package/dist/core/theme/tokens.d.ts.map +1 -1
- package/dist/factory.d.ts +18 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +11 -0
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/ports/context.d.ts +11 -0
- package/dist/ports/context.d.ts.map +1 -1
- package/dist/ports/index.d.ts +6 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +5 -0
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/io.d.ts +66 -2
- package/dist/ports/io.d.ts.map +1 -1
- package/dist/ports/runtime.d.ts +11 -0
- package/dist/ports/runtime.d.ts.map +1 -1
- package/dist/ports/style.d.ts +14 -0
- package/dist/ports/style.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtcg.d.ts","sourceRoot":"","sources":["../../../src/core/theme/dtcg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EAQN,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"dtcg.d.ts","sourceRoot":"","sources":["../../../src/core/theme/dtcg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EAQN,MAAM,aAAa,CAAC;AAIrB,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAqKD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,KAAK,CA6BjD;AAgDD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAiBjD;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAIrF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;CAAE,EACzG,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAcvB"}
|
package/dist/core/theme/dtcg.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
// --- Helpers ---
|
|
2
|
+
/**
|
|
3
|
+
* Parse a `#rrggbb` hex string to an RGB tuple.
|
|
4
|
+
* @param hex - Hex color string (with or without `#`).
|
|
5
|
+
* @returns RGB tuple.
|
|
6
|
+
*/
|
|
2
7
|
function hexToRgb(hex) {
|
|
3
8
|
const h = hex.replace('#', '');
|
|
4
9
|
return [
|
|
@@ -7,12 +12,28 @@ function hexToRgb(hex) {
|
|
|
7
12
|
parseInt(h.slice(4, 6), 16),
|
|
8
13
|
];
|
|
9
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Convert an RGB tuple to a `#rrggbb` hex string.
|
|
17
|
+
* @param rgb - RGB tuple to convert.
|
|
18
|
+
* @returns Hex color string with leading `#`.
|
|
19
|
+
*/
|
|
10
20
|
function rgbToHex(rgb) {
|
|
11
21
|
return '#' + rgb.map((c) => c.toString(16).padStart(2, '0')).join('');
|
|
12
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Type guard that checks whether an object is a DTCGToken (has a `$value` property).
|
|
25
|
+
* @param obj - Value to test.
|
|
26
|
+
* @returns True if `obj` conforms to the DTCGToken shape.
|
|
27
|
+
*/
|
|
13
28
|
function isDTCGToken(obj) {
|
|
14
29
|
return typeof obj === 'object' && obj !== null && '$value' in obj;
|
|
15
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Walk a dot-delimited DTCG reference path (e.g. `{color.primary}`) and return its resolved value.
|
|
33
|
+
* @param ref - DTCG reference string in `{group.key}` format.
|
|
34
|
+
* @param doc - Root document to resolve against.
|
|
35
|
+
* @returns The resolved `$value` or raw nested value, or `undefined` if not found.
|
|
36
|
+
*/
|
|
16
37
|
function resolveReference(ref, doc) {
|
|
17
38
|
// DTCG references look like "{color.primary}"
|
|
18
39
|
const path = ref.replace(/^\{|\}$/g, '').split('.');
|
|
@@ -26,6 +47,14 @@ function resolveReference(ref, doc) {
|
|
|
26
47
|
return current.$value;
|
|
27
48
|
return current;
|
|
28
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Recursively resolve a DTCG value, following `{reference}` strings until a concrete value is reached.
|
|
52
|
+
* @param value - Value to resolve (may be a reference string or a concrete value).
|
|
53
|
+
* @param doc - Root document for reference lookups.
|
|
54
|
+
* @param seen - Set of already-visited references for circular-reference detection.
|
|
55
|
+
* @returns The fully-resolved concrete value.
|
|
56
|
+
* @throws {Error} If a circular reference is detected or a reference cannot be resolved.
|
|
57
|
+
*/
|
|
29
58
|
function resolveValue(value, doc, seen) {
|
|
30
59
|
if (typeof value === 'string' && value.startsWith('{') && value.endsWith('}')) {
|
|
31
60
|
const visitedRefs = seen ?? new Set();
|
|
@@ -41,6 +70,12 @@ function resolveValue(value, doc, seen) {
|
|
|
41
70
|
}
|
|
42
71
|
return value;
|
|
43
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Convert a raw DTCG value (possibly a reference) into a TokenValue.
|
|
75
|
+
* @param value - Raw value or reference string from a DTCG token.
|
|
76
|
+
* @param doc - Root document for reference resolution.
|
|
77
|
+
* @returns Resolved TokenValue (defaults to `{ hex: '#000000' }` on failure).
|
|
78
|
+
*/
|
|
44
79
|
function toTokenValue(value, doc) {
|
|
45
80
|
const resolved = resolveValue(value, doc);
|
|
46
81
|
if (typeof resolved === 'string') {
|
|
@@ -52,10 +87,22 @@ function toTokenValue(value, doc) {
|
|
|
52
87
|
const modifiers = Array.isArray(obj['modifiers'])
|
|
53
88
|
? obj['modifiers']
|
|
54
89
|
: undefined;
|
|
55
|
-
|
|
90
|
+
const bg = typeof obj['bg'] === 'string' ? obj['bg'] : undefined;
|
|
91
|
+
const tv = { hex };
|
|
92
|
+
if (bg)
|
|
93
|
+
tv.bg = bg;
|
|
94
|
+
if (modifiers)
|
|
95
|
+
tv.modifiers = modifiers;
|
|
96
|
+
return tv;
|
|
56
97
|
}
|
|
57
98
|
return { hex: '#000000' };
|
|
58
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Convert a raw DTCG value (possibly a reference) into an array of GradientStops.
|
|
102
|
+
* @param value - Raw value or reference string from a DTCG gradient token.
|
|
103
|
+
* @param doc - Root document for reference resolution.
|
|
104
|
+
* @returns Array of gradient stops (empty if the resolved value is not an array).
|
|
105
|
+
*/
|
|
59
106
|
function toGradientStops(value, doc) {
|
|
60
107
|
const resolved = resolveValue(value, doc);
|
|
61
108
|
if (!Array.isArray(resolved))
|
|
@@ -72,6 +119,14 @@ function toGradientStops(value, doc) {
|
|
|
72
119
|
});
|
|
73
120
|
}
|
|
74
121
|
// --- fromDTCG ---
|
|
122
|
+
/**
|
|
123
|
+
* Extract a record of TokenValues from a DTCG group for the given keys.
|
|
124
|
+
* @template K - Union of string keys to extract.
|
|
125
|
+
* @param group - DTCG group to read tokens from.
|
|
126
|
+
* @param keys - Keys to extract.
|
|
127
|
+
* @param doc - Root document for reference resolution.
|
|
128
|
+
* @returns Record mapping each key to its resolved TokenValue (defaults to `#000000` for missing keys).
|
|
129
|
+
*/
|
|
75
130
|
function extractGroup(group, keys, doc) {
|
|
76
131
|
const result = {};
|
|
77
132
|
for (const key of keys) {
|
|
@@ -85,11 +140,23 @@ function extractGroup(group, keys, doc) {
|
|
|
85
140
|
}
|
|
86
141
|
return result;
|
|
87
142
|
}
|
|
143
|
+
/** All built-in status keys used when extracting from a DTCG document. */
|
|
88
144
|
const STATUS_KEYS = ['success', 'error', 'warning', 'info', 'pending', 'active', 'muted'];
|
|
145
|
+
/** All built-in semantic keys used when extracting from a DTCG document. */
|
|
89
146
|
const SEMANTIC_KEYS = ['success', 'error', 'warning', 'info', 'accent', 'muted', 'primary'];
|
|
147
|
+
/** All built-in border keys used when extracting from a DTCG document. */
|
|
90
148
|
const BORDER_KEYS = ['primary', 'secondary', 'success', 'warning', 'error', 'muted'];
|
|
149
|
+
/** All built-in UI element keys used when extracting from a DTCG document. */
|
|
91
150
|
const UI_KEYS = ['cursor', 'scrollThumb', 'scrollTrack', 'sectionHeader', 'logo', 'tableHeader', 'trackEmpty'];
|
|
151
|
+
/** All built-in surface keys used when extracting from a DTCG document. */
|
|
152
|
+
const SURFACE_KEYS = ['primary', 'secondary', 'elevated', 'overlay', 'muted'];
|
|
153
|
+
/** All built-in gradient keys used when extracting from a DTCG document. */
|
|
92
154
|
const GRADIENT_KEYS = ['brand', 'progress'];
|
|
155
|
+
/**
|
|
156
|
+
* Convert a DTCG document into a bijou Theme.
|
|
157
|
+
* @param doc - DTCG document containing token groups for status, semantic, border, ui, and gradient.
|
|
158
|
+
* @returns Fully-populated Theme with all built-in keys resolved.
|
|
159
|
+
*/
|
|
93
160
|
export function fromDTCG(doc) {
|
|
94
161
|
const name = typeof doc['name']?.$value === 'string'
|
|
95
162
|
? doc['name'].$value
|
|
@@ -98,11 +165,13 @@ export function fromDTCG(doc) {
|
|
|
98
165
|
const semanticGroup = doc['semantic'];
|
|
99
166
|
const borderGroup = doc['border'];
|
|
100
167
|
const uiGroup = doc['ui'];
|
|
168
|
+
const surfaceGroup = doc['surface'];
|
|
101
169
|
const gradientGroup = doc['gradient'];
|
|
102
170
|
const status = extractGroup(statusGroup, STATUS_KEYS, doc);
|
|
103
171
|
const semantic = extractGroup(semanticGroup, SEMANTIC_KEYS, doc);
|
|
104
172
|
const border = extractGroup(borderGroup, BORDER_KEYS, doc);
|
|
105
173
|
const ui = extractGroup(uiGroup, UI_KEYS, doc);
|
|
174
|
+
const surface = extractGroup(surfaceGroup, SURFACE_KEYS, doc);
|
|
106
175
|
const gradient = {};
|
|
107
176
|
for (const key of GRADIENT_KEYS) {
|
|
108
177
|
const token = gradientGroup?.[key];
|
|
@@ -113,18 +182,30 @@ export function fromDTCG(doc) {
|
|
|
113
182
|
gradient[key] = [];
|
|
114
183
|
}
|
|
115
184
|
}
|
|
116
|
-
return { name, status, semantic, gradient, border, ui };
|
|
185
|
+
return { name, status, semantic, gradient, border, ui, surface };
|
|
117
186
|
}
|
|
118
187
|
// --- toDTCG ---
|
|
188
|
+
/**
|
|
189
|
+
* Convert a single TokenValue to a DTCGToken.
|
|
190
|
+
* @param token - Token to convert.
|
|
191
|
+
* @returns DTCG token with `$type: 'color'`.
|
|
192
|
+
*/
|
|
119
193
|
function tokenToDTCG(token) {
|
|
120
|
-
if (token.modifiers && token.modifiers.length > 0) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
194
|
+
if ((token.modifiers && token.modifiers.length > 0) || token.bg) {
|
|
195
|
+
const val = { hex: token.hex };
|
|
196
|
+
if (token.bg)
|
|
197
|
+
val['bg'] = token.bg;
|
|
198
|
+
if (token.modifiers && token.modifiers.length > 0)
|
|
199
|
+
val['modifiers'] = token.modifiers;
|
|
200
|
+
return { $type: 'color', $value: val };
|
|
125
201
|
}
|
|
126
202
|
return { $type: 'color', $value: token.hex };
|
|
127
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Convert an array of GradientStops to a DTCGToken with `$type: 'gradient'`.
|
|
206
|
+
* @param stops - Gradient stops to serialize.
|
|
207
|
+
* @returns DTCG token whose `$value` is an array of `{ pos, color }` objects with hex colors.
|
|
208
|
+
*/
|
|
128
209
|
function gradientToDTCG(stops) {
|
|
129
210
|
return {
|
|
130
211
|
$type: 'gradient',
|
|
@@ -134,6 +215,12 @@ function gradientToDTCG(stops) {
|
|
|
134
215
|
})),
|
|
135
216
|
};
|
|
136
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Convert a record of TokenValues into a DTCGGroup.
|
|
220
|
+
* @template K - String keys of the record.
|
|
221
|
+
* @param record - Record to convert.
|
|
222
|
+
* @returns DTCGGroup with each key mapped to a DTCG color token.
|
|
223
|
+
*/
|
|
137
224
|
function recordToDTCGGroup(record) {
|
|
138
225
|
const group = {};
|
|
139
226
|
for (const [key, value] of Object.entries(record)) {
|
|
@@ -141,6 +228,11 @@ function recordToDTCGGroup(record) {
|
|
|
141
228
|
}
|
|
142
229
|
return group;
|
|
143
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Convert a bijou Theme into a DTCG document for interop/export.
|
|
233
|
+
* @param theme - Theme to serialize.
|
|
234
|
+
* @returns DTCGDocument with all theme groups as DTCG token groups.
|
|
235
|
+
*/
|
|
144
236
|
export function toDTCG(theme) {
|
|
145
237
|
const doc = {};
|
|
146
238
|
doc['name'] = { $type: 'string', $value: theme.name };
|
|
@@ -148,6 +240,7 @@ export function toDTCG(theme) {
|
|
|
148
240
|
doc['semantic'] = recordToDTCGGroup(theme.semantic);
|
|
149
241
|
doc['border'] = recordToDTCGGroup(theme.border);
|
|
150
242
|
doc['ui'] = recordToDTCGGroup(theme.ui);
|
|
243
|
+
doc['surface'] = recordToDTCGGroup(theme.surface);
|
|
151
244
|
const gradientDoc = {};
|
|
152
245
|
for (const [key, stops] of Object.entries(theme.gradient)) {
|
|
153
246
|
gradientDoc[key] = gradientToDTCG(stops);
|
|
@@ -156,13 +249,23 @@ export function toDTCG(theme) {
|
|
|
156
249
|
return doc;
|
|
157
250
|
}
|
|
158
251
|
// --- IO Helpers ---
|
|
159
|
-
/**
|
|
252
|
+
/**
|
|
253
|
+
* Load a single theme from a DTCG JSON file using the provided IO port.
|
|
254
|
+
* @param io - IO adapter with a `readFile` method.
|
|
255
|
+
* @param path - File path to the JSON theme file.
|
|
256
|
+
* @returns Parsed Theme.
|
|
257
|
+
*/
|
|
160
258
|
export function loadTheme(io, path) {
|
|
161
259
|
const content = io.readFile(path);
|
|
162
260
|
const doc = JSON.parse(content);
|
|
163
261
|
return fromDTCG(doc);
|
|
164
262
|
}
|
|
165
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* Load all `.json` files from a directory and return them as a theme record keyed by theme name.
|
|
265
|
+
* @param io - IO adapter with `readDir`, `readFile`, and `joinPath` methods.
|
|
266
|
+
* @param dirPath - Directory path to scan for theme JSON files.
|
|
267
|
+
* @returns Record mapping theme names to parsed Themes (malformed files are silently skipped).
|
|
268
|
+
*/
|
|
166
269
|
export function loadThemesFromDir(io, dirPath) {
|
|
167
270
|
const files = io.readDir(dirPath);
|
|
168
271
|
const themes = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../src/core/theme/dtcg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../src/core/theme/dtcg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import type { Theme, TokenValue, GradientStop, BaseStatusKey, BaseUiKey, BaseGradientKey } from './tokens.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extend a base theme with additional status, UI, or gradient tokens.
|
|
4
|
+
*
|
|
5
|
+
* Merges the extension records into the base theme's corresponding groups,
|
|
6
|
+
* preserving all existing keys and adding new ones.
|
|
7
|
+
*
|
|
8
|
+
* @template S - Additional status keys beyond BaseStatusKey.
|
|
9
|
+
* @template U - Additional UI element keys beyond BaseUiKey.
|
|
10
|
+
* @template G - Additional gradient keys beyond BaseGradientKey.
|
|
11
|
+
* @param base - Base theme to extend.
|
|
12
|
+
* @param extensions - Partial records of additional tokens to merge.
|
|
13
|
+
* @returns New Theme with the union of base and extension keys.
|
|
14
|
+
*/
|
|
2
15
|
export declare function extendTheme<S extends string = never, U extends string = never, G extends string = never>(base: Theme, extensions: {
|
|
3
16
|
status?: Partial<Record<S, TokenValue>>;
|
|
4
17
|
ui?: Partial<Record<U, TokenValue>>;
|
|
5
18
|
gradient?: Partial<Record<G, GradientStop[]>>;
|
|
19
|
+
surface?: Partial<Theme['surface']>;
|
|
6
20
|
}): Theme<BaseStatusKey | S, BaseUiKey | U, BaseGradientKey | G>;
|
|
7
21
|
//# sourceMappingURL=extend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/core/theme/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9G,wBAAgB,WAAW,CACzB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACxC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/core/theme/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9G;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,CAAC,SAAS,MAAM,GAAG,KAAK,EACxB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACxC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;CACrC,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAQ/D"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extend a base theme with additional status, UI, or gradient tokens.
|
|
3
|
+
*
|
|
4
|
+
* Merges the extension records into the base theme's corresponding groups,
|
|
5
|
+
* preserving all existing keys and adding new ones.
|
|
6
|
+
*
|
|
7
|
+
* @template S - Additional status keys beyond BaseStatusKey.
|
|
8
|
+
* @template U - Additional UI element keys beyond BaseUiKey.
|
|
9
|
+
* @template G - Additional gradient keys beyond BaseGradientKey.
|
|
10
|
+
* @param base - Base theme to extend.
|
|
11
|
+
* @param extensions - Partial records of additional tokens to merge.
|
|
12
|
+
* @returns New Theme with the union of base and extension keys.
|
|
13
|
+
*/
|
|
1
14
|
export function extendTheme(base, extensions) {
|
|
2
15
|
return {
|
|
3
16
|
...base,
|
|
4
17
|
status: { ...base.status, ...extensions.status },
|
|
5
18
|
ui: { ...base.ui, ...extensions.ui },
|
|
6
19
|
gradient: { ...base.gradient, ...extensions.gradient },
|
|
20
|
+
surface: { ...base.surface, ...extensions.surface },
|
|
7
21
|
};
|
|
8
22
|
}
|
|
9
23
|
//# sourceMappingURL=extend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/core/theme/extend.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAIzB,IAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/core/theme/extend.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAIzB,IAAW,EAAE,UAKd;IACC,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAA2C;QACzF,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,EAAuC;QACzE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAiD;QACrG,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import type { RGB, GradientStop } from './tokens.js';
|
|
2
2
|
import type { StylePort } from '../../ports/style.js';
|
|
3
|
+
/**
|
|
4
|
+
* Linearly interpolate an RGB color from a sorted array of gradient stops.
|
|
5
|
+
* @param stops - Gradient stops sorted by ascending position.
|
|
6
|
+
* @param t - Normalized position (0-1) to sample.
|
|
7
|
+
* @returns Interpolated RGB color at position `t`.
|
|
8
|
+
*/
|
|
3
9
|
export declare function lerp3(stops: GradientStop[], t: number): RGB;
|
|
10
|
+
/** Options for rendering gradient-colored text. */
|
|
4
11
|
export interface GradientTextOptions {
|
|
12
|
+
/** Style port used to apply RGB colors to individual characters. */
|
|
5
13
|
style: StylePort;
|
|
14
|
+
/** When true, return plain text without any color escapes. */
|
|
6
15
|
noColor?: boolean;
|
|
7
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Apply a gradient color to each character of a string.
|
|
19
|
+
* @param text - Text to colorize.
|
|
20
|
+
* @param stops - Gradient color stops.
|
|
21
|
+
* @param options - Style port and noColor flag.
|
|
22
|
+
* @returns The text with per-character RGB coloring applied (or plain text if noColor).
|
|
23
|
+
*/
|
|
8
24
|
export declare function gradientText(text: string, stops: GradientStop[], options: GradientTextOptions): string;
|
|
9
25
|
//# sourceMappingURL=gradient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../../src/core/theme/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAgB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAoB3D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAetG"}
|
|
1
|
+
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../../src/core/theme/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAoB3D;AAED,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,KAAK,EAAE,SAAS,CAAC;IACjB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAetG"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Linearly interpolate an RGB color from a sorted array of gradient stops.
|
|
3
|
+
* @param stops - Gradient stops sorted by ascending position.
|
|
4
|
+
* @param t - Normalized position (0-1) to sample.
|
|
5
|
+
* @returns Interpolated RGB color at position `t`.
|
|
6
|
+
*/
|
|
1
7
|
export function lerp3(stops, t) {
|
|
2
8
|
if (stops.length === 0)
|
|
3
9
|
return [0, 0, 0];
|
|
@@ -21,6 +27,13 @@ export function lerp3(stops, t) {
|
|
|
21
27
|
}
|
|
22
28
|
return stops[stops.length - 1].color;
|
|
23
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Apply a gradient color to each character of a string.
|
|
32
|
+
* @param text - Text to colorize.
|
|
33
|
+
* @param stops - Gradient color stops.
|
|
34
|
+
* @param options - Style port and noColor flag.
|
|
35
|
+
* @returns The text with per-character RGB coloring applied (or plain text if noColor).
|
|
36
|
+
*/
|
|
24
37
|
export function gradientText(text, stops, options) {
|
|
25
38
|
if (options.noColor || text.length === 0 || stops.length === 0)
|
|
26
39
|
return text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.js","sourceRoot":"","sources":["../../../src/core/theme/gradient.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,KAAK,CAAC,KAAqB,EAAE,CAAS;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;IACrE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC;IAE7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;gBAAE,OAAO,CAAC,CAAC,KAAK,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO;gBACL,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC1D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC1D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC;AACxC,CAAC;
|
|
1
|
+
{"version":3,"file":"gradient.js","sourceRoot":"","sources":["../../../src/core/theme/gradient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme module barrel — re-exports all theme types, presets, utilities,
|
|
3
|
+
* gradient helpers, resolver, DTCG interop, color downsampling, and
|
|
4
|
+
* color manipulation functions.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
1
8
|
export type { RGB, GradientStop, TextModifier, TokenValue, InkColor, BaseStatusKey, BaseUiKey, BaseGradientKey, Theme, } from './tokens.js';
|
|
2
9
|
export { CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv } from './presets.js';
|
|
3
10
|
export { styled, styledStatus } from './styled.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIvF,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/dist/core/theme/index.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme module barrel — re-exports all theme types, presets, utilities,
|
|
3
|
+
* gradient helpers, resolver, DTCG interop, color downsampling, and
|
|
4
|
+
* color manipulation functions.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
1
8
|
// Presets
|
|
2
9
|
export { CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv } from './presets.js';
|
|
3
10
|
// Freestanding styled helpers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAE3E,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpD,WAAW;AACX,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAOtB,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAG7C,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Theme, BaseStatusKey, TokenValue, TextModifier } from './tokens.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Shorthand helper to create a TokenValue with less boilerplate.
|
|
4
|
+
* @param hex - Hex color string (e.g. `'#00ffff'`).
|
|
5
|
+
* @param modifiers - Optional text modifiers to attach.
|
|
6
|
+
* @returns TokenValue with the given hex and optional modifiers.
|
|
7
|
+
*/
|
|
3
8
|
export declare function tv(hex: string, modifiers?: TextModifier[]): TokenValue;
|
|
4
9
|
/**
|
|
5
10
|
* CYAN_MAGENTA — the default theme.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,UAAU,CAEtE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,aAAa,CA4D7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,aAAa,CA8DjD,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAkHzC,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Shorthand helper to create a TokenValue with less boilerplate.
|
|
3
|
+
* @param hex - Hex color string (e.g. `'#00ffff'`).
|
|
4
|
+
* @param modifiers - Optional text modifiers to attach.
|
|
5
|
+
* @returns TokenValue with the given hex and optional modifiers.
|
|
6
|
+
*/
|
|
2
7
|
export function tv(hex, modifiers) {
|
|
3
8
|
return modifiers !== undefined ? { hex, modifiers } : { hex };
|
|
4
9
|
}
|
|
@@ -57,6 +62,13 @@ export const CYAN_MAGENTA = {
|
|
|
57
62
|
tableHeader: tv('#ffffff'),
|
|
58
63
|
trackEmpty: tv('#505050'),
|
|
59
64
|
},
|
|
65
|
+
surface: {
|
|
66
|
+
primary: { hex: '#ffffff', bg: '#1a1a2e' },
|
|
67
|
+
secondary: { hex: '#e0e0e0', bg: '#16213e' },
|
|
68
|
+
elevated: { hex: '#ffffff', bg: '#0f3460' },
|
|
69
|
+
overlay: { hex: '#ffffff', bg: '#1a1a2e' },
|
|
70
|
+
muted: { hex: '#808080', bg: '#0a0a14' },
|
|
71
|
+
},
|
|
60
72
|
};
|
|
61
73
|
/**
|
|
62
74
|
* TEAL_ORANGE_PINK — a gradient-based theme.
|
|
@@ -113,6 +125,13 @@ export const TEAL_ORANGE_PINK = {
|
|
|
113
125
|
tableHeader: tv('#d1d5db'),
|
|
114
126
|
trackEmpty: tv('#404040'),
|
|
115
127
|
},
|
|
128
|
+
surface: {
|
|
129
|
+
primary: { hex: '#d1d5db', bg: '#1f2937' },
|
|
130
|
+
secondary: { hex: '#d1d5db', bg: '#111827' },
|
|
131
|
+
elevated: { hex: '#d1d5db', bg: '#374151' },
|
|
132
|
+
overlay: { hex: '#d1d5db', bg: '#1f2937' },
|
|
133
|
+
muted: { hex: '#6b7280', bg: '#0f1117' },
|
|
134
|
+
},
|
|
116
135
|
};
|
|
117
136
|
/** Registry of all built-in presets, keyed by theme name. */
|
|
118
137
|
export const PRESETS = {
|
|
@@ -165,6 +184,13 @@ export const PRESETS = {
|
|
|
165
184
|
tableHeader: tv('#D8DEE9'),
|
|
166
185
|
trackEmpty: tv('#2E3440'),
|
|
167
186
|
},
|
|
187
|
+
surface: {
|
|
188
|
+
primary: { hex: '#D8DEE9', bg: '#2E3440' },
|
|
189
|
+
secondary: { hex: '#D8DEE9', bg: '#3B4252' },
|
|
190
|
+
elevated: { hex: '#ECEFF4', bg: '#434C5E' },
|
|
191
|
+
overlay: { hex: '#D8DEE9', bg: '#2E3440' },
|
|
192
|
+
muted: { hex: '#4C566A', bg: '#242933' },
|
|
193
|
+
},
|
|
168
194
|
},
|
|
169
195
|
'catppuccin': {
|
|
170
196
|
name: 'catppuccin',
|
|
@@ -214,6 +240,13 @@ export const PRESETS = {
|
|
|
214
240
|
tableHeader: tv('#cdd6f4'),
|
|
215
241
|
trackEmpty: tv('#181825'),
|
|
216
242
|
},
|
|
243
|
+
surface: {
|
|
244
|
+
primary: { hex: '#cdd6f4', bg: '#1e1e2e' },
|
|
245
|
+
secondary: { hex: '#cdd6f4', bg: '#181825' },
|
|
246
|
+
elevated: { hex: '#cdd6f4', bg: '#313244' },
|
|
247
|
+
overlay: { hex: '#cdd6f4', bg: '#1e1e2e' },
|
|
248
|
+
muted: { hex: '#6c7086', bg: '#11111b' },
|
|
249
|
+
},
|
|
217
250
|
},
|
|
218
251
|
};
|
|
219
252
|
//# sourceMappingURL=presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"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"}
|