@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/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-04-08T23:21:47.215Z",
50
+ generatedAt: "2026-06-26T22:57:20.487Z",
51
51
  packageName: "@treeui/vue",
52
- packageVersion: "0.5.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
- "Compatibility aliases such as `TreeButton` remain available but are not the preferred direction.",
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
- legacyAlias: "TreeAccordion",
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/TreeAccordion.vue",
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
- legacyAlias: "TreeAlert",
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/TreeAlert.vue",
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: "TreeSize",
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
- legacyAlias: "TreeAvatar",
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/TreeAvatar.vue",
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: "TreeSize",
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: "TreeAvatarStatus",
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
- legacyAlias: "TreeBadge",
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/TreeBadge.vue",
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: "TreeVariant",
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: "TreeSize",
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
- legacyAlias: "TreeBreadcrumb",
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/TreeBreadcrumb.vue",
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
- legacyAlias: "TreeButton",
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/TreeButton.vue",
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: "TreeVariant",
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: "TreeSize",
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
- legacyAlias: "TreeCard",
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/TreeCard.vue",
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: "TreeCardVariant",
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: "TreeSize",
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
- legacyAlias: "TreeCheckbox",
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/TreeCheckbox.vue",
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: "TreeSize",
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
- legacyAlias: "TreeCombobox",
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/TreeCombobox.vue",
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: "TreeComboboxOption[]",
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: "TreeSize",
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
- legacyAlias: "TreeConfirmDialog",
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/TreeConfirmDialog.vue",
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: "TreeSize",
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: "TreeVariant",
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
- legacyAlias: "TreeContainer",
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/TreeContainer.vue",
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: "TreeContainerSize",
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
- legacyAlias: "TreeContextMenu",
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: "TreeContextMenuItem[]",
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: "TreeSize",
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
- legacyAlias: "TreeDatePicker",
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/TreeDatePicker.vue",
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: "TreeSize",
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
- legacyAlias: "TreeDateTimePicker",
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/TreeDateTimePicker.vue",
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: "TreeSize",
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
- legacyAlias: "TreeDivider",
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/TreeDivider.vue",
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
- legacyAlias: "TreeDrawer",
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/TreeDrawer.vue",
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: "TreeSize",
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: "TreeDrawerSide",
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
- legacyAlias: "TreeDropdown",
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/TreeDropdown.vue",
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: "TreeDropdownItem[]",
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: "TreeSize",
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
- legacyAlias: "TreeEmptyState",
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/TreeEmptyState.vue",
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: "TreeSize",
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
- legacyAlias: "TreeFileUpload",
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/TreeFileUpload.vue",
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: "TreeSize",
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
- legacyAlias: "TreeFormField",
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/TreeFormField.vue",
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: "TreeSize",
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
- legacyAlias: "TreeGrid",
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/TreeGrid.vue",
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: "TInput",
2851
- legacyAlias: "TreeInput",
2852
- aliases: [
2853
- "TreeInput"
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/TreeInput.vue",
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: "TreeSize",
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: "TMarkdownEditor",
2965
- legacyAlias: "TreeMarkdownEditor",
2966
- aliases: [
2967
- "TreeMarkdownEditor"
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: "TreeSize",
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
- legacyAlias: "TreeModal",
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/TreeModal.vue",
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: "TreeSize",
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
- legacyAlias: "TreeMultiSelect",
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/TreeMultiSelect.vue",
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: "TreeMultiSelectOption[]",
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: "TreeSize",
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/TreeNavbar.vue",
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: "TreeSize",
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
- legacyAlias: "TreeNavMenu",
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: "App-section navigation menu with roving focus, optional badges, and sidebar-aware collapsed mode.",
3491
- sourceFile: "packages/vue/src/components/TreeNavMenu.vue",
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: "TreeNavMenuItem[]",
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: "TreeSize",
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
- legacyAlias: "TreeNumberInput",
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/TreeNumberInput.vue",
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: "TreeSize",
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
- legacyAlias: "TreePagination",
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/TreePagination.vue",
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: "TreeSize",
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
- legacyAlias: "TreePopover",
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
- legacyAlias: "TreePricing",
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: "TreeSize",
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
- legacyAlias: "TreePricingCard",
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: "TreeSize",
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 TreeButton a11y (disabled, aria-busy)."
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
- legacyAlias: "TreeProgress",
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: "TreeSize",
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
- legacyAlias: "TreeRadio",
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/TreeRadio.vue",
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: "TreeSize",
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
- legacyAlias: "TreeRadioGroup",
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/TreeRadioGroup.vue",
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: "TreeSize",
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
- legacyAlias: "TreeSelect",
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/TreeSelect.vue",
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: "TreeSelectOption[]",
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: "TreeSize",
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
- legacyAlias: "TreeSelectableList",
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/TreeSelectableList.vue",
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: "TreeSelectableListItem[]",
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: "TreeSize",
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
- legacyAlias: "TreeSidebar",
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/TreeSidebar.vue",
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: "TreeSize",
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: "TreeSidebarSide",
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
- legacyAlias: "TreeSkeleton",
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/TreeSkeleton.vue",
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
- legacyAlias: "TreeSpinner",
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/TreeSpinner.vue",
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: "TreeSize",
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
- legacyAlias: "TreeStack",
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/TreeStack.vue",
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: "TreeStackDirection",
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
- "data-listing"
5100
+ "tag-input",
5101
+ "data-listing",
5102
+ "chart-surface"
4951
5103
  ]
4952
5104
  },
