@cascivo/mcp 0.1.6 → 0.1.8
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/registry.json +308 -7
- package/package.json +1 -1
package/dist/registry.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.0.0",
|
|
3
|
-
"generatedAt": "2026-06-
|
|
3
|
+
"generatedAt": "2026-06-25",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "accordion",
|
|
@@ -17491,7 +17491,8 @@
|
|
|
17491
17491
|
{
|
|
17492
17492
|
"name": "series",
|
|
17493
17493
|
"type": "BarChartSeries<Datum>[]",
|
|
17494
|
-
"required": true
|
|
17494
|
+
"required": true,
|
|
17495
|
+
"description": "Series array. Each series accepts an optional `color` (any CSS color) overriding the positional palette for that series/stacked layer."
|
|
17495
17496
|
},
|
|
17496
17497
|
{
|
|
17497
17498
|
"name": "x",
|
|
@@ -17547,11 +17548,28 @@
|
|
|
17547
17548
|
"required": false,
|
|
17548
17549
|
"default": "5"
|
|
17549
17550
|
},
|
|
17551
|
+
{
|
|
17552
|
+
"name": "xLabelEvery",
|
|
17553
|
+
"type": "number",
|
|
17554
|
+
"required": false,
|
|
17555
|
+
"description": "Show every Nth category label (always the last) to thin a crowded x-axis."
|
|
17556
|
+
},
|
|
17550
17557
|
{
|
|
17551
17558
|
"name": "legend",
|
|
17552
17559
|
"type": "boolean",
|
|
17553
17560
|
"required": false
|
|
17554
17561
|
},
|
|
17562
|
+
{
|
|
17563
|
+
"name": "tooltip",
|
|
17564
|
+
"type": "boolean",
|
|
17565
|
+
"required": false
|
|
17566
|
+
},
|
|
17567
|
+
{
|
|
17568
|
+
"name": "tooltipFormat",
|
|
17569
|
+
"type": "(p: ChartPoint) => string",
|
|
17570
|
+
"required": false,
|
|
17571
|
+
"description": "Custom tooltip formatter. The stacked default lists \"label · total\" + each non-zero layer in its color."
|
|
17572
|
+
},
|
|
17555
17573
|
{
|
|
17556
17574
|
"name": "className",
|
|
17557
17575
|
"type": "string",
|
|
@@ -17565,6 +17583,108 @@
|
|
|
17565
17583
|
"description": "Marks only — no axes, grid lines, or legend. For micro/inline charts."
|
|
17566
17584
|
}
|
|
17567
17585
|
],
|
|
17586
|
+
"typeDefs": [
|
|
17587
|
+
{
|
|
17588
|
+
"name": "BarChartSeries<Datum>",
|
|
17589
|
+
"description": "One series (a set of bars). Pass an array via the `series` prop.",
|
|
17590
|
+
"fields": [
|
|
17591
|
+
{
|
|
17592
|
+
"name": "id",
|
|
17593
|
+
"type": "string",
|
|
17594
|
+
"required": true,
|
|
17595
|
+
"description": "Stable series identity."
|
|
17596
|
+
},
|
|
17597
|
+
{
|
|
17598
|
+
"name": "label",
|
|
17599
|
+
"type": "string",
|
|
17600
|
+
"required": true,
|
|
17601
|
+
"description": "Legend + tooltip label."
|
|
17602
|
+
},
|
|
17603
|
+
{
|
|
17604
|
+
"name": "data",
|
|
17605
|
+
"type": "readonly Datum[]",
|
|
17606
|
+
"required": true,
|
|
17607
|
+
"description": "Row data read by the `x`/`y` accessors."
|
|
17608
|
+
},
|
|
17609
|
+
{
|
|
17610
|
+
"name": "color",
|
|
17611
|
+
"type": "string",
|
|
17612
|
+
"required": false,
|
|
17613
|
+
"description": "Any CSS color overriding the positional palette (--cascivo-chart-N) for this series / stacked layer."
|
|
17614
|
+
}
|
|
17615
|
+
]
|
|
17616
|
+
},
|
|
17617
|
+
{
|
|
17618
|
+
"name": "StackedRow",
|
|
17619
|
+
"description": "Row-oriented input to the `toStackedSeries(rows)` pivot helper.",
|
|
17620
|
+
"fields": [
|
|
17621
|
+
{
|
|
17622
|
+
"name": "label",
|
|
17623
|
+
"type": "string",
|
|
17624
|
+
"required": true,
|
|
17625
|
+
"description": "Category (one bar)."
|
|
17626
|
+
},
|
|
17627
|
+
{
|
|
17628
|
+
"name": "segments",
|
|
17629
|
+
"type": "StackedSegment[]",
|
|
17630
|
+
"required": true,
|
|
17631
|
+
"description": "Per-layer values: { key, value, color? }. First non-undefined color per key wins."
|
|
17632
|
+
}
|
|
17633
|
+
]
|
|
17634
|
+
},
|
|
17635
|
+
{
|
|
17636
|
+
"name": "StackedSegment",
|
|
17637
|
+
"description": "One layer of a stacked bar within a StackedRow.",
|
|
17638
|
+
"fields": [
|
|
17639
|
+
{
|
|
17640
|
+
"name": "key",
|
|
17641
|
+
"type": "string",
|
|
17642
|
+
"required": true,
|
|
17643
|
+
"description": "Layer key — becomes the series id/label (e.g. \"Done\")."
|
|
17644
|
+
},
|
|
17645
|
+
{
|
|
17646
|
+
"name": "value",
|
|
17647
|
+
"type": "number",
|
|
17648
|
+
"required": true
|
|
17649
|
+
},
|
|
17650
|
+
{
|
|
17651
|
+
"name": "color",
|
|
17652
|
+
"type": "string",
|
|
17653
|
+
"required": false,
|
|
17654
|
+
"description": "Optional CSS color for this layer."
|
|
17655
|
+
}
|
|
17656
|
+
]
|
|
17657
|
+
},
|
|
17658
|
+
{
|
|
17659
|
+
"name": "ChartPoint",
|
|
17660
|
+
"description": "Argument passed to the `tooltipFormat` callback.",
|
|
17661
|
+
"fields": [
|
|
17662
|
+
{
|
|
17663
|
+
"name": "label",
|
|
17664
|
+
"type": "string",
|
|
17665
|
+
"required": true,
|
|
17666
|
+
"description": "Category label."
|
|
17667
|
+
},
|
|
17668
|
+
{
|
|
17669
|
+
"name": "value",
|
|
17670
|
+
"type": "number | string",
|
|
17671
|
+
"required": true
|
|
17672
|
+
},
|
|
17673
|
+
{
|
|
17674
|
+
"name": "color",
|
|
17675
|
+
"type": "string",
|
|
17676
|
+
"required": false,
|
|
17677
|
+
"description": "Resolved mark color (the default tooltip tints its text with this)."
|
|
17678
|
+
},
|
|
17679
|
+
{
|
|
17680
|
+
"name": "segments",
|
|
17681
|
+
"type": "readonly { label: string; value: number; color?: string }[]",
|
|
17682
|
+
"required": false,
|
|
17683
|
+
"description": "Per-layer breakdown for a stacked category; the default stacked tooltip lists these."
|
|
17684
|
+
}
|
|
17685
|
+
]
|
|
17686
|
+
}
|
|
17687
|
+
],
|
|
17568
17688
|
"tokens": [
|
|
17569
17689
|
"--cascivo-chart-1",
|
|
17570
17690
|
"--cascivo-chart-2",
|
|
@@ -17584,6 +17704,10 @@
|
|
|
17584
17704
|
{
|
|
17585
17705
|
"title": "Basic bar chart",
|
|
17586
17706
|
"code": "import { BarChart } from '@cascivo/charts'\n\nconst series = [{ id: 'a', label: 'Sales', data: [{x:'Jan',y:100},{x:'Feb',y:150}] }]\n<BarChart series={series} x={d => d.x} y={d => d.y} title=\"Sales\" />"
|
|
17707
|
+
},
|
|
17708
|
+
{
|
|
17709
|
+
"title": "Stacked bar from row-oriented data",
|
|
17710
|
+
"code": "import { BarChart, toStackedSeries } from '@cascivo/charts'\n\n// Pivot { label, segments[] } rows into series + x/y. Per-segment color is preserved.\nconst rows = [\n { label: 'Mon', segments: [\n { key: 'Done', value: 5, color: 'var(--cascivo-color-success)' },\n { key: 'Blocked', value: 2, color: 'var(--cascivo-color-destructive)' },\n ] },\n { label: 'Tue', segments: [\n { key: 'Done', value: 8, color: 'var(--cascivo-color-success)' },\n { key: 'Blocked', value: 1, color: 'var(--cascivo-color-destructive)' },\n ] },\n]\n// Tooltip shows \"Mon · 7\" then each non-zero layer in its color.\n<BarChart mode=\"stacked\" tooltip {...toStackedSeries(rows)} title=\"Throughput\" />"
|
|
17587
17711
|
}
|
|
17588
17712
|
],
|
|
17589
17713
|
"dependencies": ["@cascivo/charts"],
|
|
@@ -18675,7 +18799,7 @@
|
|
|
18675
18799
|
"name": "data",
|
|
18676
18800
|
"type": "PieChartDatum[]",
|
|
18677
18801
|
"required": true,
|
|
18678
|
-
"description": "Array of { label, value } datums"
|
|
18802
|
+
"description": "Array of { id, label, value, color? } datums. Optional per-datum `color` (any CSS color) overrides the positional palette for that slice."
|
|
18679
18803
|
},
|
|
18680
18804
|
{
|
|
18681
18805
|
"name": "title",
|
|
@@ -18704,6 +18828,54 @@
|
|
|
18704
18828
|
"required": false,
|
|
18705
18829
|
"default": "300"
|
|
18706
18830
|
},
|
|
18831
|
+
{
|
|
18832
|
+
"name": "size",
|
|
18833
|
+
"type": "number",
|
|
18834
|
+
"required": false,
|
|
18835
|
+
"description": "Square shorthand: sets width === height. Explicit width/height win."
|
|
18836
|
+
},
|
|
18837
|
+
{
|
|
18838
|
+
"name": "thickness",
|
|
18839
|
+
"type": "number",
|
|
18840
|
+
"required": false,
|
|
18841
|
+
"description": "Ring width in px (donut only); defaults to 0.4 × radius."
|
|
18842
|
+
},
|
|
18843
|
+
{
|
|
18844
|
+
"name": "innerRadius",
|
|
18845
|
+
"type": "number",
|
|
18846
|
+
"required": false,
|
|
18847
|
+
"description": "Inner radius in px (donut only); takes precedence over thickness; clamped to [0, outerRadius)."
|
|
18848
|
+
},
|
|
18849
|
+
{
|
|
18850
|
+
"name": "centerValue",
|
|
18851
|
+
"type": "string",
|
|
18852
|
+
"required": false,
|
|
18853
|
+
"description": "Center value text rendered in the donut hole (donut only)."
|
|
18854
|
+
},
|
|
18855
|
+
{
|
|
18856
|
+
"name": "centerLabel",
|
|
18857
|
+
"type": "string",
|
|
18858
|
+
"required": false,
|
|
18859
|
+
"description": "Center label text rendered below the value (donut only)."
|
|
18860
|
+
},
|
|
18861
|
+
{
|
|
18862
|
+
"name": "centerSlot",
|
|
18863
|
+
"type": "ReactNode",
|
|
18864
|
+
"required": false,
|
|
18865
|
+
"description": "Arbitrary content for the donut hole; takes precedence over centerValue/centerLabel."
|
|
18866
|
+
},
|
|
18867
|
+
{
|
|
18868
|
+
"name": "emptyLabel",
|
|
18869
|
+
"type": "string",
|
|
18870
|
+
"required": false,
|
|
18871
|
+
"description": "Visible placeholder text when data is empty. Defaults to the i18n \"No data\"."
|
|
18872
|
+
},
|
|
18873
|
+
{
|
|
18874
|
+
"name": "tooltipFormat",
|
|
18875
|
+
"type": "(p: ChartPoint) => string",
|
|
18876
|
+
"required": false,
|
|
18877
|
+
"description": "Custom tooltip formatter. Defaults to \"value (pct%)\" in the slice color."
|
|
18878
|
+
},
|
|
18707
18879
|
{
|
|
18708
18880
|
"name": "legend",
|
|
18709
18881
|
"type": "boolean",
|
|
@@ -18722,6 +18894,65 @@
|
|
|
18722
18894
|
"description": "Marks only — no axes, grid lines, or legend. For micro/inline charts."
|
|
18723
18895
|
}
|
|
18724
18896
|
],
|
|
18897
|
+
"typeDefs": [
|
|
18898
|
+
{
|
|
18899
|
+
"name": "PieChartDatum",
|
|
18900
|
+
"description": "One slice. Pass via the `data` prop.",
|
|
18901
|
+
"fields": [
|
|
18902
|
+
{
|
|
18903
|
+
"name": "id",
|
|
18904
|
+
"type": "string",
|
|
18905
|
+
"required": false,
|
|
18906
|
+
"description": "Stable identity (used for legend toggle state)."
|
|
18907
|
+
},
|
|
18908
|
+
{
|
|
18909
|
+
"name": "label",
|
|
18910
|
+
"type": "string",
|
|
18911
|
+
"required": true
|
|
18912
|
+
},
|
|
18913
|
+
{
|
|
18914
|
+
"name": "value",
|
|
18915
|
+
"type": "number",
|
|
18916
|
+
"required": true
|
|
18917
|
+
},
|
|
18918
|
+
{
|
|
18919
|
+
"name": "color",
|
|
18920
|
+
"type": "string",
|
|
18921
|
+
"required": false,
|
|
18922
|
+
"description": "Any CSS color overriding the positional palette (--cascivo-chart-N) for this slice."
|
|
18923
|
+
}
|
|
18924
|
+
]
|
|
18925
|
+
},
|
|
18926
|
+
{
|
|
18927
|
+
"name": "ChartPoint",
|
|
18928
|
+
"description": "Argument passed to the `tooltipFormat` callback.",
|
|
18929
|
+
"fields": [
|
|
18930
|
+
{
|
|
18931
|
+
"name": "label",
|
|
18932
|
+
"type": "string",
|
|
18933
|
+
"required": true,
|
|
18934
|
+
"description": "Slice label."
|
|
18935
|
+
},
|
|
18936
|
+
{
|
|
18937
|
+
"name": "value",
|
|
18938
|
+
"type": "number | string",
|
|
18939
|
+
"required": true
|
|
18940
|
+
},
|
|
18941
|
+
{
|
|
18942
|
+
"name": "percent",
|
|
18943
|
+
"type": "number",
|
|
18944
|
+
"required": false,
|
|
18945
|
+
"description": "Share of the whole, 0–100. Used by the default \"value (pct%)\" formatter."
|
|
18946
|
+
},
|
|
18947
|
+
{
|
|
18948
|
+
"name": "color",
|
|
18949
|
+
"type": "string",
|
|
18950
|
+
"required": false,
|
|
18951
|
+
"description": "Resolved slice color (the default tooltip tints its text with this)."
|
|
18952
|
+
}
|
|
18953
|
+
]
|
|
18954
|
+
}
|
|
18955
|
+
],
|
|
18725
18956
|
"tokens": [
|
|
18726
18957
|
"--cascivo-chart-1",
|
|
18727
18958
|
"--cascivo-chart-2",
|
|
@@ -18741,6 +18972,14 @@
|
|
|
18741
18972
|
{
|
|
18742
18973
|
"title": "Basic pie chart",
|
|
18743
18974
|
"code": "import { PieChart } from '@cascivo/charts'\n\n<PieChart data={[{label:'A',value:60},{label:'B',value:40}]} title=\"Market share\" />"
|
|
18975
|
+
},
|
|
18976
|
+
{
|
|
18977
|
+
"title": "Donut with center total and custom thickness",
|
|
18978
|
+
"code": "import { PieChart } from '@cascivo/charts'\n\n<PieChart\n donut\n size={220}\n thickness={28}\n centerValue=\"142\"\n centerLabel=\"Total tasks\"\n data={[\n { id: 'done', label: 'Done', value: 92, color: 'var(--cascivo-color-success)' },\n { id: 'wip', label: 'In progress', value: 34, color: 'var(--cascivo-color-warning)' },\n { id: 'blocked', label: 'Blocked', value: 16, color: 'var(--cascivo-color-destructive)' },\n ]}\n title=\"Task status\"\n/>"
|
|
18979
|
+
},
|
|
18980
|
+
{
|
|
18981
|
+
"title": "Percentage tooltip + empty state",
|
|
18982
|
+
"code": "import { PieChart } from '@cascivo/charts'\n\n// Default tooltip shows \"value (pct%)\" in the slice color; pass tooltipFormat to override.\n<PieChart data={[{id:'a',label:'A',value:60},{id:'b',label:'B',value:40}]} title=\"Share\" />\n\n// Empty data renders a visible \"No data\" placeholder (override via emptyLabel).\n<PieChart data={[]} title=\"Share\" emptyLabel=\"Nothing tracked yet\" />"
|
|
18744
18983
|
}
|
|
18745
18984
|
],
|
|
18746
18985
|
"dependencies": ["@cascivo/charts"],
|
|
@@ -19326,6 +19565,43 @@
|
|
|
19326
19565
|
"required": false,
|
|
19327
19566
|
"description": "Accessible label (defaults to the i18n \"Code editor\")"
|
|
19328
19567
|
},
|
|
19568
|
+
{
|
|
19569
|
+
"name": "onSave",
|
|
19570
|
+
"type": "(value: string) => void",
|
|
19571
|
+
"required": false,
|
|
19572
|
+
"description": "Called on Mod-S; the browser save dialog is suppressed"
|
|
19573
|
+
},
|
|
19574
|
+
{
|
|
19575
|
+
"name": "bracketMatching",
|
|
19576
|
+
"type": "boolean",
|
|
19577
|
+
"required": false,
|
|
19578
|
+
"default": "false",
|
|
19579
|
+
"description": "Highlight the bracket matching the one adjacent to the caret"
|
|
19580
|
+
},
|
|
19581
|
+
{
|
|
19582
|
+
"name": "theme",
|
|
19583
|
+
"type": "EditorTheme",
|
|
19584
|
+
"required": false,
|
|
19585
|
+
"description": "Per-instance --cascivo-editor-* overrides; swapping it re-themes live"
|
|
19586
|
+
},
|
|
19587
|
+
{
|
|
19588
|
+
"name": "keymap",
|
|
19589
|
+
"type": "KeyMap",
|
|
19590
|
+
"required": false,
|
|
19591
|
+
"description": "Extra key bindings merged over the built-ins (user wins on a chord)"
|
|
19592
|
+
},
|
|
19593
|
+
{
|
|
19594
|
+
"name": "decorations",
|
|
19595
|
+
"type": "Decoration[] | ((value: string) => Decoration[])",
|
|
19596
|
+
"required": false,
|
|
19597
|
+
"description": "Extra offset-range → CSS class decorations"
|
|
19598
|
+
},
|
|
19599
|
+
{
|
|
19600
|
+
"name": "ref",
|
|
19601
|
+
"type": "Ref<CodeEditorHandle>",
|
|
19602
|
+
"required": false,
|
|
19603
|
+
"description": "Imperative handle: applyEdit / getSelection / focus / undo / redo / openFind"
|
|
19604
|
+
},
|
|
19329
19605
|
{
|
|
19330
19606
|
"name": "className",
|
|
19331
19607
|
"type": "string",
|
|
@@ -19337,14 +19613,26 @@
|
|
|
19337
19613
|
"--cascivo-editor-fg",
|
|
19338
19614
|
"--cascivo-editor-gutter-bg",
|
|
19339
19615
|
"--cascivo-editor-gutter-fg",
|
|
19616
|
+
"--cascivo-editor-gutter-active",
|
|
19340
19617
|
"--cascivo-editor-current-line",
|
|
19341
19618
|
"--cascivo-editor-selection",
|
|
19342
|
-
"--cascivo-editor-border"
|
|
19619
|
+
"--cascivo-editor-border",
|
|
19620
|
+
"--cascivo-editor-match",
|
|
19621
|
+
"--cascivo-editor-match-current",
|
|
19622
|
+
"--cascivo-editor-bracket"
|
|
19343
19623
|
],
|
|
19344
19624
|
"accessibility": {
|
|
19345
19625
|
"role": "textbox",
|
|
19346
19626
|
"wcag": "2.1-AA",
|
|
19347
|
-
"keyboard": [
|
|
19627
|
+
"keyboard": [
|
|
19628
|
+
"Tab (indent)",
|
|
19629
|
+
"Shift+Tab (dedent)",
|
|
19630
|
+
"Mod+Z / Mod+Shift+Z (undo / redo)",
|
|
19631
|
+
"Mod+F (find)",
|
|
19632
|
+
"Mod+Alt+F (replace)",
|
|
19633
|
+
"Mod+S (save)",
|
|
19634
|
+
"Standard textarea editing"
|
|
19635
|
+
],
|
|
19348
19636
|
"reducedMotion": true,
|
|
19349
19637
|
"forcedColors": true
|
|
19350
19638
|
},
|
|
@@ -19356,6 +19644,10 @@
|
|
|
19356
19644
|
{
|
|
19357
19645
|
"title": "Controlled",
|
|
19358
19646
|
"code": "<CodeEditor language=\"json\" value={value} onValueChange={setValue} />"
|
|
19647
|
+
},
|
|
19648
|
+
{
|
|
19649
|
+
"title": "Notes editing — find, save, brackets",
|
|
19650
|
+
"code": "<CodeEditor\n language=\"markdown\"\n value={doc}\n onValueChange={setDoc}\n onSave={save} // Mod-S\n bracketMatching\n/> // Mod-F to search"
|
|
19359
19651
|
}
|
|
19360
19652
|
],
|
|
19361
19653
|
"dependencies": ["@cascivo/core", "@cascivo/i18n"],
|
|
@@ -19363,11 +19655,15 @@
|
|
|
19363
19655
|
"intent": {
|
|
19364
19656
|
"whenToUse": [
|
|
19365
19657
|
"Editing code or config inline — JSON, snippets, web languages — with line numbers and syntax colors",
|
|
19366
|
-
"A lightweight, themeable code field where a full IDE editor (Monaco/CodeMirror) would be overkill"
|
|
19658
|
+
"A lightweight, themeable code field where a full IDE editor (Monaco/CodeMirror) would be overkill",
|
|
19659
|
+
"Editing Markdown notes — find/replace, real undo/redo, save, and selection-preserving external sync",
|
|
19660
|
+
"Editing long-form Markdown — generated docs, concatenated books, big notes — windowed (viewport-scoped) tokenization keeps scrolling/typing smooth well past ~5,000 lines"
|
|
19367
19661
|
],
|
|
19368
19662
|
"whenNotToUse": [
|
|
19369
19663
|
"You need IntelliSense/LSP, multi-cursor, folding, a minimap, or diff view — use a full editor framework",
|
|
19370
|
-
"Plain prose or a single-line value — use Textarea or Input"
|
|
19664
|
+
"Plain prose or a single-line value — use Textarea or Input",
|
|
19665
|
+
"Sustained editing of 100k+-line documents — use a full editor framework / dedicated worker pipeline (the windowed tokenizer keeps per-render work O(viewport), but a worker offload is intentionally out of scope)",
|
|
19666
|
+
"Soft-wrap (wrap) on a very large document — rendering is O(n) under wrap; disable wrap above ~10k lines for sustained editing"
|
|
19371
19667
|
],
|
|
19372
19668
|
"antiPatterns": [
|
|
19373
19669
|
{
|
|
@@ -19394,6 +19690,11 @@
|
|
|
19394
19690
|
"area": "languages",
|
|
19395
19691
|
"level": "flexible",
|
|
19396
19692
|
"note": "Ships a small grammar set; registerGrammar adds custom languages without bundle bloat"
|
|
19693
|
+
},
|
|
19694
|
+
{
|
|
19695
|
+
"area": "large documents",
|
|
19696
|
+
"level": "flexible",
|
|
19697
|
+
"note": "Windowed tokenization (tokenizeRange + LineStateIndex) makes per-render work O(viewport) and per-edit work O(changed suffix); long Markdown edits well past ~5,000 lines. Worker offload / 100k+-line sustained editing stay out of scope"
|
|
19397
19698
|
}
|
|
19398
19699
|
]
|
|
19399
19700
|
}
|