@treeui/mcp 0.6.0 → 0.7.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.
@@ -1,8 +1,8 @@
1
1
  // src/generated/treeui.catalog.json
2
2
  var treeui_catalog_default = {
3
- generatedAt: "2026-07-21T19:17:20.408Z",
3
+ generatedAt: "2026-07-21T20:31:07.075Z",
4
4
  packageName: "@treeui/vue",
5
- packageVersion: "0.19.0",
5
+ packageVersion: "0.19.1",
6
6
  decisionGuides: [
7
7
  {
8
8
  id: "single-choice",
@@ -373,6 +373,26 @@ var treeui_catalog_default = {
373
373
  "Prefer `TAppShell` (recipe `app-shell`) when you also need full-viewport sizing and a responsive mobile drawer."
374
374
  ]
375
375
  },
376
+ {
377
+ id: "brand-lockup",
378
+ name: "Product brand lockup in a shell header",
379
+ useWhen: [
380
+ "A shell header needs a logo plus a product name (and optional subtitle) that stays aligned as the sidebar collapses."
381
+ ],
382
+ compose: [
383
+ "TAppShell",
384
+ "TAvatar",
385
+ "TText",
386
+ "TStack"
387
+ ],
388
+ notes: [
389
+ "Put the lockup in the `header-start` slot, not `header`. Filling `header-start` switches the header to the shell's own grid, so the mark tracks `--tree-app-shell-sidebar-width` and animates with the collapse \u2014 no local column math.",
390
+ 'The slot is scoped: use its `collapsed` binding to drop the wordmark and keep only the mark (`v-if="!collapsed"`), rather than hiding text with CSS.',
391
+ 'Logo is `TAvatar` (`size`, `alt`, `initials` fallback) or a plain `<img>` sized with `--tree-size-icon-*`; name and subtitle are `TText` (`weight`, `tone="muted"`, `truncate`) \u2014 never raw `<strong>`/`<span>` with a local class.',
392
+ "TreeUI ships no `TBrand` component on purpose: the logo asset, the product name, and what survives collapse are product identity, which must stay in the consumer. See DECISIONS.md \u2192 Portability Boundary.",
393
+ "Company and service logos (AWS, LocalStack, social networks) are brand assets and are not TreeUI icons \u2014 source them from the app's brand policy, not the icon registry."
394
+ ]
395
+ },
376
396
  {
377
397
  id: "nav-menu-icons",
378
398
  name: "Icons on navigation items",
@@ -599,7 +619,7 @@ var treeui_catalog_default = {
599
619
  summary: "Every interaction answers back. Hover, focus, active, loading, and disabled are designed states \u2014 never afterthoughts left to the consumer.",
600
620
  rules: [
601
621
  "Interactive surfaces ship hover, active, and focus-visible treatments out of the box.",
602
- "Loading states announce themselves (aria-busy, spinner) and block duplicate activation.",
622
+ "Loading states announce themselves (aria-busy plus a labelled, localizable spinner), replace the resting glyph instead of stacking beside it, and block duplicate activation.",
603
623
  "Disabled and loading elements never emit activation events.",
604
624
  "Focus indicators stay visible in both light and dark themes."
605
625
  ],
@@ -621,7 +641,7 @@ var treeui_catalog_default = {
621
641
  title: "Accessible by default",
622
642
  summary: "Native semantics first, ARIA where the pattern requires it, full keyboard support, and focus management the consumer never has to write.",
623
643
  rules: [
624
- 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them.',
644
+ 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them, and no composite-widget role (grid, tree) is claimed without its full keyboard model.',
625
645
  "Tab/Shift+Tab order, Escape to close, Enter/Space to activate, arrow keys where the pattern expects them.",
626
646
  "Overlays trap focus while open and restore it on close.",
627
647
  "Clickable targets stay at or above 44\xD744px."
@@ -635,7 +655,8 @@ var treeui_catalog_default = {
635
655
  "TAccordion",
636
656
  "TFormField",
637
657
  "TTreeView",
638
- "TToastProvider"
658
+ "TToastProvider",
659
+ "TButton"
639
660
  ]
640
661
  },
641
662
  {
@@ -674,7 +695,8 @@ var treeui_catalog_default = {
674
695
  "TEmptyState",
675
696
  "TAlert",
676
697
  "TToastProvider",
677
- "TBadge"
698
+ "TBadge",
699
+ "TTable"
678
700
  ]
679
701
  },
680
702
  {
@@ -1536,7 +1558,8 @@ var treeui_catalog_default = {
1536
1558
  ]
1537
1559
  },
1538
1560
  recipes: [
1539
- "app-shell"
1561
+ "app-shell",
1562
+ "brand-lockup"
1540
1563
  ],
1541
1564
  practices: []
1542
1565
  },
@@ -1619,7 +1642,9 @@ var treeui_catalog_default = {
1619
1642
  required: [],
1620
1643
  notes: []
1621
1644
  },
1622
- recipes: [],
1645
+ recipes: [
1646
+ "brand-lockup"
1647
+ ],
1623
1648
  practices: []
1624
1649
  },
1625
1650
  {
@@ -1923,6 +1948,7 @@ var treeui_catalog_default = {
1923
1948
  ],
1924
1949
  practices: [
1925
1950
  "interaction-feedback",
1951
+ "accessible-by-default",
1926
1952
  "predictable-api"
1927
1953
  ]
1928
1954
  },
@@ -8220,6 +8246,7 @@ var treeui_catalog_default = {
8220
8246
  notes: []
8221
8247
  },
8222
8248
  recipes: [
8249
+ "brand-lockup",
8223
8250
  "tag-input",
8224
8251
  "data-listing",
8225
8252
  "chart-surface"
@@ -8732,7 +8759,9 @@ var treeui_catalog_default = {
8732
8759
  recipes: [
8733
8760
  "data-listing"
8734
8761
  ],
8735
- practices: []
8762
+ practices: [
8763
+ "state-clarity"
8764
+ ]
8736
8765
  },
8737
8766
  {
8738
8767
  name: "TTabs",
@@ -9021,7 +9050,9 @@ var treeui_catalog_default = {
9021
9050
  required: [],
9022
9051
  notes: []
9023
9052
  },
9024
- recipes: [],
9053
+ recipes: [
9054
+ "brand-lockup"
9055
+ ],
9025
9056
  practices: []
9026
9057
  },
9027
9058
  {
package/dist/cli.cjs CHANGED
@@ -34,9 +34,9 @@ var import_server = require("@modelcontextprotocol/sdk/server/index.js");
34
34
 
35
35
  // src/generated/treeui.catalog.json
36
36
  var treeui_catalog_default = {
37
- generatedAt: "2026-07-21T19:17:20.408Z",
37
+ generatedAt: "2026-07-21T20:31:07.075Z",
38
38
  packageName: "@treeui/vue",
39
- packageVersion: "0.19.0",
39
+ packageVersion: "0.19.1",
40
40
  decisionGuides: [
41
41
  {
42
42
  id: "single-choice",
@@ -407,6 +407,26 @@ var treeui_catalog_default = {
407
407
  "Prefer `TAppShell` (recipe `app-shell`) when you also need full-viewport sizing and a responsive mobile drawer."
408
408
  ]
409
409
  },
410
+ {
411
+ id: "brand-lockup",
412
+ name: "Product brand lockup in a shell header",
413
+ useWhen: [
414
+ "A shell header needs a logo plus a product name (and optional subtitle) that stays aligned as the sidebar collapses."
415
+ ],
416
+ compose: [
417
+ "TAppShell",
418
+ "TAvatar",
419
+ "TText",
420
+ "TStack"
421
+ ],
422
+ notes: [
423
+ "Put the lockup in the `header-start` slot, not `header`. Filling `header-start` switches the header to the shell's own grid, so the mark tracks `--tree-app-shell-sidebar-width` and animates with the collapse \u2014 no local column math.",
424
+ 'The slot is scoped: use its `collapsed` binding to drop the wordmark and keep only the mark (`v-if="!collapsed"`), rather than hiding text with CSS.',
425
+ 'Logo is `TAvatar` (`size`, `alt`, `initials` fallback) or a plain `<img>` sized with `--tree-size-icon-*`; name and subtitle are `TText` (`weight`, `tone="muted"`, `truncate`) \u2014 never raw `<strong>`/`<span>` with a local class.',
426
+ "TreeUI ships no `TBrand` component on purpose: the logo asset, the product name, and what survives collapse are product identity, which must stay in the consumer. See DECISIONS.md \u2192 Portability Boundary.",
427
+ "Company and service logos (AWS, LocalStack, social networks) are brand assets and are not TreeUI icons \u2014 source them from the app's brand policy, not the icon registry."
428
+ ]
429
+ },
410
430
  {
411
431
  id: "nav-menu-icons",
412
432
  name: "Icons on navigation items",
@@ -633,7 +653,7 @@ var treeui_catalog_default = {
633
653
  summary: "Every interaction answers back. Hover, focus, active, loading, and disabled are designed states \u2014 never afterthoughts left to the consumer.",
634
654
  rules: [
635
655
  "Interactive surfaces ship hover, active, and focus-visible treatments out of the box.",
636
- "Loading states announce themselves (aria-busy, spinner) and block duplicate activation.",
656
+ "Loading states announce themselves (aria-busy plus a labelled, localizable spinner), replace the resting glyph instead of stacking beside it, and block duplicate activation.",
637
657
  "Disabled and loading elements never emit activation events.",
638
658
  "Focus indicators stay visible in both light and dark themes."
639
659
  ],
@@ -655,7 +675,7 @@ var treeui_catalog_default = {
655
675
  title: "Accessible by default",
656
676
  summary: "Native semantics first, ARIA where the pattern requires it, full keyboard support, and focus management the consumer never has to write.",
657
677
  rules: [
658
- 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them.',
678
+ 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them, and no composite-widget role (grid, tree) is claimed without its full keyboard model.',
659
679
  "Tab/Shift+Tab order, Escape to close, Enter/Space to activate, arrow keys where the pattern expects them.",
660
680
  "Overlays trap focus while open and restore it on close.",
661
681
  "Clickable targets stay at or above 44\xD744px."
@@ -669,7 +689,8 @@ var treeui_catalog_default = {
669
689
  "TAccordion",
670
690
  "TFormField",
671
691
  "TTreeView",
672
- "TToastProvider"
692
+ "TToastProvider",
693
+ "TButton"
673
694
  ]
674
695
  },
675
696
  {
@@ -708,7 +729,8 @@ var treeui_catalog_default = {
708
729
  "TEmptyState",
709
730
  "TAlert",
710
731
  "TToastProvider",
711
- "TBadge"
732
+ "TBadge",
733
+ "TTable"
712
734
  ]
713
735
  },
714
736
  {
@@ -1570,7 +1592,8 @@ var treeui_catalog_default = {
1570
1592
  ]
1571
1593
  },
1572
1594
  recipes: [
1573
- "app-shell"
1595
+ "app-shell",
1596
+ "brand-lockup"
1574
1597
  ],
1575
1598
  practices: []
1576
1599
  },
@@ -1653,7 +1676,9 @@ var treeui_catalog_default = {
1653
1676
  required: [],
1654
1677
  notes: []
1655
1678
  },
1656
- recipes: [],
1679
+ recipes: [
1680
+ "brand-lockup"
1681
+ ],
1657
1682
  practices: []
1658
1683
  },
1659
1684
  {
@@ -1957,6 +1982,7 @@ var treeui_catalog_default = {
1957
1982
  ],
1958
1983
  practices: [
1959
1984
  "interaction-feedback",
1985
+ "accessible-by-default",
1960
1986
  "predictable-api"
1961
1987
  ]
1962
1988
  },
@@ -8254,6 +8280,7 @@ var treeui_catalog_default = {
8254
8280
  notes: []
8255
8281
  },
8256
8282
  recipes: [
8283
+ "brand-lockup",
8257
8284
  "tag-input",
8258
8285
  "data-listing",
8259
8286
  "chart-surface"
@@ -8766,7 +8793,9 @@ var treeui_catalog_default = {
8766
8793
  recipes: [
8767
8794
  "data-listing"
8768
8795
  ],
8769
- practices: []
8796
+ practices: [
8797
+ "state-clarity"
8798
+ ]
8770
8799
  },
8771
8800
  {
8772
8801
  name: "TTabs",
@@ -9055,7 +9084,9 @@ var treeui_catalog_default = {
9055
9084
  required: [],
9056
9085
  notes: []
9057
9086
  },
9058
- recipes: [],
9087
+ recipes: [
9088
+ "brand-lockup"
9089
+ ],
9059
9090
  practices: []
9060
9091
  },
9061
9092
  {
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createTreeuiMcpServer
4
- } from "./chunk-ITEC3SEF.js";
4
+ } from "./chunk-2Y7LP7ZZ.js";
5
5
 
6
6
  // src/cli.ts
7
7
  import process from "process";
package/dist/index.cjs CHANGED
@@ -50,9 +50,9 @@ module.exports = __toCommonJS(index_exports);
50
50
 
51
51
  // src/generated/treeui.catalog.json
52
52
  var treeui_catalog_default = {
53
- generatedAt: "2026-07-21T19:17:20.408Z",
53
+ generatedAt: "2026-07-21T20:31:07.075Z",
54
54
  packageName: "@treeui/vue",
55
- packageVersion: "0.19.0",
55
+ packageVersion: "0.19.1",
56
56
  decisionGuides: [
57
57
  {
58
58
  id: "single-choice",
@@ -423,6 +423,26 @@ var treeui_catalog_default = {
423
423
  "Prefer `TAppShell` (recipe `app-shell`) when you also need full-viewport sizing and a responsive mobile drawer."
424
424
  ]
425
425
  },
426
+ {
427
+ id: "brand-lockup",
428
+ name: "Product brand lockup in a shell header",
429
+ useWhen: [
430
+ "A shell header needs a logo plus a product name (and optional subtitle) that stays aligned as the sidebar collapses."
431
+ ],
432
+ compose: [
433
+ "TAppShell",
434
+ "TAvatar",
435
+ "TText",
436
+ "TStack"
437
+ ],
438
+ notes: [
439
+ "Put the lockup in the `header-start` slot, not `header`. Filling `header-start` switches the header to the shell's own grid, so the mark tracks `--tree-app-shell-sidebar-width` and animates with the collapse \u2014 no local column math.",
440
+ 'The slot is scoped: use its `collapsed` binding to drop the wordmark and keep only the mark (`v-if="!collapsed"`), rather than hiding text with CSS.',
441
+ 'Logo is `TAvatar` (`size`, `alt`, `initials` fallback) or a plain `<img>` sized with `--tree-size-icon-*`; name and subtitle are `TText` (`weight`, `tone="muted"`, `truncate`) \u2014 never raw `<strong>`/`<span>` with a local class.',
442
+ "TreeUI ships no `TBrand` component on purpose: the logo asset, the product name, and what survives collapse are product identity, which must stay in the consumer. See DECISIONS.md \u2192 Portability Boundary.",
443
+ "Company and service logos (AWS, LocalStack, social networks) are brand assets and are not TreeUI icons \u2014 source them from the app's brand policy, not the icon registry."
444
+ ]
445
+ },
426
446
  {
427
447
  id: "nav-menu-icons",
428
448
  name: "Icons on navigation items",
@@ -649,7 +669,7 @@ var treeui_catalog_default = {
649
669
  summary: "Every interaction answers back. Hover, focus, active, loading, and disabled are designed states \u2014 never afterthoughts left to the consumer.",
650
670
  rules: [
651
671
  "Interactive surfaces ship hover, active, and focus-visible treatments out of the box.",
652
- "Loading states announce themselves (aria-busy, spinner) and block duplicate activation.",
672
+ "Loading states announce themselves (aria-busy plus a labelled, localizable spinner), replace the resting glyph instead of stacking beside it, and block duplicate activation.",
653
673
  "Disabled and loading elements never emit activation events.",
654
674
  "Focus indicators stay visible in both light and dark themes."
655
675
  ],
@@ -671,7 +691,7 @@ var treeui_catalog_default = {
671
691
  title: "Accessible by default",
672
692
  summary: "Native semantics first, ARIA where the pattern requires it, full keyboard support, and focus management the consumer never has to write.",
673
693
  rules: [
674
- 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them.',
694
+ 'Native elements before roles; role="dialog", aria-modal, aria-labelledby only where semantics require them, and no composite-widget role (grid, tree) is claimed without its full keyboard model.',
675
695
  "Tab/Shift+Tab order, Escape to close, Enter/Space to activate, arrow keys where the pattern expects them.",
676
696
  "Overlays trap focus while open and restore it on close.",
677
697
  "Clickable targets stay at or above 44\xD744px."
@@ -685,7 +705,8 @@ var treeui_catalog_default = {
685
705
  "TAccordion",
686
706
  "TFormField",
687
707
  "TTreeView",
688
- "TToastProvider"
708
+ "TToastProvider",
709
+ "TButton"
689
710
  ]
690
711
  },
691
712
  {
@@ -724,7 +745,8 @@ var treeui_catalog_default = {
724
745
  "TEmptyState",
725
746
  "TAlert",
726
747
  "TToastProvider",
727
- "TBadge"
748
+ "TBadge",
749
+ "TTable"
728
750
  ]
729
751
  },
730
752
  {
@@ -1586,7 +1608,8 @@ var treeui_catalog_default = {
1586
1608
  ]
1587
1609
  },
1588
1610
  recipes: [
1589
- "app-shell"
1611
+ "app-shell",
1612
+ "brand-lockup"
1590
1613
  ],
1591
1614
  practices: []
1592
1615
  },
@@ -1669,7 +1692,9 @@ var treeui_catalog_default = {
1669
1692
  required: [],
1670
1693
  notes: []
1671
1694
  },
1672
- recipes: [],
1695
+ recipes: [
1696
+ "brand-lockup"
1697
+ ],
1673
1698
  practices: []
1674
1699
  },
1675
1700
  {
@@ -1973,6 +1998,7 @@ var treeui_catalog_default = {
1973
1998
  ],
1974
1999
  practices: [
1975
2000
  "interaction-feedback",
2001
+ "accessible-by-default",
1976
2002
  "predictable-api"
1977
2003
  ]
1978
2004
  },
@@ -8270,6 +8296,7 @@ var treeui_catalog_default = {
8270
8296
  notes: []
8271
8297
  },
8272
8298
  recipes: [
8299
+ "brand-lockup",
8273
8300
  "tag-input",
8274
8301
  "data-listing",
8275
8302
  "chart-surface"
@@ -8782,7 +8809,9 @@ var treeui_catalog_default = {
8782
8809
  recipes: [
8783
8810
  "data-listing"
8784
8811
  ],
8785
- practices: []
8812
+ practices: [
8813
+ "state-clarity"
8814
+ ]
8786
8815
  },
8787
8816
  {
8788
8817
  name: "TTabs",
@@ -9071,7 +9100,9 @@ var treeui_catalog_default = {
9071
9100
  required: [],
9072
9101
  notes: []
9073
9102
  },
9074
- recipes: [],
9103
+ recipes: [
9104
+ "brand-lockup"
9105
+ ],
9075
9106
  practices: []
9076
9107
  },
9077
9108
  {
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  searchComponents,
12
12
  searchRecipes,
13
13
  searchTokens
14
- } from "./chunk-ITEC3SEF.js";
14
+ } from "./chunk-2Y7LP7ZZ.js";
15
15
 
16
16
  // src/catalog-source.ts
17
17
  import fs from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@treeui/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Model Context Protocol server and AI catalog for TreeUI.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",