@orangecheck/app-design 1.5.0 → 1.6.1

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.
@@ -0,0 +1,76 @@
1
+ /*
2
+ * @orangecheck/app-design — chart.css
3
+ *
4
+ * The chrome of a chart drawn by hand in SVG, by class, inside ChartFrame's
5
+ * .oca-chart: axis labels, gridlines, the zero line, a crosshair, markers,
6
+ * the legend and the hover card. The series colours are the --oca-chart-*
7
+ * tokens, which clear 3:1 on the card in both modes.
8
+ */
9
+
10
+ [data-oc-app='ochk'] .oca-chart .oca-chart-tick {
11
+ fill: var(--muted-foreground);
12
+ font-family: var(--oc-font-mono);
13
+ font-size: 10px;
14
+ font-variant-numeric: tabular-nums;
15
+ }
16
+ [data-oc-app='ochk'] .oca-chart .oca-chart-grid {
17
+ stroke: var(--oca-chart-grid);
18
+ stroke-width: 1;
19
+ shape-rendering: crispEdges;
20
+ }
21
+ [data-oc-app='ochk'] .oca-chart .oca-chart-axis {
22
+ stroke: var(--oca-hairline-strong);
23
+ stroke-width: 1;
24
+ shape-rendering: crispEdges;
25
+ }
26
+ [data-oc-app='ochk'] .oca-chart .oca-chart-zero {
27
+ stroke: var(--muted-foreground);
28
+ stroke-opacity: 0.6;
29
+ stroke-width: 1;
30
+ }
31
+ [data-oc-app='ochk'] .oca-chart .oca-chart-crosshair {
32
+ stroke: var(--foreground);
33
+ stroke-opacity: 0.3;
34
+ stroke-width: 1;
35
+ pointer-events: none;
36
+ }
37
+ [data-oc-app='ochk'] .oca-chart .oca-chart-marker {
38
+ stroke: var(--muted-foreground);
39
+ stroke-dasharray: 3 3;
40
+ stroke-width: 1;
41
+ }
42
+
43
+ /* The legend: a short line in each series' colour, then its name. */
44
+ [data-oc-app='ochk'] .oca-chart-legend {
45
+ display: flex;
46
+ flex-wrap: wrap;
47
+ gap: 0.25rem 1rem;
48
+ font-size: 0.8125rem;
49
+ color: var(--muted-foreground);
50
+ }
51
+ [data-oc-app='ochk'] .oca-chart-legend li {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ gap: 0.4375rem;
55
+ }
56
+ [data-oc-app='ochk'] .oca-chart-legend [data-swatch] {
57
+ width: 0.875rem;
58
+ height: 0;
59
+ border-top: 2px solid var(--swatch);
60
+ }
61
+ [data-oc-app='ochk'] .oca-chart-legend [data-swatch='dashed'] {
62
+ border-top-style: dashed;
63
+ }
64
+
65
+ /* The card that follows the pointer. */
66
+ [data-oc-app='ochk'] .oca-chart-tooltip {
67
+ pointer-events: none;
68
+ border: 1px solid var(--border);
69
+ border-radius: 0.625rem;
70
+ background: var(--popover);
71
+ color: var(--popover-foreground);
72
+ padding: 0.375rem 0.625rem;
73
+ font-size: 0.75rem;
74
+ line-height: 1.4;
75
+ box-shadow: var(--oc-shadow-md, 0 4px 12px rgb(0 0 0 / 0.12));
76
+ }
@@ -45,6 +45,13 @@
45
45
  --color-oca-orange-light: var(--oca-orange-light);
46
46
  --color-oca-orange: var(--oca-orange);
47
47
  --color-oca-orange-deep: var(--oca-orange-deep);
48
+ --color-oca-chart-1: var(--oca-chart-1);
49
+ --color-oca-chart-2: var(--oca-chart-2);
50
+ --color-oca-chart-3: var(--oca-chart-3);
51
+ --color-oca-chart-4: var(--oca-chart-4);
52
+ --color-oca-chart-neutral: var(--oca-chart-neutral);
53
+ --color-oca-chart-up: var(--oca-chart-up);
54
+ --color-oca-chart-down: var(--oca-chart-down);
48
55
  --color-oca-outline: var(--oca-outline);
