@kanso-protocol/mcp 4.1.0 → 4.2.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/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "generatedAt": "2026-06-07T09:04:04.925Z",
3
- "version": "4.1.0",
2
+ "generatedAt": "2026-06-07T14:51:41.886Z",
3
+ "version": "4.2.1",
4
4
  "totals": {
5
5
  "components": 59,
6
6
  "patterns": 22,
@@ -61,7 +61,8 @@
61
61
  "className": "KpAccordionItemComponent",
62
62
  "selector": "kp-accordion-item",
63
63
  "layer": "components",
64
- "package": "@kanso-protocol/accordion",
64
+ "package": "@kanso-protocol/ui",
65
+ "import": "@kanso-protocol/ui/accordion",
65
66
  "description": "Kanso Protocol — AccordionItem (atom)\n\nExpandable row: a clickable trigger with title / optional description /\nchevron, and a content panel that renders when `[expanded]` is true.\nDrive `[expanded]` from a parent — either manually or via\n`<kp-accordion>` which coordinates single/multi behavior.",
66
67
  "examples": [],
67
68
  "inputs": [
@@ -128,17 +129,17 @@
128
129
  ],
129
130
  "keyboardPatterns": [],
130
131
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-accordion--docs",
131
- "sourcePath": "packages/components/accordion/src/accordion-item.component.ts",
132
+ "sourcePath": "packages/ui/accordion/src/accordion-item.component.ts",
132
133
  "figma": {
133
134
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
134
135
  "nodeId": "3805:11103",
135
136
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11103"
136
137
  },
137
138
  "codeConnect": {
138
- "npm": "@kanso-protocol/accordion",
139
+ "npm": "@kanso-protocol/ui",
139
140
  "primaryClass": "KpAccordionComponent",
140
141
  "selector": "kp-accordion",
141
- "import": "import { KpAccordionComponent } from '@kanso-protocol/accordion';",
142
+ "import": "import { KpAccordionComponent } from '@kanso-protocol/ui/accordion';",
142
143
  "docs": "docs/components/accordion.md",
143
144
  "storybook": "components-accordion--docs"
144
145
  }
@@ -148,7 +149,8 @@
148
149
  "className": "KpAccordionComponent",
149
150
  "selector": "kp-accordion",
150
151
  "layer": "components",
151
- "package": "@kanso-protocol/accordion",
152
+ "package": "@kanso-protocol/ui",
153
+ "import": "@kanso-protocol/ui/accordion",
152
154
  "description": "Kanso Protocol — Accordion\n\nContainer for `<kp-accordion-item>` children. Coordinates the\nexpand/collapse behavior via `[mode]`:\n - `single` — only one item can be open; expanding a new one collapses the previous.\n - `multi` — any number of items can be open simultaneously.\n\nCascades `size` to every projected item so callers set it once on\nthe container. Set `[showOuterBorder]=\"true\"` to wrap the group in\na 1px border with rounded corners (for standalone accordions on\nflat surfaces). Otherwise only the per-item bottom borders show.",
153
155
  "examples": [],
154
156
  "inputs": [
@@ -180,17 +182,17 @@
180
182
  ],
181
183
  "keyboardPatterns": [],
182
184
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-accordion--docs",
183
- "sourcePath": "packages/components/accordion/src/accordion.component.ts",
185
+ "sourcePath": "packages/ui/accordion/src/accordion.component.ts",
184
186
  "figma": {
185
187
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
186
188
  "nodeId": "3805:11103",
187
189
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11103"
188
190
  },
189
191
  "codeConnect": {
190
- "npm": "@kanso-protocol/accordion",
192
+ "npm": "@kanso-protocol/ui",
191
193
  "primaryClass": "KpAccordionComponent",
192
194
  "selector": "kp-accordion",
193
- "import": "import { KpAccordionComponent } from '@kanso-protocol/accordion';",
195
+ "import": "import { KpAccordionComponent } from '@kanso-protocol/ui/accordion';",
194
196
  "docs": "docs/components/accordion.md",
195
197
  "storybook": "components-accordion--docs"
196
198
  }
@@ -200,7 +202,8 @@
200
202
  "className": "KpAlertComponent",
201
203
  "selector": "kp-alert",
202
204
  "layer": "components",
203
- "package": "@kanso-protocol/alert",
205
+ "package": "@kanso-protocol/ui",
206
+ "import": "@kanso-protocol/ui/alert",
204
207
  "description": "Kanso Protocol — Alert\n\nIn-page banner for statuses, errors, warnings, and short messages. 3 sizes ×\n4 appearances (subtle / solid / outline / left-accent) × 6 color roles, plus\nan optional leading icon, an action slot (inline right or stacked below),\nand a close button.",
205
208
  "examples": [
206
209
  "<kp-alert color=\"success\" title=\"Changes saved\" description=\"Profile updated.\">\n <svg kpAlertIcon .../>\n</kp-alert>\n\n<kp-alert color=\"warning\" appearance=\"left-accent\" title=\"Review required\"\n description=\"3 items need your approval.\">\n <button kpButton kpAlertAction size=\"sm\" variant=\"subtle\">Review</button>\n</kp-alert>"
@@ -263,17 +266,17 @@
263
266
  ],
264
267
  "keyboardPatterns": [],
265
268
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-alert--docs",
266
- "sourcePath": "packages/components/alert/src/alert.component.ts",
269
+ "sourcePath": "packages/ui/alert/src/alert.component.ts",
267
270
  "figma": {
268
271
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
269
272
  "nodeId": "3805:11044",
270
273
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11044"
271
274
  },
272
275
  "codeConnect": {
273
- "npm": "@kanso-protocol/alert",
276
+ "npm": "@kanso-protocol/ui",
274
277
  "primaryClass": "KpAlertComponent",
275
278
  "selector": "kp-alert",
276
- "import": "import { KpAlertComponent } from '@kanso-protocol/alert';",
279
+ "import": "import { KpAlertComponent } from '@kanso-protocol/ui/alert';",
277
280
  "docs": "docs/components/alert.md",
278
281
  "storybook": "components-alert--docs"
279
282
  }
@@ -283,7 +286,8 @@
283
286
  "className": "KpAvatarComponent",
284
287
  "selector": "kp-avatar",
285
288
  "layer": "components",
286
- "package": "@kanso-protocol/avatar",
289
+ "package": "@kanso-protocol/ui",
290
+ "import": "@kanso-protocol/ui/avatar",
287
291
  "description": "Kanso Protocol — Avatar\n\nUser-facing identity surface: image / initials / icon. Six sizes\n× two shapes, seven color appearances, optional presence status\ndot and ring (for stacks).\n\nContent precedence: `src` → image, else `initials` → initials,\nelse projected `<svg>` / default user glyph.",
288
292
  "examples": [
289
293
  "<kp-avatar size=\"md\" initials=\"GB\"/>\n<kp-avatar size=\"lg\" src=\"/me.jpg\" [showStatus]=\"true\" status=\"online\"/>\n<kp-avatar size=\"xl\" shape=\"square\" appearance=\"neutral\">\n <svg><!-- company glyph --></svg>\n</kp-avatar>"
@@ -362,17 +366,17 @@
362
366
  ],
363
367
  "keyboardPatterns": [],
364
368
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-avatar--docs",
365
- "sourcePath": "packages/components/avatar/src/avatar.component.ts",
369
+ "sourcePath": "packages/ui/avatar/src/avatar.component.ts",
366
370
  "figma": {
367
371
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
368
372
  "nodeId": "3805:11139",
369
373
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11139"
370
374
  },
371
375
  "codeConnect": {
372
- "npm": "@kanso-protocol/avatar",
376
+ "npm": "@kanso-protocol/ui",
373
377
  "primaryClass": "KpAvatarComponent",
374
378
  "selector": "kp-avatar",
375
- "import": "import { KpAvatarComponent } from '@kanso-protocol/avatar';",
379
+ "import": "import { KpAvatarComponent } from '@kanso-protocol/ui/avatar';",
376
380
  "docs": "docs/components/avatar.md",
377
381
  "storybook": "components-avatar--docs"
378
382
  }
@@ -382,7 +386,8 @@
382
386
  "className": "KpAvatarGroupComponent",
383
387
  "selector": "kp-avatar-group",
384
388
  "layer": "components",
385
- "package": "@kanso-protocol/avatar-group",
389
+ "package": "@kanso-protocol/ui",
390
+ "import": "@kanso-protocol/ui/avatar-group",
386
391
  "description": "Kanso Protocol — AvatarGroup\n\nOverlapping stack of Avatars with an optional \"+N\" count chip.\nItems after `max` collapse into the count; `total` drives the\ndisplayed number (\"+N\" = `total - visible.length`).\n\nEach avatar is rendered with `showRing=true` so the overlap\nreads cleanly against any background.",
387
392
  "examples": [
388
393
  "<kp-avatar-group size=\"sm\" [items]=\"members\" [max]=\"4\" [total]=\"members.length\"/>"
@@ -414,17 +419,17 @@
414
419
  ],
415
420
  "keyboardPatterns": [],
416
421
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-avatargroup--docs",
417
- "sourcePath": "packages/components/avatar-group/src/avatar-group.component.ts",
422
+ "sourcePath": "packages/ui/avatar-group/src/avatar-group.component.ts",
418
423
  "figma": {
419
424
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
420
425
  "nodeId": "3805:11139",
421
426
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11139"
422
427
  },
423
428
  "codeConnect": {
424
- "npm": "@kanso-protocol/avatar-group",
429
+ "npm": "@kanso-protocol/ui",
425
430
  "primaryClass": "KpAvatarGroupComponent",
426
431
  "selector": "kp-avatar-group",
427
- "import": "import { KpAvatarGroupComponent } from '@kanso-protocol/avatar-group';",
432
+ "import": "import { KpAvatarGroupComponent } from '@kanso-protocol/ui/avatar-group';",
428
433
  "docs": "docs/components/avatar-group.md",
429
434
  "storybook": "components-avatargroup--docs"
430
435
  }
@@ -434,7 +439,8 @@
434
439
  "className": "KpBadgeComponent",
435
440
  "selector": "kp-badge",
436
441
  "layer": "components",
437
- "package": "@kanso-protocol/badge",
442
+ "package": "@kanso-protocol/ui",
443
+ "import": "@kanso-protocol/ui/badge",
438
444
  "description": "Kanso Protocol — Badge\n\nCompact label for statuses, tags, and counters. 3 sizes × 4 appearances\n× 6 color roles. A leading dot and a leading icon are independent\noptional slots; the dot appearance drops the background and border so\nthe dot becomes the only colour cue.",
439
445
  "examples": [
440
446
  "<kp-badge color=\"success\">Active</kp-badge>\n<kp-badge appearance=\"dot\" color=\"warning\" [showLeadingDot]=\"true\">Away</kp-badge>\n<kp-badge pill [closable]=\"true\" color=\"neutral\" appearance=\"subtle\" (close)=\"remove()\">Design</kp-badge>\n<kp-badge size=\"xs\" color=\"danger\" [count]=\"true\">12</kp-badge>"
@@ -497,17 +503,17 @@
497
503
  ],
498
504
  "keyboardPatterns": [],
499
505
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-badge--docs",
500
- "sourcePath": "packages/components/badge/src/badge.component.ts",
506
+ "sourcePath": "packages/ui/badge/src/badge.component.ts",
501
507
  "figma": {
502
508
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
503
509
  "nodeId": "3805:11040",
504
510
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11040"
505
511
  },
506
512
  "codeConnect": {
507
- "npm": "@kanso-protocol/badge",
513
+ "npm": "@kanso-protocol/ui",
508
514
  "primaryClass": "KpBadgeComponent",
509
515
  "selector": "kp-badge",
510
- "import": "import { KpBadgeComponent } from '@kanso-protocol/badge';",
516
+ "import": "import { KpBadgeComponent } from '@kanso-protocol/ui/badge';",
511
517
  "docs": "docs/components/badge.md",
512
518
  "storybook": "components-badge--docs"
513
519
  }
@@ -517,7 +523,8 @@
517
523
  "className": "KpBreadcrumbItemComponent",
518
524
  "selector": "kp-breadcrumb-item",
519
525
  "layer": "components",
520
- "package": "@kanso-protocol/breadcrumbs",
526
+ "package": "@kanso-protocol/ui",
527
+ "import": "@kanso-protocol/ui/breadcrumbs",
521
528
  "description": "Kanso Protocol — BreadcrumbItem (atom)\n\nSingle breadcrumb cell. Renders as an `<a>` for `type=\"link\"` with an\n`href`, a `<button>` for `type=\"link\"` without one, a plain `<span>`\nfor `type=\"current\"`, or a `<button>` for `type=\"ellipsis\"`\n(clickable — callers typically open a Popover / DropdownMenu from it).\n\nProjects a leading icon via `[kpBreadcrumbIcon]`. Size is usually set\nby the parent `<kp-breadcrumbs>`.",
522
529
  "examples": [
523
530
  "<kp-breadcrumb-item type=\"link\" href=\"/projects\">\n <svg kpBreadcrumbIcon .../>\n Projects\n</kp-breadcrumb-item>"
@@ -575,17 +582,17 @@
575
582
  "Home"
576
583
  ],
577
584
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
578
- "sourcePath": "packages/components/breadcrumbs/src/breadcrumb-item.component.ts",
585
+ "sourcePath": "packages/ui/breadcrumbs/src/breadcrumb-item.component.ts",
579
586
  "figma": {
580
587
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
581
588
  "nodeId": "3805:11072",
582
589
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11072"
583
590
  },
584
591
  "codeConnect": {
585
- "npm": "@kanso-protocol/breadcrumbs",
592
+ "npm": "@kanso-protocol/ui",
586
593
  "primaryClass": "KpBreadcrumbsComponent",
587
594
  "selector": "kp-breadcrumbs",
588
- "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/breadcrumbs';",
595
+ "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/ui/breadcrumbs';",
589
596
  "docs": "docs/components/breadcrumbs.md",
590
597
  "storybook": "components-breadcrumbs--docs"
591
598
  }
@@ -595,7 +602,8 @@
595
602
  "className": "KpBreadcrumbSeparatorComponent",
596
603
  "selector": "kp-breadcrumb-separator",
597
604
  "layer": "components",
598
- "package": "@kanso-protocol/breadcrumbs",
605
+ "package": "@kanso-protocol/ui",
606
+ "import": "@kanso-protocol/ui/breadcrumbs",
599
607
  "description": "Kanso Protocol — BreadcrumbSeparator (atom)\n\nVisual glue between `<kp-breadcrumb-item>`s. Inert — not announced by\nscreen readers. Ships with three variants: a gray chevron, a gray\nslash, and a small accent-colored dot.",
600
608
  "examples": [],
601
609
  "inputs": [
@@ -620,17 +628,17 @@
620
628
  ],
621
629
  "keyboardPatterns": [],
622
630
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
623
- "sourcePath": "packages/components/breadcrumbs/src/breadcrumb-separator.component.ts",
631
+ "sourcePath": "packages/ui/breadcrumbs/src/breadcrumb-separator.component.ts",
624
632
  "figma": {
625
633
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
626
634
  "nodeId": "3805:11072",
627
635
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11072"
628
636
  },
629
637
  "codeConnect": {
630
- "npm": "@kanso-protocol/breadcrumbs",
638
+ "npm": "@kanso-protocol/ui",
631
639
  "primaryClass": "KpBreadcrumbsComponent",
632
640
  "selector": "kp-breadcrumbs",
633
- "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/breadcrumbs';",
641
+ "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/ui/breadcrumbs';",
634
642
  "docs": "docs/components/breadcrumbs.md",
635
643
  "storybook": "components-breadcrumbs--docs"
636
644
  }
@@ -640,7 +648,8 @@
640
648
  "className": "KpBreadcrumbsAutoComponent",
641
649
  "selector": "kp-breadcrumbs-auto",
642
650
  "layer": "components",
643
- "package": "@kanso-protocol/breadcrumbs",
651
+ "package": "@kanso-protocol/ui",
652
+ "import": "@kanso-protocol/ui/breadcrumbs",
644
653
  "description": "Kanso Protocol — BreadcrumbsAuto\n\nDrop-in replacement for the composable `<kp-breadcrumbs>` API that\nbuilds its trail from the Angular router state. Walks the current\n`ActivatedRouteSnapshot` tree from root to leaf, picks every route\nthat defines `data.breadcrumb`, and renders the full path\nautomatically — updating on every `NavigationEnd`.\n\nThe last collected entry becomes `type=\"current\"`; everything before\nit is `type=\"link\"` with an `href` built from the accumulated URL\nsegments. If you need richer content (icons, ellipsis collapsing),\nfall back to the manual `<kp-breadcrumbs>` composition.",
645
654
  "examples": [
646
655
  "// route config\nconst routes = [\n { path: '', data: { breadcrumb: 'Home' } },\n { path: 'projects', data: { breadcrumb: 'Projects' }, children: [\n { path: ':id', data: { breadcrumb: (r) => r.paramMap.get('id') ?? 'Detail' } }\n ]}\n];\n\n// template — anywhere inside a routed component\n<kp-breadcrumbs-auto size=\"md\" separator=\"chevron\"/>"
@@ -675,17 +684,17 @@
675
684
  "Home"
676
685
  ],
677
686
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
678
- "sourcePath": "packages/components/breadcrumbs/src/breadcrumbs-auto.component.ts",
687
+ "sourcePath": "packages/ui/breadcrumbs/src/breadcrumbs-auto.component.ts",
679
688
  "figma": {
680
689
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
681
690
  "nodeId": "3805:11072",
682
691
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11072"
683
692
  },
684
693
  "codeConnect": {
685
- "npm": "@kanso-protocol/breadcrumbs",
694
+ "npm": "@kanso-protocol/ui",
686
695
  "primaryClass": "KpBreadcrumbsComponent",
687
696
  "selector": "kp-breadcrumbs",
688
- "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/breadcrumbs';",
697
+ "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/ui/breadcrumbs';",
689
698
  "docs": "docs/components/breadcrumbs.md",
690
699
  "storybook": "components-breadcrumbs--docs"
691
700
  }
@@ -695,7 +704,8 @@
695
704
  "className": "KpBreadcrumbsComponent",
696
705
  "selector": "kp-breadcrumbs",
697
706
  "layer": "components",
698
- "package": "@kanso-protocol/breadcrumbs",
707
+ "package": "@kanso-protocol/ui",
708
+ "import": "@kanso-protocol/ui/breadcrumbs",
699
709
  "description": "Kanso Protocol — Breadcrumbs (container)\n\nSemantic `<nav aria-label=\"Breadcrumb\">` with an ordered list of items\nand separators. Cascades `size` to every projected `<kp-breadcrumb-item>`\nand `<kp-breadcrumb-separator>` so callers set it in one place.\n\nThe component is intentionally composable — callers include items\nand separators in the order they want them rendered. This keeps it\ncompatible with whatever routing/data source you use and makes the\noverflow `...` affordance trivial (just drop an `<kp-breadcrumb-item\ntype=\"ellipsis\">` between items).",
700
710
  "examples": [
701
711
  "<kp-breadcrumbs size=\"md\" ariaLabel=\"Breadcrumb\">\n <kp-breadcrumb-item type=\"link\" href=\"/\">\n <svg kpBreadcrumbIcon .../>\n </kp-breadcrumb-item>\n <kp-breadcrumb-separator type=\"chevron\"/>\n <kp-breadcrumb-item type=\"link\" label=\"Projects\" href=\"/projects\"/>\n <kp-breadcrumb-separator type=\"chevron\"/>\n <kp-breadcrumb-item type=\"current\" label=\"Button\"/>\n</kp-breadcrumbs>"
@@ -722,17 +732,17 @@
722
732
  ],
723
733
  "keyboardPatterns": [],
724
734
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
725
- "sourcePath": "packages/components/breadcrumbs/src/breadcrumbs.component.ts",
735
+ "sourcePath": "packages/ui/breadcrumbs/src/breadcrumbs.component.ts",
726
736
  "figma": {
727
737
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
728
738
  "nodeId": "3805:11072",
729
739
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11072"
730
740
  },
731
741
  "codeConnect": {
732
- "npm": "@kanso-protocol/breadcrumbs",
742
+ "npm": "@kanso-protocol/ui",
733
743
  "primaryClass": "KpBreadcrumbsComponent",
734
744
  "selector": "kp-breadcrumbs",
735
- "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/breadcrumbs';",
745
+ "import": "import { KpBreadcrumbsComponent } from '@kanso-protocol/ui/breadcrumbs';",
736
746
  "docs": "docs/components/breadcrumbs.md",
737
747
  "storybook": "components-breadcrumbs--docs"
738
748
  }
@@ -742,7 +752,8 @@
742
752
  "className": "KpButtonComponent",
743
753
  "selector": "button[kpButton]",
744
754
  "layer": "components",
745
- "package": "@kanso-protocol/button",
755
+ "package": "@kanso-protocol/ui",
756
+ "import": "@kanso-protocol/ui/button",
746
757
  "description": "Kanso Protocol — Button\n\nAttribute-selector on a real native `<button>`. Gets `type` / `form` /\n`name` / `value` / `formaction` / native disabled / Enter+Space /\nform submission / HTML5 validation for free.",
747
758
  "examples": [
748
759
  "<button kpButton size=\"md\" variant=\"default\" color=\"primary\">Click me</button>\n<button kpButton type=\"submit\" color=\"primary\">Save</button>\n<button kpButton variant=\"outline\" color=\"danger\" [loading]=\"true\">Delete</button>"
@@ -808,17 +819,17 @@
808
819
  ],
809
820
  "keyboardPatterns": [],
810
821
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-button--docs",
811
- "sourcePath": "packages/components/button/src/button.component.ts",
822
+ "sourcePath": "packages/ui/button/src/button.component.ts",
812
823
  "figma": {
813
824
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
814
825
  "nodeId": "3805:10993",
815
826
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-10993"
816
827
  },
817
828
  "codeConnect": {
818
- "npm": "@kanso-protocol/button",
829
+ "npm": "@kanso-protocol/ui",
819
830
  "primaryClass": "KpButtonComponent",
820
831
  "selector": "kp-button",
821
- "import": "import { KpButtonComponent } from '@kanso-protocol/button';",
832
+ "import": "import { KpButtonComponent } from '@kanso-protocol/ui/button';",
822
833
  "docs": "docs/components/button.md",
823
834
  "storybook": "components-button--docs"
824
835
  }
@@ -828,7 +839,8 @@
828
839
  "className": "KpIconButtonComponent",
829
840
  "selector": "kp-icon-button",
830
841
  "layer": "components",
831
- "package": "@kanso-protocol/button",
842
+ "package": "@kanso-protocol/ui",
843
+ "import": "@kanso-protocol/ui/button",
832
844
  "description": "Kanso Protocol — IconButton (atom)",
833
845
  "examples": [
834
846
  "(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>"
@@ -867,17 +879,17 @@
867
879
  ],
868
880
  "keyboardPatterns": [],
869
881
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-button--docs",
870
- "sourcePath": "packages/components/button/src/icon-button.component.ts",
882
+ "sourcePath": "packages/ui/button/src/icon-button.component.ts",
871
883
  "figma": {
872
884
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
873
885
  "nodeId": "3805:10993",
874
886
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-10993"
875
887
  },
876
888
  "codeConnect": {
877
- "npm": "@kanso-protocol/button",
889
+ "npm": "@kanso-protocol/ui",
878
890
  "primaryClass": "KpButtonComponent",
879
891
  "selector": "kp-button",
880
- "import": "import { KpButtonComponent } from '@kanso-protocol/button';",
892
+ "import": "import { KpButtonComponent } from '@kanso-protocol/ui/button';",
881
893
  "docs": "docs/components/button.md",
882
894
  "storybook": "components-button--docs"
883
895
  }
@@ -887,7 +899,8 @@
887
899
  "className": "KpCardComponent",
888
900
  "selector": "kp-card",
889
901
  "layer": "components",
890
- "package": "@kanso-protocol/card",
902
+ "package": "@kanso-protocol/ui",
903
+ "import": "@kanso-protocol/ui/card",
891
904
  "description": "Kanso Protocol — Card\n\nUniversal container with optional header (title + description +\naction), body, and footer. Each section toggles via boolean inputs;\ndividers can be added between sections for visual grouping.\n\nSet `appearance=\"elevated\"` for a shadowed surface, `\"muted\"` for a\ngray background with dimmed text (secondary / preview content),\n`\"subtle\"` for a gray background with full-strength text and no\nborder (primary content visually separated from the page), or\n`\"outline\"` for a transparent panel with just a border. Setting\n`[clickable]=\"true\"` adds a hover state and emits `(cardClick)` —\nwire it to navigate, expand, or run any action.",
892
905
  "examples": [],
893
906
  "inputs": [
@@ -972,17 +985,17 @@
972
985
  ],
973
986
  "keyboardPatterns": [],
974
987
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-card--docs",
975
- "sourcePath": "packages/components/card/src/card.component.ts",
988
+ "sourcePath": "packages/ui/card/src/card.component.ts",
976
989
  "figma": {
977
990
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
978
991
  "nodeId": "3805:11091",
979
992
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11091"
980
993
  },
981
994
  "codeConnect": {
982
- "npm": "@kanso-protocol/card",
995
+ "npm": "@kanso-protocol/ui",
983
996
  "primaryClass": "KpCardComponent",
984
997
  "selector": "kp-card",
985
- "import": "import { KpCardComponent } from '@kanso-protocol/card';",
998
+ "import": "import { KpCardComponent } from '@kanso-protocol/ui/card';",
986
999
  "docs": "docs/components/card.md",
987
1000
  "storybook": "components-card--docs"
988
1001
  }
@@ -992,7 +1005,8 @@
992
1005
  "className": "KpCheckboxComponent",
993
1006
  "selector": "kp-checkbox",
994
1007
  "layer": "components",
995
- "package": "@kanso-protocol/checkbox",
1008
+ "package": "@kanso-protocol/ui",
1009
+ "import": "@kanso-protocol/ui/checkbox",
996
1010
  "description": "Kanso Protocol — Checkbox\n\nWraps a real native `<input type=\"checkbox\">` inside a styled `<label>`.\nForm submission, FormData, `<label for>` association, password manager\nautofill, native indeterminate, Space-toggle, and HTML5 validation\n(`required`) all work without polyfills.",
997
1011
  "examples": [
998
1012
  "<kp-checkbox [(checked)]=\"isChecked\" size=\"md\">Remember me</kp-checkbox>\n<kp-checkbox [indeterminate]=\"true\">Select all</kp-checkbox>\n<form><kp-checkbox name=\"agree\" value=\"yes\" required>I agree</kp-checkbox></form>"
@@ -1085,17 +1099,17 @@
1085
1099
  ],
1086
1100
  "keyboardPatterns": [],
1087
1101
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-checkbox--docs",
1088
- "sourcePath": "packages/components/checkbox/src/checkbox.component.ts",
1102
+ "sourcePath": "packages/ui/checkbox/src/checkbox.component.ts",
1089
1103
  "figma": {
1090
1104
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1091
1105
  "nodeId": "3805:11001",
1092
1106
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11001"
1093
1107
  },
1094
1108
  "codeConnect": {
1095
- "npm": "@kanso-protocol/checkbox",
1109
+ "npm": "@kanso-protocol/ui",
1096
1110
  "primaryClass": "KpCheckboxComponent",
1097
1111
  "selector": "kp-checkbox",
1098
- "import": "import { KpCheckboxComponent } from '@kanso-protocol/checkbox';",
1112
+ "import": "import { KpCheckboxComponent } from '@kanso-protocol/ui/checkbox';",
1099
1113
  "docs": "docs/components/checkbox.md",
1100
1114
  "storybook": "components-checkbox--docs"
1101
1115
  }
@@ -1105,7 +1119,8 @@
1105
1119
  "className": "KpComboboxComponent",
1106
1120
  "selector": "kp-combobox",
1107
1121
  "layer": "components",
1108
- "package": "@kanso-protocol/combobox",
1122
+ "package": "@kanso-protocol/ui",
1123
+ "import": "@kanso-protocol/ui/combobox",
1109
1124
  "description": "Kanso Protocol — Combobox\n\nSelect with an embedded text input for filtering. Type to narrow the\ndropdown list; pick an option with click, `Enter`, or `Tab`. Supports\nsingle and multi selection. Matches Input's size ramp so it composes\nwith other form controls.",
1110
1125
  "examples": [
1111
1126
  "<kp-combobox [options]=\"countries\" [(ngModel)]=\"country\"/>\n<kp-combobox [multiple]=\"true\" [options]=\"tags\" [(ngModel)]=\"picked\"/>"
@@ -1194,17 +1209,17 @@
1194
1209
  "Backspace"
1195
1210
  ],
1196
1211
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-combobox--docs",
1197
- "sourcePath": "packages/components/combobox/src/combobox.component.ts",
1212
+ "sourcePath": "packages/ui/combobox/src/combobox.component.ts",
1198
1213
  "figma": {
1199
1214
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1200
1215
  "nodeId": "3805:11115",
1201
1216
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11115"
1202
1217
  },
1203
1218
  "codeConnect": {
1204
- "npm": "@kanso-protocol/combobox",
1219
+ "npm": "@kanso-protocol/ui",
1205
1220
  "primaryClass": "KpComboboxComponent",
1206
1221
  "selector": "kp-combobox",
1207
- "import": "import { KpComboboxComponent } from '@kanso-protocol/combobox';",
1222
+ "import": "import { KpComboboxComponent } from '@kanso-protocol/ui/combobox';",
1208
1223
  "docs": "docs/components/combobox.md",
1209
1224
  "storybook": "components-combobox--docs"
1210
1225
  }
@@ -1214,7 +1229,8 @@
1214
1229
  "className": "KpCommandPaletteComponent",
1215
1230
  "selector": "kp-command-palette",
1216
1231
  "layer": "components",
1217
- "package": "@kanso-protocol/command-palette",
1232
+ "package": "@kanso-protocol/ui",
1233
+ "import": "@kanso-protocol/ui/command-palette",
1218
1234
  "description": "Kanso Protocol — CommandPalette\n\nModal command launcher (⌘K-style). Composes `<kp-dialog>` (chromeless)\nwith an internal input + grouped result list. Keyboard navigation:\n`↑` / `↓` highlight, `Enter` select, `Esc` close. The component owns\nthe open state when `[shortcut]` is set — the global keydown listener\ntoggles `open` on the configured combo (default `mod+k`).\n\nThe consumer supplies `[groups]`. Filtering is the consumer's job —\nthe component re-emits `(filterChange)` on every input keystroke.",
1219
1235
  "examples": [
1220
1236
  "<kp-command-palette\n [(open)]=\"paletteOpen\"\n [groups]=\"results\"\n [shortcut]=\"{ combo: 'mod+k' }\"\n (filterChange)=\"onFilter($event)\"\n (itemSelect)=\"run($event)\"\n/>"
@@ -1280,7 +1296,7 @@
1280
1296
  },
1281
1297
  {
1282
1298
  "name": "itemSelect",
1283
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/command-palette/src/command-palette.component\").KpCommandItem"
1299
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/command-palette/src/command-palette.component\").KpCommandItem"
1284
1300
  }
1285
1301
  ],
