@kanso-protocol/mcp 4.0.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/manifest.json +406 -179
- package/package.json +1 -1
package/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-
|
|
3
|
-
"version": "4.
|
|
2
|
+
"generatedAt": "2026-06-07T11:53:36.026Z",
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"totals": {
|
|
5
|
-
"components":
|
|
5
|
+
"components": 59,
|
|
6
6
|
"patterns": 22,
|
|
7
7
|
"tokens": 915
|
|
8
8
|
},
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
"className": "KpAccordionItemComponent",
|
|
62
62
|
"selector": "kp-accordion-item",
|
|
63
63
|
"layer": "components",
|
|
64
|
-
"package": "@kanso-protocol/
|
|
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,7 +129,7 @@
|
|
|
128
129
|
],
|
|
129
130
|
"keyboardPatterns": [],
|
|
130
131
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-accordion--docs",
|
|
131
|
-
"sourcePath": "packages/
|
|
132
|
+
"sourcePath": "packages/ui/accordion/src/accordion-item.component.ts",
|
|
132
133
|
"figma": {
|
|
133
134
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
134
135
|
"nodeId": "3805:11103",
|
|
@@ -148,7 +149,8 @@
|
|
|
148
149
|
"className": "KpAccordionComponent",
|
|
149
150
|
"selector": "kp-accordion",
|
|
150
151
|
"layer": "components",
|
|
151
|
-
"package": "@kanso-protocol/
|
|
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,7 +182,7 @@
|
|
|
180
182
|
],
|
|
181
183
|
"keyboardPatterns": [],
|
|
182
184
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-accordion--docs",
|
|
183
|
-
"sourcePath": "packages/
|
|
185
|
+
"sourcePath": "packages/ui/accordion/src/accordion.component.ts",
|
|
184
186
|
"figma": {
|
|
185
187
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
186
188
|
"nodeId": "3805:11103",
|
|
@@ -200,7 +202,8 @@
|
|
|
200
202
|
"className": "KpAlertComponent",
|
|
201
203
|
"selector": "kp-alert",
|
|
202
204
|
"layer": "components",
|
|
203
|
-
"package": "@kanso-protocol/
|
|
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,7 +266,7 @@
|
|
|
263
266
|
],
|
|
264
267
|
"keyboardPatterns": [],
|
|
265
268
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-alert--docs",
|
|
266
|
-
"sourcePath": "packages/
|
|
269
|
+
"sourcePath": "packages/ui/alert/src/alert.component.ts",
|
|
267
270
|
"figma": {
|
|
268
271
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
269
272
|
"nodeId": "3805:11044",
|
|
@@ -283,7 +286,8 @@
|
|
|
283
286
|
"className": "KpAvatarComponent",
|
|
284
287
|
"selector": "kp-avatar",
|
|
285
288
|
"layer": "components",
|
|
286
|
-
"package": "@kanso-protocol/
|
|
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,7 +366,7 @@
|
|
|
362
366
|
],
|
|
363
367
|
"keyboardPatterns": [],
|
|
364
368
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-avatar--docs",
|
|
365
|
-
"sourcePath": "packages/
|
|
369
|
+
"sourcePath": "packages/ui/avatar/src/avatar.component.ts",
|
|
366
370
|
"figma": {
|
|
367
371
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
368
372
|
"nodeId": "3805:11139",
|
|
@@ -382,7 +386,8 @@
|
|
|
382
386
|
"className": "KpAvatarGroupComponent",
|
|
383
387
|
"selector": "kp-avatar-group",
|
|
384
388
|
"layer": "components",
|
|
385
|
-
"package": "@kanso-protocol/
|
|
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,7 +419,7 @@
|
|
|
414
419
|
],
|
|
415
420
|
"keyboardPatterns": [],
|
|
416
421
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-avatargroup--docs",
|
|
417
|
-
"sourcePath": "packages/
|
|
422
|
+
"sourcePath": "packages/ui/avatar-group/src/avatar-group.component.ts",
|
|
418
423
|
"figma": {
|
|
419
424
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
420
425
|
"nodeId": "3805:11139",
|
|
@@ -434,7 +439,8 @@
|
|
|
434
439
|
"className": "KpBadgeComponent",
|
|
435
440
|
"selector": "kp-badge",
|
|
436
441
|
"layer": "components",
|
|
437
|
-
"package": "@kanso-protocol/
|
|
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,7 +503,7 @@
|
|
|
497
503
|
],
|
|
498
504
|
"keyboardPatterns": [],
|
|
499
505
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-badge--docs",
|
|
500
|
-
"sourcePath": "packages/
|
|
506
|
+
"sourcePath": "packages/ui/badge/src/badge.component.ts",
|
|
501
507
|
"figma": {
|
|
502
508
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
503
509
|
"nodeId": "3805:11040",
|
|
@@ -517,7 +523,8 @@
|
|
|
517
523
|
"className": "KpBreadcrumbItemComponent",
|
|
518
524
|
"selector": "kp-breadcrumb-item",
|
|
519
525
|
"layer": "components",
|
|
520
|
-
"package": "@kanso-protocol/
|
|
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,7 +582,7 @@
|
|
|
575
582
|
"Home"
|
|
576
583
|
],
|
|
577
584
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
|
|
578
|
-
"sourcePath": "packages/
|
|
585
|
+
"sourcePath": "packages/ui/breadcrumbs/src/breadcrumb-item.component.ts",
|
|
579
586
|
"figma": {
|
|
580
587
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
581
588
|
"nodeId": "3805:11072",
|
|
@@ -595,7 +602,8 @@
|
|
|
595
602
|
"className": "KpBreadcrumbSeparatorComponent",
|
|
596
603
|
"selector": "kp-breadcrumb-separator",
|
|
597
604
|
"layer": "components",
|
|
598
|
-
"package": "@kanso-protocol/
|
|
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,7 +628,7 @@
|
|
|
620
628
|
],
|
|
621
629
|
"keyboardPatterns": [],
|
|
622
630
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
|
|
623
|
-
"sourcePath": "packages/
|
|
631
|
+
"sourcePath": "packages/ui/breadcrumbs/src/breadcrumb-separator.component.ts",
|
|
624
632
|
"figma": {
|
|
625
633
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
626
634
|
"nodeId": "3805:11072",
|
|
@@ -640,7 +648,8 @@
|
|
|
640
648
|
"className": "KpBreadcrumbsAutoComponent",
|
|
641
649
|
"selector": "kp-breadcrumbs-auto",
|
|
642
650
|
"layer": "components",
|
|
643
|
-
"package": "@kanso-protocol/
|
|
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,7 +684,7 @@
|
|
|
675
684
|
"Home"
|
|
676
685
|
],
|
|
677
686
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
|
|
678
|
-
"sourcePath": "packages/
|
|
687
|
+
"sourcePath": "packages/ui/breadcrumbs/src/breadcrumbs-auto.component.ts",
|
|
679
688
|
"figma": {
|
|
680
689
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
681
690
|
"nodeId": "3805:11072",
|
|
@@ -695,7 +704,8 @@
|
|
|
695
704
|
"className": "KpBreadcrumbsComponent",
|
|
696
705
|
"selector": "kp-breadcrumbs",
|
|
697
706
|
"layer": "components",
|
|
698
|
-
"package": "@kanso-protocol/
|
|
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,7 +732,7 @@
|
|
|
722
732
|
],
|
|
723
733
|
"keyboardPatterns": [],
|
|
724
734
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-breadcrumbs--docs",
|
|
725
|
-
"sourcePath": "packages/
|
|
735
|
+
"sourcePath": "packages/ui/breadcrumbs/src/breadcrumbs.component.ts",
|
|
726
736
|
"figma": {
|
|
727
737
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
728
738
|
"nodeId": "3805:11072",
|
|
@@ -742,7 +752,8 @@
|
|
|
742
752
|
"className": "KpButtonComponent",
|
|
743
753
|
"selector": "button[kpButton]",
|
|
744
754
|
"layer": "components",
|
|
745
|
-
"package": "@kanso-protocol/
|
|
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,7 +819,7 @@
|
|
|
808
819
|
],
|
|
809
820
|
"keyboardPatterns": [],
|
|
810
821
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-button--docs",
|
|
811
|
-
"sourcePath": "packages/
|
|
822
|
+
"sourcePath": "packages/ui/button/src/button.component.ts",
|
|
812
823
|
"figma": {
|
|
813
824
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
814
825
|
"nodeId": "3805:10993",
|
|
@@ -828,7 +839,8 @@
|
|
|
828
839
|
"className": "KpIconButtonComponent",
|
|
829
840
|
"selector": "kp-icon-button",
|
|
830
841
|
"layer": "components",
|
|
831
|
-
"package": "@kanso-protocol/
|
|
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,7 +879,7 @@
|
|
|
867
879
|
],
|
|
868
880
|
"keyboardPatterns": [],
|
|
869
881
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-button--docs",
|
|
870
|
-
"sourcePath": "packages/
|
|
882
|
+
"sourcePath": "packages/ui/button/src/icon-button.component.ts",
|
|
871
883
|
"figma": {
|
|
872
884
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
873
885
|
"nodeId": "3805:10993",
|
|
@@ -887,7 +899,8 @@
|
|
|
887
899
|
"className": "KpCardComponent",
|
|
888
900
|
"selector": "kp-card",
|
|
889
901
|
"layer": "components",
|
|
890
|
-
"package": "@kanso-protocol/
|
|
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,7 +985,7 @@
|
|
|
972
985
|
],
|
|
973
986
|
"keyboardPatterns": [],
|
|
974
987
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-card--docs",
|
|
975
|
-
"sourcePath": "packages/
|
|
988
|
+
"sourcePath": "packages/ui/card/src/card.component.ts",
|
|
976
989
|
"figma": {
|
|
977
990
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
978
991
|
"nodeId": "3805:11091",
|
|
@@ -992,7 +1005,8 @@
|
|
|
992
1005
|
"className": "KpCheckboxComponent",
|
|
993
1006
|
"selector": "kp-checkbox",
|
|
994
1007
|
"layer": "components",
|
|
995
|
-
"package": "@kanso-protocol/
|
|
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,7 +1099,7 @@
|
|
|
1085
1099
|
],
|
|
1086
1100
|
"keyboardPatterns": [],
|
|
1087
1101
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-checkbox--docs",
|
|
1088
|
-
"sourcePath": "packages/
|
|
1102
|
+
"sourcePath": "packages/ui/checkbox/src/checkbox.component.ts",
|
|
1089
1103
|
"figma": {
|
|
1090
1104
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1091
1105
|
"nodeId": "3805:11001",
|
|
@@ -1105,7 +1119,8 @@
|
|
|
1105
1119
|
"className": "KpComboboxComponent",
|
|
1106
1120
|
"selector": "kp-combobox",
|
|
1107
1121
|
"layer": "components",
|
|
1108
|
-
"package": "@kanso-protocol/
|
|
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,7 +1209,7 @@
|
|
|
1194
1209
|
"Backspace"
|
|
1195
1210
|
],
|
|
1196
1211
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-combobox--docs",
|
|
1197
|
-
"sourcePath": "packages/
|
|
1212
|
+
"sourcePath": "packages/ui/combobox/src/combobox.component.ts",
|
|
1198
1213
|
"figma": {
|
|
1199
1214
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1200
1215
|
"nodeId": "3805:11115",
|
|
@@ -1214,7 +1229,8 @@
|
|
|
1214
1229
|
"className": "KpCommandPaletteComponent",
|
|
1215
1230
|
"selector": "kp-command-palette",
|
|
1216
1231
|
"layer": "components",
|
|
1217
|
-
"package": "@kanso-protocol/
|
|
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/
|
|
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,7 +1313,7 @@
|
|
|
1297
1313
|
"Enter"
|
|
1298
1314
|
],
|
|
1299
1315
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-commandpalette--docs",
|
|
1300
|
-
"sourcePath": "packages/
|
|
1316
|
+
"sourcePath": "packages/ui/command-palette/src/command-palette.component.ts",
|
|
1301
1317
|
"figma": {
|
|
1302
1318
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1303
1319
|
"nodeId": "4111:11234",
|
|
@@ -1317,7 +1333,8 @@
|
|
|
1317
1333
|
"className": "KpDatePickerComponent",
|
|
1318
1334
|
"selector": "kp-date-picker",
|
|
1319
1335
|
"layer": "components",
|
|
1320
|
-
"package": "@kanso-protocol/
|
|
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/
|
|
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,7 +1449,7 @@
|
|
|
1432
1449
|
"Space"
|
|
1433
1450
|
],
|
|
1434
1451
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-datepicker--docs",
|
|
1435
|
-
"sourcePath": "packages/
|
|
1452
|
+
"sourcePath": "packages/ui/datepicker/src/datepicker.component.ts",
|
|
1436
1453
|
"figma": {
|
|
1437
1454
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1438
1455
|
"nodeId": "3805:11119",
|
|
@@ -1452,7 +1469,8 @@
|
|
|
1452
1469
|
"className": "KpDialogComponent",
|
|
1453
1470
|
"selector": "kp-dialog",
|
|
1454
1471
|
"layer": "components",
|
|
1455
|
-
"package": "@kanso-protocol/
|
|
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,7 +1575,7 @@
|
|
|
1557
1575
|
],
|
|
1558
1576
|
"keyboardPatterns": [],
|
|
1559
1577
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-dialog--docs",
|
|
1560
|
-
"sourcePath": "packages/
|
|
1578
|
+
"sourcePath": "packages/ui/dialog/src/dialog.component.ts",
|
|
1561
1579
|
"figma": {
|
|
1562
1580
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1563
1581
|
"nodeId": "3805:11083",
|
|
@@ -1577,7 +1595,8 @@
|
|
|
1577
1595
|
"className": "KpDividerComponent",
|
|
1578
1596
|
"selector": "kp-divider",
|
|
1579
1597
|
"layer": "components",
|
|
1580
|
-
"package": "@kanso-protocol/
|
|
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,7 +1630,7 @@
|
|
|
1611
1630
|
"sizeRamp": [],
|
|
1612
1631
|
"keyboardPatterns": [],
|
|
1613
1632
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-divider--docs",
|
|
1614
|
-
"sourcePath": "packages/
|
|
1633
|
+
"sourcePath": "packages/ui/divider/src/divider.component.ts",
|
|
1615
1634
|
"figma": {
|
|
1616
1635
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1617
1636
|
"nodeId": "3805:11087",
|
|
@@ -1631,7 +1650,8 @@
|
|
|
1631
1650
|
"className": "KpDrawerComponent",
|
|
1632
1651
|
"selector": "kp-drawer",
|
|
1633
1652
|
"layer": "components",
|
|
1634
|
-
"package": "@kanso-protocol/
|
|
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,7 +1767,7 @@
|
|
|
1747
1767
|
"Escape"
|
|
1748
1768
|
],
|
|
1749
1769
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-drawer--docs",
|
|
1750
|
-
"sourcePath": "packages/
|
|
1770
|
+
"sourcePath": "packages/ui/drawer/src/drawer.component.ts",
|
|
1751
1771
|
"figma": {
|
|
1752
1772
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1753
1773
|
"nodeId": "3805:11099",
|
|
@@ -1767,7 +1787,8 @@
|
|
|
1767
1787
|
"className": "KpEmptyStateComponent",
|
|
1768
1788
|
"selector": "kp-empty-state",
|
|
1769
1789
|
"layer": "components",
|
|
1770
|
-
"package": "@kanso-protocol/
|
|
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,7 +1832,7 @@
|
|
|
1811
1832
|
],
|
|
1812
1833
|
"keyboardPatterns": [],
|
|
1813
1834
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-emptystate--docs",
|
|
1814
|
-
"sourcePath": "packages/
|
|
1835
|
+
"sourcePath": "packages/ui/empty-state/src/empty-state.component.ts",
|
|
1815
1836
|
"figma": {
|
|
1816
1837
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1817
1838
|
"nodeId": "3805:11095",
|
|
@@ -1831,7 +1852,8 @@
|
|
|
1831
1852
|
"className": "KpFileUploadComponent",
|
|
1832
1853
|
"selector": "kp-file-upload",
|
|
1833
1854
|
"layer": "components",
|
|
1834
|
-
"package": "@kanso-protocol/
|
|
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/
|
|
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/
|
|
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/
|
|
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,7 +1954,7 @@
|
|
|
1932
1954
|
],
|
|
1933
1955
|
"keyboardPatterns": [],
|
|
1934
1956
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-fileupload--docs",
|
|
1935
|
-
"sourcePath": "packages/
|
|
1957
|
+
"sourcePath": "packages/ui/file-upload/src/file-upload.component.ts",
|
|
1936
1958
|
"figma": {
|
|
1937
1959
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
1938
1960
|
"nodeId": "4110:11270",
|
|
@@ -1952,7 +1974,8 @@
|
|
|
1952
1974
|
"className": "KpFormFieldComponent",
|
|
1953
1975
|
"selector": "kp-form-field",
|
|
1954
1976
|
"layer": "components",
|
|
1955
|
-
"package": "@kanso-protocol/
|
|
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,7 +2030,7 @@
|
|
|
2007
2030
|
"sizeRamp": [],
|
|
2008
2031
|
"keyboardPatterns": [],
|
|
2009
2032
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-formfield--docs",
|
|
2010
|
-
"sourcePath": "packages/
|
|
2033
|
+
"sourcePath": "packages/ui/form-field/src/form-field.component.ts",
|
|
2011
2034
|
"figma": {
|
|
2012
2035
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2013
2036
|
"nodeId": "3805:11016",
|
|
@@ -2027,7 +2050,8 @@
|
|
|
2027
2050
|
"className": "KpIconComponent",
|
|
2028
2051
|
"selector": "kp-icon",
|
|
2029
2052
|
"layer": "components",
|
|
2030
|
-
"package": "@kanso-protocol/
|
|
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,7 +2062,7 @@
|
|
|
2038
2062
|
"sizeRamp": [],
|
|
2039
2063
|
"keyboardPatterns": [],
|
|
2040
2064
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-icon--docs",
|
|
2041
|
-
"sourcePath": "packages/
|
|
2065
|
+
"sourcePath": "packages/ui/icon/src/icon.component.ts",
|
|
2042
2066
|
"codeConnect": {
|
|
2043
2067
|
"npm": "@kanso-protocol/icon",
|
|
2044
2068
|
"primaryClass": "KpIconComponent",
|
|
@@ -2053,7 +2077,8 @@
|
|
|
2053
2077
|
"className": "KpInputComponent",
|
|
2054
2078
|
"selector": "kp-input",
|
|
2055
2079
|
"layer": "components",
|
|
2056
|
-
"package": "@kanso-protocol/
|
|
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,7 +2156,7 @@
|
|
|
2131
2156
|
],
|
|
2132
2157
|
"keyboardPatterns": [],
|
|
2133
2158
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-input--docs",
|
|
2134
|
-
"sourcePath": "packages/
|
|
2159
|
+
"sourcePath": "packages/ui/input/src/input.component.ts",
|
|
2135
2160
|
"figma": {
|
|
2136
2161
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2137
2162
|
"nodeId": "3805:10997",
|
|
@@ -2151,7 +2176,8 @@
|
|
|
2151
2176
|
"className": "KpMarkdownViewerComponent",
|
|
2152
2177
|
"selector": "kp-markdown-viewer",
|
|
2153
2178
|
"layer": "components",
|
|
2154
|
-
"package": "@kanso-protocol/
|
|
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,7 +2218,7 @@
|
|
|
2192
2218
|
],
|
|
2193
2219
|
"keyboardPatterns": [],
|
|
2194
2220
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-markdownviewer--docs",
|
|
2195
|
-
"sourcePath": "packages/
|
|
2221
|
+
"sourcePath": "packages/ui/markdown-viewer/src/markdown-viewer.component.ts",
|
|
2196
2222
|
"figma": {
|
|
2197
2223
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2198
2224
|
"nodeId": "4109:11282",
|
|
@@ -2212,7 +2238,8 @@
|
|
|
2212
2238
|
"className": "KpDropdownMenuComponent",
|
|
2213
2239
|
"selector": "kp-dropdown-menu",
|
|
2214
2240
|
"layer": "components",
|
|
2215
|
-
"package": "@kanso-protocol/
|
|
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,7 +2306,7 @@
|
|
|
2279
2306
|
"sizeRamp": [],
|
|
2280
2307
|
"keyboardPatterns": [],
|
|
2281
2308
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
|
|
2282
|
-
"sourcePath": "packages/
|
|
2309
|
+
"sourcePath": "packages/ui/menu/src/dropdown-menu.component.ts",
|
|
2283
2310
|
"figma": {
|
|
2284
2311
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2285
2312
|
"nodeId": "3805:11020",
|
|
@@ -2299,7 +2326,8 @@
|
|
|
2299
2326
|
"className": "KpMenuDividerComponent",
|
|
2300
2327
|
"selector": "kp-menu-divider",
|
|
2301
2328
|
"layer": "components",
|
|
2302
|
-
"package": "@kanso-protocol/
|
|
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,7 +2336,7 @@
|
|
|
2308
2336
|
"sizeRamp": [],
|
|
2309
2337
|
"keyboardPatterns": [],
|
|
2310
2338
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
|
|
2311
|
-
"sourcePath": "packages/
|
|
2339
|
+
"sourcePath": "packages/ui/menu/src/menu-divider.component.ts",
|
|
2312
2340
|
"figma": {
|
|
2313
2341
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2314
2342
|
"nodeId": "3805:11020",
|
|
@@ -2328,7 +2356,8 @@
|
|
|
2328
2356
|
"className": "KpMenuItemComponent",
|
|
2329
2357
|
"selector": "kp-menu-item",
|
|
2330
2358
|
"layer": "components",
|
|
2331
|
-
"package": "@kanso-protocol/
|
|
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,7 +2427,7 @@
|
|
|
2398
2427
|
],
|
|
2399
2428
|
"keyboardPatterns": [],
|
|
2400
2429
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
|
|
2401
|
-
"sourcePath": "packages/
|
|
2430
|
+
"sourcePath": "packages/ui/menu/src/menu-item.component.ts",
|
|
2402
2431
|
"figma": {
|
|
2403
2432
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2404
2433
|
"nodeId": "3805:11020",
|
|
@@ -2418,7 +2447,8 @@
|
|
|
2418
2447
|
"className": "KpMenuSectionLabelComponent",
|
|
2419
2448
|
"selector": "kp-menu-section-label",
|
|
2420
2449
|
"layer": "components",
|
|
2421
|
-
"package": "@kanso-protocol/
|
|
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,7 +2464,7 @@
|
|
|
2434
2464
|
"sizeRamp": [],
|
|
2435
2465
|
"keyboardPatterns": [],
|
|
2436
2466
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-menu--docs",
|
|
2437
|
-
"sourcePath": "packages/
|
|
2467
|
+
"sourcePath": "packages/ui/menu/src/menu-section-label.component.ts",
|
|
2438
2468
|
"figma": {
|
|
2439
2469
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2440
2470
|
"nodeId": "3805:11020",
|
|
@@ -2454,7 +2484,8 @@
|
|
|
2454
2484
|
"className": "KpNumberStepperComponent",
|
|
2455
2485
|
"selector": "kp-number-stepper",
|
|
2456
2486
|
"layer": "components",
|
|
2457
|
-
"package": "@kanso-protocol/
|
|
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,7 +2557,7 @@
|
|
|
2526
2557
|
],
|
|
2527
2558
|
"keyboardPatterns": [],
|
|
2528
2559
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-numberstepper--docs",
|
|
2529
|
-
"sourcePath": "packages/
|
|
2560
|
+
"sourcePath": "packages/ui/number-stepper/src/number-stepper.component.ts",
|
|
2530
2561
|
"figma": {
|
|
2531
2562
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2532
2563
|
"nodeId": "3805:11032",
|
|
@@ -2546,7 +2577,8 @@
|
|
|
2546
2577
|
"className": "KpPaginationItemComponent",
|
|
2547
2578
|
"selector": "kp-pagination-item",
|
|
2548
2579
|
"layer": "components",
|
|
2549
|
-
"package": "@kanso-protocol/
|
|
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,7 +2651,7 @@
|
|
|
2619
2651
|
],
|
|
2620
2652
|
"keyboardPatterns": [],
|
|
2621
2653
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-pagination--docs",
|
|
2622
|
-
"sourcePath": "packages/
|
|
2654
|
+
"sourcePath": "packages/ui/pagination/src/pagination-item.component.ts",
|
|
2623
2655
|
"figma": {
|
|
2624
2656
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2625
2657
|
"nodeId": "3805:11076",
|
|
@@ -2639,7 +2671,8 @@
|
|
|
2639
2671
|
"className": "KpPaginationComponent",
|
|
2640
2672
|
"selector": "kp-pagination",
|
|
2641
2673
|
"layer": "components",
|
|
2642
|
-
"package": "@kanso-protocol/
|
|
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,7 +2781,7 @@
|
|
|
2748
2781
|
],
|
|
2749
2782
|
"keyboardPatterns": [],
|
|
2750
2783
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-pagination--docs",
|
|
2751
|
-
"sourcePath": "packages/
|
|
2784
|
+
"sourcePath": "packages/ui/pagination/src/pagination.component.ts",
|
|
2752
2785
|
"figma": {
|
|
2753
2786
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2754
2787
|
"nodeId": "3805:11076",
|
|
@@ -2768,7 +2801,8 @@
|
|
|
2768
2801
|
"className": "KpPopoverComponent",
|
|
2769
2802
|
"selector": "kp-popover",
|
|
2770
2803
|
"layer": "components",
|
|
2771
|
-
"package": "@kanso-protocol/
|
|
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,7 +2885,82 @@
|
|
|
2851
2885
|
"Space"
|
|
2852
2886
|
],
|
|
2853
2887
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-popover--docs",
|
|
2854
|
-
"sourcePath": "packages/
|
|
2888
|
+
"sourcePath": "packages/ui/popover/src/popover.component.ts",
|
|
2889
|
+
"figma": {
|
|
2890
|
+
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2891
|
+
"nodeId": "3805:11052",
|
|
2892
|
+
"url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11052"
|
|
2893
|
+
},
|
|
2894
|
+
"codeConnect": {
|
|
2895
|
+
"npm": "@kanso-protocol/popover",
|
|
2896
|
+
"primaryClass": "KpPopoverComponent",
|
|
2897
|
+
"selector": "kp-popover",
|
|
2898
|
+
"import": "import { KpPopoverComponent } from '@kanso-protocol/popover';",
|
|
2899
|
+
"docs": "docs/components/popover.md",
|
|
2900
|
+
"storybook": "components-popover--docs"
|
|
2901
|
+
}
|
|
2902
|
+
},
|
|
2903
|
+
{
|
|
2904
|
+
"name": "popover",
|
|
2905
|
+
"className": "KpPopoverDirective",
|
|
2906
|
+
"selector": "[kpPopover]",
|
|
2907
|
+
"layer": "components",
|
|
2908
|
+
"package": "@kanso-protocol/ui",
|
|
2909
|
+
"import": "@kanso-protocol/ui/popover",
|
|
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`.",
|
|
2911
|
+
"examples": [
|
|
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>",
|
|
2913
|
+
"<!-- avatar menu, the motivating case -->\n<kp-avatar [kpPopover]=\"avatarMenu\" kpPopoverPosition=\"bottom\" />"
|
|
2914
|
+
],
|
|
2915
|
+
"inputs": [
|
|
2916
|
+
{
|
|
2917
|
+
"name": "content",
|
|
2918
|
+
"type": "TemplateRef<unknown> | null",
|
|
2919
|
+
"default": "null",
|
|
2920
|
+
"description": "Panel content. `null` disables the popover."
|
|
2921
|
+
},
|
|
2922
|
+
{
|
|
2923
|
+
"name": "kpPopoverPosition",
|
|
2924
|
+
"type": "KpOverlaySide",
|
|
2925
|
+
"default": "'bottom'",
|
|
2926
|
+
"description": ""
|
|
2927
|
+
},
|
|
2928
|
+
{
|
|
2929
|
+
"name": "kpPopoverTrigger",
|
|
2930
|
+
"type": "KpPopoverTrigger",
|
|
2931
|
+
"default": "'click'",
|
|
2932
|
+
"description": ""
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
"name": "kpPopoverGap",
|
|
2936
|
+
"type": "number",
|
|
2937
|
+
"default": "DEFAULT_GAP",
|
|
2938
|
+
"description": ""
|
|
2939
|
+
},
|
|
2940
|
+
{
|
|
2941
|
+
"name": "kpPopoverDisabled",
|
|
2942
|
+
"type": "boolean",
|
|
2943
|
+
"default": "false",
|
|
2944
|
+
"description": "Hard-disable regardless of content."
|
|
2945
|
+
}
|
|
2946
|
+
],
|
|
2947
|
+
"outputs": [
|
|
2948
|
+
{
|
|
2949
|
+
"name": "kpPopoverOpened",
|
|
2950
|
+
"payload": "void"
|
|
2951
|
+
},
|
|
2952
|
+
{
|
|
2953
|
+
"name": "kpPopoverClosed",
|
|
2954
|
+
"payload": "void"
|
|
2955
|
+
}
|
|
2956
|
+
],
|
|
2957
|
+
"ariaRole": null,
|
|
2958
|
+
"sizeRamp": [],
|
|
2959
|
+
"keyboardPatterns": [
|
|
2960
|
+
"Escape"
|
|
2961
|
+
],
|
|
2962
|
+
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-popover--docs",
|
|
2963
|
+
"sourcePath": "packages/ui/popover/src/popover.directive.ts",
|
|
2855
2964
|
"figma": {
|
|
2856
2965
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2857
2966
|
"nodeId": "3805:11052",
|
|
@@ -2871,7 +2980,8 @@
|
|
|
2871
2980
|
"className": "KpProgressCircularComponent",
|
|
2872
2981
|
"selector": "kp-progress-circular",
|
|
2873
2982
|
"layer": "components",
|
|
2874
|
-
"package": "@kanso-protocol/
|
|
2983
|
+
"package": "@kanso-protocol/ui",
|
|
2984
|
+
"import": "@kanso-protocol/ui/progress",
|
|
2875
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.",
|
|
2876
2986
|
"examples": [
|
|
2877
2987
|
"<kp-progress-circular [value]=\"65\" color=\"primary\" [showValue]=\"true\"/>\n<kp-progress-circular [indeterminate]=\"true\" size=\"md\"/>"
|
|
@@ -2927,7 +3037,7 @@
|
|
|
2927
3037
|
"Space"
|
|
2928
3038
|
],
|
|
2929
3039
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
|
|
2930
|
-
"sourcePath": "packages/
|
|
3040
|
+
"sourcePath": "packages/ui/progress/src/progress-circular.component.ts",
|
|
2931
3041
|
"figma": {
|
|
2932
3042
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
2933
3043
|
"nodeId": "3805:11056",
|
|
@@ -2947,7 +3057,8 @@
|
|
|
2947
3057
|
"className": "KpProgressLinearComponent",
|
|
2948
3058
|
"selector": "kp-progress-linear",
|
|
2949
3059
|
"layer": "components",
|
|
2950
|
-
"package": "@kanso-protocol/
|
|
3060
|
+
"package": "@kanso-protocol/ui",
|
|
3061
|
+
"import": "@kanso-protocol/ui/progress",
|
|
2951
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.",
|
|
2952
3063
|
"examples": [
|
|
2953
3064
|
"<kp-progress-linear [value]=\"45\" color=\"success\" [showLabel]=\"true\" label=\"Uploading\"/>\n<kp-progress-linear [indeterminate]=\"true\" color=\"primary\"/>"
|
|
@@ -3012,7 +3123,7 @@
|
|
|
3012
3123
|
],
|
|
3013
3124
|
"keyboardPatterns": [],
|
|
3014
3125
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
|
|
3015
|
-
"sourcePath": "packages/
|
|
3126
|
+
"sourcePath": "packages/ui/progress/src/progress-linear.component.ts",
|
|
3016
3127
|
"figma": {
|
|
3017
3128
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3018
3129
|
"nodeId": "3805:11056",
|
|
@@ -3032,7 +3143,8 @@
|
|
|
3032
3143
|
"className": "KpProgressSegmentedComponent",
|
|
3033
3144
|
"selector": "kp-progress-segmented",
|
|
3034
3145
|
"layer": "components",
|
|
3035
|
-
"package": "@kanso-protocol/
|
|
3146
|
+
"package": "@kanso-protocol/ui",
|
|
3147
|
+
"import": "@kanso-protocol/ui/progress",
|
|
3036
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.",
|
|
3037
3149
|
"examples": [
|
|
3038
3150
|
"<kp-progress-segmented [total]=\"4\" [current]=\"2\"\n [showLabels]=\"true\" [labels]=\"['Details','Payment','Review','Done']\"\n [showStepCounter]=\"true\"/>"
|
|
@@ -3103,7 +3215,7 @@
|
|
|
3103
3215
|
],
|
|
3104
3216
|
"keyboardPatterns": [],
|
|
3105
3217
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-progress--docs",
|
|
3106
|
-
"sourcePath": "packages/
|
|
3218
|
+
"sourcePath": "packages/ui/progress/src/progress-segmented.component.ts",
|
|
3107
3219
|
"figma": {
|
|
3108
3220
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3109
3221
|
"nodeId": "3805:11056",
|
|
@@ -3123,7 +3235,8 @@
|
|
|
3123
3235
|
"className": "KpRadioGroupComponent",
|
|
3124
3236
|
"selector": "kp-radio-group",
|
|
3125
3237
|
"layer": "components",
|
|
3126
|
-
"package": "@kanso-protocol/
|
|
3238
|
+
"package": "@kanso-protocol/ui",
|
|
3239
|
+
"import": "@kanso-protocol/ui/radio",
|
|
3127
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.",
|
|
3128
3241
|
"examples": [
|
|
3129
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>"
|
|
@@ -3164,7 +3277,7 @@
|
|
|
3164
3277
|
"sizeRamp": [],
|
|
3165
3278
|
"keyboardPatterns": [],
|
|
3166
3279
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-radio--docs",
|
|
3167
|
-
"sourcePath": "packages/
|
|
3280
|
+
"sourcePath": "packages/ui/radio/src/radio-group.component.ts",
|
|
3168
3281
|
"figma": {
|
|
3169
3282
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3170
3283
|
"nodeId": "3805:11005",
|
|
@@ -3184,7 +3297,8 @@
|
|
|
3184
3297
|
"className": "KpRadioComponent",
|
|
3185
3298
|
"selector": "kp-radio",
|
|
3186
3299
|
"layer": "components",
|
|
3187
|
-
"package": "@kanso-protocol/
|
|
3300
|
+
"package": "@kanso-protocol/ui",
|
|
3301
|
+
"import": "@kanso-protocol/ui/radio",
|
|
3188
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.",
|
|
3189
3303
|
"examples": [
|
|
3190
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>"
|
|
@@ -3265,7 +3379,7 @@
|
|
|
3265
3379
|
],
|
|
3266
3380
|
"keyboardPatterns": [],
|
|
3267
3381
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-radio--docs",
|
|
3268
|
-
"sourcePath": "packages/
|
|
3382
|
+
"sourcePath": "packages/ui/radio/src/radio.component.ts",
|
|
3269
3383
|
"figma": {
|
|
3270
3384
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3271
3385
|
"nodeId": "3805:11005",
|
|
@@ -3285,7 +3399,8 @@
|
|
|
3285
3399
|
"className": "KpRichTextEditorComponent",
|
|
3286
3400
|
"selector": "kp-rich-text-editor",
|
|
3287
3401
|
"layer": "components",
|
|
3288
|
-
"package": "@kanso-protocol/
|
|
3402
|
+
"package": "@kanso-protocol/ui",
|
|
3403
|
+
"import": "@kanso-protocol/ui/rich-text-editor",
|
|
3289
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",
|
|
3290
3405
|
"examples": [
|
|
3291
3406
|
"<kp-rich-text-editor\n [(ngModel)]=\"content\"\n placeholder=\"Write your post…\"\n (imageUpload)=\"uploadAndResolve($event)\" />"
|
|
@@ -3342,7 +3457,7 @@
|
|
|
3342
3457
|
"Escape"
|
|
3343
3458
|
],
|
|
3344
3459
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-richtexteditor--docs",
|
|
3345
|
-
"sourcePath": "packages/
|
|
3460
|
+
"sourcePath": "packages/ui/rich-text-editor/src/rich-text-editor.component.ts",
|
|
3346
3461
|
"figma": {
|
|
3347
3462
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3348
3463
|
"nodeId": "3849:11648",
|
|
@@ -3362,7 +3477,8 @@
|
|
|
3362
3477
|
"className": "KpSegmentedControlComponent",
|
|
3363
3478
|
"selector": "kp-segmented-control",
|
|
3364
3479
|
"layer": "components",
|
|
3365
|
-
"package": "@kanso-protocol/
|
|
3480
|
+
"package": "@kanso-protocol/ui",
|
|
3481
|
+
"import": "@kanso-protocol/ui/segmented-control",
|
|
3366
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.",
|
|
3367
3483
|
"examples": [
|
|
3368
3484
|
"<kp-segmented-control\n [options]=\"[{value:'day',label:'Day'},{value:'week',label:'Week'}]\"\n [(ngModel)]=\"period\">\n</kp-segmented-control>"
|
|
@@ -3415,7 +3531,7 @@
|
|
|
3415
3531
|
],
|
|
3416
3532
|
"keyboardPatterns": [],
|
|
3417
3533
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-segmentedcontrol--docs",
|
|
3418
|
-
"sourcePath": "packages/
|
|
3534
|
+
"sourcePath": "packages/ui/segmented-control/src/segmented-control.component.ts",
|
|
3419
3535
|
"figma": {
|
|
3420
3536
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3421
3537
|
"nodeId": "3805:11036",
|
|
@@ -3435,7 +3551,8 @@
|
|
|
3435
3551
|
"className": "KpSelectComponent",
|
|
3436
3552
|
"selector": "kp-select",
|
|
3437
3553
|
"layer": "components",
|
|
3438
|
-
"package": "@kanso-protocol/
|
|
3554
|
+
"package": "@kanso-protocol/ui",
|
|
3555
|
+
"import": "@kanso-protocol/ui/select",
|
|
3439
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.",
|
|
3440
3557
|
"examples": [
|
|
3441
3558
|
"<kp-select size=\"md\" placeholder=\"Pick one\" [options]=\"countries\" [(ngModel)]=\"country\"/>\n<kp-select [multiple]=\"true\" [options]=\"tags\" [(ngModel)]=\"picked\"/>"
|
|
@@ -3526,7 +3643,7 @@
|
|
|
3526
3643
|
"Escape"
|
|
3527
3644
|
],
|
|
3528
3645
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-select--docs",
|
|
3529
|
-
"sourcePath": "packages/
|
|
3646
|
+
"sourcePath": "packages/ui/select/src/select.component.ts",
|
|
3530
3647
|
"figma": {
|
|
3531
3648
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3532
3649
|
"nodeId": "3805:11028",
|
|
@@ -3546,7 +3663,8 @@
|
|
|
3546
3663
|
"className": "KpSkeletonComponent",
|
|
3547
3664
|
"selector": "kp-skeleton",
|
|
3548
3665
|
"layer": "components",
|
|
3549
|
-
"package": "@kanso-protocol/
|
|
3666
|
+
"package": "@kanso-protocol/ui",
|
|
3667
|
+
"import": "@kanso-protocol/ui/skeleton",
|
|
3550
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.",
|
|
3551
3669
|
"examples": [],
|
|
3552
3670
|
"inputs": [
|
|
@@ -3592,7 +3710,7 @@
|
|
|
3592
3710
|
],
|
|
3593
3711
|
"keyboardPatterns": [],
|
|
3594
3712
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-skeleton--docs",
|
|
3595
|
-
"sourcePath": "packages/
|
|
3713
|
+
"sourcePath": "packages/ui/skeleton/src/skeleton.component.ts",
|
|
3596
3714
|
"figma": {
|
|
3597
3715
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3598
3716
|
"nodeId": "3805:11107",
|
|
@@ -3612,7 +3730,8 @@
|
|
|
3612
3730
|
"className": "KpSliderComponent",
|
|
3613
3731
|
"selector": "kp-slider",
|
|
3614
3732
|
"layer": "components",
|
|
3615
|
-
"package": "@kanso-protocol/
|
|
3733
|
+
"package": "@kanso-protocol/ui",
|
|
3734
|
+
"import": "@kanso-protocol/ui/slider",
|
|
3616
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`.",
|
|
3617
3736
|
"examples": [],
|
|
3618
3737
|
"inputs": [
|
|
@@ -3704,7 +3823,7 @@
|
|
|
3704
3823
|
"outputs": [
|
|
3705
3824
|
{
|
|
3706
3825
|
"name": "valueChange",
|
|
3707
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
3826
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/slider/src/slider.component\").KpSliderValue"
|
|
3708
3827
|
}
|
|
3709
3828
|
],
|
|
3710
3829
|
"ariaRole": null,
|
|
@@ -3724,7 +3843,7 @@
|
|
|
3724
3843
|
"PageDown"
|
|
3725
3844
|
],
|
|
3726
3845
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-slider--docs",
|
|
3727
|
-
"sourcePath": "packages/
|
|
3846
|
+
"sourcePath": "packages/ui/slider/src/slider.component.ts",
|
|
3728
3847
|
"figma": {
|
|
3729
3848
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3730
3849
|
"nodeId": "3805:11111",
|
|
@@ -3744,7 +3863,8 @@
|
|
|
3744
3863
|
"className": "KpTableCellDirective",
|
|
3745
3864
|
"selector": "ng-template[kpTableCell]",
|
|
3746
3865
|
"layer": "components",
|
|
3747
|
-
"package": "@kanso-protocol/
|
|
3866
|
+
"package": "@kanso-protocol/ui",
|
|
3867
|
+
"import": "@kanso-protocol/ui/table",
|
|
3748
3868
|
"description": "`<ng-template kpTableCell=\"columnId\" let-row let-i=\"index\">` — custom cell renderer per column.",
|
|
3749
3869
|
"examples": [],
|
|
3750
3870
|
"inputs": [
|
|
@@ -3760,7 +3880,7 @@
|
|
|
3760
3880
|
"sizeRamp": [],
|
|
3761
3881
|
"keyboardPatterns": [],
|
|
3762
3882
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
|
|
3763
|
-
"sourcePath": "packages/
|
|
3883
|
+
"sourcePath": "packages/ui/table/src/table.component.ts",
|
|
3764
3884
|
"figma": {
|
|
3765
3885
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3766
3886
|
"nodeId": "3805:11131",
|
|
@@ -3780,7 +3900,8 @@
|
|
|
3780
3900
|
"className": "KpTableHeaderDirective",
|
|
3781
3901
|
"selector": "ng-template[kpTableHeader]",
|
|
3782
3902
|
"layer": "components",
|
|
3783
|
-
"package": "@kanso-protocol/
|
|
3903
|
+
"package": "@kanso-protocol/ui",
|
|
3904
|
+
"import": "@kanso-protocol/ui/table",
|
|
3784
3905
|
"description": "`<ng-template kpTableHeader=\"columnId\">` — custom header renderer per column.",
|
|
3785
3906
|
"examples": [],
|
|
3786
3907
|
"inputs": [
|
|
@@ -3796,7 +3917,7 @@
|
|
|
3796
3917
|
"sizeRamp": [],
|
|
3797
3918
|
"keyboardPatterns": [],
|
|
3798
3919
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
|
|
3799
|
-
"sourcePath": "packages/
|
|
3920
|
+
"sourcePath": "packages/ui/table/src/table.component.ts",
|
|
3800
3921
|
"figma": {
|
|
3801
3922
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3802
3923
|
"nodeId": "3805:11131",
|
|
@@ -3816,7 +3937,8 @@
|
|
|
3816
3937
|
"className": "KpTableComponent",
|
|
3817
3938
|
"selector": "kp-table",
|
|
3818
3939
|
"layer": "components",
|
|
3819
|
-
"package": "@kanso-protocol/
|
|
3940
|
+
"package": "@kanso-protocol/ui",
|
|
3941
|
+
"import": "@kanso-protocol/ui/table",
|
|
3820
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\">`.",
|
|
3821
3943
|
"examples": [
|
|
3822
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>"
|
|
@@ -3890,7 +4012,7 @@
|
|
|
3890
4012
|
},
|
|
3891
4013
|
{
|
|
3892
4014
|
"name": "sortChange",
|
|
3893
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
4015
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/table/src/table.component\").KpTableSort | null"
|
|
3894
4016
|
},
|
|
3895
4017
|
{
|
|
3896
4018
|
"name": "rowClick",
|
|
@@ -3905,7 +4027,7 @@
|
|
|
3905
4027
|
],
|
|
3906
4028
|
"keyboardPatterns": [],
|
|
3907
4029
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-table--docs",
|
|
3908
|
-
"sourcePath": "packages/
|
|
4030
|
+
"sourcePath": "packages/ui/table/src/table.component.ts",
|
|
3909
4031
|
"figma": {
|
|
3910
4032
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3911
4033
|
"nodeId": "3805:11131",
|
|
@@ -3925,7 +4047,8 @@
|
|
|
3925
4047
|
"className": "KpTabComponent",
|
|
3926
4048
|
"selector": "button[kpTab]",
|
|
3927
4049
|
"layer": "components",
|
|
3928
|
-
"package": "@kanso-protocol/
|
|
4050
|
+
"package": "@kanso-protocol/ui",
|
|
4051
|
+
"import": "@kanso-protocol/ui/tabs",
|
|
3929
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.",
|
|
3930
4053
|
"examples": [
|
|
3931
4054
|
"<button kpTab label=\"Inbox\" [selected]=\"current === 'inbox'\" (click)=\"current='inbox'\">\n <svg kpTabIcon .../>\n <kp-badge kpTabBadge>12</kp-badge>\n</button>"
|
|
@@ -3976,7 +4099,7 @@
|
|
|
3976
4099
|
],
|
|
3977
4100
|
"keyboardPatterns": [],
|
|
3978
4101
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tabs--docs",
|
|
3979
|
-
"sourcePath": "packages/
|
|
4102
|
+
"sourcePath": "packages/ui/tabs/src/tab.component.ts",
|
|
3980
4103
|
"figma": {
|
|
3981
4104
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
3982
4105
|
"nodeId": "3805:11068",
|
|
@@ -3996,7 +4119,8 @@
|
|
|
3996
4119
|
"className": "KpTabsComponent",
|
|
3997
4120
|
"selector": "kp-tabs",
|
|
3998
4121
|
"layer": "components",
|
|
3999
|
-
"package": "@kanso-protocol/
|
|
4122
|
+
"package": "@kanso-protocol/ui",
|
|
4123
|
+
"import": "@kanso-protocol/ui/tabs",
|
|
4000
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.",
|
|
4001
4125
|
"examples": [
|
|
4002
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>"
|
|
@@ -4029,7 +4153,7 @@
|
|
|
4029
4153
|
"End"
|
|
4030
4154
|
],
|
|
4031
4155
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tabs--docs",
|
|
4032
|
-
"sourcePath": "packages/
|
|
4156
|
+
"sourcePath": "packages/ui/tabs/src/tabs.component.ts",
|
|
4033
4157
|
"figma": {
|
|
4034
4158
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4035
4159
|
"nodeId": "3805:11068",
|
|
@@ -4049,7 +4173,8 @@
|
|
|
4049
4173
|
"className": "KpTextareaComponent",
|
|
4050
4174
|
"selector": "kp-textarea",
|
|
4051
4175
|
"layer": "components",
|
|
4052
|
-
"package": "@kanso-protocol/
|
|
4176
|
+
"package": "@kanso-protocol/ui",
|
|
4177
|
+
"import": "@kanso-protocol/ui/textarea",
|
|
4053
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.",
|
|
4054
4179
|
"examples": [
|
|
4055
4180
|
"<kp-textarea [(ngModel)]=\"bio\" placeholder=\"Tell us about yourself\"></kp-textarea>\n<kp-textarea size=\"lg\" [maxLength]=\"500\" [showCounter]=\"true\"></kp-textarea>"
|
|
@@ -4125,7 +4250,7 @@
|
|
|
4125
4250
|
],
|
|
4126
4251
|
"keyboardPatterns": [],
|
|
4127
4252
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-textarea--docs",
|
|
4128
|
-
"sourcePath": "packages/
|
|
4253
|
+
"sourcePath": "packages/ui/textarea/src/textarea.component.ts",
|
|
4129
4254
|
"figma": {
|
|
4130
4255
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4131
4256
|
"nodeId": "3805:11024",
|
|
@@ -4145,7 +4270,8 @@
|
|
|
4145
4270
|
"className": "KpTimePickerComponent",
|
|
4146
4271
|
"selector": "kp-time-picker",
|
|
4147
4272
|
"layer": "components",
|
|
4148
|
-
"package": "@kanso-protocol/
|
|
4273
|
+
"package": "@kanso-protocol/ui",
|
|
4274
|
+
"import": "@kanso-protocol/ui/timepicker",
|
|
4149
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`.",
|
|
4150
4276
|
"examples": [],
|
|
4151
4277
|
"inputs": [
|
|
@@ -4207,7 +4333,7 @@
|
|
|
4207
4333
|
"outputs": [
|
|
4208
4334
|
{
|
|
4209
4335
|
"name": "valueChange",
|
|
4210
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
4336
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/timepicker/src/timepicker.component\").KpTimePickerValue"
|
|
4211
4337
|
},
|
|
4212
4338
|
{
|
|
4213
4339
|
"name": "openChange",
|
|
@@ -4224,7 +4350,7 @@
|
|
|
4224
4350
|
"Escape"
|
|
4225
4351
|
],
|
|
4226
4352
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-timepicker--docs",
|
|
4227
|
-
"sourcePath": "packages/
|
|
4353
|
+
"sourcePath": "packages/ui/timepicker/src/timepicker.component.ts",
|
|
4228
4354
|
"figma": {
|
|
4229
4355
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4230
4356
|
"nodeId": "3805:11123",
|
|
@@ -4244,7 +4370,8 @@
|
|
|
4244
4370
|
"className": "KpToastHostComponent",
|
|
4245
4371
|
"selector": "kp-toast-host",
|
|
4246
4372
|
"layer": "components",
|
|
4247
|
-
"package": "@kanso-protocol/
|
|
4373
|
+
"package": "@kanso-protocol/ui",
|
|
4374
|
+
"import": "@kanso-protocol/ui/toast",
|
|
4248
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.",
|
|
4249
4376
|
"examples": [
|
|
4250
4377
|
"<kp-toast-host position=\"top-right\" size=\"md\"/>"
|
|
@@ -4283,7 +4410,7 @@
|
|
|
4283
4410
|
],
|
|
4284
4411
|
"keyboardPatterns": [],
|
|
4285
4412
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-toast--docs",
|
|
4286
|
-
"sourcePath": "packages/
|
|
4413
|
+
"sourcePath": "packages/ui/toast/src/toast-host.component.ts",
|
|
4287
4414
|
"figma": {
|
|
4288
4415
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4289
4416
|
"nodeId": "3805:11127",
|
|
@@ -4303,7 +4430,8 @@
|
|
|
4303
4430
|
"className": "KpToggleComponent",
|
|
4304
4431
|
"selector": "kp-toggle",
|
|
4305
4432
|
"layer": "components",
|
|
4306
|
-
"package": "@kanso-protocol/
|
|
4433
|
+
"package": "@kanso-protocol/ui",
|
|
4434
|
+
"import": "@kanso-protocol/ui/toggle",
|
|
4307
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.",
|
|
4308
4436
|
"examples": [
|
|
4309
4437
|
"<kp-toggle [(on)]=\"isOn\" size=\"md\">Notifications</kp-toggle>\n<form><kp-toggle name=\"notif\" value=\"1\" required>Enable</kp-toggle></form>"
|
|
@@ -4384,7 +4512,7 @@
|
|
|
4384
4512
|
],
|
|
4385
4513
|
"keyboardPatterns": [],
|
|
4386
4514
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-toggle--docs",
|
|
4387
|
-
"sourcePath": "packages/
|
|
4515
|
+
"sourcePath": "packages/ui/toggle/src/toggle.component.ts",
|
|
4388
4516
|
"figma": {
|
|
4389
4517
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4390
4518
|
"nodeId": "3805:11009",
|
|
@@ -4399,12 +4527,86 @@
|
|
|
4399
4527
|
"storybook": "components-toggle--docs"
|
|
4400
4528
|
}
|
|
4401
4529
|
},
|
|
4530
|
+
{
|
|
4531
|
+
"name": "tooltip",
|
|
4532
|
+
"className": "KpClipboardCopyDirective",
|
|
4533
|
+
"selector": "[kpClipboardCopy]",
|
|
4534
|
+
"layer": "components",
|
|
4535
|
+
"package": "@kanso-protocol/ui",
|
|
4536
|
+
"import": "@kanso-protocol/ui/tooltip",
|
|
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.",
|
|
4538
|
+
"examples": [
|
|
4539
|
+
"<code [kpClipboardCopy]=\"snippet\">{{ snippet }}</code>",
|
|
4540
|
+
"<button [kpClipboardCopy]=\"token\"\n kpClipboardHint=\"Token copied!\"\n kpClipboardPosition=\"top\">Copy token</button>"
|
|
4541
|
+
],
|
|
4542
|
+
"inputs": [
|
|
4543
|
+
{
|
|
4544
|
+
"name": "text",
|
|
4545
|
+
"type": "string | null",
|
|
4546
|
+
"default": "null",
|
|
4547
|
+
"description": "Text to copy. `null`/empty disables the copy action."
|
|
4548
|
+
},
|
|
4549
|
+
{
|
|
4550
|
+
"name": "kpClipboardHint",
|
|
4551
|
+
"type": "string",
|
|
4552
|
+
"default": "'Copied'",
|
|
4553
|
+
"description": "Hint shown after a successful copy."
|
|
4554
|
+
},
|
|
4555
|
+
{
|
|
4556
|
+
"name": "kpClipboardPosition",
|
|
4557
|
+
"type": "KpOverlaySide",
|
|
4558
|
+
"default": "'top'",
|
|
4559
|
+
"description": "Hint placement relative to the trigger."
|
|
4560
|
+
},
|
|
4561
|
+
{
|
|
4562
|
+
"name": "kpClipboardDuration",
|
|
4563
|
+
"type": "number",
|
|
4564
|
+
"default": "DEFAULT_HINT_DURATION",
|
|
4565
|
+
"description": "How long the hint stays visible, in ms."
|
|
4566
|
+
},
|
|
4567
|
+
{
|
|
4568
|
+
"name": "kpClipboardDisabled",
|
|
4569
|
+
"type": "boolean",
|
|
4570
|
+
"default": "false",
|
|
4571
|
+
"description": "Hard-disable regardless of text."
|
|
4572
|
+
}
|
|
4573
|
+
],
|
|
4574
|
+
"outputs": [
|
|
4575
|
+
{
|
|
4576
|
+
"name": "kpCopied",
|
|
4577
|
+
"payload": "string"
|
|
4578
|
+
},
|
|
4579
|
+
{
|
|
4580
|
+
"name": "kpCopyFailed",
|
|
4581
|
+
"payload": "unknown"
|
|
4582
|
+
}
|
|
4583
|
+
],
|
|
4584
|
+
"ariaRole": null,
|
|
4585
|
+
"sizeRamp": [],
|
|
4586
|
+
"keyboardPatterns": [],
|
|
4587
|
+
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tooltip--docs",
|
|
4588
|
+
"sourcePath": "packages/ui/tooltip/src/clipboard-copy.directive.ts",
|
|
4589
|
+
"figma": {
|
|
4590
|
+
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4591
|
+
"nodeId": "3805:11048",
|
|
4592
|
+
"url": "https://www.figma.com/design/ahRfe4BdMAyoK0I3lnicp6/Design-System?node-id=3805-11048"
|
|
4593
|
+
},
|
|
4594
|
+
"codeConnect": {
|
|
4595
|
+
"npm": "@kanso-protocol/tooltip",
|
|
4596
|
+
"primaryClass": "KpTooltipComponent",
|
|
4597
|
+
"selector": "kp-tooltip",
|
|
4598
|
+
"import": "import { KpTooltipComponent } from '@kanso-protocol/tooltip';",
|
|
4599
|
+
"docs": "docs/components/tooltip.md",
|
|
4600
|
+
"storybook": "components-tooltip--docs"
|
|
4601
|
+
}
|
|
4602
|
+
},
|
|
4402
4603
|
{
|
|
4403
4604
|
"name": "tooltip",
|
|
4404
4605
|
"className": "KpTooltipDirective",
|
|
4405
4606
|
"selector": "[kpTooltip]",
|
|
4406
4607
|
"layer": "components",
|
|
4407
|
-
"package": "@kanso-protocol/
|
|
4608
|
+
"package": "@kanso-protocol/ui",
|
|
4609
|
+
"import": "@kanso-protocol/ui/tooltip",
|
|
4408
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`.",
|
|
4409
4611
|
"examples": [
|
|
4410
4612
|
"<button [kpTooltip]=\"'Copy link'\" kpTooltipShortcut=\"⌘C\">Copy</button>",
|
|
@@ -4413,9 +4615,9 @@
|
|
|
4413
4615
|
"inputs": [
|
|
4414
4616
|
{
|
|
4415
4617
|
"name": "text",
|
|
4416
|
-
"type": "string | null",
|
|
4618
|
+
"type": "string | TemplateRef<unknown> | null",
|
|
4417
4619
|
"default": "null",
|
|
4418
|
-
"description": "Tooltip text. `null` or
|
|
4620
|
+
"description": "Tooltip content. A `string` renders as the label; a `TemplateRef`\nprojects custom content (icons, formatted text, etc.). `null` or an\nempty string disables the tooltip."
|
|
4419
4621
|
},
|
|
4420
4622
|
{
|
|
4421
4623
|
"name": "kpTooltipPosition",
|
|
@@ -4461,7 +4663,7 @@
|
|
|
4461
4663
|
"Escape"
|
|
4462
4664
|
],
|
|
4463
4665
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tooltip--docs",
|
|
4464
|
-
"sourcePath": "packages/
|
|
4666
|
+
"sourcePath": "packages/ui/tooltip/src/tooltip.directive.ts",
|
|
4465
4667
|
"figma": {
|
|
4466
4668
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4467
4669
|
"nodeId": "3805:11048",
|
|
@@ -4481,7 +4683,8 @@
|
|
|
4481
4683
|
"className": "KpTreeComponent",
|
|
4482
4684
|
"selector": "kp-tree",
|
|
4483
4685
|
"layer": "components",
|
|
4484
|
-
"package": "@kanso-protocol/
|
|
4686
|
+
"package": "@kanso-protocol/ui",
|
|
4687
|
+
"import": "@kanso-protocol/ui/tree",
|
|
4485
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.",
|
|
4486
4689
|
"examples": [],
|
|
4487
4690
|
"inputs": [
|
|
@@ -4543,7 +4746,7 @@
|
|
|
4543
4746
|
},
|
|
4544
4747
|
{
|
|
4545
4748
|
"name": "nodeClick",
|
|
4546
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
4749
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/tree/src/tree.component\").KpTreeNode"
|
|
4547
4750
|
}
|
|
4548
4751
|
],
|
|
4549
4752
|
"ariaRole": null,
|
|
@@ -4562,7 +4765,7 @@
|
|
|
4562
4765
|
"Space"
|
|
4563
4766
|
],
|
|
4564
4767
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-tree--docs",
|
|
4565
|
-
"sourcePath": "packages/
|
|
4768
|
+
"sourcePath": "packages/ui/tree/src/tree.component.ts",
|
|
4566
4769
|
"figma": {
|
|
4567
4770
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4568
4771
|
"nodeId": "3805:11135",
|
|
@@ -4582,7 +4785,8 @@
|
|
|
4582
4785
|
"className": "KpVirtualRowDirective",
|
|
4583
4786
|
"selector": "[kpVirtualRow]",
|
|
4584
4787
|
"layer": "components",
|
|
4585
|
-
"package": "@kanso-protocol/
|
|
4788
|
+
"package": "@kanso-protocol/ui",
|
|
4789
|
+
"import": "@kanso-protocol/ui/virtual-list",
|
|
4586
4790
|
"description": "Marker directive — pairs the row template with `<kp-virtual-list>`.",
|
|
4587
4791
|
"examples": [
|
|
4588
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>"
|
|
@@ -4593,7 +4797,7 @@
|
|
|
4593
4797
|
"sizeRamp": [],
|
|
4594
4798
|
"keyboardPatterns": [],
|
|
4595
4799
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-virtuallist--docs",
|
|
4596
|
-
"sourcePath": "packages/
|
|
4800
|
+
"sourcePath": "packages/ui/virtual-list/src/virtual-list.component.ts",
|
|
4597
4801
|
"codeConnect": {
|
|
4598
4802
|
"npm": "@kanso-protocol/virtual-list",
|
|
4599
4803
|
"primaryClass": "KpVirtualListComponent",
|
|
@@ -4608,7 +4812,8 @@
|
|
|
4608
4812
|
"className": "KpVirtualListComponent",
|
|
4609
4813
|
"selector": "kp-virtual-list",
|
|
4610
4814
|
"layer": "components",
|
|
4611
|
-
"package": "@kanso-protocol/
|
|
4815
|
+
"package": "@kanso-protocol/ui",
|
|
4816
|
+
"import": "@kanso-protocol/ui/virtual-list",
|
|
4612
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.",
|
|
4613
4818
|
"examples": [
|
|
4614
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>"
|
|
@@ -4648,14 +4853,14 @@
|
|
|
4648
4853
|
"outputs": [
|
|
4649
4854
|
{
|
|
4650
4855
|
"name": "rangeChange",
|
|
4651
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
4856
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/virtual-list/src/virtual-list.component\").KpVirtualRange"
|
|
4652
4857
|
}
|
|
4653
4858
|
],
|
|
4654
4859
|
"ariaRole": null,
|
|
4655
4860
|
"sizeRamp": [],
|
|
4656
4861
|
"keyboardPatterns": [],
|
|
4657
4862
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/components-virtuallist--docs",
|
|
4658
|
-
"sourcePath": "packages/
|
|
4863
|
+
"sourcePath": "packages/ui/virtual-list/src/virtual-list.component.ts",
|
|
4659
4864
|
"codeConnect": {
|
|
4660
4865
|
"npm": "@kanso-protocol/virtual-list",
|
|
4661
4866
|
"primaryClass": "KpVirtualListComponent",
|
|
@@ -4672,7 +4877,8 @@
|
|
|
4672
4877
|
"className": "KpAppShellComponent",
|
|
4673
4878
|
"selector": "kp-app-shell",
|
|
4674
4879
|
"layer": "patterns",
|
|
4675
|
-
"package": "@kanso-protocol/
|
|
4880
|
+
"package": "@kanso-protocol/ui",
|
|
4881
|
+
"import": "@kanso-protocol/ui/app-shell",
|
|
4676
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",
|
|
4677
4883
|
"examples": [
|
|
4678
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>"
|
|
@@ -4714,7 +4920,7 @@
|
|
|
4714
4920
|
"sizeRamp": [],
|
|
4715
4921
|
"keyboardPatterns": [],
|
|
4716
4922
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-appshell--docs",
|
|
4717
|
-
"sourcePath": "packages/
|
|
4923
|
+
"sourcePath": "packages/ui/app-shell/src/app-shell.component.ts",
|
|
4718
4924
|
"figma": {
|
|
4719
4925
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4720
4926
|
"nodeId": "3822:7265",
|
|
@@ -4734,7 +4940,8 @@
|
|
|
4734
4940
|
"className": "KpBannerComponent",
|
|
4735
4941
|
"selector": "kp-banner",
|
|
4736
4942
|
"layer": "patterns",
|
|
4737
|
-
"package": "@kanso-protocol/
|
|
4943
|
+
"package": "@kanso-protocol/ui",
|
|
4944
|
+
"import": "@kanso-protocol/ui/banner",
|
|
4738
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\">`).",
|
|
4739
4946
|
"examples": [
|
|
4740
4947
|
"<kp-banner color=\"warning\" title=\"Your trial ends in 3 days\">\n <button kpButton kpBannerAction size=\"sm\">Upgrade</button>\n</kp-banner>"
|
|
@@ -4790,7 +4997,7 @@
|
|
|
4790
4997
|
],
|
|
4791
4998
|
"keyboardPatterns": [],
|
|
4792
4999
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-banner--docs",
|
|
4793
|
-
"sourcePath": "packages/
|
|
5000
|
+
"sourcePath": "packages/ui/banner/src/banner.component.ts",
|
|
4794
5001
|
"figma": {
|
|
4795
5002
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4796
5003
|
"nodeId": "3822:7272",
|
|
@@ -4810,7 +5017,8 @@
|
|
|
4810
5017
|
"className": "KpContainerComponent",
|
|
4811
5018
|
"selector": "kp-container",
|
|
4812
5019
|
"layer": "patterns",
|
|
4813
|
-
"package": "@kanso-protocol/
|
|
5020
|
+
"package": "@kanso-protocol/ui",
|
|
5021
|
+
"import": "@kanso-protocol/ui/container",
|
|
4814
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.",
|
|
4815
5023
|
"examples": [
|
|
4816
5024
|
"<kp-container width=\"medium\" padding=\"md\">\n <h1>Settings</h1>\n <kp-card>…</kp-card>\n</kp-container>"
|
|
@@ -4834,7 +5042,7 @@
|
|
|
4834
5042
|
"sizeRamp": [],
|
|
4835
5043
|
"keyboardPatterns": [],
|
|
4836
5044
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-container--docs",
|
|
4837
|
-
"sourcePath": "packages/
|
|
5045
|
+
"sourcePath": "packages/ui/container/src/container.component.ts",
|
|
4838
5046
|
"figma": {
|
|
4839
5047
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4840
5048
|
"nodeId": "3822:7280",
|
|
@@ -4854,7 +5062,8 @@
|
|
|
4854
5062
|
"className": "KpFilterBarComponent",
|
|
4855
5063
|
"selector": "kp-filter-bar",
|
|
4856
5064
|
"layer": "patterns",
|
|
4857
|
-
"package": "@kanso-protocol/
|
|
5065
|
+
"package": "@kanso-protocol/ui",
|
|
5066
|
+
"import": "@kanso-protocol/ui/filter-bar",
|
|
4858
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.",
|
|
4859
5068
|
"examples": [
|
|
4860
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>"
|
|
@@ -4907,7 +5116,7 @@
|
|
|
4907
5116
|
"sizeRamp": [],
|
|
4908
5117
|
"keyboardPatterns": [],
|
|
4909
5118
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-filterbar--docs",
|
|
4910
|
-
"sourcePath": "packages/
|
|
5119
|
+
"sourcePath": "packages/ui/filter-bar/src/filter-bar.component.ts",
|
|
4911
5120
|
"figma": {
|
|
4912
5121
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4913
5122
|
"nodeId": "3822:7288",
|
|
@@ -4927,7 +5136,8 @@
|
|
|
4927
5136
|
"className": "KpFormSectionComponent",
|
|
4928
5137
|
"selector": "kp-form-section",
|
|
4929
5138
|
"layer": "patterns",
|
|
4930
|
-
"package": "@kanso-protocol/
|
|
5139
|
+
"package": "@kanso-protocol/ui",
|
|
5140
|
+
"import": "@kanso-protocol/ui/form-section",
|
|
4931
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.",
|
|
4932
5142
|
"examples": [
|
|
4933
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>"
|
|
@@ -4979,7 +5189,7 @@
|
|
|
4979
5189
|
],
|
|
4980
5190
|
"keyboardPatterns": [],
|
|
4981
5191
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-formsection--docs",
|
|
4982
|
-
"sourcePath": "packages/
|
|
5192
|
+
"sourcePath": "packages/ui/form-section/src/form-section.component.ts",
|
|
4983
5193
|
"figma": {
|
|
4984
5194
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
4985
5195
|
"nodeId": "3822:7296",
|
|
@@ -4999,7 +5209,8 @@
|
|
|
4999
5209
|
"className": "KpGridComponent",
|
|
5000
5210
|
"selector": "kp-grid",
|
|
5001
5211
|
"layer": "patterns",
|
|
5002
|
-
"package": "@kanso-protocol/
|
|
5212
|
+
"package": "@kanso-protocol/ui",
|
|
5213
|
+
"import": "@kanso-protocol/ui/grid",
|
|
5003
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.",
|
|
5004
5215
|
"examples": [
|
|
5005
5216
|
"<kp-grid [columns]=\"3\" gap=\"md\">\n <kp-card/><kp-card/><kp-card/>\n</kp-grid>"
|
|
@@ -5029,7 +5240,7 @@
|
|
|
5029
5240
|
"sizeRamp": [],
|
|
5030
5241
|
"keyboardPatterns": [],
|
|
5031
5242
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-grid--docs",
|
|
5032
|
-
"sourcePath": "packages/
|
|
5243
|
+
"sourcePath": "packages/ui/grid/src/grid.component.ts",
|
|
5033
5244
|
"figma": {
|
|
5034
5245
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5035
5246
|
"nodeId": "3822:7304",
|
|
@@ -5049,7 +5260,8 @@
|
|
|
5049
5260
|
"className": "KpHeaderComponent",
|
|
5050
5261
|
"selector": "kp-header",
|
|
5051
5262
|
"layer": "patterns",
|
|
5052
|
-
"package": "@kanso-protocol/
|
|
5263
|
+
"package": "@kanso-protocol/ui",
|
|
5264
|
+
"import": "@kanso-protocol/ui/header",
|
|
5053
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",
|
|
5054
5266
|
"examples": [
|
|
5055
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/>"
|
|
@@ -5190,7 +5402,7 @@
|
|
|
5190
5402
|
],
|
|
5191
5403
|
"keyboardPatterns": [],
|
|
5192
5404
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-header--docs",
|
|
5193
|
-
"sourcePath": "packages/
|
|
5405
|
+
"sourcePath": "packages/ui/header/src/header.component.ts",
|
|
5194
5406
|
"figma": {
|
|
5195
5407
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5196
5408
|
"nodeId": "3822:7312",
|
|
@@ -5210,7 +5422,8 @@
|
|
|
5210
5422
|
"className": "KpNavItemComponent",
|
|
5211
5423
|
"selector": "kp-nav-item",
|
|
5212
5424
|
"layer": "patterns",
|
|
5213
|
-
"package": "@kanso-protocol/
|
|
5425
|
+
"package": "@kanso-protocol/ui",
|
|
5426
|
+
"import": "@kanso-protocol/ui/nav-item",
|
|
5214
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>`)",
|
|
5215
5428
|
"examples": [
|
|
5216
5429
|
"<kp-nav-item size=\"md\" [active]=\"true\" label=\"Dashboard\">\n <svg kpNavItemIcon>…</svg>\n</kp-nav-item>"
|
|
@@ -5297,7 +5510,7 @@
|
|
|
5297
5510
|
],
|
|
5298
5511
|
"keyboardPatterns": [],
|
|
5299
5512
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-navitem--docs",
|
|
5300
|
-
"sourcePath": "packages/
|
|
5513
|
+
"sourcePath": "packages/ui/nav-item/src/nav-item.component.ts",
|
|
5301
5514
|
"figma": {
|
|
5302
5515
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5303
5516
|
"nodeId": "3822:7320",
|
|
@@ -5317,7 +5530,8 @@
|
|
|
5317
5530
|
"className": "KpNotificationCenterComponent",
|
|
5318
5531
|
"selector": "kp-notification-center",
|
|
5319
5532
|
"layer": "patterns",
|
|
5320
|
-
"package": "@kanso-protocol/
|
|
5533
|
+
"package": "@kanso-protocol/ui",
|
|
5534
|
+
"import": "@kanso-protocol/ui/notification-center",
|
|
5321
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.",
|
|
5322
5536
|
"examples": [
|
|
5323
5537
|
"<kp-notification-center\n state=\"with-items\"\n [notifications]=\"items\"\n [showFilters]=\"true\"\n unreadCount=\"3\"\n/>"
|
|
@@ -5371,7 +5585,7 @@
|
|
|
5371
5585
|
},
|
|
5372
5586
|
{
|
|
5373
5587
|
"name": "itemClick",
|
|
5374
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
5588
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/notification-center/src/notification-center.component\").KpNotification"
|
|
5375
5589
|
},
|
|
5376
5590
|
{
|
|
5377
5591
|
"name": "filterChange",
|
|
@@ -5386,7 +5600,7 @@
|
|
|
5386
5600
|
"sizeRamp": [],
|
|
5387
5601
|
"keyboardPatterns": [],
|
|
5388
5602
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-notificationcenter--docs",
|
|
5389
|
-
"sourcePath": "packages/
|
|
5603
|
+
"sourcePath": "packages/ui/notification-center/src/notification-center.component.ts",
|
|
5390
5604
|
"figma": {
|
|
5391
5605
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5392
5606
|
"nodeId": "3822:7327",
|
|
@@ -5406,7 +5620,8 @@
|
|
|
5406
5620
|
"className": "KpNotificationItemComponent",
|
|
5407
5621
|
"selector": "kp-notification-item",
|
|
5408
5622
|
"layer": "patterns",
|
|
5409
|
-
"package": "@kanso-protocol/
|
|
5623
|
+
"package": "@kanso-protocol/ui",
|
|
5624
|
+
"import": "@kanso-protocol/ui/notification-center",
|
|
5410
5625
|
"description": "",
|
|
5411
5626
|
"examples": [],
|
|
5412
5627
|
"inputs": [
|
|
@@ -5469,7 +5684,7 @@
|
|
|
5469
5684
|
"sizeRamp": [],
|
|
5470
5685
|
"keyboardPatterns": [],
|
|
5471
5686
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-notificationcenter--docs",
|
|
5472
|
-
"sourcePath": "packages/
|
|
5687
|
+
"sourcePath": "packages/ui/notification-center/src/notification-item.component.ts",
|
|
5473
5688
|
"figma": {
|
|
5474
5689
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5475
5690
|
"nodeId": "3822:7327",
|
|
@@ -5489,7 +5704,8 @@
|
|
|
5489
5704
|
"className": "KpPageErrorComponent",
|
|
5490
5705
|
"selector": "kp-page-error",
|
|
5491
5706
|
"layer": "patterns",
|
|
5492
|
-
"package": "@kanso-protocol/
|
|
5707
|
+
"package": "@kanso-protocol/ui",
|
|
5708
|
+
"import": "@kanso-protocol/ui/page-error",
|
|
5493
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)",
|
|
5494
5710
|
"examples": [
|
|
5495
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>"
|
|
@@ -5543,7 +5759,7 @@
|
|
|
5543
5759
|
"sizeRamp": [],
|
|
5544
5760
|
"keyboardPatterns": [],
|
|
5545
5761
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-pageerror--docs",
|
|
5546
|
-
"sourcePath": "packages/
|
|
5762
|
+
"sourcePath": "packages/ui/page-error/src/page-error.component.ts",
|
|
5547
5763
|
"figma": {
|
|
5548
5764
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5549
5765
|
"nodeId": "3822:7334",
|
|
@@ -5563,7 +5779,8 @@
|
|
|
5563
5779
|
"className": "KpPageHeaderComponent",
|
|
5564
5780
|
"selector": "kp-page-header",
|
|
5565
5781
|
"layer": "patterns",
|
|
5566
|
-
"package": "@kanso-protocol/
|
|
5782
|
+
"package": "@kanso-protocol/ui",
|
|
5783
|
+
"import": "@kanso-protocol/ui/page-header",
|
|
5567
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",
|
|
5568
5785
|
"examples": [
|
|
5569
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>"
|
|
@@ -5644,7 +5861,7 @@
|
|
|
5644
5861
|
],
|
|
5645
5862
|
"keyboardPatterns": [],
|
|
5646
5863
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-pageheader--docs",
|
|
5647
|
-
"sourcePath": "packages/
|
|
5864
|
+
"sourcePath": "packages/ui/page-header/src/page-header.component.ts",
|
|
5648
5865
|
"figma": {
|
|
5649
5866
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5650
5867
|
"nodeId": "3822:7341",
|
|
@@ -5664,7 +5881,8 @@
|
|
|
5664
5881
|
"className": "KpRowComponent",
|
|
5665
5882
|
"selector": "kp-row",
|
|
5666
5883
|
"layer": "patterns",
|
|
5667
|
-
"package": "@kanso-protocol/
|
|
5884
|
+
"package": "@kanso-protocol/ui",
|
|
5885
|
+
"import": "@kanso-protocol/ui/row",
|
|
5668
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.",
|
|
5669
5887
|
"examples": [
|
|
5670
5888
|
"<kp-row gap=\"sm\" justify=\"end\">\n <button kpButton appearance=\"ghost\">Cancel</button>\n <button kpButton>Save</button>\n</kp-row>"
|
|
@@ -5700,7 +5918,7 @@
|
|
|
5700
5918
|
"sizeRamp": [],
|
|
5701
5919
|
"keyboardPatterns": [],
|
|
5702
5920
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-row--docs",
|
|
5703
|
-
"sourcePath": "packages/
|
|
5921
|
+
"sourcePath": "packages/ui/row/src/row.component.ts",
|
|
5704
5922
|
"figma": {
|
|
5705
5923
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5706
5924
|
"nodeId": "3825:7273",
|
|
@@ -5720,7 +5938,8 @@
|
|
|
5720
5938
|
"className": "KpSearchBarComponent",
|
|
5721
5939
|
"selector": "kp-search-bar",
|
|
5722
5940
|
"layer": "patterns",
|
|
5723
|
-
"package": "@kanso-protocol/
|
|
5941
|
+
"package": "@kanso-protocol/ui",
|
|
5942
|
+
"import": "@kanso-protocol/ui/search-bar",
|
|
5724
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.",
|
|
5725
5944
|
"examples": [
|
|
5726
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)\"/>"
|
|
@@ -5780,7 +5999,7 @@
|
|
|
5780
5999
|
},
|
|
5781
6000
|
{
|
|
5782
6001
|
"name": "itemClick",
|
|
5783
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
6002
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/search-bar/src/search-bar.component\").KpSearchResultItem"
|
|
5784
6003
|
}
|
|
5785
6004
|
],
|
|
5786
6005
|
"ariaRole": null,
|
|
@@ -5791,7 +6010,7 @@
|
|
|
5791
6010
|
],
|
|
5792
6011
|
"keyboardPatterns": [],
|
|
5793
6012
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-searchbar--docs",
|
|
5794
|
-
"sourcePath": "packages/
|
|
6013
|
+
"sourcePath": "packages/ui/search-bar/src/search-bar.component.ts",
|
|
5795
6014
|
"figma": {
|
|
5796
6015
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5797
6016
|
"nodeId": "3822:7356",
|
|
@@ -5811,7 +6030,8 @@
|
|
|
5811
6030
|
"className": "KpSettingsPanelComponent",
|
|
5812
6031
|
"selector": "kp-settings-panel",
|
|
5813
6032
|
"layer": "patterns",
|
|
5814
|
-
"package": "@kanso-protocol/
|
|
6033
|
+
"package": "@kanso-protocol/ui",
|
|
6034
|
+
"import": "@kanso-protocol/ui/settings-panel",
|
|
5815
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).",
|
|
5816
6036
|
"examples": [
|
|
5817
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>"
|
|
@@ -5863,7 +6083,7 @@
|
|
|
5863
6083
|
],
|
|
5864
6084
|
"keyboardPatterns": [],
|
|
5865
6085
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-settingspanel--docs",
|
|
5866
|
-
"sourcePath": "packages/
|
|
6086
|
+
"sourcePath": "packages/ui/settings-panel/src/settings-panel.component.ts",
|
|
5867
6087
|
"figma": {
|
|
5868
6088
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5869
6089
|
"nodeId": "3822:7364",
|
|
@@ -5883,7 +6103,8 @@
|
|
|
5883
6103
|
"className": "KpSettingsRowComponent",
|
|
5884
6104
|
"selector": "kp-settings-row",
|
|
5885
6105
|
"layer": "patterns",
|
|
5886
|
-
"package": "@kanso-protocol/
|
|
6106
|
+
"package": "@kanso-protocol/ui",
|
|
6107
|
+
"import": "@kanso-protocol/ui/settings-panel",
|
|
5887
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.",
|
|
5888
6109
|
"examples": [
|
|
5889
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>"
|
|
@@ -5929,7 +6150,7 @@
|
|
|
5929
6150
|
],
|
|
5930
6151
|
"keyboardPatterns": [],
|
|
5931
6152
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-settingspanel--docs",
|
|
5932
|
-
"sourcePath": "packages/
|
|
6153
|
+
"sourcePath": "packages/ui/settings-panel/src/settings-row.component.ts",
|
|
5933
6154
|
"figma": {
|
|
5934
6155
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
5935
6156
|
"nodeId": "3822:7364",
|
|
@@ -5949,7 +6170,8 @@
|
|
|
5949
6170
|
"className": "KpSidebarComponent",
|
|
5950
6171
|
"selector": "kp-sidebar",
|
|
5951
6172
|
"layer": "patterns",
|
|
5952
|
-
"package": "@kanso-protocol/
|
|
6173
|
+
"package": "@kanso-protocol/ui",
|
|
6174
|
+
"import": "@kanso-protocol/ui/sidebar",
|
|
5953
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)",
|
|
5954
6176
|
"examples": [
|
|
5955
6177
|
"<kp-sidebar\n widthState=\"expanded\"\n [sections]=\"nav\"\n userName=\"Greg Black\"\n userInitials=\"GB\"\n userEmail=\"greg@example.com\"\n/>"
|
|
@@ -6025,11 +6247,11 @@
|
|
|
6025
6247
|
"outputs": [
|
|
6026
6248
|
{
|
|
6027
6249
|
"name": "toggle",
|
|
6028
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
6250
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/sidebar/src/sidebar.component\").KpSidebarWidth"
|
|
6029
6251
|
},
|
|
6030
6252
|
{
|
|
6031
6253
|
"name": "itemClick",
|
|
6032
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
6254
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/sidebar/src/sidebar.component\").KpSidebarNavItem"
|
|
6033
6255
|
},
|
|
6034
6256
|
{
|
|
6035
6257
|
"name": "userMenuClick",
|
|
@@ -6040,7 +6262,7 @@
|
|
|
6040
6262
|
"sizeRamp": [],
|
|
6041
6263
|
"keyboardPatterns": [],
|
|
6042
6264
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-sidebar--docs",
|
|
6043
|
-
"sourcePath": "packages/
|
|
6265
|
+
"sourcePath": "packages/ui/sidebar/src/sidebar.component.ts",
|
|
6044
6266
|
"figma": {
|
|
6045
6267
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6046
6268
|
"nodeId": "3822:7372",
|
|
@@ -6060,7 +6282,8 @@
|
|
|
6060
6282
|
"className": "KpStackComponent",
|
|
6061
6283
|
"selector": "kp-stack",
|
|
6062
6284
|
"layer": "patterns",
|
|
6063
|
-
"package": "@kanso-protocol/
|
|
6285
|
+
"package": "@kanso-protocol/ui",
|
|
6286
|
+
"import": "@kanso-protocol/ui/stack",
|
|
6064
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\">`.",
|
|
6065
6288
|
"examples": [
|
|
6066
6289
|
"<kp-stack gap=\"md\">\n <kp-input/>\n <kp-input/>\n <button kpButton>Save</button>\n</kp-stack>"
|
|
@@ -6084,7 +6307,7 @@
|
|
|
6084
6307
|
"sizeRamp": [],
|
|
6085
6308
|
"keyboardPatterns": [],
|
|
6086
6309
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-stack--docs",
|
|
6087
|
-
"sourcePath": "packages/
|
|
6310
|
+
"sourcePath": "packages/ui/stack/src/stack.component.ts",
|
|
6088
6311
|
"figma": {
|
|
6089
6312
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6090
6313
|
"nodeId": "3825:7265",
|
|
@@ -6104,7 +6327,8 @@
|
|
|
6104
6327
|
"className": "KpStatCardComponent",
|
|
6105
6328
|
"selector": "kp-stat-card",
|
|
6106
6329
|
"layer": "patterns",
|
|
6107
|
-
"package": "@kanso-protocol/
|
|
6330
|
+
"package": "@kanso-protocol/ui",
|
|
6331
|
+
"import": "@kanso-protocol/ui/stat-card",
|
|
6108
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.",
|
|
6109
6333
|
"examples": [
|
|
6110
6334
|
"<kp-stat-card label=\"Total revenue\" value=\"$12,482\" trendValue=\"+12.5%\" trendDescription=\"from last month\"/>"
|
|
@@ -6186,7 +6410,7 @@
|
|
|
6186
6410
|
],
|
|
6187
6411
|
"keyboardPatterns": [],
|
|
6188
6412
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-statcard--docs",
|
|
6189
|
-
"sourcePath": "packages/
|
|
6413
|
+
"sourcePath": "packages/ui/stat-card/src/stat-card.component.ts",
|
|
6190
6414
|
"figma": {
|
|
6191
6415
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6192
6416
|
"nodeId": "3822:7387",
|
|
@@ -6206,7 +6430,8 @@
|
|
|
6206
6430
|
"className": "KpTableToolbarComponent",
|
|
6207
6431
|
"selector": "kp-table-toolbar",
|
|
6208
6432
|
"layer": "patterns",
|
|
6209
|
-
"package": "@kanso-protocol/
|
|
6433
|
+
"package": "@kanso-protocol/ui",
|
|
6434
|
+
"import": "@kanso-protocol/ui/table-toolbar",
|
|
6210
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.",
|
|
6211
6436
|
"examples": [
|
|
6212
6437
|
"<kp-table-toolbar\n [showFilter]=\"true\"\n [activeFilterCount]=\"2\"\n (createClick)=\"openCreate()\">\n</kp-table-toolbar>"
|
|
@@ -6312,7 +6537,7 @@
|
|
|
6312
6537
|
},
|
|
6313
6538
|
{
|
|
6314
6539
|
"name": "densityChange",
|
|
6315
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
6540
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/table-toolbar/src/table-toolbar.component\").KpTableToolbarDensity"
|
|
6316
6541
|
},
|
|
6317
6542
|
{
|
|
6318
6543
|
"name": "columnsClick",
|
|
@@ -6351,7 +6576,7 @@
|
|
|
6351
6576
|
"sizeRamp": [],
|
|
6352
6577
|
"keyboardPatterns": [],
|
|
6353
6578
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-tabletoolbar--docs",
|
|
6354
|
-
"sourcePath": "packages/
|
|
6579
|
+
"sourcePath": "packages/ui/table-toolbar/src/table-toolbar.component.ts",
|
|
6355
6580
|
"figma": {
|
|
6356
6581
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6357
6582
|
"nodeId": "3822:7395",
|
|
@@ -6371,7 +6596,8 @@
|
|
|
6371
6596
|
"className": "KpThemeToggleComponent",
|
|
6372
6597
|
"selector": "kp-theme-toggle",
|
|
6373
6598
|
"layer": "patterns",
|
|
6374
|
-
"package": "@kanso-protocol/
|
|
6599
|
+
"package": "@kanso-protocol/ui",
|
|
6600
|
+
"import": "@kanso-protocol/ui/theme-toggle",
|
|
6375
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.",
|
|
6376
6602
|
"examples": [
|
|
6377
6603
|
"<kp-theme-toggle\n variant=\"segmented\"\n [showLabel]=\"true\"\n [currentTheme]=\"theme()\"\n (themeChange)=\"theme.set($event)\"\n/>"
|
|
@@ -6405,7 +6631,7 @@
|
|
|
6405
6631
|
"outputs": [
|
|
6406
6632
|
{
|
|
6407
6633
|
"name": "themeChange",
|
|
6408
|
-
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/
|
|
6634
|
+
"payload": "import(\"/home/runner/work/kanso-protocol/kanso-protocol/packages/ui/theme-toggle/src/theme-toggle.component\").KpThemeValue"
|
|
6409
6635
|
},
|
|
6410
6636
|
{
|
|
6411
6637
|
"name": "dropdownClick",
|
|
@@ -6422,7 +6648,7 @@
|
|
|
6422
6648
|
"Escape"
|
|
6423
6649
|
],
|
|
6424
6650
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-themetoggle--docs",
|
|
6425
|
-
"sourcePath": "packages/
|
|
6651
|
+
"sourcePath": "packages/ui/theme-toggle/src/theme-toggle.component.ts",
|
|
6426
6652
|
"figma": {
|
|
6427
6653
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6428
6654
|
"nodeId": "3822:7403",
|
|
@@ -6442,7 +6668,8 @@
|
|
|
6442
6668
|
"className": "KpUserMenuComponent",
|
|
6443
6669
|
"selector": "kp-user-menu",
|
|
6444
6670
|
"layer": "patterns",
|
|
6445
|
-
"package": "@kanso-protocol/
|
|
6671
|
+
"package": "@kanso-protocol/ui",
|
|
6672
|
+
"import": "@kanso-protocol/ui/user-menu",
|
|
6446
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)",
|
|
6447
6674
|
"examples": [
|
|
6448
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>"
|
|
@@ -6516,7 +6743,7 @@
|
|
|
6516
6743
|
],
|
|
6517
6744
|
"keyboardPatterns": [],
|
|
6518
6745
|
"docsUrl": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-usermenu--docs",
|
|
6519
|
-
"sourcePath": "packages/
|
|
6746
|
+
"sourcePath": "packages/ui/user-menu/src/user-menu.component.ts",
|
|
6520
6747
|
"figma": {
|
|
6521
6748
|
"fileKey": "ahRfe4BdMAyoK0I3lnicp6",
|
|
6522
6749
|
"nodeId": "3822:7411",
|