termcast 1.5.0 → 1.6.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/build.d.ts.map +1 -1
- package/dist/build.js +22 -5
- package/dist/build.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +7 -1
- package/dist/compile.js.map +1 -1
- package/dist/components/bar-graph.d.ts +4 -4
- package/dist/components/bar-graph.js +2 -2
- package/dist/components/list.d.ts +7 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +74 -11
- package/dist/components/list.js.map +1 -1
- package/dist/examples/list-detail-height-ratchet.d.ts +2 -0
- package/dist/examples/list-detail-height-ratchet.d.ts.map +1 -0
- package/dist/examples/list-detail-height-ratchet.js +26 -0
- package/dist/examples/list-detail-height-ratchet.js.map +1 -0
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +1 -0
- package/dist/extensions/dev.js.map +1 -1
- package/dist/globals.js +8 -0
- package/dist/globals.js.map +1 -1
- package/dist/package-json.d.ts +2 -0
- package/dist/package-json.d.ts.map +1 -1
- package/dist/package-json.js +20 -17
- package/dist/package-json.js.map +1 -1
- package/dist/profiler.d.ts +2 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +390 -0
- package/dist/profiler.js.map +1 -0
- package/package.json +14 -15
- package/src/build.tsx +27 -5
- package/src/cli.tsx +0 -0
- package/src/compile.tsx +9 -1
- package/src/compile.vitest.tsx +8 -8
- package/src/components/bar-graph.tsx +9 -9
- package/src/components/list.tsx +92 -11
- package/src/examples/action-shortcut.vitest.tsx +4 -4
- package/src/examples/actions-context.vitest.tsx +2 -2
- package/src/examples/bar-graph-weekly.vitest.tsx +97 -97
- package/src/examples/github.vitest.tsx +17 -26
- package/src/examples/graph-bar-chart.vitest.tsx +36 -36
- package/src/examples/graph-polymarket.vitest.tsx +24 -24
- package/src/examples/graph-row.vitest.tsx +4 -4
- package/src/examples/graph-styles.vitest.tsx +65 -65
- package/src/examples/horizontal-bar-graph-weekly.vitest.tsx +52 -52
- package/src/examples/list-detail-height-ratchet.tsx +48 -0
- package/src/examples/list-detail-height-ratchet.vitest.tsx +161 -0
- package/src/examples/list-detail-metadata.vitest.tsx +49 -49
- package/src/examples/list-dropdown-default.vitest.tsx +27 -27
- package/src/examples/list-fetch-data.vitest.tsx +3 -3
- package/src/examples/list-loading-empty-view.vitest.tsx +1 -1
- package/src/examples/list-no-actions.vitest.tsx +3 -3
- package/src/examples/list-scrollbox.vitest.tsx +6 -6
- package/src/examples/list-spacing-mode.vitest.tsx +1 -1
- package/src/examples/list-with-detail.vitest.tsx +9 -9
- package/src/examples/list-with-dropdown.vitest.tsx +6 -6
- package/src/examples/list-with-sections.vitest.tsx +20 -20
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-candle-chart.vitest.tsx +61 -59
- package/src/examples/simple-navigation.vitest.tsx +25 -25
- package/src/examples/simple-progress-bar.vitest.tsx +7 -7
- package/src/examples/swift-extension.vitest.tsx +3 -3
- package/src/examples/toast-action.vitest.tsx +4 -4
- package/src/extensions/dev.tsx +2 -1
- package/src/extensions/dev.vitest.tsx +17 -17
- package/src/globals.ts +9 -0
- package/src/package-json.tsx +24 -23
- package/src/profiler.tsx +487 -0
|
@@ -36,7 +36,7 @@ test('initial render shows bar chart for Monthly Budget', async () => {
|
|
|
36
36
|
|
|
37
37
|
›Monthly Budget Spent / Remaining / Savings │ ┌Spent: 78.6%┐
|
|
38
38
|
Disk Usage System / Apps / Media / Free │
|
|
39
|
-
|
|
39
|
+
Investm...ortfoli Stocks / Bon.../ Real Estate │
|
|
40
40
|
CPU Time User / System / IO Wait / Idle │ ────────────────────────────────────────────
|
|
41
41
|
Revenue by Product 6 product lines │
|
|
42
42
|
A/B Test Split Control vs Variant (50/50) │ Total: $6,174
|
|
@@ -45,18 +45,18 @@ test('initial render shows bar chart for Monthly Budget', async () => {
|
|
|
45
45
|
Equal Distribution 10 equal segments │
|
|
46
46
|
Custom Colors Explicit color per segment │ Saved: 10.0%
|
|
47
47
|
Needs vs Wants 50/30/20 budget rule │
|
|
48
|
-
Stress Test (20 items
|
|
48
|
+
Stress Test (20 items)Many small...al segments │
|
|
49
|
+
│
|
|
50
|
+
│
|
|
51
|
+
│
|
|
52
|
+
│
|
|
53
|
+
│
|
|
54
|
+
│
|
|
55
|
+
│
|
|
49
56
|
│
|
|
50
57
|
│
|
|
51
58
|
↵ open detail ↑↓ navigate ^k actions :vi │
|
|
52
59
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
60
|
"
|
|
61
61
|
`)
|
|
62
62
|
expect(text).toContain('Monthly Budget')
|
|
@@ -93,7 +93,7 @@ test('navigate to Market Share - dominant + tiny segments', async () => {
|
|
|
93
93
|
|
|
94
94
|
Monthly Budget Spent / Remaining / Savings │ ┌Leader: 85.0%┐
|
|
95
95
|
Disk Usage System / Apps / Media / Free │
|
|
96
|
-
|
|
96
|
+
Investm...ortfoli Stocks / Bon.../ Real Estate │
|
|
97
97
|
CPU Time User / System / IO Wait / Idle │ ────────────────────────────────────────────
|
|
98
98
|
Revenue by Product 6 product lines │
|
|
99
99
|
A/B Test Split Control vs Variant (50/50) │ HHI: 7,264 (monopoly)
|
|
@@ -102,18 +102,18 @@ test('navigate to Market Share - dominant + tiny segments', async () => {
|
|
|
102
102
|
Equal Distribution 10 equal segments │
|
|
103
103
|
Custom Colors Explicit color per segment │ Visible: Tiny ones hidden
|
|
104
104
|
Needs vs Wants 50/30/20 budget rule │
|
|
105
|
-
Stress Test (20 items
|
|
105
|
+
Stress Test (20 items)Many small...al segments │
|
|
106
|
+
│
|
|
107
|
+
│
|
|
108
|
+
│
|
|
109
|
+
│
|
|
110
|
+
│
|
|
111
|
+
│
|
|
112
|
+
│
|
|
106
113
|
│
|
|
107
114
|
│
|
|
108
115
|
↵ open detail ↑↓ navigate ^k actions :vi │
|
|
109
116
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
117
|
"
|
|
118
118
|
`)
|
|
119
119
|
expect(text).toContain('Market Share')
|
|
@@ -149,7 +149,7 @@ test('navigate to Equal Distribution - 10 segments', async () => {
|
|
|
149
149
|
|
|
150
150
|
Monthly Budget Spent / Remaining / Savings │
|
|
151
151
|
Disk Usage System / Apps / Media / Free │
|
|
152
|
-
|
|
152
|
+
Investm...ortfoli Stocks / Bon.../ Real Estate │ ────────────────────────────────────────────
|
|
153
153
|
CPU Time User / System / IO Wait / Idle │
|
|
154
154
|
Revenue by Product 6 product lines │ Segments: 10
|
|
155
155
|
A/B Test Split Control vs Variant (50/50) │
|
|
@@ -158,18 +158,18 @@ test('navigate to Equal Distribution - 10 segments', async () => {
|
|
|
158
158
|
›Equal Distribution 10 equal segments │
|
|
159
159
|
Custom Colors Explicit color per segment │
|
|
160
160
|
Needs vs Wants 50/30/20 budget rule │
|
|
161
|
-
Stress Test (20 items
|
|
161
|
+
Stress Test (20 items)Many small...al segments │
|
|
162
|
+
│
|
|
163
|
+
│
|
|
164
|
+
│
|
|
165
|
+
│
|
|
166
|
+
│
|
|
167
|
+
│
|
|
168
|
+
│
|
|
162
169
|
│
|
|
163
170
|
│
|
|
164
171
|
↵ open detail ↑↓ navigate ^k actions :vi │
|
|
165
172
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
173
|
"
|
|
174
174
|
`)
|
|
175
175
|
expect(text).toContain('Equal Distribution')
|
|
@@ -205,7 +205,7 @@ test('navigate to Stress Test - 20 segments', async () => {
|
|
|
205
205
|
|
|
206
206
|
Monthly Budget Spent / Remaining / Savings │
|
|
207
207
|
Disk Usage System / Apps / Media / Free │
|
|
208
|
-
|
|
208
|
+
Investm...ortfoli Stocks / Bon.../ Real Estate │ ────────────────────────────────────────────
|
|
209
209
|
CPU Time User / System / IO Wait / Idle │
|
|
210
210
|
Revenue by Product 6 product lines │ Segments: 20
|
|
211
211
|
A/B Test Split Control vs Variant (50/50) │
|
|
@@ -214,18 +214,18 @@ test('navigate to Stress Test - 20 segments', async () => {
|
|
|
214
214
|
Equal Distribution 10 equal segments │
|
|
215
215
|
Custom Colors Explicit color per segment │
|
|
216
216
|
Needs vs Wants 50/30/20 budget rule │
|
|
217
|
-
›Stress Test (20 items
|
|
217
|
+
›Stress Test (20 items)Many small...al segments │
|
|
218
|
+
│
|
|
219
|
+
│
|
|
220
|
+
│
|
|
221
|
+
│
|
|
222
|
+
│
|
|
223
|
+
│
|
|
224
|
+
│
|
|
218
225
|
│
|
|
219
226
|
│
|
|
220
227
|
↵ open detail ↑↓ navigate ^k actions :vi │
|
|
221
228
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
229
|
"
|
|
230
230
|
`)
|
|
231
231
|
expect(text).toContain('Stress Test')
|
|
@@ -33,14 +33,14 @@ test('polymarket list with graph detail renders correctly', async () => {
|
|
|
33
33
|
> Search markets...
|
|
34
34
|
|
|
35
35
|
Trending Markets │ 100%│
|
|
36
|
-
›Bitcoin above $100k by EOY Crypto
|
|
37
|
-
ETH above $5k by Q2 2026 Crypto
|
|
38
|
-
Fed cuts rates below 4% Economics
|
|
39
|
-
S&P 500 reaches 6,000 Markets
|
|
40
|
-
Presidential pardon for SBF Politics
|
|
41
|
-
AGI announced by major lab Tech
|
|
42
|
-
Solana flips Ethereum market cap Crypto
|
|
43
|
-
US enters recession in 2026 Economics
|
|
36
|
+
›Bitcoin above $100k by EOY Crypto 72% │ │ ⣠⣀
|
|
37
|
+
ETH above $5k by Q2 2026 Crypto 38% │ │ ⢠⣀ ⢀⣴⣷⡀ ⣰⣿⣿⣷⣀⣤⣴⣦⢀⣴
|
|
38
|
+
Fed cuts rates below 4% Economics 61% │ │⣠⣴⡀ ⢀ ⢠⣿⣿⣷⡀ ⣀⣤⣀⣀⣾⣿⣿⣿⣶⣴⣿⣿⣶⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
39
|
+
S&P 500 reaches 6,000 Markets 55% │ 50%│⣿⣿⣷⣄⢀⣴⣿⣿⣾⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
40
|
+
Presidential pardon for SBF Politics 8% │ │⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
41
|
+
AGI announced by major lab Tech 12% │ │⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
42
|
+
Solana flips Ethereum market cap Crypto 18% │ 0%│⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
43
|
+
US enters recession in 2026 Economics 28% │ 30d 20d 10d Now
|
|
44
44
|
│
|
|
45
45
|
│ Odds: 72% Yes
|
|
46
46
|
│
|
|
@@ -50,10 +50,10 @@ test('polymarket list with graph detail renders correctly', async () => {
|
|
|
50
50
|
│
|
|
51
51
|
│ ────────────────────────────────────────────
|
|
52
52
|
│
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
│ Probability (30d)
|
|
54
|
+
│
|
|
55
|
+
│
|
|
56
|
+
↵ buy yes ↑↓ navigate ^k actions :vim │
|
|
57
57
|
|
|
58
58
|
"
|
|
59
59
|
`)
|
|
@@ -96,14 +96,14 @@ test('navigating to different market updates the graph', async () => {
|
|
|
96
96
|
> Search markets...
|
|
97
97
|
|
|
98
98
|
Trending Markets │ 100%│
|
|
99
|
-
Bitcoin above $100k by EOY Crypto
|
|
100
|
-
›ETH above $5k by Q2 2026 Crypto
|
|
101
|
-
Fed cuts rates below 4% Economics
|
|
102
|
-
S&P 500 reaches 6,000 Markets
|
|
103
|
-
Presidential pardon for SBF Politics
|
|
104
|
-
AGI announced by major lab Tech
|
|
105
|
-
Solana flips Ethereum market cap Crypto
|
|
106
|
-
US enters recession in 2026 Economics
|
|
99
|
+
Bitcoin above $100k by EOY Crypto 72% │ │
|
|
100
|
+
›ETH above $5k by Q2 2026 Crypto 38% │ │ ⣀
|
|
101
|
+
Fed cuts rates below 4% Economics 61% │ │⣿⣿⣆ ⢀⡀ ⣀⣾⣶⣄ ⢀⣤⣦ ⢀⡀
|
|
102
|
+
S&P 500 reaches 6,000 Markets 55% │ 50%│⣿⣿⣿⣷⣴⣾⣿⣿⣿⣿⣿⣿⣿⣦⣤⣶⣷⣦⣤⣿⣿⣿⣷⣤⣀⣤⣤⣀⢀⣴⣿⣿⣧ ⣀⣀⡀ ⢀
|
|
103
|
+
Presidential pardon for SBF Politics 8% │ │⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣴⣿
|
|
104
|
+
AGI announced by major lab Tech 12% │ │⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
105
|
+
Solana flips Ethereum market cap Crypto 18% │ 0%│⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
106
|
+
US enters recession in 2026 Economics 28% │ 30d 20d 10d Now
|
|
107
107
|
│
|
|
108
108
|
│ Odds: 38% Yes
|
|
109
109
|
│
|
|
@@ -113,10 +113,10 @@ test('navigating to different market updates the graph', async () => {
|
|
|
113
113
|
│
|
|
114
114
|
│ ────────────────────────────────────────────
|
|
115
115
|
│
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
│ Probability (30d)
|
|
117
|
+
│
|
|
118
|
+
│
|
|
119
|
+
↵ buy yes ↑↓ navigate ^k actions :vim │
|
|
120
120
|
|
|
121
121
|
"
|
|
122
122
|
`)
|
|
@@ -37,7 +37,7 @@ test('side detail shows two graphs in a row', async () => {
|
|
|
37
37
|
Revenue vs Expenses Striped comparison │ █
|
|
38
38
|
Weather Station Temperature + Humidity │ Area chart (left) shows CPU with high █
|
|
39
39
|
Mixed Variants Area left, Striped right │ variance. █
|
|
40
|
-
Sparse ...(Zeros
|
|
40
|
+
Sparse ... (Zeros)Filled vs St...h zero values │ Filled chart (right) shows memory steadily █
|
|
41
41
|
│ climbing. █
|
|
42
42
|
│ █
|
|
43
43
|
│ 100│ ⡀ 100│ █
|
|
@@ -156,7 +156,7 @@ test('esc returns from detail to list', async () => {
|
|
|
156
156
|
Revenue vs Expenses Striped comparison │ █
|
|
157
157
|
Weather Station Temperature + Humidity │ Area chart (left) shows CPU with high █
|
|
158
158
|
Mixed Variants Area left, Striped right │ variance. █
|
|
159
|
-
Sparse ...(Zeros
|
|
159
|
+
Sparse ... (Zeros)Filled vs St...h zero values │ Filled chart (right) shows memory steadily █
|
|
160
160
|
│ climbing. █
|
|
161
161
|
│ █
|
|
162
162
|
│ 100│ ⡀ 100│ █
|
|
@@ -213,7 +213,7 @@ test('sparse data with zeros shows baseline', async () => {
|
|
|
213
213
|
Revenue vs Expenses Striped comparison │ █
|
|
214
214
|
Weather Station Temperature + Humidity │ Data with many zero values should show a █
|
|
215
215
|
Mixed Variants Area left, Striped right │ thin █
|
|
216
|
-
›Sparse ...(Zeros
|
|
216
|
+
›Sparse ... (Zeros)Filled vs St...h zero values │ baseline line so bars are visible even at █
|
|
217
217
|
│ zero. █
|
|
218
218
|
│ █
|
|
219
219
|
│ 100│ ▖ 100│ ▖ █
|
|
@@ -269,7 +269,7 @@ test('navigate to striped pair', async () => {
|
|
|
269
269
|
›Revenue vs Expenses Striped comparison │ █
|
|
270
270
|
Weather Station Temperature + Humidity │ Revenue growing faster than expenses. █
|
|
271
271
|
Mixed Variants Area left, Striped right │ Profit margin widening over the year. █
|
|
272
|
-
Sparse ...(Zeros
|
|
272
|
+
Sparse ... (Zeros)Filled vs St...h zero values │ - Revenue: $10k** to **$75k █
|
|
273
273
|
│ - Expenses: $8k** to **$45k
|
|
274
274
|
│
|
|
275
275
|
│ 78│ ▖ 47│ ▖
|
|
@@ -32,19 +32,19 @@ test('area style renders braille characters', async () => {
|
|
|
32
32
|
|
|
33
33
|
> Search...
|
|
34
34
|
|
|
35
|
-
›Area -
|
|
36
|
-
Area - ... Series CPU + M...
|
|
37
|
-
Area
|
|
38
|
-
Area
|
|
39
|
-
Filled...RevenueSolid
|
|
40
|
-
Filled...
|
|
41
|
-
Filled ...
|
|
42
|
-
Filled
|
|
43
|
-
Striped
|
|
44
|
-
Striped
|
|
45
|
-
Striped...
|
|
46
|
-
Striped
|
|
47
|
-
Striped
|
|
35
|
+
›Area - Stock PriceOrange ...lle dots │ 211│ ⣠ ▲
|
|
36
|
+
Area - ...i Series CPU + M...overlay │ │ ⢀⣴⣦⣼⣿ █
|
|
37
|
+
Area - Wave Purple + M...sine/cosine │ │ ⢠⣦⣄⣴⣿⣿⣿⣿⣿ █
|
|
38
|
+
Area - ... Revenu Single ...to range │ 189│ ⢀⣴⣷⣦⣿⣿⣿⣿⣿⣿⣿⣿⣿ █
|
|
39
|
+
Filled ... RevenueSolid b...th chart │ │ ⣠⣀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ▀
|
|
40
|
+
Filled ...een Tem Daily t...re curve │ │ ⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
41
|
+
Filled ...llow CPUHigh co... on dark │ 167│ ⢀⣴⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
42
|
+
Filled -...nta Wave Smooth... blocks │ │ ⣰⣤⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
43
|
+
Striped -...le/Orang Warm a...colors │ │⢀⣴⡄⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
44
|
+
Striped - Blue/Re High co... stripes │ 145│⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
45
|
+
Striped ...e Defaultprimar...o prop) │ 1 5 10 15 20
|
|
46
|
+
Striped - Green/Yello Natur...spired │
|
|
47
|
+
Striped ...d/MagentaWarm g...nt feel │ ─────────────────────────────────
|
|
48
48
|
│
|
|
49
49
|
│ Variant: area
|
|
50
50
|
↵ open detail ↑↓ navigate ^k act │ ▼
|
|
@@ -84,19 +84,19 @@ test('filled style renders block characters', async () => {
|
|
|
84
84
|
|
|
85
85
|
> Search...
|
|
86
86
|
|
|
87
|
-
Area -
|
|
88
|
-
Area - ... Series CPU + M...
|
|
89
|
-
Area
|
|
90
|
-
Area
|
|
91
|
-
›Filled...RevenueSolid
|
|
92
|
-
Filled...
|
|
93
|
-
Filled ...
|
|
94
|
-
Filled
|
|
95
|
-
Striped
|
|
96
|
-
Striped
|
|
97
|
-
Striped...
|
|
98
|
-
Striped
|
|
99
|
-
Striped
|
|
87
|
+
Area - Stock PriceOrange ...lle dots │ Revenue Growth ▲
|
|
88
|
+
Area - ...i Series CPU + M...overlay │ █
|
|
89
|
+
Area - Wave Purple + M...sine/cosine │
|
|
90
|
+
Area - ... Revenu Single ...to range │ Quarterly revenue from $10k** to
|
|
91
|
+
›Filled ... RevenueSolid b...th chart │ **$75k.
|
|
92
|
+
Filled ...een Tem Daily t...re curve │ Q1: $10k → Q2: $25k (+150%)
|
|
93
|
+
Filled ...llow CPUHigh co... on dark │ Q2: $25k → Q3: $50k (+100%)
|
|
94
|
+
Filled -...nta Wave Smooth... blocks │ Q3: $50k → Q4: $75k (+50%)
|
|
95
|
+
Striped -...le/Orang Warm a...colors │
|
|
96
|
+
Striped - Blue/Re High co... stripes │ 78│ ▖
|
|
97
|
+
Striped ...e Defaultprimar...o prop) │ │ ▖▌▖▌▌
|
|
98
|
+
Striped - Green/Yello Natur...spired │ │ ▖▖▖▌▌▌▌▌▌
|
|
99
|
+
Striped ...d/MagentaWarm g...nt feel │ 54│ ▖▌▌▌▌▌▌▌▌▌▌
|
|
100
100
|
│ │ ▖▖▖▌▌▌▌▌▌▌▌▌▌▌▌
|
|
101
101
|
│ │ ▖ ▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
102
102
|
↵ open detail ↑↓ navigate ^k act │ 31│ ▖▌▌▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌ ▼
|
|
@@ -136,19 +136,19 @@ test('striped style renders alternating columns', async () => {
|
|
|
136
136
|
|
|
137
137
|
> Search...
|
|
138
138
|
|
|
139
|
-
Area -
|
|
140
|
-
Area - ... Series CPU + M...
|
|
141
|
-
Area
|
|
142
|
-
Area
|
|
143
|
-
Filled...RevenueSolid
|
|
144
|
-
Filled...
|
|
145
|
-
Filled ...
|
|
146
|
-
Filled
|
|
147
|
-
›Striped
|
|
148
|
-
Striped
|
|
149
|
-
Striped...
|
|
150
|
-
Striped
|
|
151
|
-
Striped
|
|
139
|
+
Area - Stock PriceOrange ...lle dots │ 211│ ▖ ▲
|
|
140
|
+
Area - ...i Series CPU + M...overlay │ │ ▖▖▌▌ █
|
|
141
|
+
Area - Wave Purple + M...sine/cosine │ │ ▖▖▖▌▌▌▌▌ █
|
|
142
|
+
Area - ... Revenu Single ...to range │ 189│ ▖▖▌▖▌▌▌▌▌▌▌▌▌
|
|
143
|
+
Filled ... RevenueSolid b...th chart │ │ ▖▖▖▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
144
|
+
Filled ...een Tem Daily t...re curve │ │ ▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
145
|
+
Filled ...llow CPUHigh co... on dark │ 167│ ▖▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
146
|
+
Filled -...nta Wave Smooth... blocks │ │ ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
147
|
+
›Striped -...le/Orang Warm a...colors │ │▖▌▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
148
|
+
Striped - Blue/Re High co... stripes │ 145│▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
|
|
149
|
+
Striped ...e Defaultprimar...o prop) │ 1 5 10 15 20
|
|
150
|
+
Striped - Green/Yello Natur...spired │
|
|
151
|
+
Striped ...d/MagentaWarm g...nt feel │ ─────────────────────────────────
|
|
152
152
|
│
|
|
153
153
|
│ Even cols: Purple
|
|
154
154
|
↵ open detail ↑↓ navigate ^k act │ ▼
|
|
@@ -186,19 +186,19 @@ test('markdown + metadata detail view in list', async () => {
|
|
|
186
186
|
|
|
187
187
|
> Search...
|
|
188
188
|
|
|
189
|
-
Area -
|
|
190
|
-
›Area - ... Series CPU + M...
|
|
191
|
-
Area
|
|
192
|
-
Area
|
|
193
|
-
Filled...RevenueSolid
|
|
194
|
-
Filled...
|
|
195
|
-
Filled ...
|
|
196
|
-
Filled
|
|
197
|
-
Striped
|
|
198
|
-
Striped
|
|
199
|
-
Striped...
|
|
200
|
-
Striped
|
|
201
|
-
Striped
|
|
189
|
+
Area - Stock PriceOrange ...lle dots │ System Metrics ▲
|
|
190
|
+
›Area - ...i Series CPU + M...overlay │ ▀
|
|
191
|
+
Area - Wave Purple + M...sine/cosine │
|
|
192
|
+
Area - ... Revenu Single ...to range │ CPU usage (blue) vs memory usage (
|
|
193
|
+
Filled ... RevenueSolid b...th chart │ green) over 24 hours.
|
|
194
|
+
Filled ...een Tem Daily t...re curve │ - Peak CPU at 90% around 15h
|
|
195
|
+
Filled ...llow CPUHigh co... on dark │ - Memory steadily climbing to 86%
|
|
196
|
+
Filled -...nta Wave Smooth... blocks │ - CPU has high variance, memory
|
|
197
|
+
Striped -...le/Orang Warm a...colors │ is monotonic
|
|
198
|
+
Striped - Blue/Re High co... stripes │
|
|
199
|
+
Striped ...e Defaultprimar...o prop) │ 100│
|
|
200
|
+
Striped - Green/Yello Natur...spired │ │ ⣠⣶⣧ ⣀⣠⣤⣶
|
|
201
|
+
Striped ...d/MagentaWarm g...nt feel │ 75│ ⢀⣴⣧ ⢀⣰⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿
|
|
202
202
|
│ │ ⢀⣾⣿⣿⣧⢀⣀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
203
203
|
│ │ ⢀⣾⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
204
204
|
↵ open detail ↑↓ navigate ^k act │ 50│⣀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ▼
|
|
@@ -297,19 +297,19 @@ test('esc returns from detail to list', async () => {
|
|
|
297
297
|
|
|
298
298
|
> Search...
|
|
299
299
|
|
|
300
|
-
›Area -
|
|
301
|
-
Area - ... Series CPU + M...
|
|
302
|
-
Area
|
|
303
|
-
Area
|
|
304
|
-
Filled...RevenueSolid
|
|
305
|
-
Filled...
|
|
306
|
-
Filled ...
|
|
307
|
-
Filled
|
|
308
|
-
Striped
|
|
309
|
-
Striped
|
|
310
|
-
Striped...
|
|
311
|
-
Striped
|
|
312
|
-
Striped
|
|
300
|
+
›Area - Stock PriceOrange ...lle dots │ 211│ ⣠ ▲
|
|
301
|
+
Area - ...i Series CPU + M...overlay │ │ ⢀⣴⣦⣼⣿ █
|
|
302
|
+
Area - Wave Purple + M...sine/cosine │ │ ⢠⣦⣄⣴⣿⣿⣿⣿⣿ █
|
|
303
|
+
Area - ... Revenu Single ...to range │ 189│ ⢀⣴⣷⣦⣿⣿⣿⣿⣿⣿⣿⣿⣿ █
|
|
304
|
+
Filled ... RevenueSolid b...th chart │ │ ⣠⣀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ▀
|
|
305
|
+
Filled ...een Tem Daily t...re curve │ │ ⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
306
|
+
Filled ...llow CPUHigh co... on dark │ 167│ ⢀⣴⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
307
|
+
Filled -...nta Wave Smooth... blocks │ │ ⣰⣤⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
308
|
+
Striped -...le/Orang Warm a...colors │ │⢀⣴⡄⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
309
|
+
Striped - Blue/Re High co... stripes │ 145│⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
310
|
+
Striped ...e Defaultprimar...o prop) │ 1 5 10 15 20
|
|
311
|
+
Striped - Green/Yello Natur...spired │
|
|
312
|
+
Striped ...d/MagentaWarm g...nt feel │ ─────────────────────────────────
|
|
313
313
|
│
|
|
314
314
|
│ Variant: area
|
|
315
315
|
↵ open detail ↑↓ navigate ^k act │ ▼
|
|
@@ -34,29 +34,29 @@ test('renders horizontal stacked rows and compact legend', async () => {
|
|
|
34
34
|
|
|
35
35
|
> Search...
|
|
36
36
|
|
|
37
|
-
›
|
|
37
|
+
›Weekl...affi Direct / Org...across 6 days │ category distribution legend
|
|
38
38
|
Revenue by Region Americas / EMEA / APAC │ ──────── ──────────── ───────────────
|
|
39
|
-
Lon...
|
|
40
|
-
Man...
|
|
39
|
+
Lon...belsThe left label...g legend space │ Mon ╻╻╻╻╻╻╻╻╻╻ ● Direct 42%
|
|
40
|
+
Man...riesLegend grows o... content needs │ Tue ╻╻╻╻╻╻╻╻╻╻ ● Organic 35%
|
|
41
41
|
│ Wed ╻╻╻╻╻ ● Referral 23%
|
|
42
42
|
│ Thu ╻╻╻╻╻
|
|
43
43
|
│ Fri ╻╻╻╻╻╻╻╻╻╻╻╻
|
|
44
44
|
│ Sat ╻╻╻╻╻╻╻╻╻╻
|
|
45
|
+
│
|
|
46
|
+
│
|
|
47
|
+
│
|
|
48
|
+
│
|
|
49
|
+
│
|
|
50
|
+
│
|
|
51
|
+
│
|
|
52
|
+
│
|
|
53
|
+
│
|
|
54
|
+
│
|
|
55
|
+
│
|
|
56
|
+
│
|
|
57
|
+
│
|
|
45
58
|
↵ open detail ↑↓ navigate ^k actions │
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
60
|
"
|
|
61
61
|
`)
|
|
62
62
|
expect(text).toContain('Mon')
|
|
@@ -65,13 +65,13 @@ test('renders horizontal stacked rows and compact legend', async () => {
|
|
|
65
65
|
}, 30000)
|
|
66
66
|
|
|
67
67
|
test('long labels truncate and leave legend visible', async () => {
|
|
68
|
-
await session.text({ waitFor: (content) => content.includes('
|
|
68
|
+
await session.text({ waitFor: (content) => content.includes('The left label'), timeout: 10000 })
|
|
69
69
|
session.sendKey('down')
|
|
70
70
|
session.sendKey('down')
|
|
71
71
|
|
|
72
72
|
const text = await session.text({
|
|
73
73
|
waitFor: (content) => {
|
|
74
|
-
return content.includes('›Lon
|
|
74
|
+
return content.includes('›Lon') && content.includes('Views')
|
|
75
75
|
},
|
|
76
76
|
timeout: 10000,
|
|
77
77
|
})
|
|
@@ -84,29 +84,29 @@ test('long labels truncate and leave legend visible', async () => {
|
|
|
84
84
|
|
|
85
85
|
> Search...
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
Weekl...affi Direct / Org...across 6 days │ day traffi source
|
|
88
88
|
Revenue by Region Americas / EMEA / APAC │ ──────────────── ────── ─────────────
|
|
89
|
-
›Lon...
|
|
90
|
-
Man...
|
|
89
|
+
›Lon...belsThe left label...g legend space │ Monday ╻╻╻╻╻ ● Views 65%
|
|
90
|
+
Man...riesLegend grows o... content needs │ Tuesday ╻╻╻╻ ● Clicks 35%
|
|
91
91
|
│ Wednesday ╻╻╻
|
|
92
92
|
│ Thursday ╻╻
|
|
93
93
|
│ Friday ╻╻╻╻╻╻
|
|
94
94
|
│ Saturday & Sund… ╻╻╻╻╻
|
|
95
|
+
│
|
|
96
|
+
│
|
|
97
|
+
│
|
|
98
|
+
│
|
|
99
|
+
│
|
|
100
|
+
│
|
|
101
|
+
│
|
|
102
|
+
│
|
|
103
|
+
│
|
|
104
|
+
│
|
|
105
|
+
│
|
|
106
|
+
│
|
|
107
|
+
│
|
|
95
108
|
↵ open detail ↑↓ navigate ^k actions │
|
|
96
109
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
110
|
"
|
|
111
111
|
`)
|
|
112
112
|
expect(text).toContain('Saturday')
|
|
@@ -114,14 +114,14 @@ test('long labels truncate and leave legend visible', async () => {
|
|
|
114
114
|
}, 30000)
|
|
115
115
|
|
|
116
116
|
test('many series keeps bars readable and clips legend vertically', async () => {
|
|
117
|
-
await session.text({ waitFor: (content) => content.includes('
|
|
117
|
+
await session.text({ waitFor: (content) => content.includes('Legend grows'), timeout: 10000 })
|
|
118
118
|
session.sendKey('down')
|
|
119
119
|
session.sendKey('down')
|
|
120
120
|
session.sendKey('down')
|
|
121
121
|
|
|
122
122
|
const text = await session.text({
|
|
123
123
|
waitFor: (content) => {
|
|
124
|
-
return content.includes('›Man
|
|
124
|
+
return content.includes('›Man') && content.includes('Series 8')
|
|
125
125
|
},
|
|
126
126
|
timeout: 10000,
|
|
127
127
|
})
|
|
@@ -134,29 +134,29 @@ test('many series keeps bars readable and clips legend vertically', async () =>
|
|
|
134
134
|
|
|
135
135
|
> Search...
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
Weekl...affi Direct / Org...across 6 days │ category distribution legend
|
|
138
138
|
Revenue by Region Americas / EMEA / APAC │ ──────── ──────────── ───────────────
|
|
139
|
-
Lon...
|
|
140
|
-
›Man...
|
|
139
|
+
Lon...belsThe left label...g legend space │ Mon ╻╻╻╻╻╻╻╻ ● Series 8 20%
|
|
140
|
+
›Man...riesLegend grows o... content needs │ Tue ╻╻╻╻╻╻╻ ● Series 7 18%
|
|
141
141
|
│ Wed ╻╻╻╻╻╻ ● Series 6 16%
|
|
142
142
|
│ Thu ╻╻╻╻╻╻ ● Series 5 14%
|
|
143
143
|
│ Fri ╻╻╻╻╻╻╻╻╻╻╻╻ ● Series 4 11%
|
|
144
144
|
│ Sat ╻╻╻╻╻╻╻╻╻ ● Series 3 9%
|
|
145
|
+
│
|
|
146
|
+
│
|
|
147
|
+
│
|
|
148
|
+
│
|
|
149
|
+
│
|
|
150
|
+
│
|
|
151
|
+
│
|
|
152
|
+
│
|
|
153
|
+
│
|
|
154
|
+
│
|
|
155
|
+
│
|
|
156
|
+
│
|
|
157
|
+
│
|
|
145
158
|
↵ open detail ↑↓ navigate ^k actions │
|
|
146
159
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
160
|
"
|
|
161
161
|
`)
|
|
162
162
|
expect(text).toContain('Series 8')
|