1286
1302
  "ariaRole": null,
@@ -1297,17 +1313,17 @@
1297
1313
  "Enter"
1298
1314
  ],
1299
1315
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-commandpalette--docs",
1300
- "sourcePath": "packages/components/command-palette/src/command-palette.component.ts",
1316
+ "sourcePath": "packages/ui/command-palette/src/command-palette.component.ts",
1301
1317
  "figma": {
1302
1318
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1303
1319
  "nodeId": "4111:11234",
1304
1320
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=4111-11234"
1305
1321
  },
1306
1322
  "codeConnect": {
1307
- "npm": "@kanso-protocol/command-palette",
1323
+ "npm": "@kanso-protocol/ui",
1308
1324
  "primaryClass": "KpCommandPaletteComponent",
1309
1325
  "selector": "kp-command-palette",
1310
- "import": "import { KpCommandPaletteComponent } from '@kanso-protocol/command-palette';",
1326
+ "import": "import { KpCommandPaletteComponent } from '@kanso-protocol/ui/command-palette';",
1311
1327
  "docs": "docs/components/command-palette.md",
1312
1328
  "storybook": "components-commandpalette--docs"
1313
1329
  }
@@ -1317,7 +1333,8 @@
1317
1333
  "className": "KpDatePickerComponent",
1318
1334
  "selector": "kp-date-picker",
1319
1335
  "layer": "components",
1320
- "package": "@kanso-protocol/datepicker",
1336
+ "package": "@kanso-protocol/ui",
1337
+ "import": "@kanso-protocol/ui/datepicker",
1321
1338
  "description": "Kanso Protocol — DatePicker\n\nInput-triggered calendar popup. `mode=\"single\"` picks one date, `mode=\"range\"`\npicks a pair `[start, end]`. Panel portals to `<body>` so it escapes any\noverflow / transform on ancestors.\n\nShares Input's size ramp and visual state vocabulary.",
1322
1339
  "examples": [],