49
56
  --color-oca-ink: var(--oca-ink);
50
57
  --color-oca-ink-card: var(--oca-ink-card);
@@ -68,6 +68,19 @@
68
68
  --oca-orange-light: #fb933c;
69
69
  --oca-orange: #f66d36;
70
70
  --oca-orange-deep: #ea580b;
71
+
72
+ /* Chart series: four categorical colours and a neutral, orange first. Each
73
+ clears 3:1 on the card and the page, and every pair stays apart in
74
+ normal vision and with red-green colour blindness (check-contrast.mjs
75
+ tests the set). Up and down are the status colours. */
76
+ --oca-chart-1: #ea580b;
77
+ --oca-chart-2: #2563eb;
78
+ --oca-chart-3: #9d2b77;
79
+ --oca-chart-4: #92400e;
80
+ --oca-chart-neutral: #8a8f96;
81
+ --oca-chart-up: var(--success);
82
+ --oca-chart-down: var(--destructive);
83
+ --oca-chart-grid: var(--border);
71
84
  --oca-sphere-from: #ff6f33;
72
85
  --oca-sphere-to: #ffd9c4;
73
86
  --oca-outline: #f2cfc3;
@@ -147,6 +160,8 @@
147
160
  /* The glyphs the family look writes as decoration: "§ " before a heading,
148
161
  "// " before a note, "← " before Back. */
149
162
  --oc-wallet-mark: none;
163
+ /* OcWalletButton's heading: shown on its own, hidden where SignMessage already leads. */
164
+ --oc-wallet-heading: block;
150
165
 
151
166
  /* The deck has no shadows. Overlays get one, so a dialog still separates. */
152
167
  --oc-shadow-2xs: none;
@@ -199,6 +214,11 @@
199
214
  --oca-table-head: #1e1e1e;
200
215
  --oca-accent-display: #f66d36;
201
216
  --oca-accent-ink: #f0835a;
217
+ --oca-chart-1: #f66d36;
218
+ --oca-chart-2: #3b82f6;
219
+ --oca-chart-3: #f9a8d4;
220
+ --oca-chart-4: #fde047;
221
+ --oca-chart-neutral: #62676e;
202
222
  --oca-outline: #3a2a24;
203
223
  /* In dark the ink band lifts off the canvas, so the deck's rhythm survives. */
204
224
  --oca-ink: #171717;
package/dist/styles.css CHANGED
@@ -13,3 +13,4 @@
13
13
  @import './styles/tokens.css';
14
14
  @import './styles/motion.css';
15
15
  @import './styles/code.css';
