@kanso-protocol/mcp 3.0.2 → 4.1.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.
Files changed (2) hide show
  1. package/manifest.json +154 -8
  2. package/package.json +1 -1
package/manifest.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "generatedAt": "2026-05-25T12:33:36.678Z",
3
- "version": "3.0.2",
2
+ "generatedAt": "2026-06-07T09:04:04.925Z",
3
+ "version": "4.1.0",
4
4
  "totals": {
5
- "components": 57,
5
+ "components": 59,
6
6
  "patterns": 22,
7
7
  "tokens": 915
8
8
  },
@@ -768,7 +768,7 @@
768
768
  },
769
769
  {
770
770
  "name": "color",
771
- "type": "KpColorRole",
771
+ "type": "KpButtonColor",
772
772
  "default": "'primary'",
773
773
  "description": ""
774
774
  },
@@ -829,9 +829,9 @@
829
829
  "selector": "kp-icon-button",
830
830
  "layer": "components",
831
831
  "package": "@kanso-protocol/button",
832
- "description": "Kanso Protocol — IconButton (atom)\n\nSquare ghost button with a single projected icon. Used for \"close\",\n\"clear\", \"dismiss\" affordances on Popover, Dialog, Toast, Input,\nAlert, etc. — replaces per-component reimplementations of the same\npattern (which historically drifted on hover / focus / sizing).\n\nColor is `currentColor` so the button picks up the foreground color\nof its container (e.g. inside Popover header it's `popover-fg-desc`,\ninside Toast it's the toast title color). Hover applies the same\nsubtle overlay used everywhere else.",
832
+ "description": "Kanso Protocol — IconButton (atom)",
833
833
  "examples": [
834
- "<kp-icon-button size=\"sm\" ariaLabel=\"Close\" (click)=\"close()\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </kp-icon-button>"
834
+ "(still works in 4.x but logs a deprecation notice on first use)\n<kp-icon-button size=\"sm\" ariaLabel=\"Close\" (click)=\"close()\">\n<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n<path d=\"M18 6 6 18M6 6l12 12\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\"/>\n</svg>\n</kp-icon-button>"
835
835
  ],
836
836
  "inputs": [
837
837
  {
@@ -2866,6 +2866,80 @@
2866
2866
  "storybook": "components-popover--docs"
2867
2867
  }
2868
2868
  },
2869
+ {
2870
+ "name": "popover",
2871
+ "className": "KpPopoverDirective",
2872
+ "selector": "[kpPopover]",
2873
+ "layer": "components",
2874
+ "package": "@kanso-protocol/popover",
2875
+ "description": "Kanso Protocol — Popover directive.\n\nAttaches a floating panel to any element. The panel content is a\n`TemplateRef`, so you control its markup completely (a menu, a form,\na `<kp-popover>` chrome component, anything).\n\nTriggers:\n- `click` (default) — toggle on click; close on outside-click / Escape\n- `hover` — open on mouseenter, close on mouseleave (with a small grace delay)\n- `manual` — only `open()` / `close()` / `toggle()` from a template ref\n\nPositioned against the trigger with viewport-edge flipping (shared math\nwith the tooltip directive). Renders into the nearest open `<dialog>`\n(so it sits above modals) or `document.body`.",
2876
+ "examples": [
2877
+ "<button [kpPopover]=\"menuTpl\">Actions</button>\n<ng-template #menuTpl>\n <kp-popover [closable]=\"false\">\n <button kpButton variant=\"ghost\">Edit</button>\n <button kpButton variant=\"ghost\" color=\"danger\">Delete</button>\n </kp-popover>\n</ng-template>",
2878
+ "<!-- avatar menu, the motivating case -->\n<kp-avatar [kpPopover]=\"avatarMenu\" kpPopoverPosition=\"bottom\" />"
2879
+ ],
2880
+ "inputs": [
2881
+ {
2882
+ "name": "content",
2883
+ "type": "TemplateRef<unknown> | null",
2884
+ "default": "null",
2885
+ "description": "Panel content. `null` disables the popover."
2886
+ },
2887
+ {
2888
+ "name": "kpPopoverPosition",
2889
+ "type": "KpOverlaySide",
2890
+ "default": "'bottom'",
2891
+ "description": ""
2892
+ },
2893
+ {
2894
+ "name": "kpPopoverTrigger",
2895
+ "type": "KpPopoverTrigger",
2896
+ "default": "'click'",
2897
+ "description": ""
2898
+ },
2899
+ {
2900
+ "name": "kpPopoverGap",
2901
+ "type": "number",
2902
+ "default": "DEFAULT_GAP",
2903
+ "description": ""
2904
+ },
2905
+ {
2906
+ "name": "kpPopoverDisabled",
2907
+ "type": "boolean",
2908
+ "default": "false",
2909
+ "description": "Hard-disable regardless of content."
2910
+ }
2911
+ ],
2912
+ "outputs": [
2913
+ {
2914
+ "name": "kpPopoverOpened",
2915
+ "payload": "void"
2916
+ },
2917
+ {
2918
+ "name": "kpPopoverClosed",
2919
+ "payload": "void"
2920
+ }
2921
+ ],
2922
+ "ariaRole": null,
2923
+ "sizeRamp": [],
2924
+ "keyboardPatterns": [
2925
+ "Escape"
2926
+ ],
2927
+ "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-popover--docs",
2928
+ "sourcePath": "packages/components/popover/src/popover.directive.ts",
2929
+ "figma": {
2930
+ "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2931
+ "nodeId": "3805:11052",
2932
+ "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11052"
2933
+ },
2934
+ "codeConnect": {
2935
+ "npm": "@kanso-protocol/popover",
2936
+ "primaryClass": "KpPopoverComponent",
2937
+ "selector": "kp-popover",
2938
+ "import": "import { KpPopoverComponent } from '@kanso-protocol/popover';",
2939
+ "docs": "docs/components/popover.md",
2940
+ "storybook": "components-popover--docs"
2941
+ }
2942
+ },
2869
2943
  {
2870
2944
  "name": "progress",
2871
2945
  "className": "KpProgressCircularComponent",
@@ -4399,6 +4473,78 @@
4399
4473
  "storybook": "components-toggle--docs"
4400
4474
  }