1323
1340
  "inputs": [
@@ -1403,7 +1420,7 @@
1403
1420
  "outputs": [
1404
1421
  {
1405
1422
  "name": "valueChange",
1406
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/datepicker/src/datepicker.component\").KpDatePickerValue"
1423
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/datepicker/src/datepicker.component\").KpDatePickerValue"
1407
1424
  },
1408
1425
  {
1409
1426
  "name": "openChange",
@@ -1432,17 +1449,17 @@
1432
1449
  "Space"
1433
1450
  ],
1434
1451
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-datepicker--docs",
1435
- "sourcePath": "packages/components/datepicker/src/datepicker.component.ts",
1452
+ "sourcePath": "packages/ui/datepicker/src/datepicker.component.ts",
1436
1453
  "figma": {
1437
1454
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1438
1455
  "nodeId": "3805:11119",
1439
1456
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11119"
1440
1457
  },
1441
1458
  "codeConnect": {
1442
- "npm": "@kanso-protocol/datepicker",
1459
+ "npm": "@kanso-protocol/ui",
1443
1460
  "primaryClass": "KpDatePickerComponent",
1444
1461
  "selector": "kp-datepicker",
1445
- "import": "import { KpDatePickerComponent } from '@kanso-protocol/datepicker';",
1462
+ "import": "import { KpDatePickerComponent } from '@kanso-protocol/ui/datepicker';",
1446
1463
  "docs": "docs/components/datepicker.md",
1447
1464
  "storybook": "components-datepicker--docs"
1448
1465
  }
@@ -1452,7 +1469,8 @@
1452
1469
  "className": "KpDialogComponent",
1453
1470
  "selector": "kp-dialog",
1454
1471
  "layer": "components",
1455
- "package": "@kanso-protocol/dialog",
1472
+ "package": "@kanso-protocol/ui",
1473
+ "import": "@kanso-protocol/ui/dialog",
1456
1474
  "description": "Kanso Protocol — Dialog\n\nWraps a real native `<dialog>` element. Focus trap, top-layer\nstacking, ESC-to-close, body-scroll inertness, and `::backdrop`\nstyling are all browser-native. Composition is slot-driven:\n`[kpDialogHeroIcon]` / `[kpDialogBody]` / `[kpDialogFooter]`.",
1457
1475
  "examples": [
1458
1476
  "<kp-dialog\n [(open)]=\"deleteOpen\"\n size=\"sm\"\n title=\"Delete repository?\"\n [showDescription]=\"true\"\n description=\"This action cannot be undone.\"\n (closed)=\"deleteOpen = false\"\n/>"
@@ -1557,17 +1575,17 @@
1557
1575
  ],
1558
1576
  "keyboardPatterns": [],
1559
1577
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-dialog--docs",
1560
- "sourcePath": "packages/components/dialog/src/dialog.component.ts",
1578
+ "sourcePath": "packages/ui/dialog/src/dialog.component.ts",
1561
1579
  "figma": {
1562
1580
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1563
1581
  "nodeId": "3805:11083",
1564
1582
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11083"
1565
1583
  },
1566
1584
  "codeConnect": {
1567
- "npm": "@kanso-protocol/dialog",
1585
+ "npm": "@kanso-protocol/ui",
1568
1586
  "primaryClass": "KpDialogComponent",
1569
1587
  "selector": "kp-dialog",
1570
- "import": "import { KpDialogComponent } from '@kanso-protocol/dialog';",
1588
+ "import": "import { KpDialogComponent } from '@kanso-protocol/ui/dialog';",
1571
1589
  "docs": "docs/components/dialog.md",
1572
1590
  "storybook": "components-dialog--docs"
1573
1591
  }
@@ -1577,7 +1595,8 @@
1577
1595
  "className": "KpDividerComponent",
1578
1596
  "selector": "kp-divider",
1579
1597
  "layer": "components",
1580
- "package": "@kanso-protocol/divider",
1598
+ "package": "@kanso-protocol/ui",
1599
+ "import": "@kanso-protocol/ui/divider",
1581
1600
  "description": "Kanso Protocol — Divider\n\nThin line separator. Horizontal by default; set `orientation=\"vertical\"`\nfor an inline vertical rule. Horizontal dividers can carry an optional\nlabel via `[label]` (or projected default content) with configurable\nposition — center / start / end.\n\nVertical dividers are label-less by design (visually awkward).",
1582
1601
  "examples": [],
1583
1602
  "inputs": [
@@ -1611,17 +1630,17 @@
1611
1630
  "sizeRamp": [],
1612
1631
  "keyboardPatterns": [],
1613
1632
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-divider--docs",
1614
- "sourcePath": "packages/components/divider/src/divider.component.ts",
1633
+ "sourcePath": "packages/ui/divider/src/divider.component.ts",
1615
1634
  "figma": {
1616
1635
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1617
1636
  "nodeId": "3805:11087",
1618
1637
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11087"
1619
1638
  },
1620
1639
  "codeConnect": {
1621
- "npm": "@kanso-protocol/divider",
1640
+ "npm": "@kanso-protocol/ui",
1622
1641
  "primaryClass": "KpDividerComponent",
1623
1642
  "selector": "kp-divider",
1624
- "import": "import { KpDividerComponent } from '@kanso-protocol/divider';",
1643
+ "import": "import { KpDividerComponent } from '@kanso-protocol/ui/divider';",
1625
1644
  "docs": "docs/components/divider.md",
1626
1645
  "storybook": "components-divider--docs"
1627
1646
  }
@@ -1631,7 +1650,8 @@
1631
1650
  "className": "KpDrawerComponent",
1632
1651
  "selector": "kp-drawer",
1633
1652
  "layer": "components",
1634
- "package": "@kanso-protocol/drawer",
1653
+ "package": "@kanso-protocol/ui",
1654
+ "import": "@kanso-protocol/ui/drawer",
1635
1655
  "description": "Kanso Protocol — Drawer\n\nSide panel that slides in from any of four edges. Same composition\nmodel as Dialog (header / body / footer slots, controlled\n`[(open)]` state, focus trap on open, Esc + backdrop close), but\nanchored to a screen edge instead of centered.\n\nUse it for: settings panels, filter sidebars, mobile bottom sheets,\ntop notification trays. Body content scrolls when it overflows the\npanel; the panel itself stays fixed-size per `size` × `side`.",
1636
1656
  "examples": [],
1637
1657
  "inputs": [
@@ -1747,17 +1767,17 @@
1747
1767
  "Escape"
1748
1768
  ],
1749
1769
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-drawer--docs",
1750
- "sourcePath": "packages/components/drawer/src/drawer.component.ts",
1770
+ "sourcePath": "packages/ui/drawer/src/drawer.component.ts",
1751
1771
  "figma": {
1752
1772
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1753
1773
  "nodeId": "3805:11099",
1754
1774
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11099"
1755
1775
  },
1756
1776
  "codeConnect": {
1757
- "npm": "@kanso-protocol/drawer",
1777
+ "npm": "@kanso-protocol/ui",
1758
1778
  "primaryClass": "KpDrawerComponent",
1759
1779
  "selector": "kp-drawer",
1760
- "import": "import { KpDrawerComponent } from '@kanso-protocol/drawer';",
1780
+ "import": "import { KpDrawerComponent } from '@kanso-protocol/ui/drawer';",
1761
1781
  "docs": "docs/components/drawer.md",
1762
1782
  "storybook": "components-drawer--docs"
1763
1783
  }
@@ -1767,7 +1787,8 @@
1767
1787
  "className": "KpEmptyStateComponent",
1768
1788
  "selector": "kp-empty-state",
1769
1789
  "layer": "components",
1770
- "package": "@kanso-protocol/empty-state",
1790
+ "package": "@kanso-protocol/ui",
1791
+ "import": "@kanso-protocol/ui/empty-state",
1771
1792
  "description": "Kanso Protocol — EmptyState\n\nCentered placeholder for empty lists, missing data, or zero-result\nscreens. Composes a circular illustration container, title,\ndescription, and an actions row. Project the illustration via\n`[kpEmptyStateIcon]` and footer buttons via `[kpEmptyStateActions]`.",
1772
1793
  "examples": [],
1773
1794
  "inputs": [
@@ -1811,17 +1832,17 @@
1811
1832
  ],
1812
1833
  "keyboardPatterns": [],
1813
1834
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-emptystate--docs",
1814
- "sourcePath": "packages/components/empty-state/src/empty-state.component.ts",
1835
+ "sourcePath": "packages/ui/empty-state/src/empty-state.component.ts",
1815
1836
  "figma": {
1816
1837
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1817
1838
  "nodeId": "3805:11095",
1818
1839
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11095"
1819
1840
  },
1820
1841
  "codeConnect": {
1821
- "npm": "@kanso-protocol/empty-state",
1842
+ "npm": "@kanso-protocol/ui",
1822
1843
  "primaryClass": "KpEmptyStateComponent",
1823
1844
  "selector": "kp-empty-state",
1824
- "import": "import { KpEmptyStateComponent } from '@kanso-protocol/empty-state';",
1845
+ "import": "import { KpEmptyStateComponent } from '@kanso-protocol/ui/empty-state';",
1825
1846
  "docs": "docs/components/empty-state.md",
1826
1847
  "storybook": "components-emptystate--docs"
1827
1848
  }
@@ -1831,7 +1852,8 @@
1831
1852
  "className": "KpFileUploadComponent",
1832
1853
  "selector": "kp-file-upload",
1833
1854
  "layer": "components",
1834
- "package": "@kanso-protocol/file-upload",
1855
+ "package": "@kanso-protocol/ui",
1856
+ "import": "@kanso-protocol/ui/file-upload",
1835
1857
  "description": "Kanso Protocol — FileUpload (dropzone)\n\nClick-to-browse + drag-and-drop. Constraints:\n`[accept]` MIME / extension list, `[maxSize]` bytes per file,\n`[maxFiles]` total count, `[multiple]` toggle.\n\nEmits `(filesAdded)` for accepted files (the consumer owns the upload\nloop and reports back via `setProgress` / `setStatus`) and\n`(filesRejected)` for the rest. Selected files are tracked in `files`\nso the UI can show a status list with progress + remove.",
1836
1858
  "examples": [
1837
1859
  "<kp-file-upload\n [multiple]=\"true\"\n accept=\"image/*,.pdf\"\n [maxSize]=\"5 * 1024 * 1024\"\n [maxFiles]=\"10\"\n (filesAdded)=\"upload($event)\"\n (filesRejected)=\"warn($event)\"\n (fileRemoved)=\"cancel($event)\"\n/>"
@@ -1913,15 +1935,15 @@
1913
1935
  "outputs": [
1914
1936
  {
1915
1937
  "name": "filesAdded",
1916
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/file-upload/src/file-upload.component\").KpUploadFile[]"
1938
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/file-upload/src/file-upload.component\").KpUploadFile[]"
1917
1939
  },
1918
1940
  {
1919
1941
  "name": "filesRejected",
1920
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/file-upload/src/file-upload.component\").KpFileRejection[]"
1942
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/file-upload/src/file-upload.component\").KpFileRejection[]"
1921
1943
  },
1922
1944
  {
1923
1945
  "name": "fileRemoved",
1924
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/file-upload/src/file-upload.component\").KpUploadFile"
1946
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/file-upload/src/file-upload.component\").KpUploadFile"
1925
1947
  }
1926
1948
  ],
1927
1949
  "ariaRole": null,
@@ -1932,17 +1954,17 @@
1932
1954
  ],
1933
1955
  "keyboardPatterns": [],
1934
1956
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-fileupload--docs",
1935
- "sourcePath": "packages/components/file-upload/src/file-upload.component.ts",
1957
+ "sourcePath": "packages/ui/file-upload/src/file-upload.component.ts",
1936
1958
  "figma": {
1937
1959
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
1938
1960
  "nodeId": "4110:11270",
1939
1961
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=4110-11270"
1940
1962
  },
1941
1963
  "codeConnect": {
1942
- "npm": "@kanso-protocol/file-upload",
1964
+ "npm": "@kanso-protocol/ui",
1943
1965
  "primaryClass": "KpFileUploadComponent",
1944
1966
  "selector": "kp-file-upload",
1945
- "import": "import { KpFileUploadComponent } from '@kanso-protocol/file-upload';",
1967
+ "import": "import { KpFileUploadComponent } from '@kanso-protocol/ui/file-upload';",
1946
1968
  "docs": "docs/components/file-upload.md",
1947
1969
  "storybook": "components-fileupload--docs"
1948
1970
  }
@@ -1952,7 +1974,8 @@
1952
1974
  "className": "KpFormFieldComponent",
1953
1975
  "selector": "kp-form-field",
1954
1976
  "layer": "components",
1955
- "package": "@kanso-protocol/form-field",
1977
+ "package": "@kanso-protocol/ui",
1978
+ "import": "@kanso-protocol/ui/form-field",
1956
1979
  "description": "Kanso Protocol — FormField\n\nWraps any form control with a label, optional/required marker, and a\nfooter that renders either a helper text (rest state) or a validation\nerror message (when the projected control is invalid and was touched\nor dirty).\n\n**Auto-error mode.** Project any Angular form control — `[formControl]`,\n`[formControlName]`, `ngModel`, or a custom directive that implements\n`ControlValueAccessor`. FormField finds the `NgControl` via content\nprojection, subscribes to its status/value changes, and surfaces the\nerror from `control.errors` using a lookup against the validation\nmessage registry (see `KP_VALIDATION_MESSAGES`). Per-field messages\noverride the registry via the `[errors]` input.\n\n**Manual mode.** Pass `[error]=\"true\"` + a custom `[helper]` text if\nyou want full control over the error display (e.g. when the validation\nstate lives outside Angular Forms).",
1957
1980
  "examples": [
1958
1981
  "Auto-error from a reactive FormControl:\n<kp-form-field label=\"Email\" required=\"required-asterisk\">\n<kp-input [formControl]=\"email\" />\n</kp-form-field>",
@@ -2007,17 +2030,17 @@
2007
2030
  "sizeRamp": [],
2008
2031
  "keyboardPatterns": [],
2009
2032
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-formfield--docs",
2010
- "sourcePath": "packages/components/form-field/src/form-field.component.ts",
2033
+ "sourcePath": "packages/ui/form-field/src/form-field.component.ts",
2011
2034
  "figma": {
2012
2035
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2013
2036
  "nodeId": "3805:11016",
2014
2037
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11016"
2015
2038
  },
2016
2039
  "codeConnect": {
2017
- "npm": "@kanso-protocol/form-field",
2040
+ "npm": "@kanso-protocol/ui",
2018
2041
  "primaryClass": "KpFormFieldComponent",
2019
2042
  "selector": "kp-form-field",
2020
- "import": "import { KpFormFieldComponent } from '@kanso-protocol/form-field';",
2043
+ "import": "import { KpFormFieldComponent } from '@kanso-protocol/ui/form-field';",
2021
2044
  "docs": "docs/components/form-field.md",
2022
2045
  "storybook": "components-formfield--docs"
2023
2046
  }
@@ -2027,7 +2050,8 @@
2027
2050
  "className": "KpIconComponent",
2028
2051
  "selector": "kp-icon",
2029
2052
  "layer": "components",
2030
- "package": "@kanso-protocol/icon",
2053
+ "package": "@kanso-protocol/ui",
2054
+ "import": "@kanso-protocol/ui/icon",
2031
2055
  "description": "Kanso Protocol — Icon Component\n\nRenders Tabler Icons SVGs inline with stroke-width auto-tuned per size.\nThe same `name` strings work in code and Figma (the `tabler/{name}` master\ncomponents on the Foundations » Tabler Icons page mirror this set).",
2032
2056
  "examples": [
2033
2057
  "<kp-icon name=\"search\" size=\"md\" />\n<kp-icon name=\"star-filled\" size=\"sm\" />\n<kp-icon [name]=\"dynamicName\" size=\"lg\" />\n\nNeed an icon outside the default set? Register at startup:\n\n KP_ICON_REGISTRY.register('my-logo', '<svg viewBox=\"0 0 24 24\">…</svg>');"
@@ -2038,12 +2062,12 @@
2038
2062
  "sizeRamp": [],
2039
2063
  "keyboardPatterns": [],
2040
2064
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-icon--docs",
2041
- "sourcePath": "packages/components/icon/src/icon.component.ts",
2065
+ "sourcePath": "packages/ui/icon/src/icon.component.ts",
2042
2066
  "codeConnect": {
2043
- "npm": "@kanso-protocol/icon",
2067
+ "npm": "@kanso-protocol/ui",
2044
2068
  "primaryClass": "KpIconComponent",
2045
2069
  "selector": "kp-icon",
2046
- "import": "import { KpIconComponent } from '@kanso-protocol/icon';",
2070
+ "import": "import { KpIconComponent } from '@kanso-protocol/ui/icon';",
2047
2071
  "docs": "docs/components/icon.md",
2048
2072
  "storybook": "components-icon--docs"
2049
2073
  }
@@ -2053,7 +2077,8 @@
2053
2077
  "className": "KpInputComponent",
2054
2078
  "selector": "kp-input",
2055
2079
  "layer": "components",
2056
- "package": "@kanso-protocol/input",
2080
+ "package": "@kanso-protocol/ui",
2081
+ "import": "@kanso-protocol/ui/input",
2057
2082
  "description": "Kanso Protocol — Input Component\n\nAnatomy: Container → Content → Elements (icon-left, input, icon-right)\nSupports: 5 sizes × 7 states (rest/hover/active/focus/disabled/loading/error)\nFloating Label: available for lg and xl sizes",
2058
2083
  "examples": [
2059
2084
  "<kp-input size=\"md\" placeholder=\"Enter text\"></kp-input>\n<kp-input size=\"lg\" label=\"Email\" [floatingLabel]=\"true\"></kp-input>"
@@ -2131,17 +2156,17 @@
2131
2156
  ],
2132
2157
  "keyboardPatterns": [],
2133
2158
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-input--docs",
2134
- "sourcePath": "packages/components/input/src/input.component.ts",
2159
+ "sourcePath": "packages/ui/input/src/input.component.ts",
2135
2160
  "figma": {
2136
2161
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2137
2162
  "nodeId": "3805:10997",
2138
2163
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-10997"
2139
2164
  },
2140
2165
  "codeConnect": {
2141
- "npm": "@kanso-protocol/input",
2166
+ "npm": "@kanso-protocol/ui",
2142
2167
  "primaryClass": "KpInputComponent",
2143
2168
  "selector": "kp-input",
2144
- "import": "import { KpInputComponent } from '@kanso-protocol/input';",
2169
+ "import": "import { KpInputComponent } from '@kanso-protocol/ui/input';",
2145
2170
  "docs": "docs/components/input.md",
2146
2171
  "storybook": "components-input--docs"
2147
2172
  }
@@ -2151,7 +2176,8 @@
2151
2176
  "className": "KpMarkdownViewerComponent",
2152
2177
  "selector": "kp-markdown-viewer",
2153
2178
  "layer": "components",
2154
- "package": "@kanso-protocol/markdown-viewer",
2179
+ "package": "@kanso-protocol/ui",
2180
+ "import": "@kanso-protocol/ui/markdown-viewer",
2155
2181
  "description": "Kanso Protocol — MarkdownViewer\n\nRead-only markdown renderer. Pairs with `<kp-rich-text-editor>` (which\nis HTML-only) for repos / docs / READMEs / changelog viewers.\n\nDefault parser is `marked` (already a dev-dep transitive in many Angular\nsetups; declared here as a runtime dep so the component is self-contained).\nPass `[parser]` to swap in `markdown-it`, `remark`, or a custom parser\nwhen you need plugin support beyond CommonMark + GFM.\n\nOutput is sanitized via `DomSanitizer.bypassSecurityTrustHtml` only when\n`[trusted]=true`. With `trusted=false` (default) the inner HTML goes\nthrough Angular's automatic sanitization, which strips `<script>`,\ninline event handlers, and `javascript:` URLs.",
2156
2182
  "examples": [
2157
2183
  "<kp-markdown-viewer\n size=\"md\"\n [content]=\"readme\"\n/>",
@@ -2192,17 +2218,17 @@
2192
2218
  ],
2193
2219
  "keyboardPatterns": [],
2194
2220
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-markdownviewer--docs",
2195
- "sourcePath": "packages/components/markdown-viewer/src/markdown-viewer.component.ts",
2221
+ "sourcePath": "packages/ui/markdown-viewer/src/markdown-viewer.component.ts",
2196
2222
  "figma": {
2197
2223
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2198
2224
  "nodeId": "4109:11282",
2199
2225
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=4109-11282"
2200
2226
  },
2201
2227
  "codeConnect": {
2202
- "npm": "@kanso-protocol/markdown-viewer",
2228
+ "npm": "@kanso-protocol/ui",
2203
2229
  "primaryClass": "KpMarkdownViewerComponent",
2204
2230
  "selector": "kp-markdown-viewer",
2205
- "import": "import { KpMarkdownViewerComponent } from '@kanso-protocol/markdown-viewer';",
2231
+ "import": "import { KpMarkdownViewerComponent } from '@kanso-protocol/ui/markdown-viewer';",
2206
2232
  "docs": "docs/components/markdown-viewer.md",
2207
2233
  "storybook": "components-markdownviewer--docs"
2208
2234
  }
@@ -2212,7 +2238,8 @@
2212
2238
  "className": "KpDropdownMenuComponent",
2213
2239
  "selector": "kp-dropdown-menu",
2214
2240
  "layer": "components",
2215
- "package": "@kanso-protocol/menu",
2241
+ "package": "@kanso-protocol/ui",
2242
+ "import": "@kanso-protocol/ui/menu",
2216
2243
  "description": "Kanso Protocol — DropdownMenu\n\nFloating panel container for menu items. Projects any menu content:\nMenuItem, MenuDivider, MenuSectionLabel.\n\nOptional Search at the top and Footer with 1–2 full-width buttons at the bottom.",
2217
2244
  "examples": [
2218
2245
  "<kp-dropdown-menu\n [hasSearch]=\"true\"\n [hasFooter]=\"true\"\n [showCancel]=\"true\"\n primaryLabel=\"Apply\"\n cancelLabel=\"Cancel\"\n (primary)=\"apply()\"\n (cancel)=\"close()\">\n <kp-menu-item label=\"Profile\"/>\n</kp-dropdown-menu>"
@@ -2279,17 +2306,17 @@
2279
2306
  "sizeRamp": [],
2280
2307
  "keyboardPatterns": [],
2281
2308
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
2282
- "sourcePath": "packages/components/menu/src/dropdown-menu.component.ts",
2309
+ "sourcePath": "packages/ui/menu/src/dropdown-menu.component.ts",
2283
2310
  "figma": {
2284
2311
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2285
2312
  "nodeId": "3805:11020",
2286
2313
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11020"
2287
2314
  },
2288
2315
  "codeConnect": {
2289
- "npm": "@kanso-protocol/menu",
2316
+ "npm": "@kanso-protocol/ui",
2290
2317
  "primaryClass": "KpDropdownMenuComponent",
2291
2318
  "selector": "kp-dropdown-menu",
2292
- "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/menu';",
2319
+ "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/ui/menu';",
2293
2320
  "docs": "docs/components/dropdown-menu.md",
2294
2321
  "storybook": "components-dropdownmenu--docs"
2295
2322
  }
@@ -2299,7 +2326,8 @@
2299
2326
  "className": "KpMenuDividerComponent",
2300
2327
  "selector": "kp-menu-divider",
2301
2328
  "layer": "components",
2302
- "package": "@kanso-protocol/menu",
2329
+ "package": "@kanso-protocol/ui",
2330
+ "import": "@kanso-protocol/ui/menu",
2303
2331
  "description": "Kanso Protocol — MenuDivider\n\nThin horizontal separator between groups of menu items.",
2304
2332
  "examples": [],
2305
2333
  "inputs": [],
@@ -2308,17 +2336,17 @@
2308
2336
  "sizeRamp": [],
2309
2337
  "keyboardPatterns": [],
2310
2338
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
2311
- "sourcePath": "packages/components/menu/src/menu-divider.component.ts",
2339
+ "sourcePath": "packages/ui/menu/src/menu-divider.component.ts",
2312
2340
  "figma": {
2313
2341
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2314
2342
  "nodeId": "3805:11020",
2315
2343
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11020"
2316
2344
  },
2317
2345
  "codeConnect": {
2318
- "npm": "@kanso-protocol/menu",
2346
+ "npm": "@kanso-protocol/ui",
2319
2347
  "primaryClass": "KpDropdownMenuComponent",
2320
2348
  "selector": "kp-dropdown-menu",
2321
- "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/menu';",
2349
+ "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/ui/menu';",
2322
2350
  "docs": "docs/components/dropdown-menu.md",
2323
2351
  "storybook": "components-dropdownmenu--docs"
2324
2352
  }
@@ -2328,7 +2356,8 @@
2328
2356
  "className": "KpMenuItemComponent",
2329
2357
  "selector": "kp-menu-item",
2330
2358
  "layer": "components",
2331
- "package": "@kanso-protocol/menu",
2359
+ "package": "@kanso-protocol/ui",
2360
+ "import": "@kanso-protocol/ui/menu",
2332
2361
  "description": "Kanso Protocol — MenuItem\n\nSingle option inside a DropdownMenu. Supports 3 sizes, optional icon slot,\ndescription (lg), shortcut/chevron trailing, and selected/danger variants.\n\nProjection slots:\n [kpMenuItemLeading] — slot before label (e.g. Checkbox/Radio)\n [kpMenuItemIcon] — icon left slot\n [kpMenuItemTrailing] — custom trailing content (overrides shortcut/chevron)",
2333
2362
  "examples": [
2334
2363
  "<kp-menu-item label=\"Edit\" shortcut=\"⌘E\">\n <svg kpMenuItemIcon>...</svg>\n</kp-menu-item>"
@@ -2398,17 +2427,17 @@
2398
2427
  ],
2399
2428
  "keyboardPatterns": [],
2400
2429
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
2401
- "sourcePath": "packages/components/menu/src/menu-item.component.ts",
2430
+ "sourcePath": "packages/ui/menu/src/menu-item.component.ts",
2402
2431
  "figma": {
2403
2432
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2404
2433
  "nodeId": "3805:11020",
2405
2434
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11020"
2406
2435
  },
2407
2436
  "codeConnect": {
2408
- "npm": "@kanso-protocol/menu",
2437
+ "npm": "@kanso-protocol/ui",
2409
2438
  "primaryClass": "KpDropdownMenuComponent",
2410
2439
  "selector": "kp-dropdown-menu",
2411
- "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/menu';",
2440
+ "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/ui/menu';",
2412
2441
  "docs": "docs/components/dropdown-menu.md",
2413
2442
  "storybook": "components-dropdownmenu--docs"
2414
2443
  }
@@ -2418,7 +2447,8 @@
2418
2447
  "className": "KpMenuSectionLabelComponent",
2419
2448
  "selector": "kp-menu-section-label",
2420
2449
  "layer": "components",
2421
- "package": "@kanso-protocol/menu",
2450
+ "package": "@kanso-protocol/ui",
2451
+ "import": "@kanso-protocol/ui/menu",
2422
2452
  "description": "Kanso Protocol — MenuSectionLabel\n\nSmall uppercase heading used to group items inside a DropdownMenu.",
2423
2453
  "examples": [],
2424
2454
  "inputs": [
@@ -2434,17 +2464,17 @@
2434
2464
  "sizeRamp": [],
2435
2465
  "keyboardPatterns": [],
2436
2466
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
2437
- "sourcePath": "packages/components/menu/src/menu-section-label.component.ts",
2467
+ "sourcePath": "packages/ui/menu/src/menu-section-label.component.ts",
2438
2468
  "figma": {
2439
2469
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2440
2470
  "nodeId": "3805:11020",
2441
2471
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11020"
2442
2472
  },
2443
2473
  "codeConnect": {
2444
- "npm": "@kanso-protocol/menu",
2474
+ "npm": "@kanso-protocol/ui",
2445
2475
  "primaryClass": "KpDropdownMenuComponent",
2446
2476
  "selector": "kp-dropdown-menu",
2447
- "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/menu';",
2477
+ "import": "import { KpDropdownMenuComponent } from '@kanso-protocol/ui/menu';",
2448
2478
  "docs": "docs/components/dropdown-menu.md",
2449
2479
  "storybook": "components-dropdownmenu--docs"
2450
2480
  }
@@ -2454,7 +2484,8 @@
2454
2484
  "className": "KpNumberStepperComponent",
2455
2485
  "selector": "kp-number-stepper",
2456
2486
  "layer": "components",
2457
- "package": "@kanso-protocol/number-stepper",
2487
+ "package": "@kanso-protocol/ui",
2488
+ "import": "@kanso-protocol/ui/number-stepper",
2458
2489
  "description": "Kanso Protocol — NumberStepper Component\n\nNumeric input with − and + controls integrated into one rounded container.\nMirrors Input's size grammar so a NumberStepper sits flush next to an Input\nof the same size in a form row.",
2459
2490
  "examples": [
2460
2491
  "<kp-number-stepper [(ngModel)]=\"qty\" [min]=\"0\" [max]=\"10\"/>\n<kp-number-stepper size=\"lg\" [(ngModel)]=\"weight\" suffix=\"kg\"/>"
@@ -2526,17 +2557,17 @@
2526
2557
  ],
2527
2558
  "keyboardPatterns": [],
2528
2559
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-numberstepper--docs",
2529
- "sourcePath": "packages/components/number-stepper/src/number-stepper.component.ts",
2560
+ "sourcePath": "packages/ui/number-stepper/src/number-stepper.component.ts",
2530
2561
  "figma": {
2531
2562
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2532
2563
  "nodeId": "3805:11032",
2533
2564
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11032"
2534
2565
  },
2535
2566
  "codeConnect": {
2536
- "npm": "@kanso-protocol/number-stepper",
2567
+ "npm": "@kanso-protocol/ui",
2537
2568
  "primaryClass": "KpNumberStepperComponent",
2538
2569
  "selector": "kp-number-stepper",
2539
- "import": "import { KpNumberStepperComponent } from '@kanso-protocol/number-stepper';",
2570
+ "import": "import { KpNumberStepperComponent } from '@kanso-protocol/ui/number-stepper';",
2540
2571
  "docs": "docs/components/number-stepper.md",
2541
2572
  "storybook": "components-numberstepper--docs"
2542
2573
  }
@@ -2546,7 +2577,8 @@
2546
2577
  "className": "KpPaginationItemComponent",
2547
2578
  "selector": "kp-pagination-item",
2548
2579
  "layer": "components",
2549
- "package": "@kanso-protocol/pagination",
2580
+ "package": "@kanso-protocol/ui",
2581
+ "import": "@kanso-protocol/ui/pagination",
2550
2582
  "description": "Kanso Protocol — PaginationItem (atom)\n\nSingle cell in a pagination strip. Renders as a page-pill for\n`type=\"page\"` (rounded-square with size-specific radius), a\nchevron/text-nav button for `type=\"nav\"`, or a static `…`\nellipsis for `type=\"ellipsis\"`.\n\nUsually driven by the parent `<kp-pagination>`. You can drop items\nstandalone if you're assembling a bespoke pagination layout, but for\nthe common case let the container compute the range and emit events.",
2551
2583
  "examples": [],
2552
2584
  "inputs": [
@@ -2619,17 +2651,17 @@
2619
2651
  ],
2620
2652
  "keyboardPatterns": [],
2621
2653
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-pagination--docs",
2622
- "sourcePath": "packages/components/pagination/src/pagination-item.component.ts",
2654
+ "sourcePath": "packages/ui/pagination/src/pagination-item.component.ts",
2623
2655
  "figma": {
2624
2656
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2625
2657
  "nodeId": "3805:11076",
2626
2658
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11076"
2627
2659
  },
2628
2660
  "codeConnect": {
2629
- "npm": "@kanso-protocol/pagination",
2661
+ "npm": "@kanso-protocol/ui",
2630
2662
  "primaryClass": "KpPaginationComponent",
2631
2663
  "selector": "kp-pagination",
2632
- "import": "import { KpPaginationComponent } from '@kanso-protocol/pagination';",
2664
+ "import": "import { KpPaginationComponent } from '@kanso-protocol/ui/pagination';",
2633
2665
  "docs": "docs/components/pagination.md",
2634
2666
  "storybook": "components-pagination--docs"
2635
2667
  }
@@ -2639,7 +2671,8 @@
2639
2671
  "className": "KpPaginationComponent",
2640
2672
  "selector": "kp-pagination",
2641
2673
  "layer": "components",
2642
- "package": "@kanso-protocol/pagination",
2674
+ "package": "@kanso-protocol/ui",
2675
+ "import": "@kanso-protocol/ui/pagination",
2643
2676
  "description": "Kanso Protocol — Pagination\n\nPage-strip with prev/next nav, page pills, and optional \"Showing X of Y\" +\nitems-per-page selector. Computes the truncation range itself — callers\nonly provide `currentPage`, `totalPages`, and (if wanted) items-per-page\nstate and listen for `(pageChange)` / `(itemsPerPageChange)`.",
2644
2677
  "examples": [
2645
2678
  "<kp-pagination\n [currentPage]=\"page\"\n [totalPages]=\"20\"\n [showItemsInfo]=\"true\"\n [itemsPerPage]=\"pageSize\"\n [itemsTotal]=\"total\"\n [showItemsPerPage]=\"true\"\n (pageChange)=\"page = $event\"\n (itemsPerPageChange)=\"pageSize = $event\"\n/>"
@@ -2748,17 +2781,17 @@
2748
2781
  ],
2749
2782
  "keyboardPatterns": [],
2750
2783
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-pagination--docs",
2751
- "sourcePath": "packages/components/pagination/src/pagination.component.ts",
2784
+ "sourcePath": "packages/ui/pagination/src/pagination.component.ts",
2752
2785
  "figma": {
2753
2786
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2754
2787
  "nodeId": "3805:11076",
2755
2788
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11076"
2756
2789
  },
2757
2790
  "codeConnect": {
2758
- "npm": "@kanso-protocol/pagination",
2791
+ "npm": "@kanso-protocol/ui",
2759
2792
  "primaryClass": "KpPaginationComponent",
2760
2793
  "selector": "kp-pagination",
2761
- "import": "import { KpPaginationComponent } from '@kanso-protocol/pagination';",
2794
+ "import": "import { KpPaginationComponent } from '@kanso-protocol/ui/pagination';",
2762
2795
  "docs": "docs/components/pagination.md",
2763
2796
  "storybook": "components-pagination--docs"
2764
2797
  }
@@ -2768,7 +2801,8 @@
2768
2801
  "className": "KpPopoverComponent",
2769
2802
  "selector": "kp-popover",
2770
2803
  "layer": "components",
2771
- "package": "@kanso-protocol/popover",
2804
+ "package": "@kanso-protocol/ui",
2805
+ "import": "@kanso-protocol/ui/popover",
2772
2806
  "description": "Kanso Protocol — Popover\n\nFloating panel with optional header / body / footer and an optional\ndirectional arrow (4 sides × 3 anchors). Visual chrome only —\npositioning, show/hide and portaling are the caller's responsibility.\n\nThe host container uses `filter: drop-shadow()` so the shadow follows\nthe combined silhouette of body + arrow, and grows automatically with\ncontent.",
2773
2807
  "examples": [
2774
2808
  "<kp-popover size=\"md\" arrowPosition=\"top-center\"\n title=\"Delete this item?\" description=\"This action cannot be undone.\"\n [closable]=\"true\" (close)=\"cancel()\">\n <button kpButton kpPopoverFooter size=\"sm\" variant=\"ghost\">Cancel</button>\n <button kpButton kpPopoverFooter size=\"sm\" color=\"danger\">Delete</button>\n</kp-popover>"
@@ -2851,17 +2885,17 @@
2851
2885
  "Space"
2852
2886
  ],
2853
2887
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-popover--docs",
2854
- "sourcePath": "packages/components/popover/src/popover.component.ts",
2888
+ "sourcePath": "packages/ui/popover/src/popover.component.ts",
2855
2889
  "figma": {
2856
2890
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2857
2891
  "nodeId": "3805:11052",
2858
2892
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11052"
2859
2893
  },
2860
2894
  "codeConnect": {
2861
- "npm": "@kanso-protocol/popover",
2895
+ "npm": "@kanso-protocol/ui",
2862
2896
  "primaryClass": "KpPopoverComponent",
2863
2897
  "selector": "kp-popover",
2864
- "import": "import { KpPopoverComponent } from '@kanso-protocol/popover';",
2898
+ "import": "import { KpPopoverComponent } from '@kanso-protocol/ui/popover';",
2865
2899
  "docs": "docs/components/popover.md",
2866
2900
  "storybook": "components-popover--docs"
2867
2901
  }
@@ -2871,7 +2905,8 @@
2871
2905
  "className": "KpPopoverDirective",
2872
2906
  "selector": "[kpPopover]",
2873
2907
  "layer": "components",
2874
- "package": "@kanso-protocol/popover",
2908
+ "package": "@kanso-protocol/ui",
2909
+ "import": "@kanso-protocol/ui/popover",
2875
2910
  "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
2911
  "examples": [
2877
2912
  "<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>",
@@ -2925,17 +2960,17 @@
2925
2960
  "Escape"
2926
2961
  ],
2927
2962
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-popover--docs",
2928
- "sourcePath": "packages/components/popover/src/popover.directive.ts",
2963
+ "sourcePath": "packages/ui/popover/src/popover.directive.ts",
2929
2964
  "figma": {
2930
2965
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
2931
2966
  "nodeId": "3805:11052",
2932
2967
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11052"
2933
2968
  },
2934
2969
  "codeConnect": {
2935
- "npm": "@kanso-protocol/popover",
2970
+ "npm": "@kanso-protocol/ui",
2936
2971
  "primaryClass": "KpPopoverComponent",
2937
2972
  "selector": "kp-popover",
2938
- "import": "import { KpPopoverComponent } from '@kanso-protocol/popover';",
2973
+ "import": "import { KpPopoverComponent } from '@kanso-protocol/ui/popover';",
2939
2974
  "docs": "docs/components/popover.md",
2940
2975
  "storybook": "components-popover--docs"
2941
2976
  }
@@ -2945,7 +2980,8 @@
2945
2980
  "className": "KpProgressCircularComponent",
2946
2981
  "selector": "kp-progress-circular",
2947
2982
  "layer": "components",
2948
- "package": "@kanso-protocol/progress",
2983
+ "package": "@kanso-protocol/ui",
2984
+ "import": "@kanso-protocol/ui/progress",
2949
2985
  "description": "Kanso Protocol — ProgressCircular\n\nCircular determinate or indeterminate progress, drawn as two SVG\ncircles — a full track ring and a stroked arc that sweeps clockwise\nfrom 12 o'clock.",
2950
2986
  "examples": [
2951
2987
  "<kp-progress-circular [value]=\"65\" color=\"primary\" [showValue]=\"true\"/>\n<kp-progress-circular [indeterminate]=\"true\" size=\"md\"/>"
@@ -3001,17 +3037,17 @@
3001
3037
  "Space"
3002
3038
  ],
3003
3039
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
3004
- "sourcePath": "packages/components/progress/src/progress-circular.component.ts",
3040
+ "sourcePath": "packages/ui/progress/src/progress-circular.component.ts",
3005
3041
  "figma": {
3006
3042
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3007
3043
  "nodeId": "3805:11056",
3008
3044
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11056"
3009
3045
  },
3010
3046
  "codeConnect": {
3011
- "npm": "@kanso-protocol/progress",
3047
+ "npm": "@kanso-protocol/ui",
3012
3048
  "primaryClass": "KpProgressLinearComponent",
3013
3049
  "selector": "kp-progress-linear",
3014
- "import": "import { KpProgressLinearComponent } from '@kanso-protocol/progress';",
3050
+ "import": "import { KpProgressLinearComponent } from '@kanso-protocol/ui/progress';",
3015
3051
  "docs": "docs/components/progress.md",
3016
3052
  "storybook": "components-progress-linear--docs"
3017
3053
  }
@@ -3021,7 +3057,8 @@
3021
3057
  "className": "KpProgressLinearComponent",
3022
3058
  "selector": "kp-progress-linear",
3023
3059
  "layer": "components",
3024
- "package": "@kanso-protocol/progress",
3060
+ "package": "@kanso-protocol/ui",
3061
+ "import": "@kanso-protocol/ui/progress",
3025
3062
  "description": "Kanso Protocol — ProgressLinear\n\nHorizontal determinate or indeterminate progress bar, with an optional\nlabel/value pair either stacked above or sitting inline to the right.",
3026
3063
  "examples": [
3027
3064
  "<kp-progress-linear [value]=\"45\" color=\"success\" [showLabel]=\"true\" label=\"Uploading\"/>\n<kp-progress-linear [indeterminate]=\"true\" color=\"primary\"/>"
@@ -3086,17 +3123,17 @@
3086
3123
  ],
3087
3124
  "keyboardPatterns": [],
3088
3125
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
3089
- "sourcePath": "packages/components/progress/src/progress-linear.component.ts",
3126
+ "sourcePath": "packages/ui/progress/src/progress-linear.component.ts",
3090
3127
  "figma": {
3091
3128
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3092
3129
  "nodeId": "3805:11056",
3093
3130
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11056"
3094
3131
  },
3095
3132
  "codeConnect": {
3096
- "npm": "@kanso-protocol/progress",
3133
+ "npm": "@kanso-protocol/ui",
3097
3134
  "primaryClass": "KpProgressLinearComponent",
3098
3135
  "selector": "kp-progress-linear",
3099
- "import": "import { KpProgressLinearComponent } from '@kanso-protocol/progress';",
3136
+ "import": "import { KpProgressLinearComponent } from '@kanso-protocol/ui/progress';",
3100
3137
  "docs": "docs/components/progress.md",
3101
3138
  "storybook": "components-progress-linear--docs"
3102
3139
  }
@@ -3106,7 +3143,8 @@
3106
3143
  "className": "KpProgressSegmentedComponent",
3107
3144
  "selector": "kp-progress-segmented",
3108
3145
  "layer": "components",
3109
- "package": "@kanso-protocol/progress",
3146
+ "package": "@kanso-protocol/ui",
3147
+ "import": "@kanso-protocol/ui/progress",
3110
3148
  "description": "Kanso Protocol — ProgressSegmented\n\nStepper-style progress: a row of pill-shaped segments, each filled when\nits step is complete. Use for multi-step flows (Details → Review →\nConfirm → Done) where the user can see both total and current step at a\nglance.",
3111
3149
  "examples": [
3112
3150
  "<kp-progress-segmented [total]=\"4\" [current]=\"2\"\n [showLabels]=\"true\" [labels]=\"['Details','Payment','Review','Done']\"\n [showStepCounter]=\"true\"/>"
@@ -3177,17 +3215,17 @@
3177
3215
  ],
3178
3216
  "keyboardPatterns": [],
3179
3217
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
3180
- "sourcePath": "packages/components/progress/src/progress-segmented.component.ts",
3218
+ "sourcePath": "packages/ui/progress/src/progress-segmented.component.ts",
3181
3219
  "figma": {
3182
3220
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3183
3221
  "nodeId": "3805:11056",
3184
3222
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11056"
3185
3223
  },
3186
3224
  "codeConnect": {
3187
- "npm": "@kanso-protocol/progress",
3225
+ "npm": "@kanso-protocol/ui",
3188
3226
  "primaryClass": "KpProgressLinearComponent",
3189
3227
  "selector": "kp-progress-linear",
3190
- "import": "import { KpProgressLinearComponent } from '@kanso-protocol/progress';",
3228
+ "import": "import { KpProgressLinearComponent } from '@kanso-protocol/ui/progress';",
3191
3229
  "docs": "docs/components/progress.md",
3192
3230
  "storybook": "components-progress-linear--docs"
3193
3231
  }
@@ -3197,7 +3235,8 @@
3197
3235
  "className": "KpRadioGroupComponent",
3198
3236
  "selector": "kp-radio-group",
3199
3237
  "layer": "components",
3200
- "package": "@kanso-protocol/radio",
3238
+ "package": "@kanso-protocol/ui",
3239
+ "import": "@kanso-protocol/ui/radio",
3201
3240
  "description": "Kanso Protocol — Radio Group\n\nContainer that coordinates a set of kp-radio elements. Selecting one\nautomatically deselects the others. Integrates with Reactive/Template forms.",
3202
3241
  "examples": [
3203
3242
  "<kp-radio-group [(value)]=\"selected\" name=\"plan\">\n <kp-radio value=\"free\">Free</kp-radio>\n <kp-radio value=\"pro\">Pro</kp-radio>\n <kp-radio value=\"team\">Team</kp-radio>\n</kp-radio-group>"
@@ -3238,17 +3277,17 @@
3238
3277
  "sizeRamp": [],
3239
3278
  "keyboardPatterns": [],
3240
3279
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-radio--docs",
3241
- "sourcePath": "packages/components/radio/src/radio-group.component.ts",
3280
+ "sourcePath": "packages/ui/radio/src/radio-group.component.ts",
3242
3281
  "figma": {
3243
3282
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3244
3283
  "nodeId": "3805:11005",
3245
3284
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11005"
3246
3285
  },
3247
3286
  "codeConnect": {
3248
- "npm": "@kanso-protocol/radio",
3287
+ "npm": "@kanso-protocol/ui",
3249
3288
  "primaryClass": "KpRadioComponent",
3250
3289
  "selector": "kp-radio",
3251
- "import": "import { KpRadioComponent } from '@kanso-protocol/radio';",
3290
+ "import": "import { KpRadioComponent } from '@kanso-protocol/ui/radio';",
3252
3291
  "docs": "docs/components/radio.md",
3253
3292
  "storybook": "components-radio--docs"
3254
3293
  }
@@ -3258,7 +3297,8 @@
3258
3297
  "className": "KpRadioComponent",
3259
3298
  "selector": "kp-radio",
3260
3299
  "layer": "components",
3261
- "package": "@kanso-protocol/radio",
3300
+ "package": "@kanso-protocol/ui",
3301
+ "import": "@kanso-protocol/ui/radio",
3262
3302
  "description": "Kanso Protocol — Radio\n\nWraps a real native `<input type=\"radio\">` inside a styled `<label>`.\nInside a `<kp-radio-group>`, radios share a `name` and the browser\nenforces single-selection natively (no manual deselection logic).\nIn a `<form>`, FormData picks up the checked radio's value.",
3263
3303
  "examples": [
3264
3304
  "<kp-radio-group [(value)]=\"selected\" name=\"plan\">\n <kp-radio value=\"free\">Free</kp-radio>\n <kp-radio value=\"pro\">Pro</kp-radio>\n</kp-radio-group>"
@@ -3339,17 +3379,17 @@
3339
3379
  ],
3340
3380
  "keyboardPatterns": [],
3341
3381
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-radio--docs",
3342
- "sourcePath": "packages/components/radio/src/radio.component.ts",
3382
+ "sourcePath": "packages/ui/radio/src/radio.component.ts",
3343
3383
  "figma": {
3344
3384
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3345
3385
  "nodeId": "3805:11005",
3346
3386
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11005"
3347
3387
  },
3348
3388
  "codeConnect": {
3349
- "npm": "@kanso-protocol/radio",
3389
+ "npm": "@kanso-protocol/ui",
3350
3390
  "primaryClass": "KpRadioComponent",
3351
3391
  "selector": "kp-radio",
3352
- "import": "import { KpRadioComponent } from '@kanso-protocol/radio';",
3392
+ "import": "import { KpRadioComponent } from '@kanso-protocol/ui/radio';",
3353
3393
  "docs": "docs/components/radio.md",
3354
3394
  "storybook": "components-radio--docs"
3355
3395
  }
@@ -3359,7 +3399,8 @@
3359
3399
  "className": "KpRichTextEditorComponent",
3360
3400
  "selector": "kp-rich-text-editor",
3361
3401
  "layer": "components",
3362
- "package": "@kanso-protocol/rich-text-editor",
3402
+ "package": "@kanso-protocol/ui",
3403
+ "import": "@kanso-protocol/ui/rich-text-editor",
3363
3404
  "description": "Kanso Protocol — Rich Text Editor\n\nToolbar + editable surface built on TipTap (headless ProseMirror).\nValue shape: HTML string. ControlValueAccessor ready, so it plugs into\nReactive / Template-driven forms the same way as `<kp-input>`.\n\nToolbar groups:\n · history — undo / redo\n · inline marks — bold · italic · underline · strikethrough · code\n · blocks — H1 · H2 · H3 · blockquote · code-block · horizontal rule\n · lists — bullet · ordered\n · alignment — left · center · right\n · link — prompts for URL (future: popover with input)\n · image — emits `(imageUpload)` so the host app handles storage",
3364
3405
  "examples": [
3365
3406
  "<kp-rich-text-editor\n [(ngModel)]=\"content\"\n placeholder=\"Write your post…\"\n (imageUpload)=\"uploadAndResolve($event)\" />"
@@ -3416,17 +3457,17 @@
3416
3457
  "Escape"
3417
3458
  ],
3418
3459
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-richtexteditor--docs",
3419
- "sourcePath": "packages/components/rich-text-editor/src/rich-text-editor.component.ts",
3460
+ "sourcePath": "packages/ui/rich-text-editor/src/rich-text-editor.component.ts",
3420
3461
  "figma": {
3421
3462
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3422
3463
  "nodeId": "3849:11648",
3423
3464
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3849-11648"
3424
3465
  },
3425
3466
  "codeConnect": {
3426
- "npm": "@kanso-protocol/rich-text-editor",
3467
+ "npm": "@kanso-protocol/ui",
3427
3468
  "primaryClass": "KpRichTextEditorComponent",
3428
3469
  "selector": "kp-rich-text-editor",
3429
- "import": "import { KpRichTextEditorComponent } from '@kanso-protocol/rich-text-editor';",
3470
+ "import": "import { KpRichTextEditorComponent } from '@kanso-protocol/ui/rich-text-editor';",
3430
3471
  "docs": "docs/components/rich-text-editor.md",
3431
3472
  "storybook": "components-richtexteditor--docs"
3432
3473
  }
@@ -3436,7 +3477,8 @@
3436
3477
  "className": "KpSegmentedControlComponent",
3437
3478
  "selector": "kp-segmented-control",
3438
3479
  "layer": "components",
3439
- "package": "@kanso-protocol/segmented-control",
3480
+ "package": "@kanso-protocol/ui",
3481
+ "import": "@kanso-protocol/ui/segmented-control",
3440
3482
  "description": "Kanso Protocol — SegmentedControl\n\nPill-style switcher backed by real native `<input type=\"radio\">` group.\nBrowser handles mutual-exclusion + arrow-key navigation; in a `<form>`\nthe checked radio's value goes into FormData. The visual \"pill\" is a\nseparate absolutely-positioned element that animates to the selected\nsegment.",
3441
3483
  "examples": [
3442
3484
  "<kp-segmented-control\n [options]=\"[{value:'day',label:'Day'},{value:'week',label:'Week'}]\"\n [(ngModel)]=\"period\">\n</kp-segmented-control>"
@@ -3489,17 +3531,17 @@
3489
3531
  ],
3490
3532
  "keyboardPatterns": [],
3491
3533
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-segmentedcontrol--docs",
3492
- "sourcePath": "packages/components/segmented-control/src/segmented-control.component.ts",
3534
+ "sourcePath": "packages/ui/segmented-control/src/segmented-control.component.ts",
3493
3535
  "figma": {
3494
3536
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3495
3537
  "nodeId": "3805:11036",
3496
3538
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11036"
3497
3539
  },
3498
3540
  "codeConnect": {
3499
- "npm": "@kanso-protocol/segmented-control",
3541
+ "npm": "@kanso-protocol/ui",
3500
3542
  "primaryClass": "KpSegmentedControlComponent",
3501
3543
  "selector": "kp-segmented-control",
3502
- "import": "import { KpSegmentedControlComponent } from '@kanso-protocol/segmented-control';",
3544
+ "import": "import { KpSegmentedControlComponent } from '@kanso-protocol/ui/segmented-control';",
3503
3545
  "docs": "docs/components/segmented-control.md",
3504
3546
  "storybook": "components-segmentedcontrol--docs"
3505
3547
  }
@@ -3509,7 +3551,8 @@
3509
3551
  "className": "KpSelectComponent",
3510
3552
  "selector": "kp-select",
3511
3553
  "layer": "components",
3512
- "package": "@kanso-protocol/select",
3554
+ "package": "@kanso-protocol/ui",
3555
+ "import": "@kanso-protocol/ui/select",
3513
3556
  "description": "Kanso Protocol — Select Component\n\nCombines an Input-style trigger with a DropdownMenu panel. Supports\nsingle and multiple selection, floating label (lg/xl), clear button,\nand the standard 7-state model shared with Input.",
3514
3557
  "examples": [
3515
3558
  "<kp-select size=\"md\" placeholder=\"Pick one\" [options]=\"countries\" [(ngModel)]=\"country\"/>\n<kp-select [multiple]=\"true\" [options]=\"tags\" [(ngModel)]=\"picked\"/>"
@@ -3600,17 +3643,17 @@
3600
3643
  "Escape"
3601
3644
  ],
3602
3645
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-select--docs",
3603
- "sourcePath": "packages/components/select/src/select.component.ts",
3646
+ "sourcePath": "packages/ui/select/src/select.component.ts",
3604
3647
  "figma": {
3605
3648
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3606
3649
  "nodeId": "3805:11028",
3607
3650
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11028"
3608
3651
  },
3609
3652
  "codeConnect": {
3610
- "npm": "@kanso-protocol/select",
3653
+ "npm": "@kanso-protocol/ui",
3611
3654
  "primaryClass": "KpSelectComponent",
3612
3655
  "selector": "kp-select",
3613
- "import": "import { KpSelectComponent } from '@kanso-protocol/select';",
3656
+ "import": "import { KpSelectComponent } from '@kanso-protocol/ui/select';",
3614
3657
  "docs": "docs/components/select.md",
3615
3658
  "storybook": "components-select--docs"
3616
3659
  }
@@ -3620,7 +3663,8 @@
3620
3663
  "className": "KpSkeletonComponent",
3621
3664
  "selector": "kp-skeleton",
3622
3665
  "layer": "components",
3623
- "package": "@kanso-protocol/skeleton",
3666
+ "package": "@kanso-protocol/ui",
3667
+ "import": "@kanso-protocol/ui/skeleton",
3624
3668
  "description": "Kanso Protocol — Skeleton\n\nStatic placeholder shown while real content is loading. Six shape\npresets cover the common patterns (line, circle, rectangle, avatar,\nbutton, card) with a size ramp. `animated` toggles the shimmer\ngradient — on by default.\n\nComposition: project children for complex placeholders. For simple\nskeletons, just drop `<kp-skeleton shape=\"line\" size=\"md\"/>` and\noptionally override `[width]` to fit the real content width.",
3625
3669
  "examples": [],
3626
3670
  "inputs": [
@@ -3666,17 +3710,17 @@
3666
3710
  ],
3667
3711
  "keyboardPatterns": [],
3668
3712
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-skeleton--docs",
3669
- "sourcePath": "packages/components/skeleton/src/skeleton.component.ts",
3713
+ "sourcePath": "packages/ui/skeleton/src/skeleton.component.ts",
3670
3714
  "figma": {
3671
3715
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3672
3716
  "nodeId": "3805:11107",
3673
3717
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11107"
3674
3718
  },
3675
3719
  "codeConnect": {
3676
- "npm": "@kanso-protocol/skeleton",
3720
+ "npm": "@kanso-protocol/ui",
3677
3721
  "primaryClass": "KpSkeletonComponent",
3678
3722
  "selector": "kp-skeleton",
3679
- "import": "import { KpSkeletonComponent } from '@kanso-protocol/skeleton';",
3723
+ "import": "import { KpSkeletonComponent } from '@kanso-protocol/ui/skeleton';",
3680
3724
  "docs": "docs/components/skeleton.md",
3681
3725
  "storybook": "components-skeleton--docs"
3682
3726
  }
@@ -3686,7 +3730,8 @@
3686
3730
  "className": "KpSliderComponent",
3687
3731
  "selector": "kp-slider",
3688
3732
  "layer": "components",
3689
- "package": "@kanso-protocol/slider",
3733
+ "package": "@kanso-protocol/ui",
3734
+ "import": "@kanso-protocol/ui/slider",
3690
3735
  "description": "Kanso Protocol — Slider\n\nNumeric range input with a draggable thumb on a horizontal track.\n`mode=\"single\"` exposes one thumb; `mode=\"range\"` exposes two.\n\nPointer drag, arrow-key stepping, track-click targeting, and a full\nControlValueAccessor for reactive / template-driven forms. In range\nmode, `ngModel` is a `[number, number]` tuple; in single mode, a plain\n`number`.",
3691
3736
  "examples": [],
3692
3737
  "inputs": [
@@ -3778,7 +3823,7 @@
3778
3823
  "outputs": [
3779
3824
  {
3780
3825
  "name": "valueChange",
3781
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/slider/src/slider.component\").KpSliderValue"
3826
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/slider/src/slider.component\").KpSliderValue"
3782
3827
  }
3783
3828
  ],
3784
3829
  "ariaRole": null,
@@ -3798,17 +3843,17 @@
3798
3843
  "PageDown"
3799
3844
  ],
3800
3845
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-slider--docs",
3801
- "sourcePath": "packages/components/slider/src/slider.component.ts",
3846
+ "sourcePath": "packages/ui/slider/src/slider.component.ts",
3802
3847
  "figma": {
3803
3848
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3804
3849
  "nodeId": "3805:11111",
3805
3850
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11111"
3806
3851
  },
3807
3852
  "codeConnect": {
3808
- "npm": "@kanso-protocol/slider",
3853
+ "npm": "@kanso-protocol/ui",
3809
3854
  "primaryClass": "KpSliderComponent",
3810
3855
  "selector": "kp-slider",
3811
- "import": "import { KpSliderComponent } from '@kanso-protocol/slider';",
3856
+ "import": "import { KpSliderComponent } from '@kanso-protocol/ui/slider';",
3812
3857
  "docs": "docs/components/slider.md",
3813
3858
  "storybook": "components-slider--docs"
3814
3859
  }
@@ -3818,7 +3863,8 @@
3818
3863
  "className": "KpTableCellDirective",
3819
3864
  "selector": "ng-template[kpTableCell]",
3820
3865
  "layer": "components",
3821
- "package": "@kanso-protocol/table",
3866
+ "package": "@kanso-protocol/ui",
3867
+ "import": "@kanso-protocol/ui/table",
3822
3868
  "description": "`<ng-template kpTableCell=\"columnId\" let-row let-i=\"index\">` — custom cell renderer per column.",
3823
3869
  "examples": [],
3824
3870
  "inputs": [
@@ -3834,17 +3880,17 @@
3834
3880
  "sizeRamp": [],
3835
3881
  "keyboardPatterns": [],
3836
3882
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
3837
- "sourcePath": "packages/components/table/src/table.component.ts",
3883
+ "sourcePath": "packages/ui/table/src/table.component.ts",
3838
3884
  "figma": {
3839
3885
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3840
3886
  "nodeId": "3805:11131",
3841
3887
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11131"
3842
3888
  },
3843
3889
  "codeConnect": {
3844
- "npm": "@kanso-protocol/table",
3890
+ "npm": "@kanso-protocol/ui",
3845
3891
  "primaryClass": "KpTableComponent",
3846
3892
  "selector": "kp-table",
3847
- "import": "import { KpTableComponent } from '@kanso-protocol/table';",
3893
+ "import": "import { KpTableComponent } from '@kanso-protocol/ui/table';",
3848
3894
  "docs": "docs/components/table.md",
3849
3895
  "storybook": "components-table--docs"
3850
3896
  }
@@ -3854,7 +3900,8 @@
3854
3900
  "className": "KpTableHeaderDirective",
3855
3901
  "selector": "ng-template[kpTableHeader]",
3856
3902
  "layer": "components",
3857
- "package": "@kanso-protocol/table",
3903
+ "package": "@kanso-protocol/ui",
3904
+ "import": "@kanso-protocol/ui/table",
3858
3905
  "description": "`<ng-template kpTableHeader=\"columnId\">` — custom header renderer per column.",
3859
3906
  "examples": [],
3860
3907
  "inputs": [
@@ -3870,17 +3917,17 @@
3870
3917
  "sizeRamp": [],
3871
3918
  "keyboardPatterns": [],
3872
3919
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
3873
- "sourcePath": "packages/components/table/src/table.component.ts",
3920
+ "sourcePath": "packages/ui/table/src/table.component.ts",
3874
3921
  "figma": {
3875
3922
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3876
3923
  "nodeId": "3805:11131",
3877
3924
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11131"
3878
3925
  },
3879
3926
  "codeConnect": {
3880
- "npm": "@kanso-protocol/table",
3927
+ "npm": "@kanso-protocol/ui",
3881
3928
  "primaryClass": "KpTableComponent",
3882
3929
  "selector": "kp-table",
3883
- "import": "import { KpTableComponent } from '@kanso-protocol/table';",
3930
+ "import": "import { KpTableComponent } from '@kanso-protocol/ui/table';",
3884
3931
  "docs": "docs/components/table.md",
3885
3932
  "storybook": "components-table--docs"
3886
3933
  }
@@ -3890,7 +3937,8 @@
3890
3937
  "className": "KpTableComponent",
3891
3938
  "selector": "kp-table",
3892
3939
  "layer": "components",
3893
- "package": "@kanso-protocol/table",
3940
+ "package": "@kanso-protocol/ui",
3941
+ "import": "@kanso-protocol/ui/table",
3894
3942
  "description": "Kanso Protocol — Table\n\nData-driven table with a columns schema, sortable headers, optional\nrow selection, striped / bordered variants, and template-per-column\ncell rendering via `<ng-template kpTableCell=\"id\">`.",
3895
3943
  "examples": [
3896
3944
  "<kp-table [columns]=\"cols\" [data]=\"rows\" [selectable]=\"true\" [(selected)]=\"picked\">\n <ng-template kpTableCell=\"status\" let-row>\n <kp-badge [color]=\"row.active ? 'success' : 'neutral'\">\n {{ row.active ? 'Active' : 'Inactive' }}\n </kp-badge>\n </ng-template>\n</kp-table>"
@@ -3964,7 +4012,7 @@
3964
4012
  },
3965
4013
  {
3966
4014
  "name": "sortChange",
3967
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/table/src/table.component\").KpTableSort | null"
4015
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/table/src/table.component\").KpTableSort | null"
3968
4016
  },
3969
4017
  {
3970
4018
  "name": "rowClick",
@@ -3979,17 +4027,17 @@
3979
4027
  ],
3980
4028
  "keyboardPatterns": [],
3981
4029
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
3982
- "sourcePath": "packages/components/table/src/table.component.ts",
4030
+ "sourcePath": "packages/ui/table/src/table.component.ts",
3983
4031
  "figma": {
3984
4032
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
3985
4033
  "nodeId": "3805:11131",
3986
4034
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11131"
3987
4035
  },
3988
4036
  "codeConnect": {
3989
- "npm": "@kanso-protocol/table",
4037
+ "npm": "@kanso-protocol/ui",
3990
4038
  "primaryClass": "KpTableComponent",
3991
4039
  "selector": "kp-table",
3992
- "import": "import { KpTableComponent } from '@kanso-protocol/table';",
4040
+ "import": "import { KpTableComponent } from '@kanso-protocol/ui/table';",
3993
4041
  "docs": "docs/components/table.md",
3994
4042
  "storybook": "components-table--docs"
3995
4043
  }
@@ -3999,7 +4047,8 @@
3999
4047
  "className": "KpTabComponent",
4000
4048
  "selector": "button[kpTab]",
4001
4049
  "layer": "components",
4002
- "package": "@kanso-protocol/tabs",
4050
+ "package": "@kanso-protocol/ui",
4051
+ "import": "@kanso-protocol/ui/tabs",
4003
4052
  "description": "Kanso Protocol — Tab (atom)\n\nAttribute-selector on a real native `<button role=\"tab\">`. Sits inside\na `<kp-tabs role=\"tablist\">`. Native button gives Enter+Space\nactivation, focus-visible, and disabled. Arrow-key navigation between\ntabs is owned by the parent `<kp-tabs>` via roving tabindex.",
4004
4053
  "examples": [
4005
4054
  "<button kpTab label=\"Inbox\" [selected]=\"current === 'inbox'\" (click)=\"current='inbox'\">\n <svg kpTabIcon .../>\n <kp-badge kpTabBadge>12</kp-badge>\n</button>"
@@ -4050,17 +4099,17 @@
4050
4099
  ],
4051
4100
  "keyboardPatterns": [],
4052
4101
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tabs--docs",
4053
- "sourcePath": "packages/components/tabs/src/tab.component.ts",
4102
+ "sourcePath": "packages/ui/tabs/src/tab.component.ts",
4054
4103
  "figma": {
4055
4104
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4056
4105
  "nodeId": "3805:11068",
4057
4106
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11068"
4058
4107
  },
4059
4108
  "codeConnect": {
4060
- "npm": "@kanso-protocol/tabs",
4109
+ "npm": "@kanso-protocol/ui",
4061
4110
  "primaryClass": "KpTabsComponent",
4062
4111
  "selector": "kp-tabs",
4063
- "import": "import { KpTabsComponent } from '@kanso-protocol/tabs';",
4112
+ "import": "import { KpTabsComponent } from '@kanso-protocol/ui/tabs';",
4064
4113
  "docs": "docs/components/tabs.md",
4065
4114
  "storybook": "components-tabs--docs"
4066
4115
  }
@@ -4070,7 +4119,8 @@
4070
4119
  "className": "KpTabsComponent",
4071
4120
  "selector": "kp-tabs",
4072
4121
  "layer": "components",
4073
- "package": "@kanso-protocol/tabs",
4122
+ "package": "@kanso-protocol/ui",
4123
+ "import": "@kanso-protocol/ui/tabs",
4074
4124
  "description": "Kanso Protocol — Tabs (container)\n\nHorizontal strip of `<button kpTab>` children with a shared bottom border.\nCascades `size` and `fullWidth` down to every projected `<button kpTab>`\nautomatically, so callers only set those two inputs in one place.\n\nA `[kpTabsMore]` slot projects an optional \"More ▾\" affordance to the\nright of the strip — useful when tabs overflow and you want a dropdown\nto hold the rest.",
4075
4125
  "examples": [
4076
4126
  "<kp-tabs size=\"md\" [fullWidth]=\"false\">\n <button kpTab label=\"Overview\" [selected]=\"tab === 'overview'\" (selectedChange)=\"tab = 'overview'\"></button>\n <button kpTab label=\"Activity\" [selected]=\"tab === 'activity'\" (selectedChange)=\"tab = 'activity'\"></button>\n <button kpTab label=\"Settings\" [selected]=\"tab === 'settings'\" (selectedChange)=\"tab = 'settings'\"></button>\n\n <button kpTabsMore>More ▾</button>\n</kp-tabs>"
@@ -4103,17 +4153,17 @@
4103
4153
  "End"
4104
4154
  ],
4105
4155
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tabs--docs",
4106
- "sourcePath": "packages/components/tabs/src/tabs.component.ts",
4156
+ "sourcePath": "packages/ui/tabs/src/tabs.component.ts",
4107
4157
  "figma": {
4108
4158
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4109
4159
  "nodeId": "3805:11068",
4110
4160
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11068"
4111
4161
  },
4112
4162
  "codeConnect": {
4113
- "npm": "@kanso-protocol/tabs",
4163
+ "npm": "@kanso-protocol/ui",
4114
4164
  "primaryClass": "KpTabsComponent",
4115
4165
  "selector": "kp-tabs",
4116
- "import": "import { KpTabsComponent } from '@kanso-protocol/tabs';",
4166
+ "import": "import { KpTabsComponent } from '@kanso-protocol/ui/tabs';",
4117
4167
  "docs": "docs/components/tabs.md",
4118
4168
  "storybook": "components-tabs--docs"
4119
4169
  }
@@ -4123,7 +4173,8 @@
4123
4173
  "className": "KpTextareaComponent",
4124
4174
  "selector": "kp-textarea",
4125
4175
  "layer": "components",
4126
- "package": "@kanso-protocol/textarea",
4176
+ "package": "@kanso-protocol/ui",
4177
+ "import": "@kanso-protocol/ui/textarea",
4127
4178
  "description": "Kanso Protocol — Textarea Component\n\nMulti-line text input. Shares Input's size/state grammar; adds a resize handle\nand optional character counter for length-constrained fields.",
4128
4179
  "examples": [
4129
4180
  "<kp-textarea [(ngModel)]=\"bio\" placeholder=\"Tell us about yourself\"></kp-textarea>\n<kp-textarea size=\"lg\" [maxLength]=\"500\" [showCounter]=\"true\"></kp-textarea>"
@@ -4199,17 +4250,17 @@
4199
4250
  ],
4200
4251
  "keyboardPatterns": [],
4201
4252
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-textarea--docs",
4202
- "sourcePath": "packages/components/textarea/src/textarea.component.ts",
4253
+ "sourcePath": "packages/ui/textarea/src/textarea.component.ts",
4203
4254
  "figma": {
4204
4255
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4205
4256
  "nodeId": "3805:11024",
4206
4257
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11024"
4207
4258
  },
4208
4259
  "codeConnect": {
4209
- "npm": "@kanso-protocol/textarea",
4260
+ "npm": "@kanso-protocol/ui",
4210
4261
  "primaryClass": "KpTextareaComponent",
4211
4262
  "selector": "kp-textarea",
4212
- "import": "import { KpTextareaComponent } from '@kanso-protocol/textarea';",
4263
+ "import": "import { KpTextareaComponent } from '@kanso-protocol/ui/textarea';",
4213
4264
  "docs": "docs/components/textarea.md",
4214
4265
  "storybook": "components-textarea--docs"
4215
4266
  }
@@ -4219,7 +4270,8 @@
4219
4270
  "className": "KpTimePickerComponent",
4220
4271
  "selector": "kp-time-picker",
4221
4272
  "layer": "components",
4222
- "package": "@kanso-protocol/timepicker",
4273
+ "package": "@kanso-protocol/ui",
4274
+ "import": "@kanso-protocol/ui/timepicker",
4223
4275
  "description": "Kanso Protocol — TimePicker\n\nInput-triggered picker for hour / minute (optional second). Panel has\nscrollable columns per unit plus Now / Cancel / Apply footer — picks\nare staged in a draft until Apply, so accidental clicks don't commit.\n\nValue on the wire is always canonical 24-hour `HH:mm` or `HH:mm:ss`;\ndisplay switches between 12h and 24h via `format`.",
4224
4276
  "examples": [],
4225
4277
  "inputs": [
@@ -4281,7 +4333,7 @@
4281
4333
  "outputs": [
4282
4334
  {
4283
4335
  "name": "valueChange",
4284
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/timepicker/src/timepicker.component\").KpTimePickerValue"
4336
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/timepicker/src/timepicker.component\").KpTimePickerValue"
4285
4337
  },
4286
4338
  {
4287
4339
  "name": "openChange",
@@ -4298,17 +4350,17 @@
4298
4350
  "Escape"
4299
4351
  ],
4300
4352
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-timepicker--docs",
4301
- "sourcePath": "packages/components/timepicker/src/timepicker.component.ts",
4353
+ "sourcePath": "packages/ui/timepicker/src/timepicker.component.ts",
4302
4354
  "figma": {
4303
4355
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4304
4356
  "nodeId": "3805:11123",
4305
4357
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11123"
4306
4358
  },
4307
4359
  "codeConnect": {
4308
- "npm": "@kanso-protocol/timepicker",
4360
+ "npm": "@kanso-protocol/ui",
4309
4361
  "primaryClass": "KpTimePickerComponent",
4310
4362
  "selector": "kp-timepicker",
4311
- "import": "import { KpTimePickerComponent } from '@kanso-protocol/timepicker';",
4363
+ "import": "import { KpTimePickerComponent } from '@kanso-protocol/ui/timepicker';",
4312
4364
  "docs": "docs/components/timepicker.md",
4313
4365
  "storybook": "components-timepicker--docs"
4314
4366
  }
@@ -4318,7 +4370,8 @@
4318
4370
  "className": "KpToastHostComponent",
4319
4371
  "selector": "kp-toast-host",
4320
4372
  "layer": "components",
4321
- "package": "@kanso-protocol/toast",
4373
+ "package": "@kanso-protocol/ui",
4374
+ "import": "@kanso-protocol/ui/toast",
4322
4375
  "description": "Kanso Protocol — ToastHost\n\nPortaled container that renders the active toast queue in one corner\nof the viewport. Drop one (or several, one per corner) anywhere in\nthe app — toasts render via this host, not inline.",
4323
4376
  "examples": [
4324
4377
  "<kp-toast-host position=\"top-right\" size=\"md\"/>"
@@ -4357,17 +4410,17 @@
4357
4410
  ],
4358
4411
  "keyboardPatterns": [],
4359
4412
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-toast--docs",
4360
- "sourcePath": "packages/components/toast/src/toast-host.component.ts",
4413
+ "sourcePath": "packages/ui/toast/src/toast-host.component.ts",
4361
4414
  "figma": {
4362
4415
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4363
4416
  "nodeId": "3805:11127",
4364
4417
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11127"
4365
4418
  },
4366
4419
  "codeConnect": {
4367
- "npm": "@kanso-protocol/toast",
4420
+ "npm": "@kanso-protocol/ui",
4368
4421
  "primaryClass": "KpToastHostComponent",
4369
4422
  "selector": "kp-toast-host",
4370
- "import": "import { KpToastHostComponent } from '@kanso-protocol/toast';",
4423
+ "import": "import { KpToastHostComponent } from '@kanso-protocol/ui/toast';",
4371
4424
  "docs": "docs/components/toast.md",
4372
4425
  "storybook": "components-toast--docs"
4373
4426
  }
@@ -4377,7 +4430,8 @@
4377
4430
  "className": "KpToggleComponent",
4378
4431
  "selector": "kp-toggle",
4379
4432
  "layer": "components",
4380
- "package": "@kanso-protocol/toggle",
4433
+ "package": "@kanso-protocol/ui",
4434
+ "import": "@kanso-protocol/ui/toggle",
4381
4435
  "description": "Kanso Protocol — Toggle (Switch)\n\nWraps a real native `<input type=\"checkbox\" role=\"switch\">` inside a\nstyled `<label>`. Form submission, FormData, `<label for>` association,\nSpace-toggle, and HTML5 validation all work natively.",
4382
4436
  "examples": [
4383
4437
  "<kp-toggle [(on)]=\"isOn\" size=\"md\">Notifications</kp-toggle>\n<form><kp-toggle name=\"notif\" value=\"1\" required>Enable</kp-toggle></form>"
@@ -4458,17 +4512,17 @@
4458
4512
  ],
4459
4513
  "keyboardPatterns": [],
4460
4514
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-toggle--docs",
4461
- "sourcePath": "packages/components/toggle/src/toggle.component.ts",
4515
+ "sourcePath": "packages/ui/toggle/src/toggle.component.ts",
4462
4516
  "figma": {
4463
4517
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4464
4518
  "nodeId": "3805:11009",
4465
4519
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11009"
4466
4520
  },
4467
4521
  "codeConnect": {
4468
- "npm": "@kanso-protocol/toggle",
4522
+ "npm": "@kanso-protocol/ui",
4469
4523
  "primaryClass": "KpToggleComponent",
4470
4524
  "selector": "kp-toggle",
4471
- "import": "import { KpToggleComponent } from '@kanso-protocol/toggle';",
4525
+ "import": "import { KpToggleComponent } from '@kanso-protocol/ui/toggle';",
4472
4526
  "docs": "docs/components/toggle.md",
4473
4527
  "storybook": "components-toggle--docs"
4474
4528
  }
@@ -4478,7 +4532,8 @@
4478
4532
  "className": "KpClipboardCopyDirective",
4479
4533
  "selector": "[kpClipboardCopy]",
4480
4534
  "layer": "components",
4481
- "package": "@kanso-protocol/tooltip",
4535
+ "package": "@kanso-protocol/ui",
4536
+ "import": "@kanso-protocol/ui/tooltip",
4482
4537
  "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
4538
  "examples": [
4484
4539
  "<code [kpClipboardCopy]=\"snippet\">{{ snippet }}</code>",
@@ -4530,17 +4585,17 @@
4530
4585
  "sizeRamp": [],
4531
4586
  "keyboardPatterns": [],
4532
4587
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tooltip--docs",
4533
- "sourcePath": "packages/components/tooltip/src/clipboard-copy.directive.ts",
4588
+ "sourcePath": "packages/ui/tooltip/src/clipboard-copy.directive.ts",
4534
4589
  "figma": {
4535
4590
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4536
4591
  "nodeId": "3805:11048",
4537
4592
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11048"
4538
4593
  },
4539
4594
  "codeConnect": {
4540
- "npm": "@kanso-protocol/tooltip",
4595
+ "npm": "@kanso-protocol/ui",
4541
4596
  "primaryClass": "KpTooltipComponent",
4542
4597
  "selector": "kp-tooltip",
4543
- "import": "import { KpTooltipComponent } from '@kanso-protocol/tooltip';",
4598
+ "import": "import { KpTooltipComponent } from '@kanso-protocol/ui/tooltip';",
4544
4599
  "docs": "docs/components/tooltip.md",
4545
4600
  "storybook": "components-tooltip--docs"
4546
4601
  }
@@ -4550,7 +4605,8 @@
4550
4605
  "className": "KpTooltipDirective",
4551
4606
  "selector": "[kpTooltip]",
4552
4607
  "layer": "components",
4553
- "package": "@kanso-protocol/tooltip",
4608
+ "package": "@kanso-protocol/ui",
4609
+ "import": "@kanso-protocol/ui/tooltip",
4554
4610
  "description": "Kanso Protocol — Tooltip directive.\n\nAttaches a styled hint to any element. Auto-shows on hover and focus,\nhides on leave / blur / Escape. Positioned against the trigger with\nviewport-edge flipping. Renders into the nearest open `<dialog>` (so it\nsits above modals) or `document.body`.",
4555
4611
  "examples": [
4556
4612
  "<button [kpTooltip]=\"'Copy link'\" kpTooltipShortcut=\"⌘C\">Copy</button>",
@@ -4607,17 +4663,17 @@
4607
4663
  "Escape"
4608
4664
  ],
4609
4665
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tooltip--docs",
4610
- "sourcePath": "packages/components/tooltip/src/tooltip.directive.ts",
4666
+ "sourcePath": "packages/ui/tooltip/src/tooltip.directive.ts",
4611
4667
  "figma": {
4612
4668
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4613
4669
  "nodeId": "3805:11048",
4614
4670
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11048"
4615
4671
  },
4616
4672
  "codeConnect": {
4617
- "npm": "@kanso-protocol/tooltip",
4673
+ "npm": "@kanso-protocol/ui",
4618
4674
  "primaryClass": "KpTooltipComponent",
4619
4675
  "selector": "kp-tooltip",
4620
- "import": "import { KpTooltipComponent } from '@kanso-protocol/tooltip';",
4676
+ "import": "import { KpTooltipComponent } from '@kanso-protocol/ui/tooltip';",
4621
4677
  "docs": "docs/components/tooltip.md",
4622
4678
  "storybook": "components-tooltip--docs"
4623
4679
  }
@@ -4627,7 +4683,8 @@
4627
4683
  "className": "KpTreeComponent",
4628
4684
  "selector": "kp-tree",
4629
4685
  "layer": "components",
4630
- "package": "@kanso-protocol/tree",
4686
+ "package": "@kanso-protocol/ui",
4687
+ "import": "@kanso-protocol/ui/tree",
4631
4688
  "description": "Kanso Protocol — Tree\n\nRecursive list of nested nodes. Click the chevron to toggle expansion;\nclick the label to select. Optional `showCheckboxes` renders a\ncheckbox per node with tri-state propagation (child check flips\nparent indeterminate / checked).\n\nExpansion and selection state is owned internally but mirrored via\n`[(expanded)]` / `[(selected)]` / `[(checked)]` two-way bindings so\ncallers can drive or persist it.",
4632
4689
  "examples": [],
4633
4690
  "inputs": [
@@ -4689,7 +4746,7 @@
4689
4746
  },
4690
4747
  {
4691
4748
  "name": "nodeClick",
4692
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/tree/src/tree.component\").KpTreeNode"
4749
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/tree/src/tree.component\").KpTreeNode"
4693
4750
  }
4694
4751
  ],
4695
4752
  "ariaRole": null,
@@ -4708,17 +4765,17 @@
4708
4765
  "Space"
4709
4766
  ],
4710
4767
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tree--docs",
4711
- "sourcePath": "packages/components/tree/src/tree.component.ts",
4768
+ "sourcePath": "packages/ui/tree/src/tree.component.ts",
4712
4769
  "figma": {
4713
4770
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4714
4771
  "nodeId": "3805:11135",
4715
4772
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11135"
4716
4773
  },
4717
4774
  "codeConnect": {
4718
- "npm": "@kanso-protocol/tree",
4775
+ "npm": "@kanso-protocol/ui",
4719
4776
  "primaryClass": "KpTreeComponent",
4720
4777
  "selector": "kp-tree",
4721
- "import": "import { KpTreeComponent } from '@kanso-protocol/tree';",
4778
+ "import": "import { KpTreeComponent } from '@kanso-protocol/ui/tree';",
4722
4779
  "docs": "docs/components/tree.md",
4723
4780
  "storybook": "components-tree--docs"
4724
4781
  }
@@ -4728,7 +4785,8 @@
4728
4785
  "className": "KpVirtualRowDirective",
4729
4786
  "selector": "[kpVirtualRow]",
4730
4787
  "layer": "components",
4731
- "package": "@kanso-protocol/virtual-list",
4788
+ "package": "@kanso-protocol/ui",
4789
+ "import": "@kanso-protocol/ui/virtual-list",
4732
4790
  "description": "Marker directive — pairs the row template with `<kp-virtual-list>`.",
4733
4791
  "examples": [
4734
4792
  "<kp-virtual-list ...>\n <ng-template kpVirtualRow let-item let-i=\"index\">\n <div>row {{ i }}: {{ item.name }}</div>\n </ng-template>\n</kp-virtual-list>"
@@ -4739,12 +4797,12 @@
4739
4797
  "sizeRamp": [],
4740
4798
  "keyboardPatterns": [],
4741
4799
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-virtuallist--docs",
4742
- "sourcePath": "packages/components/virtual-list/src/virtual-list.component.ts",
4800
+ "sourcePath": "packages/ui/virtual-list/src/virtual-list.component.ts",
4743
4801
  "codeConnect": {
4744
- "npm": "@kanso-protocol/virtual-list",
4802
+ "npm": "@kanso-protocol/ui",
4745
4803
  "primaryClass": "KpVirtualListComponent",
4746
4804
  "selector": "kp-virtual-list",
4747
- "import": "import { KpVirtualListComponent } from '@kanso-protocol/virtual-list';",
4805
+ "import": "import { KpVirtualListComponent } from '@kanso-protocol/ui/virtual-list';",
4748
4806
  "docs": "docs/components/virtual-list.md",
4749
4807
  "storybook": "components-virtuallist--docs"
4750
4808
  }
@@ -4754,7 +4812,8 @@
4754
4812
  "className": "KpVirtualListComponent",
4755
4813
  "selector": "kp-virtual-list",
4756
4814
  "layer": "components",
4757
- "package": "@kanso-protocol/virtual-list",
4815
+ "package": "@kanso-protocol/ui",
4816
+ "import": "@kanso-protocol/ui/virtual-list",
4758
4817
  "description": "Kanso Protocol — VirtualList\n\nWindow-mode virtual scroller for **fixed-height rows**. Renders only the\nrows currently visible in the viewport (plus a configurable `[overscan]`\nbuffer). Lets the consumer hand any item shape via a projected\n`<ng-template kpVirtualRow let-item let-i=\"index\">`.\n\nWhy fixed-height: keeps the math O(1) per scroll event (`scrollTop /\nitemHeight`), no measurement pass, no layout thrash. Variable-height\nsupport is on the roadmap (`KpVariableVirtualListComponent`); for now,\nsize each row to a uniform height.\n\nUse this for tables / message lists / log views with thousands of rows.\nBelow ~100 rows just render them — virtualization adds complexity for\nnegligible gain.",
4759
4818
  "examples": [
4760
4819
  "<kp-virtual-list\n [items]=\"rows\"\n [itemHeight]=\"40\"\n [viewportHeight]=\"480\"\n [overscan]=\"6\"\n (rangeChange)=\"onRange($event)\"\n>\n <ng-template kpVirtualRow let-row let-i=\"index\">\n <div class=\"row\" [class.row--alt]=\"i % 2\">{{ row.name }}</div>\n </ng-template>\n</kp-virtual-list>"
@@ -4794,19 +4853,19 @@
4794
4853
  "outputs": [
4795
4854
  {
4796
4855
  "name": "rangeChange",
4797
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/components/virtual-list/src/virtual-list.component\").KpVirtualRange"
4856
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/virtual-list/src/virtual-list.component\").KpVirtualRange"
4798
4857
  }
4799
4858
  ],
4800
4859
  "ariaRole": null,
4801
4860
  "sizeRamp": [],
4802
4861
  "keyboardPatterns": [],
4803
4862
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-virtuallist--docs",
4804
- "sourcePath": "packages/components/virtual-list/src/virtual-list.component.ts",
4863
+ "sourcePath": "packages/ui/virtual-list/src/virtual-list.component.ts",
4805
4864
  "codeConnect": {
4806
- "npm": "@kanso-protocol/virtual-list",
4865
+ "npm": "@kanso-protocol/ui",
4807
4866
  "primaryClass": "KpVirtualListComponent",
4808
4867
  "selector": "kp-virtual-list",
4809
- "import": "import { KpVirtualListComponent } from '@kanso-protocol/virtual-list';",
4868
+ "import": "import { KpVirtualListComponent } from '@kanso-protocol/ui/virtual-list';",
4810
4869
  "docs": "docs/components/virtual-list.md",
4811
4870
  "storybook": "components-virtuallist--docs"
4812
4871
  }
@@ -4818,7 +4877,8 @@
4818
4877
  "className": "KpAppShellComponent",
4819
4878
  "selector": "kp-app-shell",
4820
4879
  "layer": "patterns",
4821
- "package": "@kanso-protocol/app-shell",
4880
+ "package": "@kanso-protocol/ui",
4881
+ "import": "@kanso-protocol/ui/app-shell",
4822
4882
  "description": "Kanso Protocol — AppShell\n\nRoot application template. Composes Header + Sidebar + Main + Footer\nwith a single layout input driving placement. All sections are\nprojection slots — drop in real `<kp-header>`, `<kp-sidebar>`,\n`<kp-banner>`, etc. instances.\n\nSlots:\n- `[kpAppShellHeader]` — topbar\n- `[kpAppShellBanner]` — under header, spans full width\n- `[kpAppShellSidebar]` — side nav (left / right / hidden depending on `layout`)\n- `[kpAppShellBody]` — main content; scrolls independently\n- `[kpAppShellFooter]` — optional footer strip",
4823
4883
  "examples": [
4824
4884
  "<kp-app-shell layout=\"sidebar-left\">\n <kp-header kpAppShellHeader [navItems]=\"nav\"/>\n <kp-sidebar kpAppShellSidebar [sections]=\"sections\"/>\n <div kpAppShellBody>\n <kp-page-header title=\"Dashboard\"/>\n <!-- … -->\n </div>\n</kp-app-shell>"
@@ -4860,17 +4920,17 @@
4860
4920
  "sizeRamp": [],
4861
4921
  "keyboardPatterns": [],
4862
4922
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-appshell--docs",
4863
- "sourcePath": "packages/patterns/app-shell/src/app-shell.component.ts",
4923
+ "sourcePath": "packages/ui/app-shell/src/app-shell.component.ts",
4864
4924
  "figma": {
4865
4925
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4866
4926
  "nodeId": "3822:7265",
4867
4927
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7265"
4868
4928
  },
4869
4929
  "codeConnect": {
4870
- "npm": "@kanso-protocol/app-shell",
4930
+ "npm": "@kanso-protocol/ui",
4871
4931
  "primaryClass": "KpAppShellComponent",
4872
4932
  "selector": "kp-app-shell",
4873
- "import": "import { KpAppShellComponent } from '@kanso-protocol/app-shell';",
4933
+ "import": "import { KpAppShellComponent } from '@kanso-protocol/ui/app-shell';",
4874
4934
  "docs": "docs/patterns/app-shell.md",
4875
4935
  "storybook": "patterns-appshell--docs"
4876
4936
  }
@@ -4880,7 +4940,8 @@
4880
4940
  "className": "KpBannerComponent",
4881
4941
  "selector": "kp-banner",
4882
4942
  "layer": "patterns",
4883
- "package": "@kanso-protocol/banner",
4943
+ "package": "@kanso-protocol/ui",
4944
+ "import": "@kanso-protocol/ui/banner",
4884
4945
  "description": "Kanso Protocol — Banner\n\nGlobal top strip under the app Header. Used for system messages:\ntrial status, maintenance, payment alerts, feature launches.\nReuses alert semantic tokens (subtle appearance) so color roles\nmatch Alert / Toast.\n\nSlot: `[kpBannerAction]` for a trailing CTA (typically `<button kpButton size=\"sm\">`).",
4885
4946
  "examples": [
4886
4947
  "<kp-banner color=\"warning\" title=\"Your trial ends in 3 days\">\n <button kpButton kpBannerAction size=\"sm\">Upgrade</button>\n</kp-banner>"
@@ -4936,17 +4997,17 @@
4936
4997
  ],
4937
4998
  "keyboardPatterns": [],
4938
4999
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-banner--docs",
4939
- "sourcePath": "packages/patterns/banner/src/banner.component.ts",
5000
+ "sourcePath": "packages/ui/banner/src/banner.component.ts",
4940
5001
  "figma": {
4941
5002
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4942
5003
  "nodeId": "3822:7272",
4943
5004
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7272"
4944
5005
  },
4945
5006
  "codeConnect": {
4946
- "npm": "@kanso-protocol/banner",
5007
+ "npm": "@kanso-protocol/ui",
4947
5008
  "primaryClass": "KpBannerComponent",
4948
5009
  "selector": "kp-banner",
4949
- "import": "import { KpBannerComponent } from '@kanso-protocol/banner';",
5010
+ "import": "import { KpBannerComponent } from '@kanso-protocol/ui/banner';",
4950
5011
  "docs": "docs/patterns/banner.md",
4951
5012
  "storybook": "patterns-banner--docs"
4952
5013
  }
@@ -4956,7 +5017,8 @@
4956
5017
  "className": "KpContainerComponent",
4957
5018
  "selector": "kp-container",
4958
5019
  "layer": "patterns",
4959
- "package": "@kanso-protocol/container",
5020
+ "package": "@kanso-protocol/ui",
5021
+ "import": "@kanso-protocol/ui/container",
4960
5022
  "description": "Kanso Protocol — Container\n\nResponsive content wrapper. Caps child width at one of four\npreset breakpoints and applies horizontal padding. Pure layout\nprimitive — no colors, borders, or spacing on its own axis.",
4961
5023
  "examples": [
4962
5024
  "<kp-container width=\"medium\" padding=\"md\">\n <h1>Settings</h1>\n <kp-card>…</kp-card>\n</kp-container>"
@@ -4980,17 +5042,17 @@
4980
5042
  "sizeRamp": [],
4981
5043
  "keyboardPatterns": [],
4982
5044
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-container--docs",
4983
- "sourcePath": "packages/patterns/container/src/container.component.ts",
5045
+ "sourcePath": "packages/ui/container/src/container.component.ts",
4984
5046
  "figma": {
4985
5047
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
4986
5048
  "nodeId": "3822:7280",
4987
5049
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7280"
4988
5050
  },
4989
5051
  "codeConnect": {
4990
- "npm": "@kanso-protocol/container",
5052
+ "npm": "@kanso-protocol/ui",
4991
5053
  "primaryClass": "KpContainerComponent",
4992
5054
  "selector": "kp-container",
4993
- "import": "import { KpContainerComponent } from '@kanso-protocol/container';",
5055
+ "import": "import { KpContainerComponent } from '@kanso-protocol/ui/container';",
4994
5056
  "docs": "docs/patterns/container.md",
4995
5057
  "storybook": "patterns-container--docs"
4996
5058
  }
@@ -5000,7 +5062,8 @@
5000
5062
  "className": "KpFilterBarComponent",
5001
5063
  "selector": "kp-filter-bar",
5002
5064
  "layer": "patterns",
5003
- "package": "@kanso-protocol/filter-bar",
5065
+ "package": "@kanso-protocol/ui",
5066
+ "import": "@kanso-protocol/ui/filter-bar",
5004
5067
  "description": "Kanso Protocol — FilterBar\n\nHorizontal strip of active filter chips (closable Badges in pill\nstyle) with an \"Add filter\" affordance on the left and optional\n\"Save filter\" / \"Clear all\" actions on the right. Sits under a\nTableToolbar or any filterable view.\n\nChips come from `[filters]`. Emit `removeFilter(id)` / `addFilter`\n/ `saveFilter` / `clearAll` — state management lives outside.",
5005
5068
  "examples": [
5006
5069
  "<kp-filter-bar\n [filters]=\"[{ id:'s', label:'Status: Active', color:'primary' }]\"\n (removeFilter)=\"drop($event)\"\n (addFilter)=\"openPicker()\"\n (clearAll)=\"reset()\">\n</kp-filter-bar>"
@@ -5053,17 +5116,17 @@
5053
5116
  "sizeRamp": [],
5054
5117
  "keyboardPatterns": [],
5055
5118
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-filterbar--docs",
5056
- "sourcePath": "packages/patterns/filter-bar/src/filter-bar.component.ts",
5119
+ "sourcePath": "packages/ui/filter-bar/src/filter-bar.component.ts",
5057
5120
  "figma": {
5058
5121
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5059
5122
  "nodeId": "3822:7288",
5060
5123
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7288"
5061
5124
  },
5062
5125
  "codeConnect": {
5063
- "npm": "@kanso-protocol/filter-bar",
5126
+ "npm": "@kanso-protocol/ui",
5064
5127
  "primaryClass": "KpFilterBarComponent",
5065
5128
  "selector": "kp-filter-bar",
5066
- "import": "import { KpFilterBarComponent } from '@kanso-protocol/filter-bar';",
5129
+ "import": "import { KpFilterBarComponent } from '@kanso-protocol/ui/filter-bar';",
5067
5130
  "docs": "docs/patterns/filter-bar.md",
5068
5131
  "storybook": "patterns-filterbar--docs"
5069
5132
  }
@@ -5073,7 +5136,8 @@
5073
5136
  "className": "KpFormSectionComponent",
5074
5137
  "selector": "kp-form-section",
5075
5138
  "layer": "patterns",
5076
- "package": "@kanso-protocol/form-section",
5139
+ "package": "@kanso-protocol/ui",
5140
+ "import": "@kanso-protocol/ui/form-section",
5077
5141
  "description": "Kanso Protocol — FormSection\n\nOne titled block of a form with a description and the related\nfields. Two layouts:\n- `inline` — title + description on the left, fields on the right\n (the classic \"settings page\" layout).\n- `stacked` — title + description on top, fields below (good for\n narrow viewports and onboarding wizards).\n\nPure container — drop your `<kp-form-field>` / `<kp-input>` /\n`<kp-toggle>` etc. as children. Bottom divider is optional and on\nby default so consecutive sections separate cleanly.",
5078
5142
  "examples": [
5079
5143
  "<kp-form-section title=\"Personal information\"\n description=\"This information will be displayed publicly.\">\n <kp-form-field label=\"First name\"><kp-input/></kp-form-field>\n <kp-form-field label=\"Last name\"><kp-input/></kp-form-field>\n <kp-form-field label=\"Email\"><kp-input type=\"email\"/></kp-form-field>\n</kp-form-section>"
@@ -5125,17 +5189,17 @@
5125
5189
  ],
5126
5190
  "keyboardPatterns": [],
5127
5191
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-formsection--docs",
5128
- "sourcePath": "packages/patterns/form-section/src/form-section.component.ts",
5192
+ "sourcePath": "packages/ui/form-section/src/form-section.component.ts",
5129
5193
  "figma": {
5130
5194
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5131
5195
  "nodeId": "3822:7296",
5132
5196
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7296"
5133
5197
  },
5134
5198
  "codeConnect": {
5135
- "npm": "@kanso-protocol/form-section",
5199
+ "npm": "@kanso-protocol/ui",
5136
5200
  "primaryClass": "KpFormSectionComponent",
5137
5201
  "selector": "kp-form-section",
5138
- "import": "import { KpFormSectionComponent } from '@kanso-protocol/form-section';",
5202
+ "import": "import { KpFormSectionComponent } from '@kanso-protocol/ui/form-section';",
5139
5203
  "docs": "docs/patterns/form-section.md",
5140
5204
  "storybook": "patterns-formsection--docs"
5141
5205
  }
@@ -5145,7 +5209,8 @@
5145
5209
  "className": "KpGridComponent",
5146
5210
  "selector": "kp-grid",
5147
5211
  "layer": "patterns",
5148
- "package": "@kanso-protocol/grid",
5212
+ "package": "@kanso-protocol/ui",
5213
+ "import": "@kanso-protocol/ui/grid",
5149
5214
  "description": "Kanso Protocol — Grid\n\nResponsive `display: grid` wrapper. Equal-width columns, preset\ngap scale. Independent row-gap via `gapRow` when columns need\ntighter vertical rhythm than horizontal.",
5150
5215
  "examples": [
5151
5216
  "<kp-grid [columns]=\"3\" gap=\"md\">\n <kp-card/><kp-card/><kp-card/>\n</kp-grid>"
@@ -5175,17 +5240,17 @@
5175
5240
  "sizeRamp": [],
5176
5241
  "keyboardPatterns": [],
5177
5242
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-grid--docs",
5178
- "sourcePath": "packages/patterns/grid/src/grid.component.ts",
5243
+ "sourcePath": "packages/ui/grid/src/grid.component.ts",
5179
5244
  "figma": {
5180
5245
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5181
5246
  "nodeId": "3822:7304",
5182
5247
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7304"
5183
5248
  },
5184
5249
  "codeConnect": {
5185
- "npm": "@kanso-protocol/grid",
5250
+ "npm": "@kanso-protocol/ui",
5186
5251
  "primaryClass": "KpGridComponent",
5187
5252
  "selector": "kp-grid",
5188
- "import": "import { KpGridComponent } from '@kanso-protocol/grid';",
5253
+ "import": "import { KpGridComponent } from '@kanso-protocol/ui/grid';",
5189
5254
  "docs": "docs/patterns/grid.md",
5190
5255
  "storybook": "patterns-grid--docs"
5191
5256
  }
@@ -5195,7 +5260,8 @@
5195
5260
  "className": "KpHeaderComponent",
5196
5261
  "selector": "kp-header",
5197
5262
  "layer": "patterns",
5198
- "package": "@kanso-protocol/header",
5263
+ "package": "@kanso-protocol/ui",
5264
+ "import": "@kanso-protocol/ui/header",
5199
5265
  "description": "Kanso Protocol — Header (Topbar)\n\nApp topbar pattern. Three-section layout (left / center / right)\nwith optional logo, inline nav, search slot, notifications,\ntheme toggle, CTA, and user menu. Data-driven; projection slots\nfor logo, search, and extra actions.\n\nSlots:\n- `[kpHeaderLogo]` — replace the default logo mark + title\n- `[kpHeaderSearch]` — render custom search UI in the center slot\n (takes precedence over `[showSearch]` placeholder)\n- `[kpHeaderActions]` — extra action buttons before the user menu",
5200
5266
  "examples": [
5201
5267
  "<kp-header\n size=\"md\"\n [navItems]=\"nav\"\n [userName]=\"me.name\"\n [userInitials]=\"me.initials\"\n userRole=\"Admin\"\n [showSearch]=\"true\"\n [showNotifications]=\"true\"\n notificationsCount=\"3\"\n/>"
@@ -5336,17 +5402,17 @@
5336
5402
  ],
5337
5403
  "keyboardPatterns": [],
5338
5404
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-header--docs",
5339
- "sourcePath": "packages/patterns/header/src/header.component.ts",
5405
+ "sourcePath": "packages/ui/header/src/header.component.ts",
5340
5406
  "figma": {
5341
5407
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5342
5408
  "nodeId": "3822:7312",
5343
5409
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7312"
5344
5410
  },
5345
5411
  "codeConnect": {
5346
- "npm": "@kanso-protocol/header",
5412
+ "npm": "@kanso-protocol/ui",
5347
5413
  "primaryClass": "KpHeaderComponent",
5348
5414
  "selector": "kp-header",
5349
- "import": "import { KpHeaderComponent } from '@kanso-protocol/header';",
5415
+ "import": "import { KpHeaderComponent } from '@kanso-protocol/ui/header';",
5350
5416
  "docs": "docs/patterns/header.md",
5351
5417
  "storybook": "patterns-header--docs"
5352
5418
  }
@@ -5356,7 +5422,8 @@
5356
5422
  "className": "KpNavItemComponent",
5357
5423
  "selector": "kp-nav-item",
5358
5424
  "layer": "patterns",
5359
- "package": "@kanso-protocol/nav-item",
5425
+ "package": "@kanso-protocol/ui",
5426
+ "import": "@kanso-protocol/ui/nav-item",
5360
5427
  "description": "Kanso Protocol — NavItem\n\nAtomic nav row for Sidebar. Supports 3 sizes, 4 states, nested\ndepth (left padding), optional icon / badge / chevron, and an\n\"active\" left accent bar.\n\nSlots:\n- `[kpNavItemIcon]` — leading icon\n- `[kpNavItemBadge]` — trailing badge (e.g. `<kp-badge>`)",
5361
5428
  "examples": [
5362
5429
  "<kp-nav-item size=\"md\" [active]=\"true\" label=\"Dashboard\">\n <svg kpNavItemIcon>…</svg>\n</kp-nav-item>"
@@ -5443,17 +5510,17 @@
5443
5510
  ],
5444
5511
  "keyboardPatterns": [],
5445
5512
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-navitem--docs",
5446
- "sourcePath": "packages/patterns/nav-item/src/nav-item.component.ts",
5513
+ "sourcePath": "packages/ui/nav-item/src/nav-item.component.ts",
5447
5514
  "figma": {
5448
5515
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5449
5516
  "nodeId": "3822:7320",
5450
5517
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7320"
5451
5518
  },
5452
5519
  "codeConnect": {
5453
- "npm": "@kanso-protocol/nav-item",
5520
+ "npm": "@kanso-protocol/ui",
5454
5521
  "primaryClass": "KpNavItemComponent",
5455
5522
  "selector": "kp-nav-item",
5456
- "import": "import { KpNavItemComponent } from '@kanso-protocol/nav-item';",
5523
+ "import": "import { KpNavItemComponent } from '@kanso-protocol/ui/nav-item';",
5457
5524
  "docs": "docs/patterns/nav-item.md",
5458
5525
  "storybook": "patterns-navitem--docs"
5459
5526
  }
@@ -5463,7 +5530,8 @@
5463
5530
  "className": "KpNotificationCenterComponent",
5464
5531
  "selector": "kp-notification-center",
5465
5532
  "layer": "patterns",
5466
- "package": "@kanso-protocol/notification-center",
5533
+ "package": "@kanso-protocol/ui",
5534
+ "import": "@kanso-protocol/ui/notification-center",
5467
5535
  "description": "Kanso Protocol — NotificationCenter\n\nPanel with header + optional filters + list of notifications +\noptional footer (\"View all\"). Three states: with-items / empty /\nloading. Typically anchored to the bell icon in Header via\nDropdownMenu / Popover positioning.",
5468
5536
  "examples": [
5469
5537
  "<kp-notification-center\n state=\"with-items\"\n [notifications]=\"items\"\n [showFilters]=\"true\"\n unreadCount=\"3\"\n/>"
@@ -5517,7 +5585,7 @@
5517
5585
  },
5518
5586
  {
5519
5587
  "name": "itemClick",
5520
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/notification-center/src/notification-center.component\").KpNotification"
5588
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/notification-center/src/notification-center.component\").KpNotification"
5521
5589
  },
5522
5590
  {
5523
5591
  "name": "filterChange",
@@ -5532,17 +5600,17 @@
5532
5600
  "sizeRamp": [],
5533
5601
  "keyboardPatterns": [],
5534
5602
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-notificationcenter--docs",
5535
- "sourcePath": "packages/patterns/notification-center/src/notification-center.component.ts",
5603
+ "sourcePath": "packages/ui/notification-center/src/notification-center.component.ts",
5536
5604
  "figma": {
5537
5605
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5538
5606
  "nodeId": "3822:7327",
5539
5607
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7327"
5540
5608
  },
5541
5609
  "codeConnect": {
5542
- "npm": "@kanso-protocol/notification-center",
5610
+ "npm": "@kanso-protocol/ui",
5543
5611
  "primaryClass": "KpNotificationCenterComponent",
5544
5612
  "selector": "kp-notification-center",
5545
- "import": "import { KpNotificationCenterComponent } from '@kanso-protocol/notification-center';",
5613
+ "import": "import { KpNotificationCenterComponent } from '@kanso-protocol/ui/notification-center';",
5546
5614
  "docs": "docs/patterns/notification-center.md",
5547
5615
  "storybook": "patterns-notificationcenter--docs"
5548
5616
  }
@@ -5552,7 +5620,8 @@
5552
5620
  "className": "KpNotificationItemComponent",
5553
5621
  "selector": "kp-notification-item",
5554
5622
  "layer": "patterns",
5555
- "package": "@kanso-protocol/notification-center",
5623
+ "package": "@kanso-protocol/ui",
5624
+ "import": "@kanso-protocol/ui/notification-center",
5556
5625
  "description": "",
5557
5626
  "examples": [],
5558
5627
  "inputs": [
@@ -5615,17 +5684,17 @@
5615
5684
  "sizeRamp": [],
5616
5685
  "keyboardPatterns": [],
5617
5686
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-notificationcenter--docs",
5618
- "sourcePath": "packages/patterns/notification-center/src/notification-item.component.ts",
5687
+ "sourcePath": "packages/ui/notification-center/src/notification-item.component.ts",
5619
5688
  "figma": {
5620
5689
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5621
5690
  "nodeId": "3822:7327",
5622
5691
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7327"
5623
5692
  },
5624
5693
  "codeConnect": {
5625
- "npm": "@kanso-protocol/notification-center",
5694
+ "npm": "@kanso-protocol/ui",
5626
5695
  "primaryClass": "KpNotificationCenterComponent",
5627
5696
  "selector": "kp-notification-center",
5628
- "import": "import { KpNotificationCenterComponent } from '@kanso-protocol/notification-center';",
5697
+ "import": "import { KpNotificationCenterComponent } from '@kanso-protocol/ui/notification-center';",
5629
5698
  "docs": "docs/patterns/notification-center.md",
5630
5699
  "storybook": "patterns-notificationcenter--docs"
5631
5700
  }
@@ -5635,7 +5704,8 @@
5635
5704
  "className": "KpPageErrorComponent",
5636
5705
  "selector": "kp-page-error",
5637
5706
  "layer": "patterns",
5638
- "package": "@kanso-protocol/page-error",
5707
+ "package": "@kanso-protocol/ui",
5708
+ "import": "@kanso-protocol/ui/page-error",
5639
5709
  "description": "Kanso Protocol — PageError\n\nFull-page error state for 404, 500, offline, and access-denied\nscenarios. Composes an illustration, optional hero error code,\ntitle + description, and primary/secondary action slots.\n\nTitles/descriptions/icon default to the `type` preset; override\nany of them via individual inputs.\n\nSlots:\n- `[kpPageErrorPrimary]` — primary CTA (Button, default)\n- `[kpPageErrorSecondary]` — secondary CTA (Button, ghost)",
5640
5710
  "examples": [
5641
5711
  "<kp-page-error type=\"404\">\n <button kpButton kpPageErrorPrimary>Go home</button>\n <button kpButton kpPageErrorSecondary variant=\"ghost\">Report broken link</button>\n</kp-page-error>"
@@ -5689,17 +5759,17 @@
5689
5759
  "sizeRamp": [],
5690
5760
  "keyboardPatterns": [],
5691
5761
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-pageerror--docs",
5692
- "sourcePath": "packages/patterns/page-error/src/page-error.component.ts",
5762
+ "sourcePath": "packages/ui/page-error/src/page-error.component.ts",
5693
5763
  "figma": {
5694
5764
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5695
5765
  "nodeId": "3822:7334",
5696
5766
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7334"
5697
5767
  },
5698
5768
  "codeConnect": {
5699
- "npm": "@kanso-protocol/page-error",
5769
+ "npm": "@kanso-protocol/ui",
5700
5770
  "primaryClass": "KpPageErrorComponent",
5701
5771
  "selector": "kp-page-error",
5702
- "import": "import { KpPageErrorComponent } from '@kanso-protocol/page-error';",
5772
+ "import": "import { KpPageErrorComponent } from '@kanso-protocol/ui/page-error';",
5703
5773
  "docs": "docs/patterns/page-error.md",
5704
5774
  "storybook": "patterns-pageerror--docs"
5705
5775
  }
@@ -5709,7 +5779,8 @@
5709
5779
  "className": "KpPageHeaderComponent",
5710
5780
  "selector": "kp-page-header",
5711
5781
  "layer": "patterns",
5712
- "package": "@kanso-protocol/page-header",
5782
+ "package": "@kanso-protocol/ui",
5783
+ "import": "@kanso-protocol/ui/page-header",
5713
5784
  "description": "Kanso Protocol — PageHeader\n\nContent-area header. Three sizes, optional breadcrumbs, back button,\ndescription, actions slot, tabs slot, and bottom divider.\n\nSlots (all optional):\n- `[kpPageHeaderBreadcrumbs]` — Breadcrumbs instance\n- `[kpPageHeaderTitle]` — custom title (e.g. title + inline Badge)\n- `[kpPageHeaderActions]` — action buttons on the right\n- `[kpPageHeaderTabs]` — Tabs instance under the header",
5714
5785
  "examples": [
5715
5786
  "<kp-page-header\n size=\"md\"\n title=\"All projects\"\n description=\"12 active projects\"\n [showActions]=\"true\"\n>\n <kp-breadcrumbs kpPageHeaderBreadcrumbs [items]=\"crumbs\"/>\n <div kpPageHeaderActions>\n <button kpButton appearance=\"ghost\">Import</button>\n <button kpButton>Create</button>\n </div>\n</kp-page-header>"
@@ -5790,17 +5861,17 @@
5790
5861
  ],
5791
5862
  "keyboardPatterns": [],
5792
5863
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-pageheader--docs",
5793
- "sourcePath": "packages/patterns/page-header/src/page-header.component.ts",
5864
+ "sourcePath": "packages/ui/page-header/src/page-header.component.ts",
5794
5865
  "figma": {
5795
5866
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5796
5867
  "nodeId": "3822:7341",
5797
5868
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7341"
5798
5869
  },
5799
5870
  "codeConnect": {
5800
- "npm": "@kanso-protocol/page-header",
5871
+ "npm": "@kanso-protocol/ui",
5801
5872
  "primaryClass": "KpPageHeaderComponent",
5802
5873
  "selector": "kp-page-header",
5803
- "import": "import { KpPageHeaderComponent } from '@kanso-protocol/page-header';",
5874
+ "import": "import { KpPageHeaderComponent } from '@kanso-protocol/ui/page-header';",
5804
5875
  "docs": "docs/patterns/page-header.md",
5805
5876
  "storybook": "patterns-pageheader--docs"
5806
5877
  }
@@ -5810,7 +5881,8 @@
5810
5881
  "className": "KpRowComponent",
5811
5882
  "selector": "kp-row",
5812
5883
  "layer": "patterns",
5813
- "package": "@kanso-protocol/row",
5884
+ "package": "@kanso-protocol/ui",
5885
+ "import": "@kanso-protocol/ui/row",
5814
5886
  "description": "Kanso Protocol — Row\n\nHorizontal Auto Layout wrapper with a preset gap scale, cross-axis\nalignment, and main-axis justification. Optional wrap on overflow.",
5815
5887
  "examples": [
5816
5888
  "<kp-row gap=\"sm\" justify=\"end\">\n <button kpButton appearance=\"ghost\">Cancel</button>\n <button kpButton>Save</button>\n</kp-row>"
@@ -5846,17 +5918,17 @@
5846
5918
  "sizeRamp": [],
5847
5919
  "keyboardPatterns": [],
5848
5920
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-row--docs",
5849
- "sourcePath": "packages/patterns/row/src/row.component.ts",
5921
+ "sourcePath": "packages/ui/row/src/row.component.ts",
5850
5922
  "figma": {
5851
5923
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5852
5924
  "nodeId": "3825:7273",
5853
5925
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3825-7273"
5854
5926
  },
5855
5927
  "codeConnect": {
5856
- "npm": "@kanso-protocol/row",
5928
+ "npm": "@kanso-protocol/ui",
5857
5929
  "primaryClass": "KpRowComponent",
5858
5930
  "selector": "kp-row",
5859
- "import": "import { KpRowComponent } from '@kanso-protocol/row';",
5931
+ "import": "import { KpRowComponent } from '@kanso-protocol/ui/row';",
5860
5932
  "docs": "docs/patterns/row.md",
5861
5933
  "storybook": "patterns-row--docs"
5862
5934
  }
@@ -5866,7 +5938,8 @@
5866
5938
  "className": "KpSearchBarComponent",
5867
5939
  "selector": "kp-search-bar",
5868
5940
  "layer": "patterns",
5869
- "package": "@kanso-protocol/search-bar",
5941
+ "package": "@kanso-protocol/ui",
5942
+ "import": "@kanso-protocol/ui/search-bar",
5870
5943
  "description": "Kanso Protocol — SearchBar\n\nTwo variants:\n- `inline` — a simple search input with optional ⌘K shortcut hint,\n good for header search or page filters.\n- `command-palette` — a self-contained panel: input + grouped\n results with shortcuts + footer helper keys. Typically rendered\n inside a Dialog/Overlay.\n\nThe component is presentational; filtering results, opening the\npalette via ⌘K, and committing selection are all consumer\nresponsibilities.",
5871
5944
  "examples": [
5872
5945
  "<!-- Inline in Header -->\n<kp-search-bar variant=\"inline\" size=\"md\" [showShortcutHint]=\"true\" (search)=\"onSearch($event)\"/>\n\n<!-- Command Palette (inside a Dialog) -->\n<kp-search-bar variant=\"command-palette\" [groups]=\"results\" (itemClick)=\"run($event)\"/>"
@@ -5926,7 +5999,7 @@
5926
5999
  },
5927
6000
  {
5928
6001
  "name": "itemClick",
5929
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/search-bar/src/search-bar.component\").KpSearchResultItem"
6002
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/search-bar/src/search-bar.component\").KpSearchResultItem"
5930
6003
  }
5931
6004
  ],
5932
6005
  "ariaRole": null,
@@ -5937,17 +6010,17 @@
5937
6010
  ],
5938
6011
  "keyboardPatterns": [],
5939
6012
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-searchbar--docs",
5940
- "sourcePath": "packages/patterns/search-bar/src/search-bar.component.ts",
6013
+ "sourcePath": "packages/ui/search-bar/src/search-bar.component.ts",
5941
6014
  "figma": {
5942
6015
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
5943
6016
  "nodeId": "3822:7356",
5944
6017
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7356"
5945
6018
  },
5946
6019
  "codeConnect": {
5947
- "npm": "@kanso-protocol/search-bar",
6020
+ "npm": "@kanso-protocol/ui",
5948
6021
  "primaryClass": "KpSearchBarComponent",
5949
6022
  "selector": "kp-search-bar",
5950
- "import": "import { KpSearchBarComponent } from '@kanso-protocol/search-bar';",
6023
+ "import": "import { KpSearchBarComponent } from '@kanso-protocol/ui/search-bar';",
5951
6024
  "docs": "docs/patterns/search-bar.md",
5952
6025
  "storybook": "patterns-searchbar--docs"
5953
6026
  }
@@ -5957,7 +6030,8 @@
5957
6030
  "className": "KpSettingsPanelComponent",
5958
6031
  "selector": "kp-settings-panel",
5959
6032
  "layer": "patterns",
5960
- "package": "@kanso-protocol/settings-panel",
6033
+ "package": "@kanso-protocol/ui",
6034
+ "import": "@kanso-protocol/ui/settings-panel",
5961
6035
  "description": "Kanso Protocol — SettingsPanel\n\nCard-shaped container for a group of related settings. Title +\ndescription in the header, then a column of `<kp-settings-row>`\nchildren. The card border and header are optional — turn them off\nto inline a panel inside another container.\n\nUse one panel per topical group (Notifications / Privacy / Billing).",
5962
6036
  "examples": [
5963
6037
  "<kp-settings-panel title=\"Notifications\"\n description=\"Manage how you receive updates and alerts.\">\n <kp-settings-row title=\"Email notifications\">\n <kp-toggle [on]=\"true\"/>\n </kp-settings-row>\n <kp-settings-row title=\"Push notifications\" [showDivider]=\"false\">\n <kp-toggle [on]=\"false\"/>\n </kp-settings-row>\n</kp-settings-panel>"
@@ -6009,17 +6083,17 @@
6009
6083
  ],
6010
6084
  "keyboardPatterns": [],
6011
6085
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-settingspanel--docs",
6012
- "sourcePath": "packages/patterns/settings-panel/src/settings-panel.component.ts",
6086
+ "sourcePath": "packages/ui/settings-panel/src/settings-panel.component.ts",
6013
6087
  "figma": {
6014
6088
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6015
6089
  "nodeId": "3822:7364",
6016
6090
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7364"
6017
6091
  },
6018
6092
  "codeConnect": {
6019
- "npm": "@kanso-protocol/settings-panel",
6093
+ "npm": "@kanso-protocol/ui",
6020
6094
  "primaryClass": "KpSettingsPanelComponent",
6021
6095
  "selector": "kp-settings-panel",
6022
- "import": "import { KpSettingsPanelComponent } from '@kanso-protocol/settings-panel';",
6096
+ "import": "import { KpSettingsPanelComponent } from '@kanso-protocol/ui/settings-panel';",
6023
6097
  "docs": "docs/patterns/settings-panel.md",
6024
6098
  "storybook": "patterns-settingspanel--docs"
6025
6099
  }
@@ -6029,7 +6103,8 @@
6029
6103
  "className": "KpSettingsRowComponent",
6030
6104
  "selector": "kp-settings-row",
6031
6105
  "layer": "patterns",
6032
- "package": "@kanso-protocol/settings-panel",
6106
+ "package": "@kanso-protocol/ui",
6107
+ "import": "@kanso-protocol/ui/settings-panel",
6033
6108
  "description": "Kanso Protocol — SettingsRow\n\nOne row inside a `<kp-settings-panel>`. Title + optional description\non the left, a Control slot on the right (toggle, select, input,\nbutton, badge — anything you project in). Bottom divider on by\ndefault; consumers usually turn it off on the last row of a panel.",
6034
6109
  "examples": [
6035
6110
  "<kp-settings-row title=\"Email notifications\"\n description=\"Receive an email when something important happens.\">\n <kp-toggle [on]=\"true\"/>\n</kp-settings-row>"
@@ -6075,17 +6150,17 @@
6075
6150
  ],
6076
6151
  "keyboardPatterns": [],
6077
6152
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-settingspanel--docs",
6078
- "sourcePath": "packages/patterns/settings-panel/src/settings-row.component.ts",
6153
+ "sourcePath": "packages/ui/settings-panel/src/settings-row.component.ts",
6079
6154
  "figma": {
6080
6155
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6081
6156
  "nodeId": "3822:7364",
6082
6157
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7364"
6083
6158
  },
6084
6159
  "codeConnect": {
6085
- "npm": "@kanso-protocol/settings-panel",
6160
+ "npm": "@kanso-protocol/ui",
6086
6161
  "primaryClass": "KpSettingsPanelComponent",
6087
6162
  "selector": "kp-settings-panel",
6088
- "import": "import { KpSettingsPanelComponent } from '@kanso-protocol/settings-panel';",
6163
+ "import": "import { KpSettingsPanelComponent } from '@kanso-protocol/ui/settings-panel';",
6089
6164
  "docs": "docs/patterns/settings-panel.md",
6090
6165
  "storybook": "patterns-settingspanel--docs"
6091
6166
  }
@@ -6095,7 +6170,8 @@
6095
6170
  "className": "KpSidebarComponent",
6096
6171
  "selector": "kp-sidebar",
6097
6172
  "layer": "patterns",
6098
- "package": "@kanso-protocol/sidebar",
6173
+ "package": "@kanso-protocol/ui",
6174
+ "import": "@kanso-protocol/ui/sidebar",
6099
6175
  "description": "Kanso Protocol — Sidebar\n\nApp side navigation container. Expanded (240) or collapsed (64).\nData-driven sections, each with its own label and NavItems.\nOptional logo, search slot, user footer with Avatar.\n\nSlots:\n- `[kpSidebarLogo]` — custom logo area\n- `[kpSidebarSearch]` — search field above sections\n- each NavItem icon is rendered via `iconTemplateRef` if provided\n (otherwise a generic placeholder)",
6100
6176
  "examples": [
6101
6177
  "<kp-sidebar\n widthState=\"expanded\"\n [sections]=\"nav\"\n userName=\"Greg Black\"\n userInitials=\"GB\"\n userEmail=\"greg@example.com\"\n/>"
@@ -6171,11 +6247,11 @@
6171
6247
  "outputs": [
6172
6248
  {
6173
6249
  "name": "toggle",
6174
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/sidebar/src/sidebar.component\").KpSidebarWidth"
6250
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/sidebar/src/sidebar.component\").KpSidebarWidth"
6175
6251
  },
6176
6252
  {
6177
6253
  "name": "itemClick",
6178
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/sidebar/src/sidebar.component\").KpSidebarNavItem"
6254
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/sidebar/src/sidebar.component\").KpSidebarNavItem"
6179
6255
  },
6180
6256
  {
6181
6257
  "name": "userMenuClick",
@@ -6186,17 +6262,17 @@
6186
6262
  "sizeRamp": [],
6187
6263
  "keyboardPatterns": [],
6188
6264
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-sidebar--docs",
6189
- "sourcePath": "packages/patterns/sidebar/src/sidebar.component.ts",
6265
+ "sourcePath": "packages/ui/sidebar/src/sidebar.component.ts",
6190
6266
  "figma": {
6191
6267
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6192
6268
  "nodeId": "3822:7372",
6193
6269
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7372"
6194
6270
  },
6195
6271
  "codeConnect": {
6196
- "npm": "@kanso-protocol/sidebar",
6272
+ "npm": "@kanso-protocol/ui",
6197
6273
  "primaryClass": "KpSidebarComponent",
6198
6274
  "selector": "kp-sidebar",
6199
- "import": "import { KpSidebarComponent } from '@kanso-protocol/sidebar';",
6275
+ "import": "import { KpSidebarComponent } from '@kanso-protocol/ui/sidebar';",
6200
6276
  "docs": "docs/patterns/sidebar.md",
6201
6277
  "storybook": "patterns-sidebar--docs"
6202
6278
  }
@@ -6206,7 +6282,8 @@
6206
6282
  "className": "KpStackComponent",
6207
6283
  "selector": "kp-stack",
6208
6284
  "layer": "patterns",
6209
- "package": "@kanso-protocol/stack",
6285
+ "package": "@kanso-protocol/ui",
6286
+ "import": "@kanso-protocol/ui/stack",
6210
6287
  "description": "Kanso Protocol — Stack\n\nVertical Auto Layout wrapper with a preset gap scale and cross-axis\nalignment. Semantic counterpart to `<div style=\"display:flex;flex-direction:column\">`.",
6211
6288
  "examples": [
6212
6289
  "<kp-stack gap=\"md\">\n <kp-input/>\n <kp-input/>\n <button kpButton>Save</button>\n</kp-stack>"
@@ -6230,17 +6307,17 @@
6230
6307
  "sizeRamp": [],
6231
6308
  "keyboardPatterns": [],
6232
6309
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-stack--docs",
6233
- "sourcePath": "packages/patterns/stack/src/stack.component.ts",
6310
+ "sourcePath": "packages/ui/stack/src/stack.component.ts",
6234
6311
  "figma": {
6235
6312
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6236
6313
  "nodeId": "3825:7265",
6237
6314
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3825-7265"
6238
6315
  },
6239
6316
  "codeConnect": {
6240
- "npm": "@kanso-protocol/stack",
6317
+ "npm": "@kanso-protocol/ui",
6241
6318
  "primaryClass": "KpStackComponent",
6242
6319
  "selector": "kp-stack",
6243
- "import": "import { KpStackComponent } from '@kanso-protocol/stack';",
6320
+ "import": "import { KpStackComponent } from '@kanso-protocol/ui/stack';",
6244
6321
  "docs": "docs/patterns/stack.md",
6245
6322
  "storybook": "patterns-stack--docs"
6246
6323
  }
@@ -6250,7 +6327,8 @@
6250
6327
  "className": "KpStatCardComponent",
6251
6328
  "selector": "kp-stat-card",
6252
6329
  "layer": "patterns",
6253
- "package": "@kanso-protocol/stat-card",
6330
+ "package": "@kanso-protocol/ui",
6331
+ "import": "@kanso-protocol/ui/stat-card",
6254
6332
  "description": "Kanso Protocol — StatCard\n\nSingle-metric tile with label, big value, optional icon, optional\ntrend (direction + delta + description), optional sparkline placeholder.\nDesigned to live in a dashboard grid.\n\nSlot: `[kpStatCardSparkline]` — drop in your real chart (e.g. recharts);\nthe placeholder shows a styled rectangle when empty.",
6255
6333
  "examples": [
6256
6334
  "<kp-stat-card label=\"Total revenue\" value=\"$12,482\" trendValue=\"+12.5%\" trendDescription=\"from last month\"/>"
@@ -6332,17 +6410,17 @@
6332
6410
  ],
6333
6411
  "keyboardPatterns": [],
6334
6412
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-statcard--docs",
6335
- "sourcePath": "packages/patterns/stat-card/src/stat-card.component.ts",
6413
+ "sourcePath": "packages/ui/stat-card/src/stat-card.component.ts",
6336
6414
  "figma": {
6337
6415
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6338
6416
  "nodeId": "3822:7387",
6339
6417
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7387"
6340
6418
  },
6341
6419
  "codeConnect": {
6342
- "npm": "@kanso-protocol/stat-card",
6420
+ "npm": "@kanso-protocol/ui",
6343
6421
  "primaryClass": "KpStatCardComponent",
6344
6422
  "selector": "kp-stat-card",
6345
- "import": "import { KpStatCardComponent } from '@kanso-protocol/stat-card';",
6423
+ "import": "import { KpStatCardComponent } from '@kanso-protocol/ui/stat-card';",
6346
6424
  "docs": "docs/patterns/stat-card.md",
6347
6425
  "storybook": "patterns-statcard--docs"
6348
6426
  }
@@ -6352,7 +6430,8 @@
6352
6430
  "className": "KpTableToolbarComponent",
6353
6431
  "selector": "kp-table-toolbar",
6354
6432
  "layer": "patterns",
6355
- "package": "@kanso-protocol/table-toolbar",
6433
+ "package": "@kanso-protocol/ui",
6434
+ "import": "@kanso-protocol/ui/table-toolbar",
6356
6435
  "description": "Kanso Protocol — TableToolbar\n\nPanel that sits above a data table. Two modes:\n- `default` — search + filter/sort + right-side actions (density, columns,\n export, create).\n- `bulk-select` — swaps to a selection summary with bulk actions\n (export / tag / move / delete).\n\nComposes SearchBar, Button, Badge. Action slots are boolean toggles so\nyou can dial the toolbar from minimal (\"search + create\") up to a full\nadmin bar without touching templates.",
6357
6436
  "examples": [
6358
6437
  "<kp-table-toolbar\n [showFilter]=\"true\"\n [activeFilterCount]=\"2\"\n (createClick)=\"openCreate()\">\n</kp-table-toolbar>"
@@ -6458,7 +6537,7 @@
6458
6537
  },
6459
6538
  {
6460
6539
  "name": "densityChange",
6461
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/table-toolbar/src/table-toolbar.component\").KpTableToolbarDensity"
6540
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/table-toolbar/src/table-toolbar.component\").KpTableToolbarDensity"
6462
6541
  },
6463
6542
  {
6464
6543
  "name": "columnsClick",
@@ -6497,17 +6576,17 @@
6497
6576
  "sizeRamp": [],
6498
6577
  "keyboardPatterns": [],
6499
6578
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-tabletoolbar--docs",
6500
- "sourcePath": "packages/patterns/table-toolbar/src/table-toolbar.component.ts",
6579
+ "sourcePath": "packages/ui/table-toolbar/src/table-toolbar.component.ts",
6501
6580
  "figma": {
6502
6581
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6503
6582
  "nodeId": "3822:7395",
6504
6583
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7395"
6505
6584
  },
6506
6585
  "codeConnect": {
6507
- "npm": "@kanso-protocol/table-toolbar",
6586
+ "npm": "@kanso-protocol/ui",
6508
6587
  "primaryClass": "KpTableToolbarComponent",
6509
6588
  "selector": "kp-table-toolbar",
6510
- "import": "import { KpTableToolbarComponent } from '@kanso-protocol/table-toolbar';",
6589
+ "import": "import { KpTableToolbarComponent } from '@kanso-protocol/ui/table-toolbar';",
6511
6590
  "docs": "docs/patterns/table-toolbar.md",
6512
6591
  "storybook": "patterns-tabletoolbar--docs"
6513
6592
  }
@@ -6517,7 +6596,8 @@
6517
6596
  "className": "KpThemeToggleComponent",
6518
6597
  "selector": "kp-theme-toggle",
6519
6598
  "layer": "patterns",
6520
- "package": "@kanso-protocol/theme-toggle",
6599
+ "package": "@kanso-protocol/ui",
6600
+ "import": "@kanso-protocol/ui/theme-toggle",
6521
6601
  "description": "Kanso Protocol — ThemeToggle\n\nThree presentations for switching between light / dark / system\nthemes:\n- `icon` — single icon button that cycles\n- `segmented` — three inline icon segments, one selected\n- `dropdown` — ghost button showing the current theme label; opens a menu\n\nThe component emits `themeChange` when the user selects a value;\nkeeping the chosen theme (including `system`) up to the consumer.",
6522
6602
  "examples": [
6523
6603
  "<kp-theme-toggle\n variant=\"segmented\"\n [showLabel]=\"true\"\n [currentTheme]=\"theme()\"\n (themeChange)=\"theme.set($event)\"\n/>"
@@ -6551,7 +6631,7 @@
6551
6631
  "outputs": [
6552
6632
  {
6553
6633
  "name": "themeChange",
6554
- "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/patterns/theme-toggle/src/theme-toggle.component\").KpThemeValue"
6634
+ "payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/theme-toggle/src/theme-toggle.component\").KpThemeValue"
6555
6635
  },
6556
6636
  {
6557
6637
  "name": "dropdownClick",
@@ -6568,17 +6648,17 @@
6568
6648
  "Escape"
6569
6649
  ],
6570
6650
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-themetoggle--docs",
6571
- "sourcePath": "packages/patterns/theme-toggle/src/theme-toggle.component.ts",
6651
+ "sourcePath": "packages/ui/theme-toggle/src/theme-toggle.component.ts",
6572
6652
  "figma": {
6573
6653
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6574
6654
  "nodeId": "3822:7403",
6575
6655
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7403"
6576
6656
  },
6577
6657
  "codeConnect": {
6578
- "npm": "@kanso-protocol/theme-toggle",
6658
+ "npm": "@kanso-protocol/ui",
6579
6659
  "primaryClass": "KpThemeToggleComponent",
6580
6660
  "selector": "kp-theme-toggle",
6581
- "import": "import { KpThemeToggleComponent } from '@kanso-protocol/theme-toggle';",
6661
+ "import": "import { KpThemeToggleComponent } from '@kanso-protocol/ui/theme-toggle';",
6582
6662
  "docs": "docs/patterns/theme-toggle.md",
6583
6663
  "storybook": "patterns-themetoggle--docs"
6584
6664
  }
@@ -6588,7 +6668,8 @@
6588
6668
  "className": "KpUserMenuComponent",
6589
6669
  "selector": "kp-user-menu",
6590
6670
  "layer": "patterns",
6591
- "package": "@kanso-protocol/user-menu",
6671
+ "package": "@kanso-protocol/ui",
6672
+ "import": "@kanso-protocol/ui/user-menu",
6592
6673
  "description": "Kanso Protocol — UserMenu\n\nPreset dropdown shown from the user Avatar in Header. User block\nat top, main menu, optional theme toggle + help links, Sign out.\n\nSlots:\n- `[kpUserMenuItems]` — main menu items (Profile / Settings / Billing / Team)\n- `[kpUserMenuHelp]` — help links\n- `[kpUserMenuTheme]` — theme toggle row (e.g. a SegmentedControl)",
6593
6674
  "examples": [
6594
6675
  "<kp-user-menu\n userName=\"Greg Black\"\n userInitials=\"GB\"\n userEmail=\"greg@example.com\"\n [showPlanBadge]=\"true\"\n planName=\"Pro\"\n>\n <div kpUserMenuItems>\n <kp-menu-item icon=\"user\" label=\"Profile\" (click$)=\"goto('profile')\"/>\n ...\n </div>\n</kp-user-menu>"
@@ -6662,17 +6743,17 @@
6662
6743
  ],
6663
6744
  "keyboardPatterns": [],
6664
6745
  "docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-usermenu--docs",
6665
- "sourcePath": "packages/patterns/user-menu/src/user-menu.component.ts",
6746
+ "sourcePath": "packages/ui/user-menu/src/user-menu.component.ts",
6666
6747
  "figma": {
6667
6748
  "fileKey": "ahRfe4BdMAyoK0I3lnicp6",
6668
6749
  "nodeId": "3822:7411",
6669
6750
  "url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3822-7411"
6670
6751
  },
6671
6752
  "codeConnect": {
6672
- "npm": "@kanso-protocol/user-menu",
6753
+ "npm": "@kanso-protocol/ui",
6673
6754
  "primaryClass": "KpUserMenuComponent",
6674
6755
  "selector": "kp-user-menu",
6675
- "import": "import { KpUserMenuComponent } from '@kanso-protocol/user-menu';",
6756
+ "import": "import { KpUserMenuComponent } from '@kanso-protocol/ui/user-menu';",
6676
6757
  "docs": "docs/patterns/user-menu.md",
6677
6758
  "storybook": "patterns-usermenu--docs"
6678
6759
  }