@bicharts/chart-mcp 0.6.112 → 0.6.114

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bicharts/chart-mcp",
3
- "version": "0.6.112",
4
- "description": "AI Data Components for Power BI, Excel, Fabric Apps and the web, over MCP: bivariate maps, what-if projections and about 90 everyday chart types, with selection and cross-filtering already wired. It profiles your table locally; the code it writes is yours and runs with no license.",
3
+ "version": "0.6.114",
4
+ "description": "AI Data Components for Power BI, Excel, Fabric Apps and the web, over MCP: working what-if apps, interactive tables and bivariate maps first, plus about 90 everyday chart types, with selection and cross-filtering already wired. It profiles your table locally; the code it writes is yours and runs with no license.",
5
5
  "keywords": [
6
6
  "mcp",
7
7
  "modelcontextprotocol",
@@ -47,8 +47,8 @@
47
47
  },
48
48
  "// dependencies": "NONE, deliberately. dist/ bundles every module the server uses, so a runtime dependency installs nothing it needs - it only makes npx fetch that package (and its tree) before the first start. Everything the bundle carries is a devDependency; scripts/verify-package.mjs fails the release if a dependency appears or a shipped file imports anything but Node's built-ins.",
49
49
  "devDependencies": {
50
- "@bicharts/chart-host": "^0.6.112",
51
- "@bicharts/shape-core": "^0.6.112",
50
+ "@bicharts/chart-host": "^0.6.113",
51
+ "@bicharts/shape-core": "^0.6.113",
52
52
  "@modelcontextprotocol/sdk": "^1.32.1",
53
53
  "@types/node": "^26.6.5",
54
54
  "@types/papaparse": "^5.3.14",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bic-charts
3
- description: Build a web app or dashboard containing BIC-generated charts, maps, tables and app widgets — a bubble map, a table with in-cell bars, a table readers work with and keep their own way, a what-if widget, linked cross-filtering. Use whenever the bic-chart MCP tools are available and the task is "put a chart, map, table, widget or dashboard in this app".
3
+ description: Build a web app or dashboard containing BIC-generated charts, maps, tables and app widgets — a bubble map, a table with in-cell bars, a table readers work with and keep their own way, a what-if widget, linked cross-filtering. Use whenever the bic-chart MCP tools are available and the task is "put a chart, map, table, widget or dashboard in this app" - including a plain table, grid or list of rows a person will sort, resize, hide columns of or browse - ask the chart server for it (list_eligible_charts) before hand-building one or using a template's grid.
4
4
  ---
5
5
 
6
6
  # Building an app with BIC charts
@@ -898,7 +898,11 @@ arrive already narrowed, and the chart can't see a filter applied to its query:
898
898
  one country's totals and ranked what the filter left. Given `scopedBy={country}` (or `scopedBy={[fromMap, fromTable]}`),
899
899
  the chart names the pick while it is active - "North America · United States only", "rank 2 of 3 (United States
900
900
  only)" - and goes back to its own titles when it clears. Pass every filter its query's `treatAs` takes; a panel narrowed
901
- with `filterBy` needs nothing more, its component tells the chart itself.
901
+ with `filterBy` needs nothing more, its component tells the chart itself. A panel whose query removes a pick on every
902
+ figure it plots (each measure under `REMOVEFILTERS`, `ALL` or an `ALLEXCEPT` that drops the picked column, as the closed
903
+ deal figures are under a stage pick) isn't narrowed by it: leave that pick out of its `scopedBy`, or apply it, or its
904
+ scope line names a stage its marks never move for. `check_app` flags a `scopedBy` pick the panel's query removes from
905
+ everything it plots.
902
906
 
903
907
  `check_app` lists each chart's wiring - filtered query, highlight only, or none - and warns on a panel no click
904
908
  reaches, and on a filtered-query panel with no `scopedBy`. Say that list in your reply, with any panel you left whole and why, so a gap is seen before deploy.
@@ -1202,7 +1206,11 @@ const markDone = useCallback(async (taskId: string) => {
1202
1206
  - **A dialog of your own** (a form over the page) uses `useDialogFocus(ref, onClose)` from `src/lib/bic-dialog.ts`:
1203
1207
  Tab stays inside it, Escape closes it (it asks first when a field holds typed text, and an open list inside it, such
1204
1208
  as the target picker's, takes its own Escape), and focus goes back to what opened it - or, when a save repainted that (a
1205
- chart's badge), to its replacement.
1209
+ chart's badge), to its replacement. Typed means the reader changed a field and it holds text that differs from what
1210
+ it held when the dialog opened: a field you fill (the picker started at the chart's pick, a form opened on a saved row)
1211
+ isn't typed, so `closeFromBackdrop` still closes it. Save through the form's `onSubmit` and clear the fields on
1212
+ success: the helper then takes what the fields hold as the new start, so a country chosen before the save no longer
1213
+ holds the backdrop.
1206
1214
 
1207
1215
  `check_app` flags a placeholder name in a write, a time written from the browser's clock, an entity that takes any
1208
1216
  name on create or lets any row be updated again, a name it stores that its policy doesn't check against the token, a write that resolves before its reload lands, and a dialog that