4953
5105
  {
4954
5106
  name: "TStat",
4955
- legacyAlias: "TreeStat",
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/TreeStat.vue",
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: "TreeStatTone",
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: "TreeStatTrendDirection",
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/TreeSteps.vue",
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: "TreeStepItem[]",
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: "TreeSize",
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: "TreeStepOrientation",
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
- legacyAlias: "TreeSwitch",
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/TreeSwitch.vue",
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: "TreeSize",
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
- legacyAlias: "TreeTable",
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/TreeTable.vue",
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: "TreeTableColumn[]",
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: "TreeSize",
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: "TreeTableSortState",
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: "TreeTableSortState"
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
- legacyAlias: "TreeTabs",
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/TreeTabs.vue",
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: "TreeSize",
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
- legacyAlias: "TreeTag",
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/TreeTag.vue",
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: "TreeTagVariant",
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: "TreeSize",
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
- legacyAlias: "TreeTextarea",
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/TreeTextarea.vue",
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: "TreeSize",
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
- legacyAlias: "TreeTimeline",
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/TreeTimeline.vue",
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: "TreeTimelineItem[]",
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: "TreeSize",
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
- legacyAlias: "TreeToast",
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/TreeToast.vue",
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
- legacyAlias: "TreeToggleGroup",
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/TreeToggleGroup.vue",
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: "TreeToggleGroupOption[]",
5948
+ type: "TToggleGroupOption[]",
5817
5949
  default: "[]",
5818
5950
  note: "Array of `{ label, value, disabled? }`."
5819
5951
  },
5820
5952
  {
5821
5953
  name: "selectionMode",
5822
- type: "TreeToggleGroupSelectionMode",
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: "TreeSize",
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: "TreeToggleGroupVariant",
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
- legacyAlias: "TreeTooltip",
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/TreeTooltip.vue",
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: "TreeTooltipSide",
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
- legacyAlias: "TreeTreeView",
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/TreeTreeView.vue",
6165
+ sourceFile: "packages/vue/src/components/TTreeView.vue",
6040
6166
  storyFile: "apps/docs/src/stories/TreeView.stories.ts",
6041
- storyTitle: "Components/Navigation & Disclosure/TreeView",
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: "TreeTreeViewNode[]",
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: "TreeTreeViewSelectionMode",
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
- ...normalizeStringList(document.aliases),
6735
- aliasMap[name],
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 TreeSelect." }
7065
+ name: { type: "string", description: "Component name or alias, such as TSelect or TSelect." }
6942
7066
  },
6943
7067
  required: ["name"]
6944
7068
  }