@ai-gui/plugin-bigscreen 0.36.3 → 0.37.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.
- package/CHANGELOG.md +64 -0
- package/README.md +20 -3
- package/dist/index.cjs +478 -14
- package/dist/index.d.cts +634 -4
- package/dist/index.d.ts +634 -4
- package/dist/index.js +416 -6
- package/dist/{mount-DPyPP9Ha.cjs → mount-BXSCLn67.cjs} +164 -27
- package/dist/{mount-CbzNLMoI.js → mount-ChcoxgHd.js} +147 -10
- package/dist/positions-CHtRx0fb.cjs +1933 -0
- package/dist/positions-CN8aP4-S.js +1621 -0
- package/package.json +2 -2
- package/dist/options-BpHnWRpI.cjs +0 -499
- package/dist/options-C087Peeh.js +0 -415
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# @ai-gui/plugin-bigscreen
|
|
2
2
|
|
|
3
|
+
## 0.37.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 829bc82: A `GlobeSkin` can set `light.ambient`, how much the night side still shows. The default stays 0.5; a host whose photograph has dark oceans raises it instead of watching half the planet go black at dusk.
|
|
8
|
+
- @ai-gui/core@0.37.1
|
|
9
|
+
|
|
10
|
+
## 0.37.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- 8f3663c: A `graph3d` panel is a 3D model now, not a flat hairball.
|
|
15
|
+
|
|
16
|
+
The new default, `mode: "orbit"`, lays the entities out in space with a spring–electrical
|
|
17
|
+
simulation written for this — repulsion between every pair, springs along the edges, a weak pull
|
|
18
|
+
to the origin so a disconnected component cannot leave the panel, and a falling temperature that
|
|
19
|
+
cools the graph into a shape. It is drawn as a `scatter3D` of entities and a `lines3D` of edges
|
|
20
|
+
inside an invisible cube, lit from both sides so the far half is still readable, with the camera
|
|
21
|
+
turning slowly around it. The layout is deterministic — the starting positions are a hash of the
|
|
22
|
+
node ids — and it is stepped a few steps per animation frame rather than run to convergence, so
|
|
23
|
+
the reader watches the clusters arrive instead of being handed a settled picture. Node colours,
|
|
24
|
+
the type legend, the tooltip and `events.onNodeClick` are unchanged.
|
|
25
|
+
|
|
26
|
+
A graph re-rendered from a growing fence resumes rather than reshuffles: the positions each graph
|
|
27
|
+
settled into are remembered by node id, so the twenty entities already on screen stay where they
|
|
28
|
+
are and only the three that just arrived have to find a place.
|
|
29
|
+
|
|
30
|
+
`mode: "flat"` keeps the previous `graphGL` picture, byte for byte and pinned by a test, for
|
|
31
|
+
graphs big enough that depth hides more than it shows. `rotate: false`, and a host's
|
|
32
|
+
`animate: false`, hand over the settled model without turning it.
|
|
33
|
+
|
|
34
|
+
- ae86ea6: A globe panel can now be drawn on a real earth. `bigscreen({ globe })` takes the host's planet: a
|
|
35
|
+
`baseTexture` (an equirectangular photograph the host serves itself), or a `countries` GeoJSON
|
|
36
|
+
FeatureCollection rasterised onto a 2:1 canvas in the screen's palette, plus `shading`,
|
|
37
|
+
`heightTexture`, `atmosphere` and a `light.time` that puts the terminator where the sun actually
|
|
38
|
+
is. With a host earth the points carry labels only for the largest few and the rest move to a
|
|
39
|
+
tooltip. The fence is unchanged — it still says only where the points and arcs are — and a host
|
|
40
|
+
that sets nothing gets the painted graticule it always got.
|
|
41
|
+
- 84a9e1b: Two panels for provenance: `timeline` and `graph3d`.
|
|
42
|
+
|
|
43
|
+
`timeline` gives every source its own swim-lane and every claim its own point, with a line drawn
|
|
44
|
+
between claims that are related — `contradicts` in the palette's danger red, which is the picture
|
|
45
|
+
the panel exists for: two outlets said things that cannot both be true, and the red segment runs
|
|
46
|
+
between their two rows. Lanes stay in the order they were written, time runs across, the twelve
|
|
47
|
+
claims with the most empty space around them carry a label and the rest are one hover away, and a
|
|
48
|
+
claim with a `url` opens it on click. Up to 24 lanes, 500 claims and 500 links; `at` is ISO 8601;
|
|
49
|
+
`url` must be `http` or `https`, because that string reaches `window.open`.
|
|
50
|
+
|
|
51
|
+
`graph3d` draws entities and typed edges as a knowledge graph, laid out by force-atlas2 on the GPU
|
|
52
|
+
through `echarts-gl`'s `graphGL`. A type's colour is a hash of its name, so `outlet` is the same
|
|
53
|
+
colour in every panel on the wall whatever order the types appear in, and `types` pins any of them
|
|
54
|
+
to a colour of its own. Nodes are sized by degree or by `value`, the twenty busiest carry a label
|
|
55
|
+
along with `focus`, the types are keyed in the panel's corner in HTML over the canvas, and
|
|
56
|
+
`rotate` says whether the layout settles in front of the reader or arrives settled. Up to 2000
|
|
57
|
+
nodes and 5000 edges — a graph near that size also needs the host to raise `maxSourceBytes`.
|
|
58
|
+
Without the optional `echarts-gl` peer the panel shows the same one-line note the globe does.
|
|
59
|
+
|
|
60
|
+
New `bigscreen({ events })`: `onItemClick` takes a timeline click, `url` and all, and `onNodeClick`
|
|
61
|
+
gives a host something to do with an entity — a node is not a link, so there is no default.
|
|
62
|
+
|
|
63
|
+
### Patch Changes
|
|
64
|
+
|
|
65
|
+
- @ai-gui/core@0.37.0
|
|
66
|
+
|
|
3
67
|
## 0.36.3
|
|
4
68
|
|
|
5
69
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -8,12 +8,13 @@ model lays out.
|
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
10
|
pnpm add @ai-gui/plugin-bigscreen echarts
|
|
11
|
-
# for the chart3d and
|
|
11
|
+
# for the chart3d, globe and graph3d panels
|
|
12
12
|
pnpm add echarts-gl
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
`echarts-gl` is an optional peer: without it the
|
|
16
|
-
rest of the wall is unaffected. It is imported lazily, once, the first time
|
|
15
|
+
`echarts-gl` is an optional peer: without it the `chart3d`, `globe` and `graph3d` panels show a
|
|
16
|
+
one-line note and the rest of the wall is unaffected. It is imported lazily, once, the first time
|
|
17
|
+
such a panel mounts.
|
|
17
18
|
|
|
18
19
|
## Usage
|
|
19
20
|
|
|
@@ -54,10 +55,26 @@ The model then emits:
|
|
|
54
55
|
| `chart` | any ECharts option in the wall's palette, with entrance animation | `option` |
|
|
55
56
|
| `chart3d` | `bar3D`, `scatter3D`, `surface` or `line3D`, slowly turning | `type`, `data`, `xAxis`, `yAxis`, `rotate` |
|
|
56
57
|
| `globe` | a globe with arcing routes and sized points | `arcs`, `points`, `rotate` |
|
|
58
|
+
| `timeline` | a swim-lane per source, a point per claim, lines between claims — `contradicts` in danger red | `lanes`, `items`, `links`, `from`, `to` |
|
|
59
|
+
| `graph3d` | entities and typed edges, laid out by force-atlas2 on the GPU, coloured by type | `nodes`, `edges`, `types`, `focus`, `rotate` |
|
|
57
60
|
|
|
58
61
|
Every panel takes `title`, `span` (columns of the grid, default 4 of 12) and `height`. The screen
|
|
59
62
|
takes `title`, `subtitle`, `theme` (`dark` by default, or `light`), `accent` (hex) and `columns`.
|
|
60
63
|
|
|
64
|
+
## Clicks
|
|
65
|
+
|
|
66
|
+
A `timeline` claim with a `url` opens it in a new tab, opener cut off. A host that has its own
|
|
67
|
+
idea of what a claim is takes the click instead, and a graph entity has no default at all:
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
bigscreen({
|
|
71
|
+
events: {
|
|
72
|
+
onItemClick: (item) => openClaim(item.id),
|
|
73
|
+
onNodeClick: (node) => selectEntity(node.id),
|
|
74
|
+
},
|
|
75
|
+
})
|
|
76
|
+
```
|
|
77
|
+
|
|
61
78
|
## Why the protocol looks like this
|
|
62
79
|
|
|
63
80
|
**Presentation, not evidence.** [`@ai-gui/plugin-dashboard`](../plugin-dashboard/README.md) is the
|