termcast 1.5.0 → 1.7.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-chart.d.ts.map +1 -1
- package/dist/components/bar-chart.js +14 -3
- package/dist/components/bar-chart.js.map +1 -1
- package/dist/components/bar-graph.d.ts +4 -4
- package/dist/components/bar-graph.d.ts.map +1 -1
- package/dist/components/bar-graph.js +23 -5
- package/dist/components/bar-graph.js.map +1 -1
- package/dist/components/candle-chart.d.ts +15 -0
- package/dist/components/candle-chart.d.ts.map +1 -1
- package/dist/components/candle-chart.js +41 -3
- package/dist/components/candle-chart.js.map +1 -1
- package/dist/components/chart-tooltip.d.ts +83 -0
- package/dist/components/chart-tooltip.d.ts.map +1 -0
- package/dist/components/chart-tooltip.js +127 -0
- package/dist/components/chart-tooltip.js.map +1 -0
- package/dist/components/dotted-line-graph.d.ts +11 -0
- package/dist/components/dotted-line-graph.d.ts.map +1 -1
- package/dist/components/dotted-line-graph.js +43 -2
- package/dist/components/dotted-line-graph.js.map +1 -1
- package/dist/components/graph.d.ts +11 -0
- package/dist/components/graph.d.ts.map +1 -1
- package/dist/components/graph.js +53 -4
- package/dist/components/graph.js.map +1 -1
- package/dist/components/horizontal-bar-graph.d.ts.map +1 -1
- package/dist/components/horizontal-bar-graph.js +16 -5
- package/dist/components/horizontal-bar-graph.js.map +1 -1
- package/dist/components/list.d.ts +7 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +75 -14
- package/dist/components/list.js.map +1 -1
- package/dist/examples/chart-tooltips.d.ts +2 -0
- package/dist/examples/chart-tooltips.d.ts.map +1 -0
- package/dist/examples/chart-tooltips.js +16 -0
- package/dist/examples/chart-tooltips.js.map +1 -0
- 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-chart.tsx +23 -3
- package/src/components/bar-graph.tsx +32 -13
- package/src/components/candle-chart.tsx +63 -16
- package/src/components/chart-tooltip.tsx +191 -0
- package/src/components/dotted-line-graph.tsx +49 -3
- package/src/components/graph.tsx +76 -18
- package/src/components/horizontal-bar-graph.tsx +24 -4
- package/src/components/list.tsx +93 -20
- 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/chart-tooltips.tsx +54 -0
- package/src/examples/form-basic.vitest.tsx +8 -8
- package/src/examples/github.vitest.tsx +19 -28
- package/src/examples/graph-bar-chart.vitest.tsx +40 -40
- package/src/examples/graph-polymarket.vitest.tsx +24 -24
- package/src/examples/graph-row.vitest.tsx +8 -8
- 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-item-accessories.vitest.tsx +2 -2
- 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 +3 -3
- package/src/examples/list-with-detail.vitest.tsx +11 -11
- package/src/examples/list-with-dropdown.vitest.tsx +7 -7
- package/src/examples/list-with-sections.vitest.tsx +32 -32
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-candle-chart.vitest.tsx +63 -61
- package/src/examples/simple-grid.vitest.tsx +13 -13
- package/src/examples/simple-navigation.vitest.tsx +25 -25
- package/src/examples/simple-progress-bar.vitest.tsx +8 -8
- 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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Example: Chart tooltip showcase. Hover over any bar, segment, or data point
|
|
2
|
+
// to see an absolute-positioned tooltip showing the label and value.
|
|
3
|
+
// Demonstrates tooltips on BarGraph, Graph, BarChart, and HorizontalBarGraph.
|
|
4
|
+
|
|
5
|
+
import React from 'react'
|
|
6
|
+
import { Detail, BarGraph, Graph, BarChart, HorizontalBarGraph, Row } from 'termcast'
|
|
7
|
+
import { renderWithProviders } from '../utils'
|
|
8
|
+
|
|
9
|
+
const days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
|
|
10
|
+
const values1 = [40, 30, 25, 15, 50, 40]
|
|
11
|
+
const values2 = [20, 25, 10, 10, 25, 20]
|
|
12
|
+
|
|
13
|
+
function ChartTooltipsExample() {
|
|
14
|
+
return (
|
|
15
|
+
<Detail
|
|
16
|
+
navigationTitle="Chart Tooltips"
|
|
17
|
+
markdown={[
|
|
18
|
+
'# Chart Tooltips',
|
|
19
|
+
'',
|
|
20
|
+
'Hover over any chart element to see a tooltip with the data label and value.',
|
|
21
|
+
'Works on BarGraph, Graph, BarChart, and HorizontalBarGraph.',
|
|
22
|
+
].join('\n')}
|
|
23
|
+
metadata={
|
|
24
|
+
<Detail.Metadata>
|
|
25
|
+
<Detail.Metadata.Label title="BarGraph (vertical stacked)" />
|
|
26
|
+
<BarGraph height={10} labels={days}>
|
|
27
|
+
<BarGraph.Series data={values1} title="Direct" />
|
|
28
|
+
<BarGraph.Series data={values2} title="Referral" />
|
|
29
|
+
</BarGraph>
|
|
30
|
+
<Detail.Metadata.Separator />
|
|
31
|
+
<Detail.Metadata.Label title="Graph (line chart)" />
|
|
32
|
+
<Graph height={8} xLabels={days}>
|
|
33
|
+
<Graph.Line data={values1} title="Traffic" />
|
|
34
|
+
</Graph>
|
|
35
|
+
<Detail.Metadata.Separator />
|
|
36
|
+
<Detail.Metadata.Label title="BarChart (horizontal segments)" />
|
|
37
|
+
<BarChart>
|
|
38
|
+
<BarChart.Segment value={60} label="Spent" />
|
|
39
|
+
<BarChart.Segment value={25} label="Remaining" />
|
|
40
|
+
<BarChart.Segment value={15} label="Reserved" />
|
|
41
|
+
</BarChart>
|
|
42
|
+
<Detail.Metadata.Separator />
|
|
43
|
+
<Detail.Metadata.Label title="HorizontalBarGraph (stacked rows)" />
|
|
44
|
+
<HorizontalBarGraph labels={days.slice(0, 4)}>
|
|
45
|
+
<HorizontalBarGraph.Series data={[40, 30, 25, 15]} title="Organic" />
|
|
46
|
+
<HorizontalBarGraph.Series data={[20, 25, 10, 10]} title="Paid" />
|
|
47
|
+
</HorizontalBarGraph>
|
|
48
|
+
</Detail.Metadata>
|
|
49
|
+
}
|
|
50
|
+
/>
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void renderWithProviders(<ChartTooltipsExample />)
|
|
@@ -221,7 +221,7 @@ test('form date picker selection with space and enter', async () => {
|
|
|
221
221
|
◇ Date of Birth
|
|
222
222
|
│
|
|
223
223
|
│ ← 2026 →
|
|
224
|
-
│ ←
|
|
224
|
+
│ ← June →
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -279,7 +279,7 @@ test('form date picker selection with space and enter', async () => {
|
|
|
279
279
|
◇ Date of Birth
|
|
280
280
|
│
|
|
281
281
|
│ ← 2026 →
|
|
282
|
-
│ ←
|
|
282
|
+
│ ← June →
|
|
283
283
|
|
|
284
284
|
|
|
285
285
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -338,7 +338,7 @@ test('form date picker selection with space and enter', async () => {
|
|
|
338
338
|
◇ Date of Birth
|
|
339
339
|
│
|
|
340
340
|
│ ← 2026 →
|
|
341
|
-
│ ←
|
|
341
|
+
│ ← June →
|
|
342
342
|
|
|
343
343
|
|
|
344
344
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -413,7 +413,7 @@ test('form dropdown navigation', async () => {
|
|
|
413
413
|
◇ Date of Birth
|
|
414
414
|
│
|
|
415
415
|
│ ← 2026 →
|
|
416
|
-
│ ←
|
|
416
|
+
│ ← June →
|
|
417
417
|
|
|
418
418
|
|
|
419
419
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -471,7 +471,7 @@ test('form dropdown navigation', async () => {
|
|
|
471
471
|
◇ Date of Birth
|
|
472
472
|
│
|
|
473
473
|
│ ← 2026 →
|
|
474
|
-
│ ←
|
|
474
|
+
│ ← June →
|
|
475
475
|
|
|
476
476
|
|
|
477
477
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -531,7 +531,7 @@ test('form dropdown navigation', async () => {
|
|
|
531
531
|
◇ Date of Birth
|
|
532
532
|
│
|
|
533
533
|
│ ← 2026 →
|
|
534
|
-
│ ←
|
|
534
|
+
│ ← June →
|
|
535
535
|
|
|
536
536
|
|
|
537
537
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -589,7 +589,7 @@ test('form dropdown navigation', async () => {
|
|
|
589
589
|
◇ Date of Birth
|
|
590
590
|
│
|
|
591
591
|
│ ← 2026 →
|
|
592
|
-
│ ←
|
|
592
|
+
│ ← June →
|
|
593
593
|
|
|
594
594
|
|
|
595
595
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -763,7 +763,7 @@ test('arrow down from checkbox to dropdown lands on first item', async () => {
|
|
|
763
763
|
◇ Date of Birth
|
|
764
764
|
│
|
|
765
765
|
│ ← 2026 →
|
|
766
|
-
│ ←
|
|
766
|
+
│ ← June →
|
|
767
767
|
|
|
768
768
|
|
|
769
769
|
ctrl ↵ submit tab navigate ^k actions
|
|
@@ -54,22 +54,13 @@ afterEach(() => {
|
|
|
54
54
|
})
|
|
55
55
|
|
|
56
56
|
test.skipIf(!extensionExists)('github extension shows command list on launch', async () => {
|
|
57
|
-
// Wait for command list to appear (extension has multiple commands)
|
|
58
|
-
// Don't match "Commands" alone - it falsely matches "Building 18 commands..." build log
|
|
59
57
|
const initialView = await session.text({
|
|
60
|
-
waitFor: (text) =>
|
|
61
|
-
timeout: 30000,
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
// Wait for the full command list to render.
|
|
65
|
-
// The list can paint the first item before all descendants are registered.
|
|
66
|
-
await session.text({
|
|
67
|
-
waitFor: (text) => text.includes('My Pu...uest') && text.includes('Search ...sitories'),
|
|
58
|
+
waitFor: (text) => text.includes('My Pul...quests') && text.includes('Search Repositorie'),
|
|
68
59
|
timeout: 30000,
|
|
69
60
|
})
|
|
70
61
|
|
|
71
|
-
expect(initialView).toContain('My
|
|
72
|
-
expect(initialView).toContain('Search
|
|
62
|
+
expect(initialView).toContain('My Pul...quests')
|
|
63
|
+
expect(initialView).toContain('Search Repositorie')
|
|
73
64
|
expect(initialView).toMatchInlineSnapshot(`
|
|
74
65
|
"
|
|
75
66
|
|
|
@@ -79,25 +70,25 @@ test.skipIf(!extensionExists)('github extension shows command list on launch', a
|
|
|
79
70
|
> Search commands...
|
|
80
71
|
|
|
81
72
|
Commands
|
|
82
|
-
›My
|
|
83
|
-
Search
|
|
84
|
-
Create
|
|
73
|
+
›My Pul...questsList pull requests you cr... in, or were mentioned in. view
|
|
74
|
+
Search Pull Request Search recent pull requ...ly in all repositories. view
|
|
75
|
+
Create Pull Reques Create a pull request i...our GitHub repositories. view
|
|
85
76
|
My IssuesList issues created by you, ...ned to you or mentioning you. view
|
|
86
77
|
Search Issues Search recent issues globally in all repositories. view
|
|
87
78
|
Create Issue Create an issue in one of your GitHub repositories. view
|
|
88
79
|
Create Branch Create a branch in one of your GitHub repositories view
|
|
89
|
-
Search
|
|
80
|
+
Search Repositorie Search in your public o...te repositories by name. view
|
|
90
81
|
My Latest Repositories List your repositories by latest updated view
|
|
91
82
|
My Starred Repositories List repositories you have starred view
|
|
92
83
|
Workflow Runs Manage workflow runs for a selected GitHub repository. view
|
|
93
|
-
|
|
94
|
-
Search
|
|
84
|
+
Notification List inbox notifications f...s or a selected repository. view
|
|
85
|
+
Search DiscussionsSearch recent Discussion...ally in all repositories view
|
|
95
86
|
My Discussions Show your Discussions view
|
|
96
87
|
My Projects Show your Projects view
|
|
97
88
|
|
|
98
89
|
|
|
99
90
|
|
|
100
|
-
↵ run command ↑↓ navigate ^k actions
|
|
91
|
+
↵ run command ↑↓ navigate ^k actions powered by termcast.app
|
|
101
92
|
|
|
102
93
|
|
|
103
94
|
|
|
@@ -108,7 +99,7 @@ test.skipIf(!extensionExists)('github extension shows command list on launch', a
|
|
|
108
99
|
test.skipIf(!extensionExists)('github extension can navigate commands', async () => {
|
|
109
100
|
// Wait for command list
|
|
110
101
|
await session.text({
|
|
111
|
-
waitFor: (text) => text.includes('My
|
|
102
|
+
waitFor: (text) => text.includes('My Pul...quests') && text.includes('Search Repositorie'),
|
|
112
103
|
timeout: 30000,
|
|
113
104
|
})
|
|
114
105
|
|
|
@@ -128,25 +119,25 @@ test.skipIf(!extensionExists)('github extension can navigate commands', async ()
|
|
|
128
119
|
> Search commands...
|
|
129
120
|
|
|
130
121
|
Commands
|
|
131
|
-
My
|
|
132
|
-
Search
|
|
133
|
-
›Create
|
|
122
|
+
My Pul...questsList pull requests you cr... in, or were mentioned in. view
|
|
123
|
+
Search Pull Request Search recent pull requ...ly in all repositories. view
|
|
124
|
+
›Create Pull Reques Create a pull request i...our GitHub repositories. view
|
|
134
125
|
My IssuesList issues created by you, ...ned to you or mentioning you. view
|
|
135
126
|
Search Issues Search recent issues globally in all repositories. view
|
|
136
127
|
Create Issue Create an issue in one of your GitHub repositories. view
|
|
137
128
|
Create Branch Create a branch in one of your GitHub repositories view
|
|
138
|
-
Search
|
|
129
|
+
Search Repositorie Search in your public o...te repositories by name. view
|
|
139
130
|
My Latest Repositories List your repositories by latest updated view
|
|
140
131
|
My Starred Repositories List repositories you have starred view
|
|
141
132
|
Workflow Runs Manage workflow runs for a selected GitHub repository. view
|
|
142
|
-
|
|
143
|
-
Search
|
|
133
|
+
Notification List inbox notifications f...s or a selected repository. view
|
|
134
|
+
Search DiscussionsSearch recent Discussion...ally in all repositories view
|
|
144
135
|
My Discussions Show your Discussions view
|
|
145
136
|
My Projects Show your Projects view
|
|
146
137
|
|
|
147
138
|
|
|
148
139
|
|
|
149
|
-
↵ run command ↑↓ navigate ^k actions
|
|
140
|
+
↵ run command ↑↓ navigate ^k actions powered by termcast.app
|
|
150
141
|
|
|
151
142
|
|
|
152
143
|
|
|
@@ -239,11 +230,11 @@ test.skipIf(!extensionExists)('github extension can search commands', async () =
|
|
|
239
230
|
|
|
240
231
|
|
|
241
232
|
|
|
242
|
-
↵ run command ↑↓ navigate ^k actions :vim powered by termcast.app
|
|
243
233
|
|
|
244
234
|
|
|
245
235
|
|
|
246
236
|
|
|
237
|
+
↵ run command ↑↓ navigate ^k actions powered by termcast.app
|
|
247
238
|
|
|
248
239
|
|
|
249
240
|
|
|
@@ -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,17 +45,17 @@ 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
49
|
│
|
|
50
50
|
│
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
│
|
|
52
|
+
│
|
|
53
|
+
│
|
|
54
|
+
│
|
|
55
|
+
│
|
|
56
|
+
│
|
|
57
|
+
│
|
|
58
|
+
↵ open detail ↑↓ navigate ^k actions │
|
|
59
59
|
|
|
60
60
|
"
|
|
61
61
|
`)
|
|
@@ -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,17 +102,17 @@ 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
106
|
│
|
|
107
107
|
│
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
108
|
+
│
|
|
109
|
+
│
|
|
110
|
+
│
|
|
111
|
+
│
|
|
112
|
+
│
|
|
113
|
+
│
|
|
114
|
+
│
|
|
115
|
+
↵ open detail ↑↓ navigate ^k actions │
|
|
116
116
|
|
|
117
117
|
"
|
|
118
118
|
`)
|
|
@@ -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,17 +158,17 @@ 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
162
|
│
|
|
163
163
|
│
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
164
|
+
│
|
|
165
|
+
│
|
|
166
|
+
│
|
|
167
|
+
│
|
|
168
|
+
│
|
|
169
|
+
│
|
|
170
|
+
│
|
|
171
|
+
↵ open detail ↑↓ navigate ^k actions │
|
|
172
172
|
|
|
173
173
|
"
|
|
174
174
|
`)
|
|
@@ -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,17 +214,17 @@ 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
218
|
│
|
|
219
219
|
│
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
220
|
+
│
|
|
221
|
+
│
|
|
222
|
+
│
|
|
223
|
+
│
|
|
224
|
+
│
|
|
225
|
+
│
|
|
226
|
+
│
|
|
227
|
+
↵ open detail ↑↓ navigate ^k actions │
|
|
228
228
|
|
|
229
229
|
"
|
|
230
230
|
`)
|
|
@@ -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 │
|
|
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 │
|
|
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│ █
|
|
@@ -53,7 +53,7 @@ test('side detail shows two graphs in a row', async () => {
|
|
|
53
53
|
│ ───────────────────────────────────────────
|
|
54
54
|
│
|
|
55
55
|
│ CPU Peak: 90%
|
|
56
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
56
|
+
↵ open detail ↑↓ navigate ^k actions │ ▼
|
|
57
57
|
|
|
58
58
|
"
|
|
59
59
|
`)
|
|
@@ -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│ █
|
|
@@ -172,7 +172,7 @@ test('esc returns from detail to list', async () => {
|
|
|
172
172
|
│ ───────────────────────────────────────────
|
|
173
173
|
│
|
|
174
174
|
│ CPU Peak: 90%
|
|
175
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
175
|
+
↵ open detail ↑↓ navigate ^k actions │ ▼
|
|
176
176
|
|
|
177
177
|
"
|
|
178
178
|
`)
|
|
@@ -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│ ▖ █
|
|
@@ -229,7 +229,7 @@ test('sparse data with zeros shows baseline', async () => {
|
|
|
229
229
|
│ ───────────────────────────────────────────
|
|
230
230
|
│
|
|
231
231
|
│ Zeros: 12 of 20
|
|
232
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
232
|
+
↵ open detail ↑↓ navigate ^k actions │ ▼
|
|
233
233
|
|
|
234
234
|
"
|
|
235
235
|
`)
|
|
@@ -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│ ▖
|
|
@@ -285,7 +285,7 @@ test('navigate to striped pair', async () => {
|
|
|
285
285
|
│ ───────────────────────────────────────────
|
|
286
286
|
│
|
|
287
287
|
│ Revenue: $75k
|
|
288
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
288
|
+
↵ open detail ↑↓ navigate ^k actions │ ▼
|
|
289
289
|
|
|
290
290
|
"
|
|
291
291
|
`)
|