4401
4475
  },
4476
+ {
4477
+ "name": "tooltip",
4478
+ "className": "KpClipboardCopyDirective",
4479
+ "selector": "[kpClipboardCopy]",
4480
+ "layer": "components",
4481
+ "package": "@kanso-protocol/tooltip",
4482
+ "description": "Kanso Protocol — Clipboard-copy directive.\n\nClick the host element to copy text to the clipboard; a brief tooltip\nhint (\"Copied\") appears for `kpClipboardDuration` ms. Reuses the\ntooltip's visual chrome + the shared overlay positioning.",
4483
+ "examples": [
4484
+ "<code [kpClipboardCopy]=\"snippet\">{{ snippet }}</code>",
4485
+ "<button [kpClipboardCopy]=\"token\"\n kpClipboardHint=\"Token copied!\"\n kpClipboardPosition=\"top\">Copy token</button>"
4486
+ ],
4487
+ "inputs": [
4488
+ {
4489
+ "name": "text",
4490
+ "type": "string | null",
4491
+ "default": "null",
4492
+ "description": "Text to copy. `null`/empty disables the copy action."
4493
+ },
4494
+ {
4495
+ "name": "kpClipboardHint",
4496
+ "type": "string",
4497
+ "default": "'Copied'",
4498
+ "description": "Hint shown after a successful copy."
4499
+ },
4500
+ {
4501
+ "name": "kpClipboardPosition",
4502
+ "type": "KpOverlaySide",
4503
+ "default": "'top'",
4504
+ "description": "Hint placement relative to the trigger."
4505
+ },
4506
+ {
4507
+ "name": "kpClipboardDuration",
4508
+ "type": "number",
4509
+ "default": "DEFAULT_HINT_DURATION",
4510
+ "description": "How long the hint stays visible, in ms."
4511
+ },
4512
+ {
4513
+ "name": "kpClipboardDisabled",
4514
+ "type": "boolean",
4515
+ "default": "false",
4516
+ "description": "Hard-disable regardless of text."
4517
+ }
4518
+ ],
4519
+ "outputs": [
4520
+ {
4521
+ "name": "kpCopied",
4522
+ "payload": "string"
4523
+ },
4524
+ {
4525
+ "name": "kpCopyFailed",
4526
+ "payload": "unknown"
4527
+ }
4528
+ ],
4529
+ "ariaRole": null,
4530
+ "sizeRamp": [],
4531
+ "keyboardPatterns": [],
4532
+ "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tooltip--docs",
4533
+ "sourcePath": "packages/components/tooltip/src/clipboard-copy.directive.ts",
4534
+ "figma": {
4535
+ "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4536
+ "nodeId": "3805:11048",
4537
+ "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11048"
4538
+ },
4539
+ "codeConnect": {
4540
+ "npm": "@kanso-protocol/tooltip",
4541
+ "primaryClass": "KpTooltipComponent",
4542
+ "selector": "kp-tooltip",
4543
+ "import": "import { KpTooltipComponent } from '@kanso-protocol/tooltip';",
4544
+ "docs": "docs/components/tooltip.md",
4545
+ "storybook": "components-tooltip--docs"
4546
+ }
4547
+ },
4402
4548
  {
4403
4549
  "name": "tooltip",
4404
4550
  "className": "KpTooltipDirective",
@@ -4413,9 +4559,9 @@
4413
4559
  "inputs": [
4414
4560
  {
4415
4561
  "name": "text",
4416
- "type": "string | null",
4562
+ "type": "string | TemplateRef<unknown> | null",
4417
4563
  "default": "null",
4418
- "description": "Tooltip text. `null` or empty string disables the tooltip."
4564
+ "description": "Tooltip content. A `string` renders as the label; a `TemplateRef`\nprojects custom content (icons, formatted text, etc.). `null` or an\nempty string disables the tooltip."
4419
4565
  },
4420
4566
  {
4421
4567
  "name": "kpTooltipPosition",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kanso-protocol/mcp",
3
- "version": "3.0.2",
3
+ "version": "4.1.0",
4
4
  "license": "MIT",
5
5
  "description": "Kanso Protocol — Model Context Protocol server. Exposes the component / pattern / token catalog to AI agents so they can author Kanso UI without leaving the editor.",
6
6
  "author": "GregNBlack",