@treeui/mcp 0.1.0 → 0.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/LICENSE +22 -0
- package/dist/{chunk-SNF26WKA.js → chunk-HN245XRN.js} +482 -356
- package/dist/cli.cjs +482 -356
- package/dist/cli.js +1 -1
- package/dist/index.cjs +485 -361
- package/dist/index.js +4 -6
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -47,9 +47,9 @@ module.exports = __toCommonJS(index_exports);
|
|
|
47
47
|
|
|
48
48
|
// src/generated/treeui.catalog.json
|
|
49
49
|
var treeui_catalog_default = {
|
|
50
|
-
generatedAt: "2026-
|
|
50
|
+
generatedAt: "2026-06-26T22:57:20.487Z",
|
|
51
51
|
packageName: "@treeui/vue",
|
|
52
|
-
packageVersion: "0.
|
|
52
|
+
packageVersion: "0.8.0",
|
|
53
53
|
decisionGuides: [
|
|
54
54
|
{
|
|
55
55
|
id: "single-choice",
|
|
@@ -326,6 +326,37 @@ var treeui_catalog_default = {
|
|
|
326
326
|
"Use `TCard` only when the stat needs additional arbitrary content."
|
|
327
327
|
]
|
|
328
328
|
},
|
|
329
|
+
{
|
|
330
|
+
id: "color-field",
|
|
331
|
+
name: "Color field",
|
|
332
|
+
useWhen: [
|
|
333
|
+
"A form needs a color selection control without adding a dedicated TreeUI component."
|
|
334
|
+
],
|
|
335
|
+
compose: [
|
|
336
|
+
"TFormField",
|
|
337
|
+
'native input[type="color"]'
|
|
338
|
+
],
|
|
339
|
+
notes: [
|
|
340
|
+
"Wrap the native color input with `TFormField` for label, hint, and error handling."
|
|
341
|
+
]
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
id: "tag-input",
|
|
345
|
+
name: "Tag input field",
|
|
346
|
+
useWhen: [
|
|
347
|
+
"A form needs freeform tag entry such as domains, labels, or emails."
|
|
348
|
+
],
|
|
349
|
+
compose: [
|
|
350
|
+
"TFormField",
|
|
351
|
+
"TInput",
|
|
352
|
+
"TTag",
|
|
353
|
+
"TStack"
|
|
354
|
+
],
|
|
355
|
+
notes: [
|
|
356
|
+
"Keep the draft value in app state and add a tag on Enter or separator keys.",
|
|
357
|
+
"Use removable `TTag` items below or inside the field wrapper."
|
|
358
|
+
]
|
|
359
|
+
},
|
|
329
360
|
{
|
|
330
361
|
id: "data-listing",
|
|
331
362
|
name: "Data table with paging",
|
|
@@ -338,7 +369,23 @@ var treeui_catalog_default = {
|
|
|
338
369
|
"TStack"
|
|
339
370
|
],
|
|
340
371
|
notes: [
|
|
341
|
-
"`TTable` stays focused on structured listing; filters and toolbars compose around it."
|
|
372
|
+
"`TTable` stays focused on structured listing; filters and toolbars compose around it.",
|
|
373
|
+
"Use `#cell-{key}` slots when a column renders derived or rich content."
|
|
374
|
+
]
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
id: "router-backed-tabs",
|
|
378
|
+
name: "Router-backed tabs",
|
|
379
|
+
useWhen: [
|
|
380
|
+
"Tabs should deep-link to app state without turning into primary route navigation."
|
|
381
|
+
],
|
|
382
|
+
compose: [
|
|
383
|
+
"TTabs",
|
|
384
|
+
"app router state"
|
|
385
|
+
],
|
|
386
|
+
notes: [
|
|
387
|
+
"Bind `v-model` to a route param, query param, or derived route name in the app layer.",
|
|
388
|
+
"Prefer `TNavMenu` when the selection becomes app-section navigation instead of in-place panel switching."
|
|
342
389
|
]
|
|
343
390
|
},
|
|
344
391
|
{
|
|
@@ -356,6 +403,21 @@ var treeui_catalog_default = {
|
|
|
356
403
|
"Use `TToast` only for the post-confirm success feedback."
|
|
357
404
|
]
|
|
358
405
|
},
|
|
406
|
+
{
|
|
407
|
+
id: "chart-surface",
|
|
408
|
+
name: "Chart surface",
|
|
409
|
+
useWhen: [
|
|
410
|
+
"A screen needs data visualization, but the charting engine should stay external to TreeUI."
|
|
411
|
+
],
|
|
412
|
+
compose: [
|
|
413
|
+
"TCard",
|
|
414
|
+
"TStack",
|
|
415
|
+
"external chart library"
|
|
416
|
+
],
|
|
417
|
+
notes: [
|
|
418
|
+
"Use TreeUI for the surrounding surface, headings, badges, filters, and empty/loading states."
|
|
419
|
+
]
|
|
420
|
+
},
|
|
359
421
|
{
|
|
360
422
|
id: "anchored-help",
|
|
361
423
|
name: "Anchored help affordance",
|
|
@@ -428,7 +490,7 @@ var treeui_catalog_default = {
|
|
|
428
490
|
},
|
|
429
491
|
globalRules: [
|
|
430
492
|
"Always import `@treeui/vue/style.css` once in the consuming application.",
|
|
431
|
-
"
|
|
493
|
+
"All components use the `T<Name>` export prefix; there are no `Tree<Name>` aliases.",
|
|
432
494
|
"Form controls use `modelValue` + `update:modelValue`.",
|
|
433
495
|
"Overlay-style components generally support controlled and uncontrolled open state.",
|
|
434
496
|
"Date-only values use `YYYY-MM-DD`.",
|
|
@@ -456,7 +518,7 @@ var treeui_catalog_default = {
|
|
|
456
518
|
TSelect: {
|
|
457
519
|
required: [],
|
|
458
520
|
notes: [
|
|
459
|
-
"Pass `options` as `{ label, value, disabled? }[]`.",
|
|
521
|
+
"Pass `options` as `{ label, value, disabled? }[]` where `value` can be `string` or `number`.",
|
|
460
522
|
"Use `placeholder` when no selection has been made."
|
|
461
523
|
]
|
|
462
524
|
},
|
|
@@ -534,6 +596,19 @@ var treeui_catalog_default = {
|
|
|
534
596
|
notes: [
|
|
535
597
|
"Pass `plans` matching the same core fields used by `TPricingCard`."
|
|
536
598
|
]
|
|
599
|
+
},
|
|
600
|
+
TModal: {
|
|
601
|
+
required: [],
|
|
602
|
+
notes: [
|
|
603
|
+
"Use `v-model:open` for the idiomatic Vue controlled pattern."
|
|
604
|
+
]
|
|
605
|
+
},
|
|
606
|
+
TBreadcrumb: {
|
|
607
|
+
required: [],
|
|
608
|
+
notes: [
|
|
609
|
+
"Use `href` for native links.",
|
|
610
|
+
"Use `to` when the app has vue-router and breadcrumb items should render RouterLink."
|
|
611
|
+
]
|
|
537
612
|
}
|
|
538
613
|
},
|
|
539
614
|
appPatterns: {
|
|
@@ -556,16 +631,13 @@ var treeui_catalog_default = {
|
|
|
556
631
|
components: [
|
|
557
632
|
{
|
|
558
633
|
name: "TAccordion",
|
|
559
|
-
|
|
560
|
-
aliases: [
|
|
561
|
-
"TreeAccordion"
|
|
562
|
-
],
|
|
634
|
+
aliases: [],
|
|
563
635
|
package: "@treeui/vue",
|
|
564
636
|
kind: "disclosure",
|
|
565
637
|
category: "Data Display",
|
|
566
638
|
status: "available",
|
|
567
639
|
purpose: "Organized content sections with expandable/collapsible behavior. Supports single-open and multi-open modes.\n",
|
|
568
|
-
sourceFile: "packages/vue/src/components/
|
|
640
|
+
sourceFile: "packages/vue/src/components/TAccordion.vue",
|
|
569
641
|
storyFile: "apps/docs/src/stories/Accordion.stories.ts",
|
|
570
642
|
storyTitle: "Components/Data Display/Accordion",
|
|
571
643
|
manifestFile: "docs/ai/COMPONENTS/accordion.yaml",
|
|
@@ -612,16 +684,13 @@ var treeui_catalog_default = {
|
|
|
612
684
|
},
|
|
613
685
|
{
|
|
614
686
|
name: "TAlert",
|
|
615
|
-
|
|
616
|
-
aliases: [
|
|
617
|
-
"TreeAlert"
|
|
618
|
-
],
|
|
687
|
+
aliases: [],
|
|
619
688
|
package: "@treeui/vue",
|
|
620
689
|
kind: "feedback",
|
|
621
690
|
category: "Feedback",
|
|
622
691
|
status: "available",
|
|
623
692
|
purpose: "Inline status banner for info, success, warning, and danger messages.",
|
|
624
|
-
sourceFile: "packages/vue/src/components/
|
|
693
|
+
sourceFile: "packages/vue/src/components/TAlert.vue",
|
|
625
694
|
storyFile: "apps/docs/src/stories/Alert.stories.ts",
|
|
626
695
|
storyTitle: "Components/Feedback/Alert",
|
|
627
696
|
manifestFile: "docs/ai/COMPONENTS/alert.yaml",
|
|
@@ -639,7 +708,7 @@ var treeui_catalog_default = {
|
|
|
639
708
|
},
|
|
640
709
|
{
|
|
641
710
|
name: "size",
|
|
642
|
-
type: "
|
|
711
|
+
type: "TSize",
|
|
643
712
|
default: "md",
|
|
644
713
|
values: [
|
|
645
714
|
"sm",
|
|
@@ -715,14 +784,11 @@ var treeui_catalog_default = {
|
|
|
715
784
|
},
|
|
716
785
|
{
|
|
717
786
|
name: "TAvatar",
|
|
718
|
-
|
|
719
|
-
aliases: [
|
|
720
|
-
"TreeAvatar"
|
|
721
|
-
],
|
|
787
|
+
aliases: [],
|
|
722
788
|
package: "@treeui/vue",
|
|
723
789
|
category: "Data Display",
|
|
724
790
|
description: "User image with fallback initials and optional status indicator dot.",
|
|
725
|
-
sourceFile: "packages/vue/src/components/
|
|
791
|
+
sourceFile: "packages/vue/src/components/TAvatar.vue",
|
|
726
792
|
storyFile: "apps/docs/src/stories/Avatar.stories.ts",
|
|
727
793
|
storyTitle: "Components/Data Display/Avatar",
|
|
728
794
|
manifestFile: "docs/ai/COMPONENTS/avatar.yaml",
|
|
@@ -747,7 +813,7 @@ var treeui_catalog_default = {
|
|
|
747
813
|
},
|
|
748
814
|
{
|
|
749
815
|
name: "size",
|
|
750
|
-
type: "
|
|
816
|
+
type: "TSize",
|
|
751
817
|
default: "md",
|
|
752
818
|
values: [
|
|
753
819
|
"sm",
|
|
@@ -757,7 +823,7 @@ var treeui_catalog_default = {
|
|
|
757
823
|
},
|
|
758
824
|
{
|
|
759
825
|
name: "status",
|
|
760
|
-
type: "
|
|
826
|
+
type: "TAvatarStatus",
|
|
761
827
|
required: false,
|
|
762
828
|
values: [
|
|
763
829
|
"online",
|
|
@@ -795,23 +861,20 @@ var treeui_catalog_default = {
|
|
|
795
861
|
},
|
|
796
862
|
{
|
|
797
863
|
name: "TBadge",
|
|
798
|
-
|
|
799
|
-
aliases: [
|
|
800
|
-
"TreeBadge"
|
|
801
|
-
],
|
|
864
|
+
aliases: [],
|
|
802
865
|
package: "@treeui/vue",
|
|
803
866
|
kind: "display",
|
|
804
867
|
category: "Data Display",
|
|
805
868
|
status: "available",
|
|
806
869
|
purpose: "Compact status or metadata label with optional icon.",
|
|
807
|
-
sourceFile: "packages/vue/src/components/
|
|
870
|
+
sourceFile: "packages/vue/src/components/TBadge.vue",
|
|
808
871
|
storyFile: "apps/docs/src/stories/Badge.stories.ts",
|
|
809
872
|
storyTitle: "Components/Data Display/Badge",
|
|
810
873
|
manifestFile: "docs/ai/COMPONENTS/badge.yaml",
|
|
811
874
|
props: [
|
|
812
875
|
{
|
|
813
876
|
name: "variant",
|
|
814
|
-
type: "
|
|
877
|
+
type: "TVariant",
|
|
815
878
|
default: "soft",
|
|
816
879
|
values: [
|
|
817
880
|
"solid",
|
|
@@ -821,9 +884,22 @@ var treeui_catalog_default = {
|
|
|
821
884
|
"danger"
|
|
822
885
|
]
|
|
823
886
|
},
|
|
887
|
+
{
|
|
888
|
+
name: "tone",
|
|
889
|
+
type: "TBadgeTone",
|
|
890
|
+
default: "neutral",
|
|
891
|
+
values: [
|
|
892
|
+
"neutral",
|
|
893
|
+
"success",
|
|
894
|
+
"warning",
|
|
895
|
+
"danger",
|
|
896
|
+
"info"
|
|
897
|
+
],
|
|
898
|
+
description: "Optional semantic tone layered on top of the visual variant."
|
|
899
|
+
},
|
|
824
900
|
{
|
|
825
901
|
name: "size",
|
|
826
|
-
type: "
|
|
902
|
+
type: "TSize",
|
|
827
903
|
default: "md",
|
|
828
904
|
values: [
|
|
829
905
|
"sm",
|
|
@@ -862,16 +938,13 @@ var treeui_catalog_default = {
|
|
|
862
938
|
},
|
|
863
939
|
{
|
|
864
940
|
name: "TBreadcrumb",
|
|
865
|
-
|
|
866
|
-
aliases: [
|
|
867
|
-
"TreeBreadcrumb"
|
|
868
|
-
],
|
|
941
|
+
aliases: [],
|
|
869
942
|
package: "@treeui/vue",
|
|
870
943
|
kind: "navigation",
|
|
871
944
|
category: "Navigation",
|
|
872
945
|
status: "available",
|
|
873
946
|
purpose: "Hierarchical navigation trail showing the user's current location within a site or application.",
|
|
874
|
-
sourceFile: "packages/vue/src/components/
|
|
947
|
+
sourceFile: "packages/vue/src/components/TBreadcrumb.vue",
|
|
875
948
|
storyFile: "apps/docs/src/stories/Breadcrumb.stories.ts",
|
|
876
949
|
storyTitle: "Components/Navigation/Breadcrumb",
|
|
877
950
|
manifestFile: "docs/ai/COMPONENTS/breadcrumb.yaml",
|
|
@@ -905,22 +978,22 @@ var treeui_catalog_default = {
|
|
|
905
978
|
},
|
|
906
979
|
setup: {
|
|
907
980
|
required: [],
|
|
908
|
-
notes: [
|
|
981
|
+
notes: [
|
|
982
|
+
"Use `href` for native links.",
|
|
983
|
+
"Use `to` when the app has vue-router and breadcrumb items should render RouterLink."
|
|
984
|
+
]
|
|
909
985
|
},
|
|
910
986
|
recipes: []
|
|
911
987
|
},
|
|
912
988
|
{
|
|
913
989
|
name: "TButton",
|
|
914
|
-
|
|
915
|
-
aliases: [
|
|
916
|
-
"TreeButton"
|
|
917
|
-
],
|
|
990
|
+
aliases: [],
|
|
918
991
|
package: "@treeui/vue",
|
|
919
992
|
kind: "primitive",
|
|
920
993
|
category: "Actions",
|
|
921
994
|
status: "available",
|
|
922
995
|
purpose: "Clickable action trigger with variants, sizes, optional polymorphism, and loading state.",
|
|
923
|
-
sourceFile: "packages/vue/src/components/
|
|
996
|
+
sourceFile: "packages/vue/src/components/TButton.vue",
|
|
924
997
|
storyFile: "apps/docs/src/stories/Button.stories.ts",
|
|
925
998
|
storyTitle: "Components/Actions/Button",
|
|
926
999
|
manifestFile: "docs/ai/COMPONENTS/button.yaml",
|
|
@@ -932,7 +1005,7 @@ var treeui_catalog_default = {
|
|
|
932
1005
|
},
|
|
933
1006
|
{
|
|
934
1007
|
name: "variant",
|
|
935
|
-
type: "
|
|
1008
|
+
type: "TVariant",
|
|
936
1009
|
default: "solid",
|
|
937
1010
|
values: [
|
|
938
1011
|
"solid",
|
|
@@ -944,7 +1017,7 @@ var treeui_catalog_default = {
|
|
|
944
1017
|
},
|
|
945
1018
|
{
|
|
946
1019
|
name: "size",
|
|
947
|
-
type: "
|
|
1020
|
+
type: "TSize",
|
|
948
1021
|
default: "md",
|
|
949
1022
|
values: [
|
|
950
1023
|
"sm",
|
|
@@ -1009,16 +1082,13 @@ var treeui_catalog_default = {
|
|
|
1009
1082
|
},
|
|
1010
1083
|
{
|
|
1011
1084
|
name: "TCard",
|
|
1012
|
-
|
|
1013
|
-
aliases: [
|
|
1014
|
-
"TreeCard"
|
|
1015
|
-
],
|
|
1085
|
+
aliases: [],
|
|
1016
1086
|
package: "@treeui/vue",
|
|
1017
1087
|
kind: "layout",
|
|
1018
1088
|
category: "Data Display",
|
|
1019
1089
|
status: "available",
|
|
1020
1090
|
purpose: "Surface container with optional header and footer slots.",
|
|
1021
|
-
sourceFile: "packages/vue/src/components/
|
|
1091
|
+
sourceFile: "packages/vue/src/components/TCard.vue",
|
|
1022
1092
|
storyFile: "apps/docs/src/stories/Card.stories.ts",
|
|
1023
1093
|
storyTitle: "Components/Data Display/Card",
|
|
1024
1094
|
manifestFile: "docs/ai/COMPONENTS/card.yaml",
|
|
@@ -1030,23 +1100,30 @@ var treeui_catalog_default = {
|
|
|
1030
1100
|
},
|
|
1031
1101
|
{
|
|
1032
1102
|
name: "variant",
|
|
1033
|
-
type: "
|
|
1103
|
+
type: "TCardVariant",
|
|
1034
1104
|
default: "outline",
|
|
1035
1105
|
values: [
|
|
1036
1106
|
"outline",
|
|
1037
1107
|
"soft",
|
|
1038
|
-
"solid"
|
|
1108
|
+
"solid",
|
|
1109
|
+
"inset"
|
|
1039
1110
|
]
|
|
1040
1111
|
},
|
|
1041
1112
|
{
|
|
1042
1113
|
name: "size",
|
|
1043
|
-
type: "
|
|
1114
|
+
type: "TSize",
|
|
1044
1115
|
default: "md",
|
|
1045
1116
|
values: [
|
|
1046
1117
|
"sm",
|
|
1047
1118
|
"md",
|
|
1048
1119
|
"lg"
|
|
1049
1120
|
]
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
name: "title",
|
|
1124
|
+
type: "string",
|
|
1125
|
+
default: "undefined",
|
|
1126
|
+
description: "Optional card heading rendered inside the header area."
|
|
1050
1127
|
}
|
|
1051
1128
|
],
|
|
1052
1129
|
events: [],
|
|
@@ -1054,6 +1131,9 @@ var treeui_catalog_default = {
|
|
|
1054
1131
|
{
|
|
1055
1132
|
name: "header"
|
|
1056
1133
|
},
|
|
1134
|
+
{
|
|
1135
|
+
name: "actions"
|
|
1136
|
+
},
|
|
1057
1137
|
{
|
|
1058
1138
|
name: "default"
|
|
1059
1139
|
},
|
|
@@ -1094,20 +1174,19 @@ var treeui_catalog_default = {
|
|
|
1094
1174
|
required: [],
|
|
1095
1175
|
notes: []
|
|
1096
1176
|
},
|
|
1097
|
-
recipes: [
|
|
1177
|
+
recipes: [
|
|
1178
|
+
"chart-surface"
|
|
1179
|
+
]
|
|
1098
1180
|
},
|
|
1099
1181
|
{
|
|
1100
1182
|
name: "TCheckbox",
|
|
1101
|
-
|
|
1102
|
-
aliases: [
|
|
1103
|
-
"TreeCheckbox"
|
|
1104
|
-
],
|
|
1183
|
+
aliases: [],
|
|
1105
1184
|
package: "@treeui/vue",
|
|
1106
1185
|
kind: "primitive",
|
|
1107
1186
|
category: "Data Entry",
|
|
1108
1187
|
status: "available",
|
|
1109
1188
|
purpose: "Boolean toggle with indeterminate state; supports v-model via modelValue.",
|
|
1110
|
-
sourceFile: "packages/vue/src/components/
|
|
1189
|
+
sourceFile: "packages/vue/src/components/TCheckbox.vue",
|
|
1111
1190
|
storyFile: "apps/docs/src/stories/Checkbox.stories.ts",
|
|
1112
1191
|
storyTitle: "Components/Data Entry/Checkbox",
|
|
1113
1192
|
manifestFile: "docs/ai/COMPONENTS/checkbox.yaml",
|
|
@@ -1119,7 +1198,7 @@ var treeui_catalog_default = {
|
|
|
1119
1198
|
},
|
|
1120
1199
|
{
|
|
1121
1200
|
name: "size",
|
|
1122
|
-
type: "
|
|
1201
|
+
type: "TSize",
|
|
1123
1202
|
default: "md",
|
|
1124
1203
|
values: [
|
|
1125
1204
|
"sm",
|
|
@@ -1199,16 +1278,13 @@ var treeui_catalog_default = {
|
|
|
1199
1278
|
},
|
|
1200
1279
|
{
|
|
1201
1280
|
name: "TCombobox",
|
|
1202
|
-
|
|
1203
|
-
aliases: [
|
|
1204
|
-
"TreeCombobox"
|
|
1205
|
-
],
|
|
1281
|
+
aliases: [],
|
|
1206
1282
|
package: "@treeui/vue",
|
|
1207
1283
|
kind: "primitive",
|
|
1208
1284
|
category: "Data Entry",
|
|
1209
1285
|
status: "available",
|
|
1210
1286
|
purpose: "Searchable combobox / autocomplete input with local filtering, controlled selection, and shared open-state behavior.",
|
|
1211
|
-
sourceFile: "packages/vue/src/components/
|
|
1287
|
+
sourceFile: "packages/vue/src/components/TCombobox.vue",
|
|
1212
1288
|
storyFile: "apps/docs/src/stories/Combobox.stories.ts",
|
|
1213
1289
|
storyTitle: "Components/Data Entry/Combobox",
|
|
1214
1290
|
manifestFile: "docs/ai/COMPONENTS/combobox.yaml",
|
|
@@ -1220,7 +1296,7 @@ var treeui_catalog_default = {
|
|
|
1220
1296
|
},
|
|
1221
1297
|
{
|
|
1222
1298
|
name: "options",
|
|
1223
|
-
type: "
|
|
1299
|
+
type: "TComboboxOption[]",
|
|
1224
1300
|
default: "[]",
|
|
1225
1301
|
note: "Array of { label: string; value: string; description?: string; keywords?: string[]; disabled?: boolean }"
|
|
1226
1302
|
},
|
|
@@ -1236,7 +1312,7 @@ var treeui_catalog_default = {
|
|
|
1236
1312
|
},
|
|
1237
1313
|
{
|
|
1238
1314
|
name: "size",
|
|
1239
|
-
type: "
|
|
1315
|
+
type: "TSize",
|
|
1240
1316
|
default: "md",
|
|
1241
1317
|
values: [
|
|
1242
1318
|
"sm",
|
|
@@ -1353,16 +1429,13 @@ var treeui_catalog_default = {
|
|
|
1353
1429
|
},
|
|
1354
1430
|
{
|
|
1355
1431
|
name: "TConfirmDialog",
|
|
1356
|
-
|
|
1357
|
-
aliases: [
|
|
1358
|
-
"TreeConfirmDialog"
|
|
1359
|
-
],
|
|
1432
|
+
aliases: [],
|
|
1360
1433
|
package: "@treeui/vue",
|
|
1361
1434
|
kind: "overlay",
|
|
1362
1435
|
category: "Overlay",
|
|
1363
1436
|
status: "available",
|
|
1364
1437
|
purpose: "High-level confirmation dialog built on the shared modal contract, with default confirm and cancel actions.",
|
|
1365
|
-
sourceFile: "packages/vue/src/components/
|
|
1438
|
+
sourceFile: "packages/vue/src/components/TConfirmDialog.vue",
|
|
1366
1439
|
storyFile: "apps/docs/src/stories/ConfirmDialog.stories.ts",
|
|
1367
1440
|
storyTitle: "Components/Overlay/ConfirmDialog",
|
|
1368
1441
|
manifestFile: "docs/ai/COMPONENTS/confirm-dialog.yaml",
|
|
@@ -1384,7 +1457,7 @@ var treeui_catalog_default = {
|
|
|
1384
1457
|
},
|
|
1385
1458
|
{
|
|
1386
1459
|
name: "size",
|
|
1387
|
-
type: "
|
|
1460
|
+
type: "TSize",
|
|
1388
1461
|
default: "sm",
|
|
1389
1462
|
values: [
|
|
1390
1463
|
"sm",
|
|
@@ -1414,7 +1487,7 @@ var treeui_catalog_default = {
|
|
|
1414
1487
|
},
|
|
1415
1488
|
{
|
|
1416
1489
|
name: "confirmVariant",
|
|
1417
|
-
type: "
|
|
1490
|
+
type: "TVariant",
|
|
1418
1491
|
default: "danger"
|
|
1419
1492
|
},
|
|
1420
1493
|
{
|
|
@@ -1522,16 +1595,13 @@ var treeui_catalog_default = {
|
|
|
1522
1595
|
},
|
|
1523
1596
|
{
|
|
1524
1597
|
name: "TContainer",
|
|
1525
|
-
|
|
1526
|
-
aliases: [
|
|
1527
|
-
"TreeContainer"
|
|
1528
|
-
],
|
|
1598
|
+
aliases: [],
|
|
1529
1599
|
package: "@treeui/vue",
|
|
1530
1600
|
kind: "layout",
|
|
1531
1601
|
category: "Layout",
|
|
1532
1602
|
status: "available",
|
|
1533
1603
|
purpose: "Width-constrained layout wrapper for readable page content and app sections.",
|
|
1534
|
-
sourceFile: "packages/vue/src/components/
|
|
1604
|
+
sourceFile: "packages/vue/src/components/TContainer.vue",
|
|
1535
1605
|
storyFile: "apps/docs/src/stories/Container.stories.ts",
|
|
1536
1606
|
storyTitle: "Components/Layout/Container",
|
|
1537
1607
|
manifestFile: "docs/ai/COMPONENTS/container.yaml",
|
|
@@ -1543,7 +1613,7 @@ var treeui_catalog_default = {
|
|
|
1543
1613
|
},
|
|
1544
1614
|
{
|
|
1545
1615
|
name: "size",
|
|
1546
|
-
type: "
|
|
1616
|
+
type: "TContainerSize",
|
|
1547
1617
|
default: "lg",
|
|
1548
1618
|
values: [
|
|
1549
1619
|
"sm",
|
|
@@ -1614,10 +1684,7 @@ var treeui_catalog_default = {
|
|
|
1614
1684
|
},
|
|
1615
1685
|
{
|
|
1616
1686
|
name: "TContextMenu",
|
|
1617
|
-
|
|
1618
|
-
aliases: [
|
|
1619
|
-
"TreeContextMenu"
|
|
1620
|
-
],
|
|
1687
|
+
aliases: [],
|
|
1621
1688
|
package: "@treeui/vue",
|
|
1622
1689
|
category: "Overlay",
|
|
1623
1690
|
status: "stable",
|
|
@@ -1627,7 +1694,7 @@ var treeui_catalog_default = {
|
|
|
1627
1694
|
props: [
|
|
1628
1695
|
{
|
|
1629
1696
|
name: "items",
|
|
1630
|
-
type: "
|
|
1697
|
+
type: "TContextMenuItem[]",
|
|
1631
1698
|
default: "[]",
|
|
1632
1699
|
description: "Menu items to render."
|
|
1633
1700
|
},
|
|
@@ -1651,7 +1718,7 @@ var treeui_catalog_default = {
|
|
|
1651
1718
|
},
|
|
1652
1719
|
{
|
|
1653
1720
|
name: "size",
|
|
1654
|
-
type: "
|
|
1721
|
+
type: "TSize",
|
|
1655
1722
|
default: "md",
|
|
1656
1723
|
description: "Item sizing variant."
|
|
1657
1724
|
}
|
|
@@ -1724,16 +1791,13 @@ var treeui_catalog_default = {
|
|
|
1724
1791
|
},
|
|
1725
1792
|
{
|
|
1726
1793
|
name: "TDatePicker",
|
|
1727
|
-
|
|
1728
|
-
aliases: [
|
|
1729
|
-
"TreeDatePicker"
|
|
1730
|
-
],
|
|
1794
|
+
aliases: [],
|
|
1731
1795
|
package: "@treeui/vue",
|
|
1732
1796
|
kind: "form_overlay",
|
|
1733
1797
|
category: "Data Entry",
|
|
1734
1798
|
status: "available",
|
|
1735
1799
|
purpose: "Date input with calendar popover and keyboard navigation.",
|
|
1736
|
-
sourceFile: "packages/vue/src/components/
|
|
1800
|
+
sourceFile: "packages/vue/src/components/TDatePicker.vue",
|
|
1737
1801
|
storyFile: "apps/docs/src/stories/DatePicker.stories.ts",
|
|
1738
1802
|
storyTitle: "Components/Data Entry/DatePicker",
|
|
1739
1803
|
manifestFile: "docs/ai/COMPONENTS/date-picker.yaml",
|
|
@@ -1755,7 +1819,7 @@ var treeui_catalog_default = {
|
|
|
1755
1819
|
},
|
|
1756
1820
|
{
|
|
1757
1821
|
name: "size",
|
|
1758
|
-
type: "
|
|
1822
|
+
type: "TSize",
|
|
1759
1823
|
default: "md",
|
|
1760
1824
|
values: [
|
|
1761
1825
|
"sm",
|
|
@@ -1876,16 +1940,13 @@ var treeui_catalog_default = {
|
|
|
1876
1940
|
},
|
|
1877
1941
|
{
|
|
1878
1942
|
name: "TDateTimePicker",
|
|
1879
|
-
|
|
1880
|
-
aliases: [
|
|
1881
|
-
"TreeDateTimePicker"
|
|
1882
|
-
],
|
|
1943
|
+
aliases: [],
|
|
1883
1944
|
package: "@treeui/vue",
|
|
1884
1945
|
kind: "form",
|
|
1885
1946
|
category: "Data Entry",
|
|
1886
1947
|
status: "available",
|
|
1887
1948
|
purpose: "Date and time picker with a calendar grid, time selection, and overlay trigger.",
|
|
1888
|
-
sourceFile: "packages/vue/src/components/
|
|
1949
|
+
sourceFile: "packages/vue/src/components/TDateTimePicker.vue",
|
|
1889
1950
|
storyFile: "apps/docs/src/stories/DateTimePicker.stories.ts",
|
|
1890
1951
|
storyTitle: "Components/Data Entry/DateTimePicker",
|
|
1891
1952
|
manifestFile: "docs/ai/COMPONENTS/date-time-picker.yaml",
|
|
@@ -1908,7 +1969,7 @@ var treeui_catalog_default = {
|
|
|
1908
1969
|
},
|
|
1909
1970
|
{
|
|
1910
1971
|
name: "size",
|
|
1911
|
-
type: "
|
|
1972
|
+
type: "TSize",
|
|
1912
1973
|
default: "md",
|
|
1913
1974
|
values: [
|
|
1914
1975
|
"sm",
|
|
@@ -2037,14 +2098,11 @@ var treeui_catalog_default = {
|
|
|
2037
2098
|
},
|
|
2038
2099
|
{
|
|
2039
2100
|
name: "TDivider",
|
|
2040
|
-
|
|
2041
|
-
aliases: [
|
|
2042
|
-
"TreeDivider"
|
|
2043
|
-
],
|
|
2101
|
+
aliases: [],
|
|
2044
2102
|
package: "@treeui/vue",
|
|
2045
2103
|
category: "Layout",
|
|
2046
2104
|
description: "Horizontal or vertical visual separator.",
|
|
2047
|
-
sourceFile: "packages/vue/src/components/
|
|
2105
|
+
sourceFile: "packages/vue/src/components/TDivider.vue",
|
|
2048
2106
|
storyFile: "apps/docs/src/stories/Divider.stories.ts",
|
|
2049
2107
|
storyTitle: "Components/Layout/Divider",
|
|
2050
2108
|
manifestFile: "docs/ai/COMPONENTS/divider.yaml",
|
|
@@ -2093,16 +2151,13 @@ var treeui_catalog_default = {
|
|
|
2093
2151
|
},
|
|
2094
2152
|
{
|
|
2095
2153
|
name: "TDrawer",
|
|
2096
|
-
|
|
2097
|
-
aliases: [
|
|
2098
|
-
"TreeDrawer"
|
|
2099
|
-
],
|
|
2154
|
+
aliases: [],
|
|
2100
2155
|
package: "@treeui/vue",
|
|
2101
2156
|
kind: "overlay",
|
|
2102
2157
|
category: "Overlay",
|
|
2103
2158
|
status: "available",
|
|
2104
2159
|
purpose: "Side-anchored panel for secondary content, navigation, or forms.",
|
|
2105
|
-
sourceFile: "packages/vue/src/components/
|
|
2160
|
+
sourceFile: "packages/vue/src/components/TDrawer.vue",
|
|
2106
2161
|
storyFile: "apps/docs/src/stories/Drawer.stories.ts",
|
|
2107
2162
|
storyTitle: "Components/Overlay/Drawer",
|
|
2108
2163
|
manifestFile: "docs/ai/COMPONENTS/drawer.yaml",
|
|
@@ -2124,7 +2179,7 @@ var treeui_catalog_default = {
|
|
|
2124
2179
|
},
|
|
2125
2180
|
{
|
|
2126
2181
|
name: "size",
|
|
2127
|
-
type: "
|
|
2182
|
+
type: "TSize",
|
|
2128
2183
|
default: "md",
|
|
2129
2184
|
values: [
|
|
2130
2185
|
"sm",
|
|
@@ -2134,7 +2189,7 @@ var treeui_catalog_default = {
|
|
|
2134
2189
|
},
|
|
2135
2190
|
{
|
|
2136
2191
|
name: "side",
|
|
2137
|
-
type: "
|
|
2192
|
+
type: "TDrawerSide",
|
|
2138
2193
|
default: "right",
|
|
2139
2194
|
values: [
|
|
2140
2195
|
"top",
|
|
@@ -2249,23 +2304,20 @@ var treeui_catalog_default = {
|
|
|
2249
2304
|
},
|
|
2250
2305
|
{
|
|
2251
2306
|
name: "TDropdown",
|
|
2252
|
-
|
|
2253
|
-
aliases: [
|
|
2254
|
-
"TreeDropdown"
|
|
2255
|
-
],
|
|
2307
|
+
aliases: [],
|
|
2256
2308
|
package: "@treeui/vue",
|
|
2257
2309
|
kind: "overlay",
|
|
2258
2310
|
category: "Overlay",
|
|
2259
2311
|
status: "available",
|
|
2260
2312
|
purpose: "Trigger + floating menu with keyboard navigation for action lists.",
|
|
2261
|
-
sourceFile: "packages/vue/src/components/
|
|
2313
|
+
sourceFile: "packages/vue/src/components/TDropdown.vue",
|
|
2262
2314
|
storyFile: "apps/docs/src/stories/Dropdown.stories.ts",
|
|
2263
2315
|
storyTitle: "Components/Overlay/Dropdown",
|
|
2264
2316
|
manifestFile: "docs/ai/COMPONENTS/dropdown.yaml",
|
|
2265
2317
|
props: [
|
|
2266
2318
|
{
|
|
2267
2319
|
name: "items",
|
|
2268
|
-
type: "
|
|
2320
|
+
type: "TDropdownItem[]",
|
|
2269
2321
|
default: "[]",
|
|
2270
2322
|
note: "Array of { label: string; value: string; disabled?: boolean }"
|
|
2271
2323
|
},
|
|
@@ -2286,7 +2338,7 @@ var treeui_catalog_default = {
|
|
|
2286
2338
|
},
|
|
2287
2339
|
{
|
|
2288
2340
|
name: "size",
|
|
2289
|
-
type: "
|
|
2341
|
+
type: "TSize",
|
|
2290
2342
|
default: "md",
|
|
2291
2343
|
values: [
|
|
2292
2344
|
"sm",
|
|
@@ -2366,16 +2418,13 @@ var treeui_catalog_default = {
|
|
|
2366
2418
|
},
|
|
2367
2419
|
{
|
|
2368
2420
|
name: "TEmptyState",
|
|
2369
|
-
|
|
2370
|
-
aliases: [
|
|
2371
|
-
"TreeEmptyState"
|
|
2372
|
-
],
|
|
2421
|
+
aliases: [],
|
|
2373
2422
|
package: "@treeui/vue",
|
|
2374
2423
|
kind: "feedback",
|
|
2375
2424
|
category: "Feedback",
|
|
2376
2425
|
status: "available",
|
|
2377
2426
|
purpose: "Structured empty, no-results, and first-run placeholder block with optional icon, body content, and actions.",
|
|
2378
|
-
sourceFile: "packages/vue/src/components/
|
|
2427
|
+
sourceFile: "packages/vue/src/components/TEmptyState.vue",
|
|
2379
2428
|
storyFile: "apps/docs/src/stories/EmptyState.stories.ts",
|
|
2380
2429
|
storyTitle: "Components/Feedback/EmptyState",
|
|
2381
2430
|
manifestFile: "docs/ai/COMPONENTS/empty-state.yaml",
|
|
@@ -2387,7 +2436,7 @@ var treeui_catalog_default = {
|
|
|
2387
2436
|
},
|
|
2388
2437
|
{
|
|
2389
2438
|
name: "size",
|
|
2390
|
-
type: "
|
|
2439
|
+
type: "TSize",
|
|
2391
2440
|
default: "md",
|
|
2392
2441
|
values: [
|
|
2393
2442
|
"sm",
|
|
@@ -2461,16 +2510,13 @@ var treeui_catalog_default = {
|
|
|
2461
2510
|
},
|
|
2462
2511
|
{
|
|
2463
2512
|
name: "TFileUpload",
|
|
2464
|
-
|
|
2465
|
-
aliases: [
|
|
2466
|
-
"TreeFileUpload"
|
|
2467
|
-
],
|
|
2513
|
+
aliases: [],
|
|
2468
2514
|
package: "@treeui/vue",
|
|
2469
2515
|
kind: "form",
|
|
2470
2516
|
category: "Form",
|
|
2471
2517
|
status: "available",
|
|
2472
2518
|
purpose: "Composable dropzone and file picker with browse, drag-and-drop, and Ctrl+V paste support.",
|
|
2473
|
-
sourceFile: "packages/vue/src/components/
|
|
2519
|
+
sourceFile: "packages/vue/src/components/TFileUpload.vue",
|
|
2474
2520
|
storyFile: "apps/docs/src/stories/FileUpload.stories.ts",
|
|
2475
2521
|
storyTitle: "Components/Form/FileUpload",
|
|
2476
2522
|
manifestFile: "docs/ai/COMPONENTS/file-upload.yaml",
|
|
@@ -2482,7 +2528,7 @@ var treeui_catalog_default = {
|
|
|
2482
2528
|
},
|
|
2483
2529
|
{
|
|
2484
2530
|
name: "size",
|
|
2485
|
-
type: "
|
|
2531
|
+
type: "TSize",
|
|
2486
2532
|
default: "md",
|
|
2487
2533
|
values: [
|
|
2488
2534
|
"sm",
|
|
@@ -2615,15 +2661,12 @@ var treeui_catalog_default = {
|
|
|
2615
2661
|
},
|
|
2616
2662
|
{
|
|
2617
2663
|
name: "TFormField",
|
|
2618
|
-
|
|
2619
|
-
aliases: [
|
|
2620
|
-
"TreeFormField"
|
|
2621
|
-
],
|
|
2664
|
+
aliases: [],
|
|
2622
2665
|
package: "@treeui/vue",
|
|
2623
2666
|
category: "Data Entry",
|
|
2624
2667
|
status: "milestone-1",
|
|
2625
2668
|
description: "Label + input wrapper with error and hint slots. Provides consistent layout, labelling, and validation messaging for any form control.\n",
|
|
2626
|
-
sourceFile: "packages/vue/src/components/
|
|
2669
|
+
sourceFile: "packages/vue/src/components/TFormField.vue",
|
|
2627
2670
|
storyFile: "apps/docs/src/stories/FormField.stories.ts",
|
|
2628
2671
|
storyTitle: "Components/Data Entry/FormField",
|
|
2629
2672
|
manifestFile: "docs/ai/COMPONENTS/form-field.yaml",
|
|
@@ -2666,7 +2709,7 @@ var treeui_catalog_default = {
|
|
|
2666
2709
|
},
|
|
2667
2710
|
{
|
|
2668
2711
|
name: "size",
|
|
2669
|
-
type: "
|
|
2712
|
+
type: "TSize",
|
|
2670
2713
|
default: "md",
|
|
2671
2714
|
values: [
|
|
2672
2715
|
"sm",
|
|
@@ -2740,21 +2783,20 @@ var treeui_catalog_default = {
|
|
|
2740
2783
|
"form-field-input",
|
|
2741
2784
|
"searchable-multi-choice",
|
|
2742
2785
|
"date-range-form",
|
|
2786
|
+
"color-field",
|
|
2787
|
+
"tag-input",
|
|
2743
2788
|
"hierarchy-picker"
|
|
2744
2789
|
]
|
|
2745
2790
|
},
|
|
2746
2791
|
{
|
|
2747
2792
|
name: "TGrid",
|
|
2748
|
-
|
|
2749
|
-
aliases: [
|
|
2750
|
-
"TreeGrid"
|
|
2751
|
-
],
|
|
2793
|
+
aliases: [],
|
|
2752
2794
|
package: "@treeui/vue",
|
|
2753
2795
|
kind: "layout",
|
|
2754
2796
|
category: "Layout",
|
|
2755
2797
|
status: "available",
|
|
2756
2798
|
purpose: "Responsive grid wrapper for cards, forms, stats, and other multi-column layouts.",
|
|
2757
|
-
sourceFile: "packages/vue/src/components/
|
|
2799
|
+
sourceFile: "packages/vue/src/components/TGrid.vue",
|
|
2758
2800
|
storyFile: "apps/docs/src/stories/Grid.stories.ts",
|
|
2759
2801
|
storyTitle: "Components/Layout/Grid",
|
|
2760
2802
|
manifestFile: "docs/ai/COMPONENTS/grid.yaml",
|
|
@@ -2847,17 +2889,104 @@ var treeui_catalog_default = {
|
|
|
2847
2889
|
]
|
|
2848
2890
|
},
|
|
2849
2891
|
{
|
|
2850
|
-
name: "
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2892
|
+
name: "TIcon",
|
|
2893
|
+
aliases: [],
|
|
2894
|
+
package: "@treeui/vue",
|
|
2895
|
+
kind: "display",
|
|
2896
|
+
category: "Data Display",
|
|
2897
|
+
status: "available",
|
|
2898
|
+
purpose: "Render a registered TreeUI icon by name with consistent sizing and accessibility defaults.",
|
|
2899
|
+
sourceFile: "packages/vue/src/components/TIcon.vue",
|
|
2900
|
+
storyFile: "apps/docs/src/stories/Icon.stories.ts",
|
|
2901
|
+
storyTitle: "Components/Data Display/Icon",
|
|
2902
|
+
manifestFile: "docs/ai/COMPONENTS/icon.yaml",
|
|
2903
|
+
props: [
|
|
2904
|
+
{
|
|
2905
|
+
name: "name",
|
|
2906
|
+
type: "TIconName",
|
|
2907
|
+
required: true,
|
|
2908
|
+
values: [
|
|
2909
|
+
"alert-circle",
|
|
2910
|
+
"calendar",
|
|
2911
|
+
"check",
|
|
2912
|
+
"chevron-left",
|
|
2913
|
+
"chevron-down",
|
|
2914
|
+
"chevron-right",
|
|
2915
|
+
"info",
|
|
2916
|
+
"loader-circle",
|
|
2917
|
+
"search",
|
|
2918
|
+
"x"
|
|
2919
|
+
],
|
|
2920
|
+
description: "Icon identifier from the @treeui/icons registry."
|
|
2921
|
+
},
|
|
2922
|
+
{
|
|
2923
|
+
name: "size",
|
|
2924
|
+
type: "number | string",
|
|
2925
|
+
default: "20",
|
|
2926
|
+
description: "Pixel size for both width and height of the rendered svg."
|
|
2927
|
+
},
|
|
2928
|
+
{
|
|
2929
|
+
name: "strokeWidth",
|
|
2930
|
+
type: "number | string",
|
|
2931
|
+
default: "2"
|
|
2932
|
+
},
|
|
2933
|
+
{
|
|
2934
|
+
name: "absoluteStrokeWidth",
|
|
2935
|
+
type: "boolean",
|
|
2936
|
+
default: "true",
|
|
2937
|
+
description: "When true, stroke width stays visually constant across sizes."
|
|
2938
|
+
},
|
|
2939
|
+
{
|
|
2940
|
+
name: "label",
|
|
2941
|
+
type: "string",
|
|
2942
|
+
default: "undefined",
|
|
2943
|
+
description: 'Accessible label. When set, the icon becomes role="img" with aria-label; otherwise it is aria-hidden.'
|
|
2944
|
+
}
|
|
2854
2945
|
],
|
|
2946
|
+
events: [],
|
|
2947
|
+
slots: [],
|
|
2948
|
+
a11y: [
|
|
2949
|
+
"decorative_by_default: true",
|
|
2950
|
+
"becomes_image_when_labeled: true",
|
|
2951
|
+
"rule: Provide `label` only when the icon conveys meaning that is not already in adjacent text."
|
|
2952
|
+
],
|
|
2953
|
+
behavior: [],
|
|
2954
|
+
selection: {
|
|
2955
|
+
keywords: [
|
|
2956
|
+
"icon",
|
|
2957
|
+
"svg",
|
|
2958
|
+
"glyph",
|
|
2959
|
+
"pictogram"
|
|
2960
|
+
],
|
|
2961
|
+
useWhen: [
|
|
2962
|
+
"You need to render a registered TreeUI icon by name.",
|
|
2963
|
+
"You want consistent sizing and a11y defaults without importing the icon component directly."
|
|
2964
|
+
],
|
|
2965
|
+
avoidWhen: [
|
|
2966
|
+
"The icon is not in the @treeui/icons registry \u2014 import or register it instead."
|
|
2967
|
+
],
|
|
2968
|
+
alternatives: [
|
|
2969
|
+
{
|
|
2970
|
+
component: "named import from @treeui/icons",
|
|
2971
|
+
when: "You need tree-shaken, statically-imported icon components."
|
|
2972
|
+
}
|
|
2973
|
+
]
|
|
2974
|
+
},
|
|
2975
|
+
setup: {
|
|
2976
|
+
required: [],
|
|
2977
|
+
notes: []
|
|
2978
|
+
},
|
|
2979
|
+
recipes: []
|
|
2980
|
+
},
|
|
2981
|
+
{
|
|
2982
|
+
name: "TInput",
|
|
2983
|
+
aliases: [],
|
|
2855
2984
|
package: "@treeui/vue",
|
|
2856
2985
|
kind: "primitive",
|
|
2857
2986
|
category: "Data Entry",
|
|
2858
2987
|
status: "available",
|
|
2859
2988
|
purpose: "Text input with size, loading, invalid, and prefix or suffix slots.",
|
|
2860
|
-
sourceFile: "packages/vue/src/components/
|
|
2989
|
+
sourceFile: "packages/vue/src/components/TInput.vue",
|
|
2861
2990
|
storyFile: "apps/docs/src/stories/Input.stories.ts",
|
|
2862
2991
|
storyTitle: "Components/Data Entry/Input",
|
|
2863
2992
|
manifestFile: "docs/ai/COMPONENTS/input.yaml",
|
|
@@ -2869,7 +2998,7 @@ var treeui_catalog_default = {
|
|
|
2869
2998
|
},
|
|
2870
2999
|
{
|
|
2871
3000
|
name: "size",
|
|
2872
|
-
type: "
|
|
3001
|
+
type: "TSize",
|
|
2873
3002
|
default: "md",
|
|
2874
3003
|
values: [
|
|
2875
3004
|
"sm",
|
|
@@ -2957,15 +3086,85 @@ var treeui_catalog_default = {
|
|
|
2957
3086
|
notes: []
|
|
2958
3087
|
},
|
|
2959
3088
|
recipes: [
|
|
2960
|
-
"form-field-input"
|
|
3089
|
+
"form-field-input",
|
|
3090
|
+
"tag-input"
|
|
2961
3091
|
]
|
|
2962
3092
|
},
|
|
2963
3093
|
{
|
|
2964
|
-
name: "
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
3094
|
+
name: "TLink",
|
|
3095
|
+
aliases: [],
|
|
3096
|
+
package: "@treeui/vue",
|
|
3097
|
+
kind: "navigation",
|
|
3098
|
+
category: "Navigation",
|
|
3099
|
+
status: "available",
|
|
3100
|
+
purpose: "Inline link with consistent styling, optional RouterLink rendering, and external link support.",
|
|
3101
|
+
sourceFile: "packages/vue/src/components/TLink.vue",
|
|
3102
|
+
storyFile: "apps/docs/src/stories/Link.stories.ts",
|
|
3103
|
+
storyTitle: "Components/Navigation/Link",
|
|
3104
|
+
manifestFile: "docs/ai/COMPONENTS/link.yaml",
|
|
3105
|
+
props: [
|
|
3106
|
+
{
|
|
3107
|
+
name: "to",
|
|
3108
|
+
type: "string | Record<string, unknown>",
|
|
3109
|
+
default: "undefined",
|
|
3110
|
+
description: "Route target. When provided and vue-router is available, renders RouterLink."
|
|
3111
|
+
},
|
|
3112
|
+
{
|
|
3113
|
+
name: "href",
|
|
3114
|
+
type: "string",
|
|
3115
|
+
default: "undefined",
|
|
3116
|
+
description: "Native href for anchor elements. Ignored when `to` is provided with vue-router."
|
|
3117
|
+
},
|
|
3118
|
+
{
|
|
3119
|
+
name: "external",
|
|
3120
|
+
type: "boolean",
|
|
3121
|
+
default: "false",
|
|
3122
|
+
description: "Opens link in new tab with rel='noopener noreferrer'."
|
|
3123
|
+
},
|
|
3124
|
+
{
|
|
3125
|
+
name: "disabled",
|
|
3126
|
+
type: "boolean",
|
|
3127
|
+
default: "false"
|
|
3128
|
+
},
|
|
3129
|
+
{
|
|
3130
|
+
name: "variant",
|
|
3131
|
+
type: "TLinkVariant",
|
|
3132
|
+
default: "default",
|
|
3133
|
+
values: [
|
|
3134
|
+
"default",
|
|
3135
|
+
"muted",
|
|
3136
|
+
"danger"
|
|
3137
|
+
]
|
|
3138
|
+
}
|
|
3139
|
+
],
|
|
3140
|
+
events: [],
|
|
3141
|
+
slots: [
|
|
3142
|
+
{
|
|
3143
|
+
name: "default"
|
|
3144
|
+
}
|
|
3145
|
+
],
|
|
3146
|
+
a11y: [
|
|
3147
|
+
"semantic_element: a (or RouterLink, or span when disabled)",
|
|
3148
|
+
"aria_disabled: set when disabled",
|
|
3149
|
+
"tabindex: -1 when disabled",
|
|
3150
|
+
"focus_visible: true"
|
|
2968
3151
|
],
|
|
3152
|
+
behavior: [],
|
|
3153
|
+
selection: {
|
|
3154
|
+
keywords: [],
|
|
3155
|
+
useWhen: [],
|
|
3156
|
+
avoidWhen: [],
|
|
3157
|
+
alternatives: []
|
|
3158
|
+
},
|
|
3159
|
+
setup: {
|
|
3160
|
+
required: [],
|
|
3161
|
+
notes: []
|
|
3162
|
+
},
|
|
3163
|
+
recipes: []
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
name: "TMarkdownEditor",
|
|
3167
|
+
aliases: [],
|
|
2969
3168
|
package: "@treeui/vue",
|
|
2970
3169
|
category: "Form",
|
|
2971
3170
|
status: "stable",
|
|
@@ -2982,7 +3181,7 @@ var treeui_catalog_default = {
|
|
|
2982
3181
|
},
|
|
2983
3182
|
{
|
|
2984
3183
|
name: "size",
|
|
2985
|
-
type: "
|
|
3184
|
+
type: "TSize",
|
|
2986
3185
|
default: "md",
|
|
2987
3186
|
values: [
|
|
2988
3187
|
"sm",
|
|
@@ -3067,16 +3266,13 @@ var treeui_catalog_default = {
|
|
|
3067
3266
|
},
|
|
3068
3267
|
{
|
|
3069
3268
|
name: "TModal",
|
|
3070
|
-
|
|
3071
|
-
aliases: [
|
|
3072
|
-
"TreeModal"
|
|
3073
|
-
],
|
|
3269
|
+
aliases: [],
|
|
3074
3270
|
package: "@treeui/vue",
|
|
3075
3271
|
kind: "overlay",
|
|
3076
3272
|
category: "Overlay",
|
|
3077
3273
|
status: "available",
|
|
3078
3274
|
purpose: "Accessible modal dialog for focused tasks and confirmations.",
|
|
3079
|
-
sourceFile: "packages/vue/src/components/
|
|
3275
|
+
sourceFile: "packages/vue/src/components/TModal.vue",
|
|
3080
3276
|
storyFile: "apps/docs/src/stories/Modal.stories.ts",
|
|
3081
3277
|
storyTitle: "Components/Overlay/Modal",
|
|
3082
3278
|
manifestFile: "docs/ai/COMPONENTS/modal.yaml",
|
|
@@ -3098,7 +3294,7 @@ var treeui_catalog_default = {
|
|
|
3098
3294
|
},
|
|
3099
3295
|
{
|
|
3100
3296
|
name: "size",
|
|
3101
|
-
type: "
|
|
3297
|
+
type: "TSize",
|
|
3102
3298
|
default: "md",
|
|
3103
3299
|
values: [
|
|
3104
3300
|
"sm",
|
|
@@ -3210,22 +3406,21 @@ var treeui_catalog_default = {
|
|
|
3210
3406
|
},
|
|
3211
3407
|
setup: {
|
|
3212
3408
|
required: [],
|
|
3213
|
-
notes: [
|
|
3409
|
+
notes: [
|
|
3410
|
+
"Use `v-model:open` for the idiomatic Vue controlled pattern."
|
|
3411
|
+
]
|
|
3214
3412
|
},
|
|
3215
3413
|
recipes: []
|
|
3216
3414
|
},
|
|
3217
3415
|
{
|
|
3218
3416
|
name: "TMultiSelect",
|
|
3219
|
-
|
|
3220
|
-
aliases: [
|
|
3221
|
-
"TreeMultiSelect"
|
|
3222
|
-
],
|
|
3417
|
+
aliases: [],
|
|
3223
3418
|
package: "@treeui/vue",
|
|
3224
3419
|
kind: "form",
|
|
3225
3420
|
category: "Data Entry",
|
|
3226
3421
|
status: "available",
|
|
3227
3422
|
purpose: "Searchable multi-select control that renders selected values as tags.",
|
|
3228
|
-
sourceFile: "packages/vue/src/components/
|
|
3423
|
+
sourceFile: "packages/vue/src/components/TMultiSelect.vue",
|
|
3229
3424
|
storyFile: "apps/docs/src/stories/MultiSelect.stories.ts",
|
|
3230
3425
|
storyTitle: "Components/Data Entry/MultiSelect",
|
|
3231
3426
|
manifestFile: "docs/ai/COMPONENTS/multi-select.yaml",
|
|
@@ -3237,7 +3432,7 @@ var treeui_catalog_default = {
|
|
|
3237
3432
|
},
|
|
3238
3433
|
{
|
|
3239
3434
|
name: "options",
|
|
3240
|
-
type: "
|
|
3435
|
+
type: "TMultiSelectOption[]",
|
|
3241
3436
|
default: "[]",
|
|
3242
3437
|
note: "Array of `{ label, value, description?, keywords?, disabled? }`."
|
|
3243
3438
|
},
|
|
@@ -3253,7 +3448,7 @@ var treeui_catalog_default = {
|
|
|
3253
3448
|
},
|
|
3254
3449
|
{
|
|
3255
3450
|
name: "size",
|
|
3256
|
-
type: "
|
|
3451
|
+
type: "TSize",
|
|
3257
3452
|
default: "md",
|
|
3258
3453
|
values: [
|
|
3259
3454
|
"sm",
|
|
@@ -3378,18 +3573,15 @@ var treeui_catalog_default = {
|
|
|
3378
3573
|
},
|
|
3379
3574
|
{
|
|
3380
3575
|
name: "TNavbar",
|
|
3381
|
-
legacyAlias: "TreeAppBar",
|
|
3382
3576
|
aliases: [
|
|
3383
|
-
"TAppBar"
|
|
3384
|
-
"TreeAppBar",
|
|
3385
|
-
"TreeNavbar"
|
|
3577
|
+
"TAppBar"
|
|
3386
3578
|
],
|
|
3387
3579
|
package: "@treeui/vue",
|
|
3388
3580
|
kind: "layout",
|
|
3389
3581
|
category: "Layout",
|
|
3390
3582
|
status: "available",
|
|
3391
3583
|
purpose: "Top application bar with start, center, and end content areas.",
|
|
3392
|
-
sourceFile: "packages/vue/src/components/
|
|
3584
|
+
sourceFile: "packages/vue/src/components/TNavbar.vue",
|
|
3393
3585
|
storyFile: "apps/docs/src/stories/Navbar.stories.ts",
|
|
3394
3586
|
storyTitle: "Components/Layout/Navbar",
|
|
3395
3587
|
manifestFile: "docs/ai/COMPONENTS/navbar.yaml",
|
|
@@ -3401,7 +3593,7 @@ var treeui_catalog_default = {
|
|
|
3401
3593
|
},
|
|
3402
3594
|
{
|
|
3403
3595
|
name: "size",
|
|
3404
|
-
type: "
|
|
3596
|
+
type: "TSize",
|
|
3405
3597
|
default: "md",
|
|
3406
3598
|
values: [
|
|
3407
3599
|
"sm",
|
|
@@ -3479,16 +3671,13 @@ var treeui_catalog_default = {
|
|
|
3479
3671
|
},
|
|
3480
3672
|
{
|
|
3481
3673
|
name: "TNavMenu",
|
|
3482
|
-
|
|
3483
|
-
aliases: [
|
|
3484
|
-
"TreeNavMenu"
|
|
3485
|
-
],
|
|
3674
|
+
aliases: [],
|
|
3486
3675
|
package: "@treeui/vue",
|
|
3487
3676
|
kind: "navigation",
|
|
3488
3677
|
category: "Layout",
|
|
3489
3678
|
status: "available",
|
|
3490
|
-
purpose: "
|
|
3491
|
-
sourceFile: "packages/vue/src/components/
|
|
3679
|
+
purpose: "Vertical navigation menu with selection state, keyboard navigation, optional RouterLink rendering, and sidebar integration.",
|
|
3680
|
+
sourceFile: "packages/vue/src/components/TNavMenu.vue",
|
|
3492
3681
|
storyFile: "apps/docs/src/stories/NavMenu.stories.ts",
|
|
3493
3682
|
storyTitle: "Components/Layout/NavMenu",
|
|
3494
3683
|
manifestFile: "docs/ai/COMPONENTS/nav-menu.yaml",
|
|
@@ -3505,13 +3694,13 @@ var treeui_catalog_default = {
|
|
|
3505
3694
|
},
|
|
3506
3695
|
{
|
|
3507
3696
|
name: "items",
|
|
3508
|
-
type: "
|
|
3697
|
+
type: "TNavMenuItem[]",
|
|
3509
3698
|
default: "[]",
|
|
3510
|
-
note: "Array of `{ label, value, shortLabel?, description?, badge?, disabled? }`."
|
|
3699
|
+
note: "Array of `{ label, value, shortLabel?, description?, icon?, to?, badge?, disabled? }`."
|
|
3511
3700
|
},
|
|
3512
3701
|
{
|
|
3513
3702
|
name: "size",
|
|
3514
|
-
type: "
|
|
3703
|
+
type: "TSize",
|
|
3515
3704
|
default: "md",
|
|
3516
3705
|
values: [
|
|
3517
3706
|
"sm",
|
|
@@ -3551,7 +3740,9 @@ var treeui_catalog_default = {
|
|
|
3551
3740
|
"roving_focus: true",
|
|
3552
3741
|
"home_end_navigation: true",
|
|
3553
3742
|
"arrow_navigation: true",
|
|
3554
|
-
"activation_keys_select_item: true"
|
|
3743
|
+
"activation_keys_select_item: true",
|
|
3744
|
+
"aria_current: page on selected item",
|
|
3745
|
+
"aria_disabled: on link items when disabled"
|
|
3555
3746
|
],
|
|
3556
3747
|
behavior: [
|
|
3557
3748
|
"can_be_controlled_or_uncontrolled: true",
|
|
@@ -3593,16 +3784,13 @@ var treeui_catalog_default = {
|
|
|
3593
3784
|
},
|
|
3594
3785
|
{
|
|
3595
3786
|
name: "TNumberInput",
|
|
3596
|
-
|
|
3597
|
-
aliases: [
|
|
3598
|
-
"TreeNumberInput"
|
|
3599
|
-
],
|
|
3787
|
+
aliases: [],
|
|
3600
3788
|
package: "@treeui/vue",
|
|
3601
3789
|
kind: "form",
|
|
3602
3790
|
category: "Data Entry",
|
|
3603
3791
|
status: "available",
|
|
3604
3792
|
purpose: "Numeric input with optional increment and decrement controls.",
|
|
3605
|
-
sourceFile: "packages/vue/src/components/
|
|
3793
|
+
sourceFile: "packages/vue/src/components/TNumberInput.vue",
|
|
3606
3794
|
storyFile: "apps/docs/src/stories/NumberInput.stories.ts",
|
|
3607
3795
|
storyTitle: "Components/Data Entry/NumberInput",
|
|
3608
3796
|
manifestFile: "docs/ai/COMPONENTS/number-input.yaml",
|
|
@@ -3628,7 +3816,7 @@ var treeui_catalog_default = {
|
|
|
3628
3816
|
},
|
|
3629
3817
|
{
|
|
3630
3818
|
name: "size",
|
|
3631
|
-
type: "
|
|
3819
|
+
type: "TSize",
|
|
3632
3820
|
default: "md",
|
|
3633
3821
|
values: [
|
|
3634
3822
|
"sm",
|
|
@@ -3703,16 +3891,13 @@ var treeui_catalog_default = {
|
|
|
3703
3891
|
},
|
|
3704
3892
|
{
|
|
3705
3893
|
name: "TPagination",
|
|
3706
|
-
|
|
3707
|
-
aliases: [
|
|
3708
|
-
"TreePagination"
|
|
3709
|
-
],
|
|
3894
|
+
aliases: [],
|
|
3710
3895
|
package: "@treeui/vue",
|
|
3711
3896
|
kind: "primitive",
|
|
3712
3897
|
category: "Navigation",
|
|
3713
3898
|
status: "available",
|
|
3714
3899
|
purpose: "Page controls with previous/next navigation, numbered page buttons, and ellipsis for large page ranges. Supports v-model for the active page.\n",
|
|
3715
|
-
sourceFile: "packages/vue/src/components/
|
|
3900
|
+
sourceFile: "packages/vue/src/components/TPagination.vue",
|
|
3716
3901
|
storyFile: "apps/docs/src/stories/Pagination.stories.ts",
|
|
3717
3902
|
storyTitle: "Components/Navigation/Pagination",
|
|
3718
3903
|
manifestFile: "docs/ai/COMPONENTS/pagination.yaml",
|
|
@@ -3737,7 +3922,7 @@ var treeui_catalog_default = {
|
|
|
3737
3922
|
},
|
|
3738
3923
|
{
|
|
3739
3924
|
name: "size",
|
|
3740
|
-
type: "
|
|
3925
|
+
type: "TSize",
|
|
3741
3926
|
default: "md",
|
|
3742
3927
|
values: [
|
|
3743
3928
|
"sm",
|
|
@@ -3819,10 +4004,7 @@ var treeui_catalog_default = {
|
|
|
3819
4004
|
},
|
|
3820
4005
|
{
|
|
3821
4006
|
name: "TPopover",
|
|
3822
|
-
|
|
3823
|
-
aliases: [
|
|
3824
|
-
"TreePopover"
|
|
3825
|
-
],
|
|
4007
|
+
aliases: [],
|
|
3826
4008
|
package: "@treeui/vue",
|
|
3827
4009
|
category: "Overlay",
|
|
3828
4010
|
status: "stable",
|
|
@@ -3925,10 +4107,7 @@ var treeui_catalog_default = {
|
|
|
3925
4107
|
},
|
|
3926
4108
|
{
|
|
3927
4109
|
name: "TPricing",
|
|
3928
|
-
|
|
3929
|
-
aliases: [
|
|
3930
|
-
"TreePricing"
|
|
3931
|
-
],
|
|
4110
|
+
aliases: [],
|
|
3932
4111
|
package: "@treeui/vue",
|
|
3933
4112
|
status: "stable",
|
|
3934
4113
|
description: "Grid wrapper that renders multiple PricingCard components from an array of plan objects.\n",
|
|
@@ -3944,7 +4123,7 @@ var treeui_catalog_default = {
|
|
|
3944
4123
|
},
|
|
3945
4124
|
{
|
|
3946
4125
|
name: "size",
|
|
3947
|
-
type: "
|
|
4126
|
+
type: "TSize",
|
|
3948
4127
|
default: "md",
|
|
3949
4128
|
description: "Size applied to all child pricing cards."
|
|
3950
4129
|
},
|
|
@@ -3992,10 +4171,7 @@ var treeui_catalog_default = {
|
|
|
3992
4171
|
},
|
|
3993
4172
|
{
|
|
3994
4173
|
name: "TPricingCard",
|
|
3995
|
-
|
|
3996
|
-
aliases: [
|
|
3997
|
-
"TreePricingCard"
|
|
3998
|
-
],
|
|
4174
|
+
aliases: [],
|
|
3999
4175
|
package: "@treeui/vue",
|
|
4000
4176
|
category: "Data Display",
|
|
4001
4177
|
status: "stable",
|
|
@@ -4060,7 +4236,7 @@ var treeui_catalog_default = {
|
|
|
4060
4236
|
},
|
|
4061
4237
|
{
|
|
4062
4238
|
name: "size",
|
|
4063
|
-
type: "
|
|
4239
|
+
type: "TSize",
|
|
4064
4240
|
default: "md",
|
|
4065
4241
|
description: "Card size \u2014 affects padding, font sizes."
|
|
4066
4242
|
},
|
|
@@ -4105,7 +4281,7 @@ var treeui_catalog_default = {
|
|
|
4105
4281
|
"Uses <h3> for plan title.",
|
|
4106
4282
|
'Feature list uses role="list" with <ul>/<li>.',
|
|
4107
4283
|
'Feature icons are aria-hidden="true".',
|
|
4108
|
-
"CTA button inherits
|
|
4284
|
+
"CTA button inherits TButton a11y (disabled, aria-busy)."
|
|
4109
4285
|
],
|
|
4110
4286
|
behavior: [],
|
|
4111
4287
|
selection: {
|
|
@@ -4124,10 +4300,7 @@ var treeui_catalog_default = {
|
|
|
4124
4300
|
},
|
|
4125
4301
|
{
|
|
4126
4302
|
name: "TProgress",
|
|
4127
|
-
|
|
4128
|
-
aliases: [
|
|
4129
|
-
"TreeProgress"
|
|
4130
|
-
],
|
|
4303
|
+
aliases: [],
|
|
4131
4304
|
package: "@treeui/vue",
|
|
4132
4305
|
category: "Feedback",
|
|
4133
4306
|
status: "draft",
|
|
@@ -4150,7 +4323,7 @@ var treeui_catalog_default = {
|
|
|
4150
4323
|
},
|
|
4151
4324
|
{
|
|
4152
4325
|
name: "size",
|
|
4153
|
-
type: "
|
|
4326
|
+
type: "TSize",
|
|
4154
4327
|
default: "md",
|
|
4155
4328
|
values: [
|
|
4156
4329
|
"sm",
|
|
@@ -4188,15 +4361,12 @@ var treeui_catalog_default = {
|
|
|
4188
4361
|
},
|
|
4189
4362
|
{
|
|
4190
4363
|
name: "TRadio",
|
|
4191
|
-
|
|
4192
|
-
aliases: [
|
|
4193
|
-
"TreeRadio"
|
|
4194
|
-
],
|
|
4364
|
+
aliases: [],
|
|
4195
4365
|
package: "@treeui/vue",
|
|
4196
4366
|
kind: "primitive",
|
|
4197
4367
|
status: "available",
|
|
4198
4368
|
purpose: "Single radio option within a TRadioGroup; renders a native radio input.",
|
|
4199
|
-
sourceFile: "packages/vue/src/components/
|
|
4369
|
+
sourceFile: "packages/vue/src/components/TRadio.vue",
|
|
4200
4370
|
manifestFile: "docs/ai/COMPONENTS/radio.yaml",
|
|
4201
4371
|
props: [
|
|
4202
4372
|
{
|
|
@@ -4216,7 +4386,7 @@ var treeui_catalog_default = {
|
|
|
4216
4386
|
},
|
|
4217
4387
|
{
|
|
4218
4388
|
name: "size",
|
|
4219
|
-
type: "
|
|
4389
|
+
type: "TSize",
|
|
4220
4390
|
default: "inherited_from_group",
|
|
4221
4391
|
values: [
|
|
4222
4392
|
"sm",
|
|
@@ -4259,16 +4429,13 @@ var treeui_catalog_default = {
|
|
|
4259
4429
|
},
|
|
4260
4430
|
{
|
|
4261
4431
|
name: "TRadioGroup",
|
|
4262
|
-
|
|
4263
|
-
aliases: [
|
|
4264
|
-
"TreeRadioGroup"
|
|
4265
|
-
],
|
|
4432
|
+
aliases: [],
|
|
4266
4433
|
package: "@treeui/vue",
|
|
4267
4434
|
kind: "primitive",
|
|
4268
4435
|
category: "Data Entry",
|
|
4269
4436
|
status: "available",
|
|
4270
4437
|
purpose: "Container for TRadio options; manages v-model for single-select from a group.",
|
|
4271
|
-
sourceFile: "packages/vue/src/components/
|
|
4438
|
+
sourceFile: "packages/vue/src/components/TRadioGroup.vue",
|
|
4272
4439
|
storyFile: "apps/docs/src/stories/Radio.stories.ts",
|
|
4273
4440
|
storyTitle: "Components/Data Entry/Radio",
|
|
4274
4441
|
manifestFile: "docs/ai/COMPONENTS/radio.yaml",
|
|
@@ -4295,7 +4462,7 @@ var treeui_catalog_default = {
|
|
|
4295
4462
|
},
|
|
4296
4463
|
{
|
|
4297
4464
|
name: "size",
|
|
4298
|
-
type: "
|
|
4465
|
+
type: "TSize",
|
|
4299
4466
|
default: "md",
|
|
4300
4467
|
values: [
|
|
4301
4468
|
"sm",
|
|
@@ -4337,30 +4504,27 @@ var treeui_catalog_default = {
|
|
|
4337
4504
|
},
|
|
4338
4505
|
{
|
|
4339
4506
|
name: "TSelect",
|
|
4340
|
-
|
|
4341
|
-
aliases: [
|
|
4342
|
-
"TreeSelect"
|
|
4343
|
-
],
|
|
4507
|
+
aliases: [],
|
|
4344
4508
|
package: "@treeui/vue",
|
|
4345
4509
|
kind: "primitive",
|
|
4346
4510
|
category: "Data Entry",
|
|
4347
4511
|
status: "available",
|
|
4348
4512
|
purpose: "Custom styled dropdown select with listbox; controlled and uncontrolled via v-model and open/defaultOpen.",
|
|
4349
|
-
sourceFile: "packages/vue/src/components/
|
|
4513
|
+
sourceFile: "packages/vue/src/components/TSelect.vue",
|
|
4350
4514
|
storyFile: "apps/docs/src/stories/Select.stories.ts",
|
|
4351
4515
|
storyTitle: "Components/Data Entry/Select",
|
|
4352
4516
|
manifestFile: "docs/ai/COMPONENTS/select.yaml",
|
|
4353
4517
|
props: [
|
|
4354
4518
|
{
|
|
4355
4519
|
name: "modelValue",
|
|
4356
|
-
type: "string",
|
|
4520
|
+
type: "string | number",
|
|
4357
4521
|
default: ""
|
|
4358
4522
|
},
|
|
4359
4523
|
{
|
|
4360
4524
|
name: "options",
|
|
4361
|
-
type: "
|
|
4525
|
+
type: "TSelectOption[]",
|
|
4362
4526
|
default: "[]",
|
|
4363
|
-
note: "Array of { label: string; value: string; disabled?: boolean }"
|
|
4527
|
+
note: "Array of { label: string; value: string | number; disabled?: boolean }"
|
|
4364
4528
|
},
|
|
4365
4529
|
{
|
|
4366
4530
|
name: "open",
|
|
@@ -4374,7 +4538,7 @@ var treeui_catalog_default = {
|
|
|
4374
4538
|
},
|
|
4375
4539
|
{
|
|
4376
4540
|
name: "size",
|
|
4377
|
-
type: "
|
|
4541
|
+
type: "TSize",
|
|
4378
4542
|
default: "md",
|
|
4379
4543
|
values: [
|
|
4380
4544
|
"sm",
|
|
@@ -4434,13 +4598,14 @@ var treeui_catalog_default = {
|
|
|
4434
4598
|
"home_end_navigation: true"
|
|
4435
4599
|
],
|
|
4436
4600
|
behavior: [
|
|
4437
|
-
"update_payload_type: string",
|
|
4601
|
+
"update_payload_type: string | number",
|
|
4438
4602
|
"loading_does_not_disable_by_itself: true",
|
|
4439
4603
|
"placeholder_shown_as_muted_text: true",
|
|
4440
4604
|
"chevron_rotates_when_open: true",
|
|
4441
4605
|
"check_icon_on_selected_option: true",
|
|
4442
4606
|
"outside_click_closes_dropdown: true",
|
|
4443
|
-
"focus_restores_on_close: true"
|
|
4607
|
+
"focus_restores_on_close: true",
|
|
4608
|
+
"numeric_values_supported_without_string_coercion: true"
|
|
4444
4609
|
],
|
|
4445
4610
|
selection: {
|
|
4446
4611
|
keywords: [
|
|
@@ -4469,7 +4634,7 @@ var treeui_catalog_default = {
|
|
|
4469
4634
|
setup: {
|
|
4470
4635
|
required: [],
|
|
4471
4636
|
notes: [
|
|
4472
|
-
"Pass `options` as `{ label, value, disabled? }[]`.",
|
|
4637
|
+
"Pass `options` as `{ label, value, disabled? }[]` where `value` can be `string` or `number`.",
|
|
4473
4638
|
"Use `placeholder` when no selection has been made."
|
|
4474
4639
|
]
|
|
4475
4640
|
},
|
|
@@ -4477,16 +4642,13 @@ var treeui_catalog_default = {
|
|
|
4477
4642
|
},
|
|
4478
4643
|
{
|
|
4479
4644
|
name: "TSelectableList",
|
|
4480
|
-
|
|
4481
|
-
aliases: [
|
|
4482
|
-
"TreeSelectableList"
|
|
4483
|
-
],
|
|
4645
|
+
aliases: [],
|
|
4484
4646
|
package: "@treeui/vue",
|
|
4485
4647
|
kind: "selection",
|
|
4486
4648
|
category: "Navigation & Disclosure",
|
|
4487
4649
|
status: "available",
|
|
4488
4650
|
purpose: "Rich single-selection list for options with description and metadata.",
|
|
4489
|
-
sourceFile: "packages/vue/src/components/
|
|
4651
|
+
sourceFile: "packages/vue/src/components/TSelectableList.vue",
|
|
4490
4652
|
storyFile: "apps/docs/src/stories/SelectableList.stories.ts",
|
|
4491
4653
|
storyTitle: "Components/Navigation & Disclosure/SelectableList",
|
|
4492
4654
|
manifestFile: "docs/ai/COMPONENTS/selectable-list.yaml",
|
|
@@ -4503,13 +4665,13 @@ var treeui_catalog_default = {
|
|
|
4503
4665
|
},
|
|
4504
4666
|
{
|
|
4505
4667
|
name: "items",
|
|
4506
|
-
type: "
|
|
4668
|
+
type: "TSelectableListItem[]",
|
|
4507
4669
|
default: "[]",
|
|
4508
4670
|
note: "Array of `{ label, value, description?, meta?, disabled? }`."
|
|
4509
4671
|
},
|
|
4510
4672
|
{
|
|
4511
4673
|
name: "size",
|
|
4512
|
-
type: "
|
|
4674
|
+
type: "TSize",
|
|
4513
4675
|
default: "md",
|
|
4514
4676
|
values: [
|
|
4515
4677
|
"sm",
|
|
@@ -4586,16 +4748,13 @@ var treeui_catalog_default = {
|
|
|
4586
4748
|
},
|
|
4587
4749
|
{
|
|
4588
4750
|
name: "TSidebar",
|
|
4589
|
-
|
|
4590
|
-
aliases: [
|
|
4591
|
-
"TreeSidebar"
|
|
4592
|
-
],
|
|
4751
|
+
aliases: [],
|
|
4593
4752
|
package: "@treeui/vue",
|
|
4594
4753
|
kind: "layout",
|
|
4595
4754
|
category: "Layout",
|
|
4596
4755
|
status: "available",
|
|
4597
4756
|
purpose: "Persistent or collapsible side shell for app navigation and secondary workspace controls.",
|
|
4598
|
-
sourceFile: "packages/vue/src/components/
|
|
4757
|
+
sourceFile: "packages/vue/src/components/TSidebar.vue",
|
|
4599
4758
|
storyFile: "apps/docs/src/stories/Sidebar.stories.ts",
|
|
4600
4759
|
storyTitle: "Components/Layout/Sidebar",
|
|
4601
4760
|
manifestFile: "docs/ai/COMPONENTS/sidebar.yaml",
|
|
@@ -4622,7 +4781,7 @@ var treeui_catalog_default = {
|
|
|
4622
4781
|
},
|
|
4623
4782
|
{
|
|
4624
4783
|
name: "size",
|
|
4625
|
-
type: "
|
|
4784
|
+
type: "TSize",
|
|
4626
4785
|
default: "md",
|
|
4627
4786
|
values: [
|
|
4628
4787
|
"sm",
|
|
@@ -4632,7 +4791,7 @@ var treeui_catalog_default = {
|
|
|
4632
4791
|
},
|
|
4633
4792
|
{
|
|
4634
4793
|
name: "side",
|
|
4635
|
-
type: "
|
|
4794
|
+
type: "TSidebarSide",
|
|
4636
4795
|
default: "left",
|
|
4637
4796
|
values: [
|
|
4638
4797
|
"left",
|
|
@@ -4735,16 +4894,13 @@ var treeui_catalog_default = {
|
|
|
4735
4894
|
},
|
|
4736
4895
|
{
|
|
4737
4896
|
name: "TSkeleton",
|
|
4738
|
-
|
|
4739
|
-
aliases: [
|
|
4740
|
-
"TreeSkeleton"
|
|
4741
|
-
],
|
|
4897
|
+
aliases: [],
|
|
4742
4898
|
package: "@treeui/vue",
|
|
4743
4899
|
kind: "feedback",
|
|
4744
4900
|
category: "Feedback",
|
|
4745
4901
|
status: "available",
|
|
4746
4902
|
purpose: "Placeholder shimmer for loading states. Renders an animated block that indicates content is being loaded.",
|
|
4747
|
-
sourceFile: "packages/vue/src/components/
|
|
4903
|
+
sourceFile: "packages/vue/src/components/TSkeleton.vue",
|
|
4748
4904
|
storyFile: "apps/docs/src/stories/Skeleton.stories.ts",
|
|
4749
4905
|
storyTitle: "Components/Feedback/Skeleton",
|
|
4750
4906
|
manifestFile: "docs/ai/COMPONENTS/skeleton.yaml",
|
|
@@ -4801,23 +4957,20 @@ var treeui_catalog_default = {
|
|
|
4801
4957
|
},
|
|
4802
4958
|
{
|
|
4803
4959
|
name: "TSpinner",
|
|
4804
|
-
|
|
4805
|
-
aliases: [
|
|
4806
|
-
"TreeSpinner"
|
|
4807
|
-
],
|
|
4960
|
+
aliases: [],
|
|
4808
4961
|
package: "@treeui/vue",
|
|
4809
4962
|
kind: "feedback",
|
|
4810
4963
|
category: "Feedback",
|
|
4811
4964
|
status: "available",
|
|
4812
4965
|
purpose: "Accessible loading indicator.",
|
|
4813
|
-
sourceFile: "packages/vue/src/components/
|
|
4966
|
+
sourceFile: "packages/vue/src/components/TSpinner.vue",
|
|
4814
4967
|
storyFile: "apps/docs/src/stories/Spinner.stories.ts",
|
|
4815
4968
|
storyTitle: "Components/Feedback/Spinner",
|
|
4816
4969
|
manifestFile: "docs/ai/COMPONENTS/spinner.yaml",
|
|
4817
4970
|
props: [
|
|
4818
4971
|
{
|
|
4819
4972
|
name: "size",
|
|
4820
|
-
type: "
|
|
4973
|
+
type: "TSize",
|
|
4821
4974
|
default: "md",
|
|
4822
4975
|
values: [
|
|
4823
4976
|
"sm",
|
|
@@ -4853,16 +5006,13 @@ var treeui_catalog_default = {
|
|
|
4853
5006
|
},
|
|
4854
5007
|
{
|
|
4855
5008
|
name: "TStack",
|
|
4856
|
-
|
|
4857
|
-
aliases: [
|
|
4858
|
-
"TreeStack"
|
|
4859
|
-
],
|
|
5009
|
+
aliases: [],
|
|
4860
5010
|
package: "@treeui/vue",
|
|
4861
5011
|
kind: "layout",
|
|
4862
5012
|
category: "Layout",
|
|
4863
5013
|
status: "available",
|
|
4864
5014
|
purpose: "One-dimensional spacing and alignment wrapper for vertical or horizontal compositions.",
|
|
4865
|
-
sourceFile: "packages/vue/src/components/
|
|
5015
|
+
sourceFile: "packages/vue/src/components/TStack.vue",
|
|
4866
5016
|
storyFile: "apps/docs/src/stories/Stack.stories.ts",
|
|
4867
5017
|
storyTitle: "Components/Layout/Stack",
|
|
4868
5018
|
manifestFile: "docs/ai/COMPONENTS/stack.yaml",
|
|
@@ -4874,7 +5024,7 @@ var treeui_catalog_default = {
|
|
|
4874
5024
|
},
|
|
4875
5025
|
{
|
|
4876
5026
|
name: "direction",
|
|
4877
|
-
type: "
|
|
5027
|
+
type: "TStackDirection",
|
|
4878
5028
|
default: "vertical",
|
|
4879
5029
|
values: [
|
|
4880
5030
|
"vertical",
|
|
@@ -4947,21 +5097,20 @@ var treeui_catalog_default = {
|
|
|
4947
5097
|
notes: []
|
|
4948
5098
|
},
|
|
4949
5099
|
recipes: [
|
|
4950
|
-
"
|
|
5100
|
+
"tag-input",
|
|
5101
|
+
"data-listing",
|
|
5102
|
+
"chart-surface"
|
|
4951
5103
|
]
|
|
4952
5104
|
},
|
|
4953
5105
|
{
|
|
4954
5106
|
name: "TStat",
|
|
4955
|
-
|
|
4956
|
-
aliases: [
|
|
4957
|
-
"TreeStat"
|
|
4958
|
-
],
|
|
5107
|
+
aliases: [],
|
|
4959
5108
|
package: "@treeui/vue",
|
|
4960
5109
|
kind: "data-display",
|
|
4961
5110
|
category: "Data Display",
|
|
4962
5111
|
status: "available",
|
|
4963
5112
|
purpose: "Compact KPI display with label, value, trend, metadata, and optional icon.",
|
|
4964
|
-
sourceFile: "packages/vue/src/components/
|
|
5113
|
+
sourceFile: "packages/vue/src/components/TStat.vue",
|
|
4965
5114
|
storyFile: "apps/docs/src/stories/Stat.stories.ts",
|
|
4966
5115
|
storyTitle: "Components/Data Display/Stat",
|
|
4967
5116
|
manifestFile: "docs/ai/COMPONENTS/stat.yaml",
|
|
@@ -4988,7 +5137,7 @@ var treeui_catalog_default = {
|
|
|
4988
5137
|
},
|
|
4989
5138
|
{
|
|
4990
5139
|
name: "tone",
|
|
4991
|
-
type: "
|
|
5140
|
+
type: "TStatTone",
|
|
4992
5141
|
default: "neutral",
|
|
4993
5142
|
values: [
|
|
4994
5143
|
"neutral",
|
|
@@ -5000,13 +5149,18 @@ var treeui_catalog_default = {
|
|
|
5000
5149
|
},
|
|
5001
5150
|
{
|
|
5002
5151
|
name: "trendDirection",
|
|
5003
|
-
type: "
|
|
5152
|
+
type: "TStatTrendDirection",
|
|
5004
5153
|
default: "neutral",
|
|
5005
5154
|
values: [
|
|
5006
5155
|
"up",
|
|
5007
5156
|
"down",
|
|
5008
5157
|
"neutral"
|
|
5009
5158
|
]
|
|
5159
|
+
},
|
|
5160
|
+
{
|
|
5161
|
+
name: "loading",
|
|
5162
|
+
type: "boolean",
|
|
5163
|
+
default: "false"
|
|
5010
5164
|
}
|
|
5011
5165
|
],
|
|
5012
5166
|
events: [],
|
|
@@ -5034,7 +5188,8 @@ var treeui_catalog_default = {
|
|
|
5034
5188
|
behavior: [
|
|
5035
5189
|
"value_and_trend_are_optional: true",
|
|
5036
5190
|
"icon_slot_adds_visual_emphasis: true",
|
|
5037
|
-
"trend_indicator_changes_with_direction: true"
|
|
5191
|
+
"trend_indicator_changes_with_direction: true",
|
|
5192
|
+
"loading_renders_internal_skeleton_placeholders: true"
|
|
5038
5193
|
],
|
|
5039
5194
|
selection: {
|
|
5040
5195
|
keywords: [
|
|
@@ -5066,18 +5221,15 @@ var treeui_catalog_default = {
|
|
|
5066
5221
|
},
|
|
5067
5222
|
{
|
|
5068
5223
|
name: "TSteps",
|
|
5069
|
-
legacyAlias: "TreeStepper",
|
|
5070
5224
|
aliases: [
|
|
5071
|
-
"TStepper"
|
|
5072
|
-
"TreeStepper",
|
|
5073
|
-
"TreeSteps"
|
|
5225
|
+
"TStepper"
|
|
5074
5226
|
],
|
|
5075
5227
|
package: "@treeui/vue",
|
|
5076
5228
|
kind: "navigation",
|
|
5077
5229
|
category: "Navigation & Disclosure",
|
|
5078
5230
|
status: "available",
|
|
5079
5231
|
purpose: "Stepper component for visualizing workflow progress, with optional interactive selection.",
|
|
5080
|
-
sourceFile: "packages/vue/src/components/
|
|
5232
|
+
sourceFile: "packages/vue/src/components/TSteps.vue",
|
|
5081
5233
|
storyFile: "apps/docs/src/stories/Steps.stories.ts",
|
|
5082
5234
|
storyTitle: "Components/Navigation & Disclosure/Steps",
|
|
5083
5235
|
manifestFile: "docs/ai/COMPONENTS/steps.yaml",
|
|
@@ -5094,13 +5246,13 @@ var treeui_catalog_default = {
|
|
|
5094
5246
|
},
|
|
5095
5247
|
{
|
|
5096
5248
|
name: "items",
|
|
5097
|
-
type: "
|
|
5249
|
+
type: "TStepItem[]",
|
|
5098
5250
|
default: "[]",
|
|
5099
5251
|
note: "Array of `{ label, value, description?, meta?, status?, disabled? }`."
|
|
5100
5252
|
},
|
|
5101
5253
|
{
|
|
5102
5254
|
name: "size",
|
|
5103
|
-
type: "
|
|
5255
|
+
type: "TSize",
|
|
5104
5256
|
default: "md",
|
|
5105
5257
|
values: [
|
|
5106
5258
|
"sm",
|
|
@@ -5110,7 +5262,7 @@ var treeui_catalog_default = {
|
|
|
5110
5262
|
},
|
|
5111
5263
|
{
|
|
5112
5264
|
name: "orientation",
|
|
5113
|
-
type: "
|
|
5265
|
+
type: "TStepOrientation",
|
|
5114
5266
|
default: "horizontal",
|
|
5115
5267
|
values: [
|
|
5116
5268
|
"horizontal",
|
|
@@ -5173,16 +5325,13 @@ var treeui_catalog_default = {
|
|
|
5173
5325
|
},
|
|
5174
5326
|
{
|
|
5175
5327
|
name: "TSwitch",
|
|
5176
|
-
|
|
5177
|
-
aliases: [
|
|
5178
|
-
"TreeSwitch"
|
|
5179
|
-
],
|
|
5328
|
+
aliases: [],
|
|
5180
5329
|
package: "@treeui/vue",
|
|
5181
5330
|
kind: "primitive",
|
|
5182
5331
|
category: "Data Entry",
|
|
5183
5332
|
status: "available",
|
|
5184
5333
|
purpose: "On/off toggle; semantic alternative to checkbox for settings. Supports v-model via modelValue.",
|
|
5185
|
-
sourceFile: "packages/vue/src/components/
|
|
5334
|
+
sourceFile: "packages/vue/src/components/TSwitch.vue",
|
|
5186
5335
|
storyFile: "apps/docs/src/stories/Switch.stories.ts",
|
|
5187
5336
|
storyTitle: "Components/Data Entry/Switch",
|
|
5188
5337
|
manifestFile: "docs/ai/COMPONENTS/switch.yaml",
|
|
@@ -5194,7 +5343,7 @@ var treeui_catalog_default = {
|
|
|
5194
5343
|
},
|
|
5195
5344
|
{
|
|
5196
5345
|
name: "size",
|
|
5197
|
-
type: "
|
|
5346
|
+
type: "TSize",
|
|
5198
5347
|
default: "md",
|
|
5199
5348
|
values: [
|
|
5200
5349
|
"sm",
|
|
@@ -5265,21 +5414,18 @@ var treeui_catalog_default = {
|
|
|
5265
5414
|
},
|
|
5266
5415
|
{
|
|
5267
5416
|
name: "TTable",
|
|
5268
|
-
|
|
5269
|
-
aliases: [
|
|
5270
|
-
"TreeTable"
|
|
5271
|
-
],
|
|
5417
|
+
aliases: [],
|
|
5272
5418
|
package: "@treeui/vue",
|
|
5273
5419
|
category: "Data Display",
|
|
5274
5420
|
description: "Sortable, accessible data table with column definitions and row data.",
|
|
5275
|
-
sourceFile: "packages/vue/src/components/
|
|
5421
|
+
sourceFile: "packages/vue/src/components/TTable.vue",
|
|
5276
5422
|
storyFile: "apps/docs/src/stories/Table.stories.ts",
|
|
5277
5423
|
storyTitle: "Components/Data Display/Table",
|
|
5278
5424
|
manifestFile: "docs/ai/COMPONENTS/table.yaml",
|
|
5279
5425
|
props: [
|
|
5280
5426
|
{
|
|
5281
5427
|
name: "columns",
|
|
5282
|
-
type: "
|
|
5428
|
+
type: "TTableColumn[]",
|
|
5283
5429
|
required: true,
|
|
5284
5430
|
description: "Array of column definitions with key, label, sortable, align, and width."
|
|
5285
5431
|
},
|
|
@@ -5291,7 +5437,7 @@ var treeui_catalog_default = {
|
|
|
5291
5437
|
},
|
|
5292
5438
|
{
|
|
5293
5439
|
name: "size",
|
|
5294
|
-
type: "
|
|
5440
|
+
type: "TSize",
|
|
5295
5441
|
default: "md",
|
|
5296
5442
|
values: [
|
|
5297
5443
|
"sm",
|
|
@@ -5301,7 +5447,7 @@ var treeui_catalog_default = {
|
|
|
5301
5447
|
},
|
|
5302
5448
|
{
|
|
5303
5449
|
name: "sortBy",
|
|
5304
|
-
type: "
|
|
5450
|
+
type: "TTableSortState",
|
|
5305
5451
|
required: false,
|
|
5306
5452
|
description: "Controlled sort state. When provided, overrides internal sort tracking."
|
|
5307
5453
|
}
|
|
@@ -5310,7 +5456,7 @@ var treeui_catalog_default = {
|
|
|
5310
5456
|
{
|
|
5311
5457
|
name: "sort",
|
|
5312
5458
|
description: "Emitted when a sortable column header is clicked.",
|
|
5313
|
-
payload: "
|
|
5459
|
+
payload: "TTableSortState"
|
|
5314
5460
|
}
|
|
5315
5461
|
],
|
|
5316
5462
|
slots: [
|
|
@@ -5369,16 +5515,13 @@ var treeui_catalog_default = {
|
|
|
5369
5515
|
},
|
|
5370
5516
|
{
|
|
5371
5517
|
name: "TTabs",
|
|
5372
|
-
|
|
5373
|
-
aliases: [
|
|
5374
|
-
"TreeTabs"
|
|
5375
|
-
],
|
|
5518
|
+
aliases: [],
|
|
5376
5519
|
package: "@treeui/vue",
|
|
5377
5520
|
kind: "navigation",
|
|
5378
5521
|
category: "Navigation",
|
|
5379
5522
|
status: "available",
|
|
5380
5523
|
purpose: "Tabbed panel navigation with full keyboard support and automatic/manual activation modes.",
|
|
5381
|
-
sourceFile: "packages/vue/src/components/
|
|
5524
|
+
sourceFile: "packages/vue/src/components/TTabs.vue",
|
|
5382
5525
|
storyFile: "apps/docs/src/stories/Tabs.stories.ts",
|
|
5383
5526
|
storyTitle: "Components/Navigation/Tabs",
|
|
5384
5527
|
manifestFile: "docs/ai/COMPONENTS/tabs.yaml",
|
|
@@ -5397,7 +5540,7 @@ var treeui_catalog_default = {
|
|
|
5397
5540
|
},
|
|
5398
5541
|
{
|
|
5399
5542
|
name: "size",
|
|
5400
|
-
type: "
|
|
5543
|
+
type: "TSize",
|
|
5401
5544
|
default: "md",
|
|
5402
5545
|
values: [
|
|
5403
5546
|
"sm",
|
|
@@ -5472,25 +5615,24 @@ var treeui_catalog_default = {
|
|
|
5472
5615
|
required: [],
|
|
5473
5616
|
notes: []
|
|
5474
5617
|
},
|
|
5475
|
-
recipes: [
|
|
5618
|
+
recipes: [
|
|
5619
|
+
"router-backed-tabs"
|
|
5620
|
+
]
|
|
5476
5621
|
},
|
|
5477
5622
|
{
|
|
5478
5623
|
name: "TTag",
|
|
5479
|
-
|
|
5480
|
-
aliases: [
|
|
5481
|
-
"TreeTag"
|
|
5482
|
-
],
|
|
5624
|
+
aliases: [],
|
|
5483
5625
|
package: "@treeui/vue",
|
|
5484
5626
|
category: "Data Display",
|
|
5485
5627
|
description: "Removable label/chip for filters and selections.",
|
|
5486
|
-
sourceFile: "packages/vue/src/components/
|
|
5628
|
+
sourceFile: "packages/vue/src/components/TTag.vue",
|
|
5487
5629
|
storyFile: "apps/docs/src/stories/Tag.stories.ts",
|
|
5488
5630
|
storyTitle: "Components/Data Display/Tag",
|
|
5489
5631
|
manifestFile: "docs/ai/COMPONENTS/tag.yaml",
|
|
5490
5632
|
props: [
|
|
5491
5633
|
{
|
|
5492
5634
|
name: "variant",
|
|
5493
|
-
type: "
|
|
5635
|
+
type: "TTagVariant",
|
|
5494
5636
|
default: "soft",
|
|
5495
5637
|
values: [
|
|
5496
5638
|
"solid",
|
|
@@ -5500,7 +5642,7 @@ var treeui_catalog_default = {
|
|
|
5500
5642
|
},
|
|
5501
5643
|
{
|
|
5502
5644
|
name: "size",
|
|
5503
|
-
type: "
|
|
5645
|
+
type: "TSize",
|
|
5504
5646
|
default: "md",
|
|
5505
5647
|
values: [
|
|
5506
5648
|
"sm",
|
|
@@ -5553,20 +5695,19 @@ var treeui_catalog_default = {
|
|
|
5553
5695
|
required: [],
|
|
5554
5696
|
notes: []
|
|
5555
5697
|
},
|
|
5556
|
-
recipes: [
|
|
5698
|
+
recipes: [
|
|
5699
|
+
"tag-input"
|
|
5700
|
+
]
|
|
5557
5701
|
},
|
|
5558
5702
|
{
|
|
5559
5703
|
name: "TTextarea",
|
|
5560
|
-
|
|
5561
|
-
aliases: [
|
|
5562
|
-
"TreeTextarea"
|
|
5563
|
-
],
|
|
5704
|
+
aliases: [],
|
|
5564
5705
|
package: "@treeui/vue",
|
|
5565
5706
|
kind: "primitive",
|
|
5566
5707
|
category: "Data Entry",
|
|
5567
5708
|
status: "available",
|
|
5568
5709
|
purpose: "Multi-line text field with size, loading, invalid states, and auto-grow option.",
|
|
5569
|
-
sourceFile: "packages/vue/src/components/
|
|
5710
|
+
sourceFile: "packages/vue/src/components/TTextarea.vue",
|
|
5570
5711
|
storyFile: "apps/docs/src/stories/Textarea.stories.ts",
|
|
5571
5712
|
storyTitle: "Components/Data Entry/Textarea",
|
|
5572
5713
|
manifestFile: "docs/ai/COMPONENTS/textarea.yaml",
|
|
@@ -5578,7 +5719,7 @@ var treeui_catalog_default = {
|
|
|
5578
5719
|
},
|
|
5579
5720
|
{
|
|
5580
5721
|
name: "size",
|
|
5581
|
-
type: "
|
|
5722
|
+
type: "TSize",
|
|
5582
5723
|
default: "md",
|
|
5583
5724
|
values: [
|
|
5584
5725
|
"sm",
|
|
@@ -5663,28 +5804,25 @@ var treeui_catalog_default = {
|
|
|
5663
5804
|
},
|
|
5664
5805
|
{
|
|
5665
5806
|
name: "TTimeline",
|
|
5666
|
-
|
|
5667
|
-
aliases: [
|
|
5668
|
-
"TreeTimeline"
|
|
5669
|
-
],
|
|
5807
|
+
aliases: [],
|
|
5670
5808
|
package: "@treeui/vue",
|
|
5671
5809
|
kind: "data_display",
|
|
5672
5810
|
status: "available",
|
|
5673
5811
|
purpose: "Vertical timeline for activity history, audits, release events, and chronological product updates.",
|
|
5674
|
-
sourceFile: "packages/vue/src/components/
|
|
5812
|
+
sourceFile: "packages/vue/src/components/TTimeline.vue",
|
|
5675
5813
|
storyFile: "apps/docs/src/stories/Timeline.stories.ts",
|
|
5676
5814
|
storyTitle: "Release queued for review",
|
|
5677
5815
|
manifestFile: "docs/ai/COMPONENTS/timeline.yaml",
|
|
5678
5816
|
props: [
|
|
5679
5817
|
{
|
|
5680
5818
|
name: "items",
|
|
5681
|
-
type: "
|
|
5819
|
+
type: "TTimelineItem[]",
|
|
5682
5820
|
default: "[]",
|
|
5683
5821
|
note: "Array of { id?: string | number; title: string; description?: string; meta?: string; timestamp?: string; datetime?: string; tone?: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' }"
|
|
5684
5822
|
},
|
|
5685
5823
|
{
|
|
5686
5824
|
name: "size",
|
|
5687
|
-
type: "
|
|
5825
|
+
type: "TSize",
|
|
5688
5826
|
default: "md",
|
|
5689
5827
|
values: [
|
|
5690
5828
|
"sm",
|
|
@@ -5726,15 +5864,12 @@ var treeui_catalog_default = {
|
|
|
5726
5864
|
},
|
|
5727
5865
|
{
|
|
5728
5866
|
name: "TToast",
|
|
5729
|
-
|
|
5730
|
-
aliases: [
|
|
5731
|
-
"TreeToast"
|
|
5732
|
-
],
|
|
5867
|
+
aliases: [],
|
|
5733
5868
|
package: "@treeui/vue",
|
|
5734
5869
|
kind: "feedback",
|
|
5735
5870
|
status: "available",
|
|
5736
5871
|
purpose: "Ephemeral notification stack driven by a composable. Renders toast items inside a positioned container with auto-dismiss and manual close.",
|
|
5737
|
-
sourceFile: "packages/vue/src/components/
|
|
5872
|
+
sourceFile: "packages/vue/src/components/TToast.vue",
|
|
5738
5873
|
manifestFile: "docs/ai/COMPONENTS/toast.yaml",
|
|
5739
5874
|
props: [],
|
|
5740
5875
|
events: [
|
|
@@ -5792,16 +5927,13 @@ var treeui_catalog_default = {
|
|
|
5792
5927
|
},
|
|
5793
5928
|
{
|
|
5794
5929
|
name: "TToggleGroup",
|
|
5795
|
-
|
|
5796
|
-
aliases: [
|
|
5797
|
-
"TreeToggleGroup"
|
|
5798
|
-
],
|
|
5930
|
+
aliases: [],
|
|
5799
5931
|
package: "@treeui/vue",
|
|
5800
5932
|
kind: "selection",
|
|
5801
5933
|
category: "Data Entry",
|
|
5802
5934
|
status: "available",
|
|
5803
5935
|
purpose: "Segmented button group for single or multiple visible choices.",
|
|
5804
|
-
sourceFile: "packages/vue/src/components/
|
|
5936
|
+
sourceFile: "packages/vue/src/components/TToggleGroup.vue",
|
|
5805
5937
|
storyFile: "apps/docs/src/stories/ToggleGroup.stories.ts",
|
|
5806
5938
|
storyTitle: "Components/Data Entry/ToggleGroup",
|
|
5807
5939
|
manifestFile: "docs/ai/COMPONENTS/toggle-group.yaml",
|
|
@@ -5813,13 +5945,13 @@ var treeui_catalog_default = {
|
|
|
5813
5945
|
},
|
|
5814
5946
|
{
|
|
5815
5947
|
name: "options",
|
|
5816
|
-
type: "
|
|
5948
|
+
type: "TToggleGroupOption[]",
|
|
5817
5949
|
default: "[]",
|
|
5818
5950
|
note: "Array of `{ label, value, disabled? }`."
|
|
5819
5951
|
},
|
|
5820
5952
|
{
|
|
5821
5953
|
name: "selectionMode",
|
|
5822
|
-
type: "
|
|
5954
|
+
type: "TToggleGroupSelectionMode",
|
|
5823
5955
|
default: "single",
|
|
5824
5956
|
values: [
|
|
5825
5957
|
"single",
|
|
@@ -5828,7 +5960,7 @@ var treeui_catalog_default = {
|
|
|
5828
5960
|
},
|
|
5829
5961
|
{
|
|
5830
5962
|
name: "size",
|
|
5831
|
-
type: "
|
|
5963
|
+
type: "TSize",
|
|
5832
5964
|
default: "md",
|
|
5833
5965
|
values: [
|
|
5834
5966
|
"sm",
|
|
@@ -5838,7 +5970,7 @@ var treeui_catalog_default = {
|
|
|
5838
5970
|
},
|
|
5839
5971
|
{
|
|
5840
5972
|
name: "variant",
|
|
5841
|
-
type: "
|
|
5973
|
+
type: "TToggleGroupVariant",
|
|
5842
5974
|
default: "outline",
|
|
5843
5975
|
values: [
|
|
5844
5976
|
"outline",
|
|
@@ -5912,16 +6044,13 @@ var treeui_catalog_default = {
|
|
|
5912
6044
|
},
|
|
5913
6045
|
{
|
|
5914
6046
|
name: "TTooltip",
|
|
5915
|
-
|
|
5916
|
-
aliases: [
|
|
5917
|
-
"TreeTooltip"
|
|
5918
|
-
],
|
|
6047
|
+
aliases: [],
|
|
5919
6048
|
package: "@treeui/vue",
|
|
5920
6049
|
kind: "overlay",
|
|
5921
6050
|
category: "Overlay",
|
|
5922
6051
|
status: "available",
|
|
5923
6052
|
purpose: "Small contextual overlay shown on hover or focus.",
|
|
5924
|
-
sourceFile: "packages/vue/src/components/
|
|
6053
|
+
sourceFile: "packages/vue/src/components/TTooltip.vue",
|
|
5925
6054
|
storyFile: "apps/docs/src/stories/Tooltip.stories.ts",
|
|
5926
6055
|
storyTitle: "Components/Overlay/Tooltip",
|
|
5927
6056
|
manifestFile: "docs/ai/COMPONENTS/tooltip.yaml",
|
|
@@ -5948,7 +6077,7 @@ var treeui_catalog_default = {
|
|
|
5948
6077
|
},
|
|
5949
6078
|
{
|
|
5950
6079
|
name: "side",
|
|
5951
|
-
type: "
|
|
6080
|
+
type: "TTooltipSide",
|
|
5952
6081
|
default: "top",
|
|
5953
6082
|
values: [
|
|
5954
6083
|
"top",
|
|
@@ -6027,18 +6156,15 @@ var treeui_catalog_default = {
|
|
|
6027
6156
|
},
|
|
6028
6157
|
{
|
|
6029
6158
|
name: "TTreeView",
|
|
6030
|
-
|
|
6031
|
-
aliases: [
|
|
6032
|
-
"TreeTreeView"
|
|
6033
|
-
],
|
|
6159
|
+
aliases: [],
|
|
6034
6160
|
package: "@treeui/vue",
|
|
6035
6161
|
kind: "selection",
|
|
6036
6162
|
category: "Navigation & Disclosure",
|
|
6037
6163
|
status: "available",
|
|
6038
6164
|
purpose: "Hierarchical tree view with expansion, keyboard navigation, and single or multiple selection.",
|
|
6039
|
-
sourceFile: "packages/vue/src/components/
|
|
6165
|
+
sourceFile: "packages/vue/src/components/TTreeView.vue",
|
|
6040
6166
|
storyFile: "apps/docs/src/stories/TreeView.stories.ts",
|
|
6041
|
-
storyTitle: "Components/Navigation & Disclosure/
|
|
6167
|
+
storyTitle: "Components/Navigation & Disclosure/TView",
|
|
6042
6168
|
manifestFile: "docs/ai/COMPONENTS/tree-view.yaml",
|
|
6043
6169
|
props: [
|
|
6044
6170
|
{
|
|
@@ -6053,13 +6179,13 @@ var treeui_catalog_default = {
|
|
|
6053
6179
|
},
|
|
6054
6180
|
{
|
|
6055
6181
|
name: "nodes",
|
|
6056
|
-
type: "
|
|
6182
|
+
type: "TTreeViewNode[]",
|
|
6057
6183
|
default: "[]",
|
|
6058
6184
|
note: "Array of `{ id, label, description?, meta?, disabled?, children? }`."
|
|
6059
6185
|
},
|
|
6060
6186
|
{
|
|
6061
6187
|
name: "selectionMode",
|
|
6062
|
-
type: "
|
|
6188
|
+
type: "TTreeViewSelectionMode",
|
|
6063
6189
|
default: "single",
|
|
6064
6190
|
values: [
|
|
6065
6191
|
"single",
|
|
@@ -6730,11 +6856,9 @@ var buildCatalogFromRepo = (repoRoot) => {
|
|
|
6730
6856
|
const setup2 = normalizeSetupEntry(componentSetup[name]);
|
|
6731
6857
|
const aliases = Array.from(
|
|
6732
6858
|
new Set(
|
|
6733
|
-
[
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
name.startsWith("T") ? `Tree${name.slice(1)}` : void 0
|
|
6737
|
-
].filter((value) => Boolean(value))
|
|
6859
|
+
[...normalizeStringList(document.aliases), aliasMap[name]].filter(
|
|
6860
|
+
(value) => Boolean(value)
|
|
6861
|
+
)
|
|
6738
6862
|
)
|
|
6739
6863
|
);
|
|
6740
6864
|
const componentRecipes = recipes.filter((recipe) => recipe.compose.includes(name)).map((recipe) => recipe.id);
|
|
@@ -6938,7 +7062,7 @@ var createTreeuiMcpServer = () => {
|
|
|
6938
7062
|
inputSchema: {
|
|
6939
7063
|
type: "object",
|
|
6940
7064
|
properties: {
|
|
6941
|
-
name: { type: "string", description: "Component name or alias, such as TSelect or
|
|
7065
|
+
name: { type: "string", description: "Component name or alias, such as TSelect or TSelect." }
|
|
6942
7066
|
},
|
|
6943
7067
|
required: ["name"]
|
|
6944
7068
|
}
|