@sltsh/aion-tokens 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/light.d.ts +25 -30
- package/dist/light.d.ts.map +1 -1
- package/dist/light.js +98 -52
- package/dist/light.js.map +1 -1
- package/dist/oklch.d.ts +1 -0
- package/dist/oklch.d.ts.map +1 -1
- package/dist/oklch.js +13 -2
- package/dist/oklch.js.map +1 -1
- package/dist/palette.d.ts +7 -3
- package/dist/palette.d.ts.map +1 -1
- package/dist/palette.js +35 -11
- package/dist/palette.js.map +1 -1
- package/dist/preview.d.ts +4 -2
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +45 -3
- package/dist/preview.js.map +1 -1
- package/dist/rounding.d.ts +25 -0
- package/dist/rounding.d.ts.map +1 -0
- package/dist/rounding.js +137 -0
- package/dist/rounding.js.map +1 -0
- package/dist/semantic.d.ts +3 -3
- package/dist/solve.d.ts +3 -1
- package/dist/solve.d.ts.map +1 -1
- package/dist/solve.js +2 -1
- package/dist/solve.js.map +1 -1
- package/dist/states.d.ts +13 -4
- package/dist/states.d.ts.map +1 -1
- package/dist/states.js +123 -85
- package/dist/states.js.map +1 -1
- package/package.json +1 -1
package/dist/states.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ACCENTS, SYNTAX, comment, diffWash, findMatch, neutral, overlay } from './palette.js';
|
|
3
|
-
import { lightComment, lightDecoration, lightDiffWash, lightEditorNeutral, lightFindMatch, lightOverlay, lightSyntax, } from './light.js';
|
|
1
|
+
import { compositeCssAlpha } from './oklch.js';
|
|
2
|
+
import { ACCENTS, SYNTAX, comment, decoration, diffWash, findMatch, neutral, overlay, secondaryDecoration } from './palette.js';
|
|
3
|
+
import { lightComment, lightDecoration, lightDiffWash, lightEditorNeutral, lightFindMatch, lightOverlay, lightSecondaryDecoration, lightSyntax, } from './light.js';
|
|
4
4
|
export const SHIPPED = {
|
|
5
|
-
neutral, overlay, diffWash, findMatch, comment,
|
|
5
|
+
neutral, overlay, diffWash, findMatch, comment, decoration, secondaryDecoration,
|
|
6
6
|
syntax: Object.fromEntries(Object.keys(SYNTAX).map((role) => [role, ACCENTS[SYNTAX[role]]])),
|
|
7
7
|
};
|
|
8
8
|
export const LIGHT_SHIPPED = {
|
|
@@ -13,6 +13,7 @@ export const LIGHT_SHIPPED = {
|
|
|
13
13
|
comment: lightComment,
|
|
14
14
|
syntax: lightSyntax,
|
|
15
15
|
decoration: lightDecoration,
|
|
16
|
+
secondaryDecoration: lightSecondaryDecoration,
|
|
16
17
|
};
|
|
17
18
|
const surfaces = (source) => ({
|
|
18
19
|
editor: source.neutral.editor,
|
|
@@ -22,96 +23,133 @@ const surfaces = (source) => ({
|
|
|
22
23
|
// it covers can raise it, which is why it may be the loudest decoration in the editor.
|
|
23
24
|
findMatch: source.findMatch.current,
|
|
24
25
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const EDITOR_STACKS = [
|
|
34
|
-
[],
|
|
35
|
-
['lineHighlight'],
|
|
36
|
-
['selection'],
|
|
37
|
-
['wordHighlight'],
|
|
38
|
-
['lineHighlight', 'wordHighlight'],
|
|
39
|
-
['selection', 'wordHighlight'],
|
|
26
|
+
export const RENDER_ORDER = [
|
|
27
|
+
'lineHighlight', 'selection', 'inactiveSelection',
|
|
28
|
+
'mergeCurrentHeader', 'mergeCommonHeader', 'mergeIncomingHeader',
|
|
29
|
+
'focusedStackFrame', 'stackFrame', 'unchangedCode', 'findRange', 'fold',
|
|
30
|
+
'removedLine', 'addedLine', 'mergeChange', 'rangeHighlight',
|
|
31
|
+
'bracketMatch', 'removedWord', 'addedWord', 'covered', 'uncovered', 'hover',
|
|
32
|
+
'mergeChangeWord', 'searchMatch', 'selectionHighlight', 'symbol',
|
|
33
|
+
'wordHighlight', 'strongWord', 'findMatchOther', 'commentRange', 'activeCommentRange',
|
|
40
34
|
];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
// Light's decorations sit in three tiers by painted shift from the editor. Tier 1 is the
|
|
36
|
+
// selection, tier 2 the reading cues a reader looks for, tier 3 everything that only has to
|
|
37
|
+
// be seen. One ratio separates adjacent tiers; the owner approved it in Gate C.
|
|
38
|
+
export const LIGHT_TIER_RATIO = 1.35;
|
|
39
|
+
export const LIGHT_TIER = {
|
|
40
|
+
1: ['selection'],
|
|
41
|
+
2: ['wordHighlight', 'strongWord', 'selectionHighlight', 'findMatchOther', 'searchMatch',
|
|
42
|
+
'addedWord', 'removedWord'],
|
|
43
|
+
3: ['lineHighlight', 'inactiveSelection', 'findRange', 'fold', 'rangeHighlight', 'hover',
|
|
44
|
+
'symbol', 'bracketMatch', 'stackFrame', 'focusedStackFrame', 'mergeCurrentHeader',
|
|
45
|
+
'mergeCommonHeader', 'mergeIncomingHeader', 'unchangedCode', 'mergeChange', 'mergeChangeWord',
|
|
46
|
+
'covered', 'uncovered', 'commentRange', 'activeCommentRange', 'addedLine', 'removedLine'],
|
|
46
47
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
const BASES = [[], ['lineHighlight'], ['selection'], ['inactiveSelection']];
|
|
49
|
+
const DIFFS = [[], ['addedLine'], ['addedLine', 'addedWord'], ['removedLine'],
|
|
50
|
+
['removedLine', 'removedWord']];
|
|
51
|
+
const READING_TOPS = ['wordHighlight', 'findMatchOther', 'selectionHighlight'];
|
|
52
|
+
const OTHER_TOPS = [
|
|
53
|
+
'findRange', 'rangeHighlight', 'fold', 'hover', 'symbol', 'strongWord', 'stackFrame',
|
|
54
|
+
'focusedStackFrame', 'bracketMatch', 'commentRange', 'activeCommentRange',
|
|
55
|
+
'mergeCurrentHeader', 'mergeIncomingHeader', 'mergeCommonHeader', 'mergeChange',
|
|
56
|
+
'mergeChangeWord', 'searchMatch', 'covered', 'uncovered', 'unchangedCode',
|
|
56
57
|
];
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
58
|
+
const BASE = new Set(['lineHighlight', 'selection', 'inactiveSelection']);
|
|
59
|
+
const ADDED = new Set(['addedLine', 'addedWord']);
|
|
60
|
+
const REMOVED = new Set(['removedLine', 'removedWord']);
|
|
61
|
+
const TOP = new Set(READING_TOPS);
|
|
62
|
+
const OTHER = new Set(OTHER_TOPS);
|
|
63
|
+
const MERGE_EDITOR = new Set(['mergeChange', 'mergeChangeWord']);
|
|
64
|
+
// hideUnchangedRegionsFeature.ts applies diff-unchanged-lines to unchanged
|
|
65
|
+
// ranges, so it cannot occupy a character with an inserted or removed line.
|
|
66
|
+
// Merge Editor CodeEditorView creates its own widgets and applies editor-owned
|
|
67
|
+
// decorations; DiffEditorEditors creates separate widgets for the diff collections.
|
|
68
|
+
export function producible(layers) {
|
|
69
|
+
if ([...layers].some((name) => MERGE_EDITOR.has(name)) &&
|
|
70
|
+
[...layers].some((name) => ADDED.has(name) || REMOVED.has(name) || name === 'unchangedCode' || name === 'fold'))
|
|
71
|
+
return false;
|
|
72
|
+
if (layers.has('unchangedCode') &&
|
|
73
|
+
[...layers].some((name) => ADDED.has(name) || REMOVED.has(name)))
|
|
74
|
+
return false;
|
|
75
|
+
if ([...layers].filter((name) => BASE.has(name)).length > 1)
|
|
76
|
+
return false;
|
|
77
|
+
if ([...layers].some((name) => ADDED.has(name)) &&
|
|
78
|
+
[...layers].some((name) => REMOVED.has(name)))
|
|
79
|
+
return false;
|
|
80
|
+
if (layers.has('addedWord') && !layers.has('addedLine'))
|
|
81
|
+
return false;
|
|
82
|
+
if (layers.has('removedWord') && !layers.has('removedLine'))
|
|
83
|
+
return false;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
// Coverage is the stated combinatorial bound intersected with producible.
|
|
87
|
+
// This co-occurrence bound is a product decision, not a renderer exclusion.
|
|
88
|
+
// The renderer permits more inline combinations than the guarantee enumerates.
|
|
89
|
+
export function covered(layers) {
|
|
90
|
+
if (!producible(layers))
|
|
91
|
+
return false;
|
|
92
|
+
const others = [...layers].filter((name) => OTHER.has(name));
|
|
93
|
+
return others.length <= 1 && (others.length === 0 ||
|
|
94
|
+
![...layers].some((name) => TOP.has(name)));
|
|
95
|
+
}
|
|
96
|
+
export const orderStack = (layers) => RENDER_ORDER.filter((name) => layers.has(name));
|
|
97
|
+
export const stackName = (surface, layers) => [surface, ...layers].join(' + ');
|
|
98
|
+
const coveredStacks = () => {
|
|
99
|
+
const stacks = [];
|
|
100
|
+
for (const base of BASES)
|
|
101
|
+
for (const diff of DIFFS) {
|
|
102
|
+
const pair = [...base, ...diff];
|
|
103
|
+
for (let mask = 0; mask < (1 << READING_TOPS.length); mask += 1) {
|
|
104
|
+
const layers = new Set(pair);
|
|
105
|
+
READING_TOPS.forEach((name, index) => { if (mask & (1 << index))
|
|
106
|
+
layers.add(name); });
|
|
107
|
+
if (covered(layers))
|
|
108
|
+
stacks.push(orderStack(layers));
|
|
109
|
+
}
|
|
110
|
+
for (const name of OTHER_TOPS) {
|
|
111
|
+
const layers = new Set([...pair, name]);
|
|
112
|
+
if (covered(layers))
|
|
113
|
+
stacks.push(orderStack(layers));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return stacks;
|
|
73
117
|
};
|
|
74
|
-
|
|
75
|
-
//
|
|
118
|
+
const EDITOR_STACKS = coveredStacks();
|
|
119
|
+
// Peek retains the legacy base/reading-top/decoration domain. New secondary
|
|
120
|
+
// contexts are not claimed without positive applicability evidence for a peek widget.
|
|
121
|
+
const SECONDARY = new Set(Object.keys(secondaryDecoration));
|
|
122
|
+
const PEEK_STACKS = EDITOR_STACKS.filter((stack) => !stack.some((name) => ADDED.has(name) || REMOVED.has(name) || SECONDARY.has(name)));
|
|
123
|
+
// colorThemeCss.ts emits Color.toString() for CSS variables; direct theming rules
|
|
124
|
+
// interpolate the same Color. HexA parsing rounds alpha to three decimals, then
|
|
125
|
+
// CSS.formatRGBA rounds to two. Selection highlight additionally calls transparent(.5).
|
|
126
|
+
export function paintedAlpha(name, authored) {
|
|
127
|
+
const emitted = Math.round(authored * 255) / 255;
|
|
128
|
+
const parsed = Math.round(emitted * 1000) / 1000;
|
|
129
|
+
const painted = name === 'selectionHighlight' ? Math.round(parsed * 0.5 * 1000) / 1000 : parsed;
|
|
130
|
+
return Number(painted.toFixed(2));
|
|
131
|
+
}
|
|
132
|
+
export function stackBackground(source, base, layers) {
|
|
133
|
+
return layers.reduce((under, name) => {
|
|
134
|
+
const value = name in source.overlay ? source.overlay[name]
|
|
135
|
+
: name in source.diffWash ? source.diffWash[name]
|
|
136
|
+
: name in source.decoration ? source.decoration[name]
|
|
137
|
+
: source.secondaryDecoration[name];
|
|
138
|
+
return compositeCssAlpha(value.color, paintedAlpha(name, value.alpha), under);
|
|
139
|
+
}, base);
|
|
140
|
+
}
|
|
76
141
|
export function readingStates(source = SHIPPED) {
|
|
77
|
-
const stackOn = (base, names) => names.reduce((under, name) => compositeEmitted(source.overlay[name].color, source.overlay[name].alpha, under), base);
|
|
78
|
-
const washOn = (base, names) => names.reduce((under, name) => compositeEmitted(source.diffWash[name].color, source.diffWash[name].alpha, under), base);
|
|
79
142
|
const surface = surfaces(source);
|
|
80
143
|
const rows = [];
|
|
81
|
-
for (const
|
|
82
|
-
|
|
83
|
-
rows.push({ name: [name, ...stack].join(' + '), background: stackOn(base, stack) });
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
for (const base of DIFF_BASES) {
|
|
87
|
-
for (const layer of DIFF_LAYERS) {
|
|
88
|
-
rows.push({
|
|
89
|
-
name: ['editor', ...base, ...layer].join(' + '),
|
|
90
|
-
background: washOn(stackOn(surface.editor, base), layer),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
144
|
+
for (const stack of EDITOR_STACKS) {
|
|
145
|
+
rows.push({ name: stackName('editor', stack), background: stackBackground(source, surface.editor, stack) });
|
|
93
146
|
}
|
|
94
|
-
for (const
|
|
95
|
-
|
|
96
|
-
rows.push({
|
|
97
|
-
name: [name, ...base, 'findMatchOther'].join(' + '),
|
|
98
|
-
background: stackOn(stackOn(surface[name], base), ['findMatchOther']),
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (source.decoration !== undefined) {
|
|
103
|
-
const decoration = source.decoration;
|
|
104
|
-
for (const [name, bases] of Object.entries(DECORATION_BASES)) {
|
|
105
|
-
for (const base of bases) {
|
|
106
|
-
for (const surfaceName of ['editor', 'peekEditor']) {
|
|
107
|
-
rows.push({
|
|
108
|
-
name: [surfaceName, ...base, name].join(' + '),
|
|
109
|
-
background: compositeEmitted(decoration[name].color, decoration[name].alpha, stackOn(surface[surfaceName], base)),
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
147
|
+
for (const stack of PEEK_STACKS) {
|
|
148
|
+
rows.push({ name: stackName('peekEditor', stack), background: stackBackground(source, surface.peekEditor, stack) });
|
|
114
149
|
}
|
|
150
|
+
rows.push({ name: 'hoverWidget', background: surface.hoverWidget });
|
|
151
|
+
rows.push({ name: 'findMatch', background: surface.findMatch });
|
|
152
|
+
rows.push({ name: 'findMatch + wordHighlight', background: surface.findMatch });
|
|
115
153
|
return rows;
|
|
116
154
|
}
|
|
117
155
|
export const readingForegrounds = (source = SHIPPED) => ({
|
package/dist/states.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.js","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"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"}
|