16
+ @import './styles/chart.css';
package/dist/tokens.d.mts CHANGED
@@ -1,31 +1,324 @@
1
+ declare const lightPalette: {
2
+ readonly accent: "#f4f4f4";
3
+ readonly accentDisplay: "#f55819";
4
+ readonly accentForeground: "#0a0a0a";
5
+ readonly accentInk: "#c73f09";
6
+ readonly background: "#fafafa";
7
+ readonly border: "#ececec";
8
+ readonly brand: "#f66d36";
9
+ readonly brandForeground: "#0a0a0a";
10
+ readonly card: "#ffffff";
11
+ readonly cardForeground: "#0a0a0a";
12
+ readonly chart1: "#ea580b";
13
+ readonly chart2: "#2563eb";
14
+ readonly chart3: "#9d2b77";
15
+ readonly chart4: "#92400e";
16
+ readonly chartDown: "#c2262e";
17
+ readonly chartGrid: "#ececec";
18
+ readonly chartNeutral: "#8a8f96";
19
+ readonly chartUp: "#15803d";
20
+ readonly codeAdded: "#86d39b";
21
+ readonly codeAddedLine: "#1a2c20";
22
+ readonly codeComment: "#909397";
23
+ readonly codeFunction: "#9db4ec";
24
+ readonly codeKeyword: "#e3a8c2";
25
+ readonly codeLine: "#2a2a2a";
26
+ readonly codeLink: "#9db4ec";
27
+ readonly codeMark: "#232323";
28
+ readonly codeNumber: "#fcb781";
29
+ readonly codePackage: "#e99a8f";
30
+ readonly codeProperty: "#9db4ec";
31
+ readonly codePunctuation: "#d5d8dc";
32
+ readonly codeRemoved: "#f19a9a";
33
+ readonly codeRemovedLine: "#2f1c1c";
34
+ readonly codeString: "#e99a8f";
35
+ readonly codeSurface: "#161616";
36
+ readonly codeTag: "#e3a8c2";
37
+ readonly codeType: "#8fd0c2";
38
+ readonly destructive: "#c2262e";
39
+ readonly destructiveForeground: "#ffffff";
40
+ readonly foreground: "#0a0a0a";
41
+ readonly hairlineStrong: "#dadada";
42
+ readonly info: "#1d4ed8";
43
+ readonly infoForeground: "#ffffff";
44
+ readonly ink: "#0a0a0a";
45
+ readonly inkCard: "#1e1e1e";
46
+ readonly inkEyebrow: "#f0835a";
47
+ readonly inkForeground: "#ffffff";
48
+ readonly inkLine: "#2a2a2a";
49
+ readonly inkMuted: "#d5d8dc";
50
+ readonly inkSubtle: "#909397";
51
+ readonly inkTitle: "#fcb781";
52
+ readonly input: "#8f8f8f";
53
+ readonly muted: "#f2f2f2";
54
+ readonly mutedForeground: "#54585e";
55
+ readonly ocWalletReady: "#15803d";
56
+ readonly ocWalletSurface: "#ffffff";
57
+ readonly orange: "#f66d36";
58
+ readonly orangeDeep: "#ea580b";
59
+ readonly orangeLight: "#fb933c";
60
+ readonly outline: "#f2cfc3";
61
+ readonly peach: "#fed8ab";
62
+ readonly popover: "#ffffff";
63
+ readonly popoverForeground: "#0a0a0a";
64
+ readonly primary: "#0a0a0a";
65
+ readonly primaryForeground: "#ffffff";
66
+ readonly ring: "#ea580b";
67
+ readonly secondary: "#ffffff";
68
+ readonly secondaryForeground: "#0a0a0a";
69
+ readonly skeleton: "#e8e8e8";
70
+ readonly sphereFrom: "#ff6f33";
71
+ readonly sphereTo: "#ffd9c4";
72
+ readonly subtleForeground: "#686c72";
73
+ readonly success: "#15803d";
74
+ readonly successForeground: "#ffffff";
75
+ readonly tableHead: "#ededed";
76
+ readonly warning: "#a15c07";
77
+ readonly warningForeground: "#ffffff";
78
+ };
79
+ declare const darkPalette: {
80
+ readonly accent: "#1e1e1e";
81
+ readonly accentDisplay: "#f66d36";
82
+ readonly accentForeground: "#fafafa";
83
+ readonly accentInk: "#f0835a";
84
+ readonly background: "#0a0a0a";
85
+ readonly bandLine: "#262626";
86
+ readonly border: "#2a2a2a";
87
+ readonly brand: "#f66d36";
88
+ readonly brandForeground: "#0a0a0a";
89
+ readonly card: "#161616";
90
+ readonly cardForeground: "#fafafa";
91
+ readonly chart1: "#f66d36";
92
+ readonly chart2: "#3b82f6";
93
+ readonly chart3: "#f9a8d4";
94
+ readonly chart4: "#fde047";
95
+ readonly chartDown: "#f87171";
96
+ readonly chartGrid: "#2a2a2a";
97
+ readonly chartNeutral: "#62676e";
98
+ readonly chartUp: "#4ade80";
99
+ readonly codeAdded: "#86d39b";
100
+ readonly codeAddedLine: "#132519";
101
+ readonly codeComment: "#909397";
102
+ readonly codeFunction: "#9db4ec";
103
+ readonly codeKeyword: "#e3a8c2";
104
+ readonly codeLine: "#2a2a2a";
105
+ readonly codeLink: "#9db4ec";
106
+ readonly codeMark: "#1b1b1b";
107
+ readonly codeNumber: "#fcb781";
108
+ readonly codePackage: "#e99a8f";
109
+ readonly codeProperty: "#9db4ec";
110
+ readonly codePunctuation: "#d5d8dc";
111
+ readonly codeRemoved: "#f19a9a";
112
+ readonly codeRemovedLine: "#271414";
113
+ readonly codeString: "#e99a8f";
114
+ readonly codeSurface: "#0e0e0e";
115
+ readonly codeTag: "#e3a8c2";
116
+ readonly codeType: "#8fd0c2";
117
+ readonly destructive: "#f87171";
118
+ readonly destructiveForeground: "#0a0a0a";
119
+ readonly foreground: "#fafafa";
120
+ readonly hairlineStrong: "#333333";
121
+ readonly iconRing: "#333333";
122
+ readonly iconTile: "#1e1e1e";
123
+ readonly info: "#93c5fd";
124
+ readonly infoForeground: "#0a0a0a";
125
+ readonly ink: "#171717";
126
+ readonly inkCard: "#1e1e1e";
127
+ readonly inkEyebrow: "#f0835a";
128
+ readonly inkForeground: "#ffffff";
129
+ readonly inkLine: "#2a2a2a";
130
+ readonly inkMuted: "#d5d8dc";
131
+ readonly inkSubtle: "#909397";
132
+ readonly inkTitle: "#fcb781";
133
+ readonly input: "#6a6a6a";
134
+ readonly muted: "#1e1e1e";
135
+ readonly mutedForeground: "#a3a6aa";
136
+ readonly ocWalletReady: "#4ade80";
137
+ readonly ocWalletSurface: "#161616";
138
+ readonly orange: "#f66d36";
139
+ readonly orangeDeep: "#ea580b";
140
+ readonly orangeLight: "#fb933c";
141
+ readonly outline: "#3a2a24";
142
+ readonly peach: "#fed8ab";
143
+ readonly popover: "#1a1a1a";
144
+ readonly popoverForeground: "#fafafa";
145
+ readonly primary: "#fafafa";
146
+ readonly primaryForeground: "#0a0a0a";
147
+ readonly ring: "#f66d36";
148
+ readonly secondary: "#1c1c1c";
149
+ readonly secondaryForeground: "#fafafa";
150
+ readonly skeleton: "#222222";
151
+ readonly sphereFrom: "#ff6f33";
152
+ readonly sphereTo: "#ffd9c4";
153
+ readonly subtleForeground: "#8b8e93";
154
+ readonly success: "#4ade80";
155
+ readonly successForeground: "#0a0a0a";
156
+ readonly tableHead: "#1e1e1e";
157
+ readonly warning: "#fbbf24";
158
+ readonly warningForeground: "#0a0a0a";
159
+ };
160
+
1
161
  declare const APP_ATTRIBUTE = "data-oc-app";
2
162
  declare const APP_ID = "ochk";
3
163
  declare const appColors: {
4
164
  readonly light: {
5
- readonly background: "#FAFAFA";
6
- readonly foreground: "#0A0A0A";
7
- readonly card: "#FFFFFF";
8
- readonly muted: "#F2F2F2";
9
- readonly mutedForeground: "#54585E";
10
- readonly subtleForeground: "#686C72";
11
- readonly border: "#ECECEC";
12
- readonly hairlineStrong: "#DADADA";
13
- readonly accentDisplay: "#F55819";
14
- readonly accentInk: "#C73F09";
15
- readonly ring: "#EA580B";
165
+ readonly accent: "#f4f4f4";
166
+ readonly accentDisplay: "#f55819";
167
+ readonly accentForeground: "#0a0a0a";
168
+ readonly accentInk: "#c73f09";
169
+ readonly background: "#fafafa";
170
+ readonly border: "#ececec";
171
+ readonly brand: "#f66d36";
172
+ readonly brandForeground: "#0a0a0a";
173
+ readonly card: "#ffffff";
174
+ readonly cardForeground: "#0a0a0a";
175
+ readonly chart1: "#ea580b";
176
+ readonly chart2: "#2563eb";
177
+ readonly chart3: "#9d2b77";
178
+ readonly chart4: "#92400e";
179
+ readonly chartDown: "#c2262e";
180
+ readonly chartGrid: "#ececec";
181
+ readonly chartNeutral: "#8a8f96";
182
+ readonly chartUp: "#15803d";
183
+ readonly codeAdded: "#86d39b";
184
+ readonly codeAddedLine: "#1a2c20";
185
+ readonly codeComment: "#909397";
186
+ readonly codeFunction: "#9db4ec";
187
+ readonly codeKeyword: "#e3a8c2";
188
+ readonly codeLine: "#2a2a2a";
189
+ readonly codeLink: "#9db4ec";
190
+ readonly codeMark: "#232323";
191
+ readonly codeNumber: "#fcb781";
192
+ readonly codePackage: "#e99a8f";
193
+ readonly codeProperty: "#9db4ec";
194
+ readonly codePunctuation: "#d5d8dc";
195
+ readonly codeRemoved: "#f19a9a";
196
+ readonly codeRemovedLine: "#2f1c1c";
197
+ readonly codeString: "#e99a8f";
198
+ readonly codeSurface: "#161616";
199
+ readonly codeTag: "#e3a8c2";
200
+ readonly codeType: "#8fd0c2";
201
+ readonly destructive: "#c2262e";
202
+ readonly destructiveForeground: "#ffffff";
203
+ readonly foreground: "#0a0a0a";
204
+ readonly hairlineStrong: "#dadada";
205
+ readonly info: "#1d4ed8";
206
+ readonly infoForeground: "#ffffff";
207
+ readonly ink: "#0a0a0a";
208
+ readonly inkCard: "#1e1e1e";
209
+ readonly inkEyebrow: "#f0835a";
210
+ readonly inkForeground: "#ffffff";
211
+ readonly inkLine: "#2a2a2a";
212
+ readonly inkMuted: "#d5d8dc";
213
+ readonly inkSubtle: "#909397";
214
+ readonly inkTitle: "#fcb781";
215
+ readonly input: "#8f8f8f";
216
+ readonly muted: "#f2f2f2";
217
+ readonly mutedForeground: "#54585e";
218
+ readonly ocWalletReady: "#15803d";
219
+ readonly ocWalletSurface: "#ffffff";
220
+ readonly orange: "#f66d36";
221
+ readonly orangeDeep: "#ea580b";
222
+ readonly orangeLight: "#fb933c";
223
+ readonly outline: "#f2cfc3";
224
+ readonly peach: "#fed8ab";
225
+ readonly popover: "#ffffff";
226
+ readonly popoverForeground: "#0a0a0a";
227
+ readonly primary: "#0a0a0a";
228
+ readonly primaryForeground: "#ffffff";
229
+ readonly ring: "#ea580b";
230
+ readonly secondary: "#ffffff";
231
+ readonly secondaryForeground: "#0a0a0a";
232
+ readonly skeleton: "#e8e8e8";
233
+ readonly sphereFrom: "#ff6f33";
234
+ readonly sphereTo: "#ffd9c4";
235
+ readonly subtleForeground: "#686c72";
236
+ readonly success: "#15803d";
237
+ readonly successForeground: "#ffffff";
238
+ readonly tableHead: "#ededed";
239
+ readonly warning: "#a15c07";
240
+ readonly warningForeground: "#ffffff";
16
241
  };
17
242
  readonly dark: {
18
- readonly background: "#0A0A0A";
19
- readonly foreground: "#FAFAFA";
243
+ readonly accent: "#1e1e1e";
244
+ readonly accentDisplay: "#f66d36";
245
+ readonly accentForeground: "#fafafa";
246
+ readonly accentInk: "#f0835a";
247
+ readonly background: "#0a0a0a";
248
+ readonly bandLine: "#262626";
249
+ readonly border: "#2a2a2a";
250
+ readonly brand: "#f66d36";
251
+ readonly brandForeground: "#0a0a0a";
20
252
  readonly card: "#161616";
21
- readonly muted: "#1E1E1E";
22
- readonly mutedForeground: "#A3A6AA";
23
- readonly subtleForeground: "#8B8E93";
24
- readonly border: "#2A2A2A";
253
+ readonly cardForeground: "#fafafa";
254
+ readonly chart1: "#f66d36";
255
+ readonly chart2: "#3b82f6";
256
+ readonly chart3: "#f9a8d4";
257
+ readonly chart4: "#fde047";
258
+ readonly chartDown: "#f87171";
259
+ readonly chartGrid: "#2a2a2a";
260
+ readonly chartNeutral: "#62676e";
261
+ readonly chartUp: "#4ade80";
262
+ readonly codeAdded: "#86d39b";
263
+ readonly codeAddedLine: "#132519";
264
+ readonly codeComment: "#909397";
265
+ readonly codeFunction: "#9db4ec";
266
+ readonly codeKeyword: "#e3a8c2";
267
+ readonly codeLine: "#2a2a2a";
268
+ readonly codeLink: "#9db4ec";
269
+ readonly codeMark: "#1b1b1b";
270
+ readonly codeNumber: "#fcb781";
271
+ readonly codePackage: "#e99a8f";
272
+ readonly codeProperty: "#9db4ec";
273
+ readonly codePunctuation: "#d5d8dc";
274
+ readonly codeRemoved: "#f19a9a";
275
+ readonly codeRemovedLine: "#271414";
276
+ readonly codeString: "#e99a8f";
277
+ readonly codeSurface: "#0e0e0e";
278
+ readonly codeTag: "#e3a8c2";
279
+ readonly codeType: "#8fd0c2";
280
+ readonly destructive: "#f87171";
281
+ readonly destructiveForeground: "#0a0a0a";
282
+ readonly foreground: "#fafafa";
25
283
  readonly hairlineStrong: "#333333";
26
- readonly accentDisplay: "#F66D36";
27
- readonly accentInk: "#F0835A";
28
- readonly ring: "#F66D36";
284
+ readonly iconRing: "#333333";
285
+ readonly iconTile: "#1e1e1e";
286
+ readonly info: "#93c5fd";
287
+ readonly infoForeground: "#0a0a0a";
288
+ readonly ink: "#171717";
289
+ readonly inkCard: "#1e1e1e";
290
+ readonly inkEyebrow: "#f0835a";
291
+ readonly inkForeground: "#ffffff";
292
+ readonly inkLine: "#2a2a2a";
293
+ readonly inkMuted: "#d5d8dc";
294
+ readonly inkSubtle: "#909397";
295
+ readonly inkTitle: "#fcb781";
296
+ readonly input: "#6a6a6a";
297
+ readonly muted: "#1e1e1e";
298
+ readonly mutedForeground: "#a3a6aa";
299
+ readonly ocWalletReady: "#4ade80";
300
+ readonly ocWalletSurface: "#161616";
301
+ readonly orange: "#f66d36";
302
+ readonly orangeDeep: "#ea580b";
303
+ readonly orangeLight: "#fb933c";
304
+ readonly outline: "#3a2a24";
305
+ readonly peach: "#fed8ab";
306
+ readonly popover: "#1a1a1a";
307
+ readonly popoverForeground: "#fafafa";
308
+ readonly primary: "#fafafa";
309
+ readonly primaryForeground: "#0a0a0a";
310
+ readonly ring: "#f66d36";
311
+ readonly secondary: "#1c1c1c";
312
+ readonly secondaryForeground: "#fafafa";
313
+ readonly skeleton: "#222222";
314
+ readonly sphereFrom: "#ff6f33";
315
+ readonly sphereTo: "#ffd9c4";
316
+ readonly subtleForeground: "#8b8e93";
317
+ readonly success: "#4ade80";
318
+ readonly successForeground: "#0a0a0a";
319
+ readonly tableHead: "#1e1e1e";
320
+ readonly warning: "#fbbf24";
321
+ readonly warningForeground: "#0a0a0a";
29
322
  };
30
323
  readonly brand: {
31
324
  readonly orange: "#F66D36";
@@ -41,4 +334,4 @@ declare const appFonts: {
41
334
  readonly mono: "'OCA JetBrains Mono', 'OCA JetBrains Mono Fallback', ui-monospace, monospace";
42
335
  };
43
336
 
44
- export { APP_ATTRIBUTE, APP_ID, appColors, appFonts };
337
+ export { APP_ATTRIBUTE, APP_ID, appColors, appFonts, darkPalette, lightPalette };