@treeui/mcp 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-K6NB25EB.js → chunk-UPSK3E4U.js} +498 -5
- package/dist/cli.cjs +498 -5
- package/dist/cli.js +1 -1
- package/dist/index.cjs +498 -5
- package/dist/index.js +1 -1
- package/package.json +1 -1
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-
|
|
37
|
+
generatedAt: "2026-07-18T19:02:09.022Z",
|
|
38
38
|
packageName: "@treeui/vue",
|
|
39
|
-
packageVersion: "0.
|
|
39
|
+
packageVersion: "0.15.0",
|
|
40
40
|
decisionGuides: [
|
|
41
41
|
{
|
|
42
42
|
id: "single-choice",
|
|
@@ -980,6 +980,22 @@ var treeui_catalog_default = {
|
|
|
980
980
|
type: "boolean",
|
|
981
981
|
default: "true"
|
|
982
982
|
},
|
|
983
|
+
{
|
|
984
|
+
name: "showCollapseButton",
|
|
985
|
+
type: "boolean",
|
|
986
|
+
default: "true",
|
|
987
|
+
note: "Renders the built-in collapse toggle in the sidebar footer. Desktop only, and only when `collapsible` is set \u2014 no need to wire your own."
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
name: "collapseLabel",
|
|
991
|
+
type: "string",
|
|
992
|
+
default: "Collapse sidebar"
|
|
993
|
+
},
|
|
994
|
+
{
|
|
995
|
+
name: "expandLabel",
|
|
996
|
+
type: "string",
|
|
997
|
+
default: "Expand sidebar"
|
|
998
|
+
},
|
|
983
999
|
{
|
|
984
1000
|
name: "menuLabel",
|
|
985
1001
|
type: "string",
|
|
@@ -1014,14 +1030,26 @@ var treeui_catalog_default = {
|
|
|
1014
1030
|
{
|
|
1015
1031
|
name: "header"
|
|
1016
1032
|
},
|
|
1033
|
+
{
|
|
1034
|
+
name: "header-start"
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
name: "sidebar-header"
|
|
1038
|
+
},
|
|
1017
1039
|
{
|
|
1018
1040
|
name: "sidebar"
|
|
1019
1041
|
},
|
|
1042
|
+
{
|
|
1043
|
+
name: "sidebar-footer"
|
|
1044
|
+
},
|
|
1020
1045
|
{
|
|
1021
1046
|
name: "default"
|
|
1022
1047
|
},
|
|
1023
1048
|
{
|
|
1024
1049
|
name: "menu-icon"
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
name: "collapse-icon"
|
|
1025
1053
|
}
|
|
1026
1054
|
],
|
|
1027
1055
|
a11y: [
|
|
@@ -1049,7 +1077,10 @@ var treeui_catalog_default = {
|
|
|
1049
1077
|
"left_and_right_variants: true",
|
|
1050
1078
|
"locks_body_scroll_while_drawer_open: true",
|
|
1051
1079
|
"overlay_click_closes_when_enabled: true",
|
|
1052
|
-
"exposes_slot_props_with_mobile_collapsed_and_toggles: true"
|
|
1080
|
+
"exposes_slot_props_with_mobile_collapsed_and_toggles: true",
|
|
1081
|
+
"sidebar_footer_pinned_to_bottom: true",
|
|
1082
|
+
"sidebar_header_and_footer_inset_to_align_with_nav_icons: true",
|
|
1083
|
+
"header_mirrors_shell_columns_when_header_start_is_used: true"
|
|
1053
1084
|
],
|
|
1054
1085
|
selection: {
|
|
1055
1086
|
keywords: [
|
|
@@ -1358,6 +1389,18 @@ var treeui_catalog_default = {
|
|
|
1358
1389
|
name: "type",
|
|
1359
1390
|
type: "button | submit | reset",
|
|
1360
1391
|
default: "button"
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
name: "block",
|
|
1395
|
+
type: "boolean",
|
|
1396
|
+
default: "false",
|
|
1397
|
+
note: "Stretches the button to the full width of its container. Useful for menu rows and mobile CTAs."
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
name: "align",
|
|
1401
|
+
type: "start | center | end",
|
|
1402
|
+
default: "center",
|
|
1403
|
+
note: "Content alignment; only meaningful together with `block`. Use `start` for left-aligned icon+label menu rows."
|
|
1361
1404
|
}
|
|
1362
1405
|
],
|
|
1363
1406
|
events: [
|
|
@@ -1423,7 +1466,6 @@ var treeui_catalog_default = {
|
|
|
1423
1466
|
values: [
|
|
1424
1467
|
"outline",
|
|
1425
1468
|
"soft",
|
|
1426
|
-
"solid",
|
|
1427
1469
|
"inset"
|
|
1428
1470
|
]
|
|
1429
1471
|
},
|
|
@@ -1462,7 +1504,8 @@ var treeui_catalog_default = {
|
|
|
1462
1504
|
a11y: [],
|
|
1463
1505
|
behavior: [
|
|
1464
1506
|
"body_wrapper_class: t-card__body",
|
|
1465
|
-
"
|
|
1507
|
+
'variant_effects: {"outline":"Base surface with a default border. The styling baseline \u2014 the `t-card--outline` class is emitted but carries no CSS rule of its own.","soft":"Subtle tinted surface (bg-subtle), same border and shadow as outline.","inset":"Same tinted surface as soft, but with no shadow, so it reads as recessed inside another surface."}',
|
|
1508
|
+
"note: No card variant inverts its surface, so nested content inherits the normal color tokens. For a high-emphasis card, use a brand-colored border rather than an inverted background."
|
|
1466
1509
|
],
|
|
1467
1510
|
selection: {
|
|
1468
1511
|
keywords: [
|
|
@@ -1791,6 +1834,92 @@ var treeui_catalog_default = {
|
|
|
1791
1834
|
},
|
|
1792
1835
|
recipes: []
|
|
1793
1836
|
},
|
|
1837
|
+
{
|
|
1838
|
+
name: "TColorSwatch",
|
|
1839
|
+
aliases: [],
|
|
1840
|
+
package: "@treeui/vue",
|
|
1841
|
+
kind: "form",
|
|
1842
|
+
category: "Data Entry",
|
|
1843
|
+
status: "available",
|
|
1844
|
+
purpose: "Pick a colour from a row of preset swatches, with an optional native colour input for an arbitrary value. Built for accent/brand pickers.",
|
|
1845
|
+
sourceFile: "packages/vue/src/components/TColorSwatch.vue",
|
|
1846
|
+
storyFile: "apps/docs/src/stories/ColorSwatch.stories.ts",
|
|
1847
|
+
storyTitle: "Components/Data Entry/ColorSwatch",
|
|
1848
|
+
manifestFile: "docs/ai/COMPONENTS/color-swatch.yaml",
|
|
1849
|
+
props: [
|
|
1850
|
+
{
|
|
1851
|
+
name: "modelValue",
|
|
1852
|
+
type: "string",
|
|
1853
|
+
default: "undefined",
|
|
1854
|
+
note: "Selected colour as a hex string. Matching is case-insensitive."
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
name: "options",
|
|
1858
|
+
type: "TColorSwatchOption[]",
|
|
1859
|
+
default: "[]",
|
|
1860
|
+
note: "Preset swatches, each `{ label, value }`. `label` becomes the button's accessible name."
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
name: "allowCustom",
|
|
1864
|
+
type: "boolean",
|
|
1865
|
+
default: "false",
|
|
1866
|
+
note: 'Appends a native `<input type="color">` for values outside the presets.'
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
name: "size",
|
|
1870
|
+
type: "TSize",
|
|
1871
|
+
default: "md",
|
|
1872
|
+
values: [
|
|
1873
|
+
"sm",
|
|
1874
|
+
"md",
|
|
1875
|
+
"lg"
|
|
1876
|
+
]
|
|
1877
|
+
},
|
|
1878
|
+
{
|
|
1879
|
+
name: "label",
|
|
1880
|
+
type: "string",
|
|
1881
|
+
default: "Color",
|
|
1882
|
+
note: 'Accessible label for the swatch group (`role="group"`).'
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
name: "customLabel",
|
|
1886
|
+
type: "string",
|
|
1887
|
+
default: "Custom color"
|
|
1888
|
+
},
|
|
1889
|
+
{
|
|
1890
|
+
name: "disabled",
|
|
1891
|
+
type: "boolean",
|
|
1892
|
+
default: "false"
|
|
1893
|
+
}
|
|
1894
|
+
],
|
|
1895
|
+
events: [
|
|
1896
|
+
{
|
|
1897
|
+
name: "update:modelValue"
|
|
1898
|
+
}
|
|
1899
|
+
],
|
|
1900
|
+
slots: [],
|
|
1901
|
+
a11y: [
|
|
1902
|
+
'Wrapper is `role="group"` labelled by `label`.',
|
|
1903
|
+
"Each swatch is a native button with `aria-pressed` reflecting selection and `aria-label` from the option label.",
|
|
1904
|
+
"Selection is conveyed by an outline (not colour alone), since the swatch's own colour is the content."
|
|
1905
|
+
],
|
|
1906
|
+
behavior: [
|
|
1907
|
+
"emits_on_preset_click: true",
|
|
1908
|
+
"emits_on_custom_input: true",
|
|
1909
|
+
"blocks_interaction_when_disabled: true"
|
|
1910
|
+
],
|
|
1911
|
+
selection: {
|
|
1912
|
+
keywords: [],
|
|
1913
|
+
useWhen: [],
|
|
1914
|
+
avoidWhen: [],
|
|
1915
|
+
alternatives: []
|
|
1916
|
+
},
|
|
1917
|
+
setup: {
|
|
1918
|
+
required: [],
|
|
1919
|
+
notes: []
|
|
1920
|
+
},
|
|
1921
|
+
recipes: []
|
|
1922
|
+
},
|
|
1794
1923
|
{
|
|
1795
1924
|
name: "TCombobox",
|
|
1796
1925
|
aliases: [],
|
|
@@ -3774,6 +3903,20 @@ var treeui_catalog_default = {
|
|
|
3774
3903
|
"lg"
|
|
3775
3904
|
]
|
|
3776
3905
|
},
|
|
3906
|
+
{
|
|
3907
|
+
name: "width",
|
|
3908
|
+
type: "TFieldWidth",
|
|
3909
|
+
default: "full",
|
|
3910
|
+
values: [
|
|
3911
|
+
"xs",
|
|
3912
|
+
"sm",
|
|
3913
|
+
"md",
|
|
3914
|
+
"lg",
|
|
3915
|
+
"xl",
|
|
3916
|
+
"full"
|
|
3917
|
+
],
|
|
3918
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
3919
|
+
},
|
|
3777
3920
|
{
|
|
3778
3921
|
name: "disabled",
|
|
3779
3922
|
type: "boolean",
|
|
@@ -3858,6 +4001,43 @@ var treeui_catalog_default = {
|
|
|
3858
4001
|
"tag-input"
|
|
3859
4002
|
]
|
|
3860
4003
|
},
|
|
4004
|
+
{
|
|
4005
|
+
name: "TKbd",
|
|
4006
|
+
aliases: [],
|
|
4007
|
+
package: "@treeui/vue",
|
|
4008
|
+
kind: "primitive",
|
|
4009
|
+
category: "Data Display",
|
|
4010
|
+
status: "available",
|
|
4011
|
+
purpose: "Keyboard-key hint (e.g. \u2318K, Esc, Ctrl) rendered as a native <kbd> with the library's chip styling.",
|
|
4012
|
+
sourceFile: "packages/vue/src/components/TKbd.vue",
|
|
4013
|
+
storyFile: "apps/docs/src/stories/Kbd.stories.ts",
|
|
4014
|
+
storyTitle: "Components/Data Display/Kbd",
|
|
4015
|
+
manifestFile: "docs/ai/COMPONENTS/kbd.yaml",
|
|
4016
|
+
props: [],
|
|
4017
|
+
events: [],
|
|
4018
|
+
slots: [
|
|
4019
|
+
{
|
|
4020
|
+
name: "default"
|
|
4021
|
+
}
|
|
4022
|
+
],
|
|
4023
|
+
a11y: [
|
|
4024
|
+
"Uses the native <kbd> element so assistive tech announces it as keyboard input."
|
|
4025
|
+
],
|
|
4026
|
+
behavior: [
|
|
4027
|
+
"renders_native_kbd_element: true"
|
|
4028
|
+
],
|
|
4029
|
+
selection: {
|
|
4030
|
+
keywords: [],
|
|
4031
|
+
useWhen: [],
|
|
4032
|
+
avoidWhen: [],
|
|
4033
|
+
alternatives: []
|
|
4034
|
+
},
|
|
4035
|
+
setup: {
|
|
4036
|
+
required: [],
|
|
4037
|
+
notes: []
|
|
4038
|
+
},
|
|
4039
|
+
recipes: []
|
|
4040
|
+
},
|
|
3861
4041
|
{
|
|
3862
4042
|
name: "TLink",
|
|
3863
4043
|
aliases: [],
|
|
@@ -5508,6 +5688,20 @@ var treeui_catalog_default = {
|
|
|
5508
5688
|
"lg"
|
|
5509
5689
|
]
|
|
5510
5690
|
},
|
|
5691
|
+
{
|
|
5692
|
+
name: "width",
|
|
5693
|
+
type: "TFieldWidth",
|
|
5694
|
+
default: "full",
|
|
5695
|
+
values: [
|
|
5696
|
+
"xs",
|
|
5697
|
+
"sm",
|
|
5698
|
+
"md",
|
|
5699
|
+
"lg",
|
|
5700
|
+
"xl",
|
|
5701
|
+
"full"
|
|
5702
|
+
],
|
|
5703
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
5704
|
+
},
|
|
5511
5705
|
{
|
|
5512
5706
|
name: "disabled",
|
|
5513
5707
|
type: "boolean",
|
|
@@ -5922,6 +6116,46 @@ var treeui_catalog_default = {
|
|
|
5922
6116
|
},
|
|
5923
6117
|
recipes: []
|
|
5924
6118
|
},
|
|
6119
|
+
{
|
|
6120
|
+
name: "TSpacer",
|
|
6121
|
+
aliases: [],
|
|
6122
|
+
package: "@treeui/vue",
|
|
6123
|
+
kind: "layout",
|
|
6124
|
+
category: "Layout",
|
|
6125
|
+
status: "available",
|
|
6126
|
+
purpose: "Flexible spacer that absorbs free space between siblings in a flex layout (e.g. TStack), replacing hand-written margin:auto / flex:1.",
|
|
6127
|
+
sourceFile: "packages/vue/src/components/TSpacer.vue",
|
|
6128
|
+
storyFile: "apps/docs/src/stories/Spacer.stories.ts",
|
|
6129
|
+
storyTitle: "Components/Layout/Spacer",
|
|
6130
|
+
manifestFile: "docs/ai/COMPONENTS/spacer.yaml",
|
|
6131
|
+
props: [
|
|
6132
|
+
{
|
|
6133
|
+
name: "as",
|
|
6134
|
+
type: "string",
|
|
6135
|
+
default: "div"
|
|
6136
|
+
}
|
|
6137
|
+
],
|
|
6138
|
+
events: [],
|
|
6139
|
+
slots: [],
|
|
6140
|
+
a11y: [
|
|
6141
|
+
"Rendered with aria-hidden='true'; it is a layout-only element with no content."
|
|
6142
|
+
],
|
|
6143
|
+
behavior: [
|
|
6144
|
+
"grows_to_fill_free_space: true",
|
|
6145
|
+
"pushes_siblings_apart_or_to_ends: true"
|
|
6146
|
+
],
|
|
6147
|
+
selection: {
|
|
6148
|
+
keywords: [],
|
|
6149
|
+
useWhen: [],
|
|
6150
|
+
avoidWhen: [],
|
|
6151
|
+
alternatives: []
|
|
6152
|
+
},
|
|
6153
|
+
setup: {
|
|
6154
|
+
required: [],
|
|
6155
|
+
notes: []
|
|
6156
|
+
},
|
|
6157
|
+
recipes: []
|
|
6158
|
+
},
|
|
5925
6159
|
{
|
|
5926
6160
|
name: "TSparkline",
|
|
5927
6161
|
aliases: [],
|
|
@@ -6094,6 +6328,82 @@ var treeui_catalog_default = {
|
|
|
6094
6328
|
},
|
|
6095
6329
|
recipes: []
|
|
6096
6330
|
},
|
|
6331
|
+
{
|
|
6332
|
+
name: "TSplit",
|
|
6333
|
+
aliases: [],
|
|
6334
|
+
package: "@treeui/vue",
|
|
6335
|
+
kind: "layout",
|
|
6336
|
+
category: "Layout",
|
|
6337
|
+
status: "available",
|
|
6338
|
+
purpose: "Responsive two-pane layout (a wider main pane + a narrower aside) that sits side by side and stacks to one column when narrow \u2014 no media query.",
|
|
6339
|
+
sourceFile: "packages/vue/src/components/TSplit.vue",
|
|
6340
|
+
storyFile: "apps/docs/src/stories/Split.stories.ts",
|
|
6341
|
+
storyTitle: "Components/Layout/Split",
|
|
6342
|
+
manifestFile: "docs/ai/COMPONENTS/split.yaml",
|
|
6343
|
+
props: [
|
|
6344
|
+
{
|
|
6345
|
+
name: "as",
|
|
6346
|
+
type: "string",
|
|
6347
|
+
default: "div"
|
|
6348
|
+
},
|
|
6349
|
+
{
|
|
6350
|
+
name: "gap",
|
|
6351
|
+
type: "string",
|
|
6352
|
+
default: "var(--tree-space-5)"
|
|
6353
|
+
},
|
|
6354
|
+
{
|
|
6355
|
+
name: "ratio",
|
|
6356
|
+
type: "number",
|
|
6357
|
+
default: "2",
|
|
6358
|
+
note: "How many times faster the main pane grows than the aside pane."
|
|
6359
|
+
},
|
|
6360
|
+
{
|
|
6361
|
+
name: "minWidth",
|
|
6362
|
+
type: "string",
|
|
6363
|
+
default: "18rem",
|
|
6364
|
+
note: "Min width each pane keeps before the layout wraps to a single column (flex-wrap, no @media)."
|
|
6365
|
+
},
|
|
6366
|
+
{
|
|
6367
|
+
name: "side",
|
|
6368
|
+
type: "start | end",
|
|
6369
|
+
default: "end",
|
|
6370
|
+
note: "Which side the aside pane sits on when side by side."
|
|
6371
|
+
},
|
|
6372
|
+
{
|
|
6373
|
+
name: "align",
|
|
6374
|
+
type: "string",
|
|
6375
|
+
default: "start",
|
|
6376
|
+
note: "Cross-axis alignment (align-items)."
|
|
6377
|
+
}
|
|
6378
|
+
],
|
|
6379
|
+
events: [],
|
|
6380
|
+
slots: [
|
|
6381
|
+
{
|
|
6382
|
+
name: "default"
|
|
6383
|
+
},
|
|
6384
|
+
{
|
|
6385
|
+
name: "aside"
|
|
6386
|
+
}
|
|
6387
|
+
],
|
|
6388
|
+
a11y: [
|
|
6389
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6390
|
+
],
|
|
6391
|
+
behavior: [
|
|
6392
|
+
"wraps_to_single_column_when_narrow: true",
|
|
6393
|
+
"media_query_free: true"
|
|
6394
|
+
],
|
|
6395
|
+
selection: {
|
|
6396
|
+
keywords: [],
|
|
6397
|
+
useWhen: [],
|
|
6398
|
+
avoidWhen: [],
|
|
6399
|
+
alternatives: []
|
|
6400
|
+
},
|
|
6401
|
+
setup: {
|
|
6402
|
+
required: [],
|
|
6403
|
+
notes: []
|
|
6404
|
+
},
|
|
6405
|
+
recipes: []
|
|
6406
|
+
},
|
|
6097
6407
|
{
|
|
6098
6408
|
name: "TStack",
|
|
6099
6409
|
aliases: [],
|
|
@@ -6145,6 +6455,12 @@ var treeui_catalog_default = {
|
|
|
6145
6455
|
name: "reverse",
|
|
6146
6456
|
type: "boolean",
|
|
6147
6457
|
default: "false"
|
|
6458
|
+
},
|
|
6459
|
+
{
|
|
6460
|
+
name: "grow",
|
|
6461
|
+
type: "boolean",
|
|
6462
|
+
default: "false",
|
|
6463
|
+
note: "Expands the stack to fill available space along its parent's main axis (flex: 1 with min-size 0). Use it to make a sidebar column fill its container height."
|
|
6148
6464
|
}
|
|
6149
6465
|
],
|
|
6150
6466
|
events: [],
|
|
@@ -6192,6 +6508,80 @@ var treeui_catalog_default = {
|
|
|
6192
6508
|
"chart-surface"
|
|
6193
6509
|
]
|
|
6194
6510
|
},
|
|
6511
|
+
{
|
|
6512
|
+
name: "TStackItem",
|
|
6513
|
+
aliases: [],
|
|
6514
|
+
package: "@treeui/vue",
|
|
6515
|
+
kind: "layout",
|
|
6516
|
+
category: "Layout",
|
|
6517
|
+
status: "available",
|
|
6518
|
+
purpose: "Per-child flex control inside a TStack \u2014 grow, shrink, basis, min width and align-self \u2014 so one item can fill the row without hand-written CSS.",
|
|
6519
|
+
sourceFile: "packages/vue/src/components/TStackItem.vue",
|
|
6520
|
+
storyFile: "apps/docs/src/stories/StackItem.stories.ts",
|
|
6521
|
+
storyTitle: "Components/Layout/StackItem",
|
|
6522
|
+
manifestFile: "docs/ai/COMPONENTS/stack-item.yaml",
|
|
6523
|
+
props: [
|
|
6524
|
+
{
|
|
6525
|
+
name: "as",
|
|
6526
|
+
type: "string",
|
|
6527
|
+
default: "div"
|
|
6528
|
+
},
|
|
6529
|
+
{
|
|
6530
|
+
name: "grow",
|
|
6531
|
+
type: "boolean | number",
|
|
6532
|
+
default: "false",
|
|
6533
|
+
note: "true = flex-grow 1; a number sets the grow factor."
|
|
6534
|
+
},
|
|
6535
|
+
{
|
|
6536
|
+
name: "shrink",
|
|
6537
|
+
type: "boolean | number",
|
|
6538
|
+
default: "undefined",
|
|
6539
|
+
note: "false prevents shrinking; a number sets the shrink factor."
|
|
6540
|
+
},
|
|
6541
|
+
{
|
|
6542
|
+
name: "basis",
|
|
6543
|
+
type: "string",
|
|
6544
|
+
default: "undefined",
|
|
6545
|
+
note: "flex-basis (initial main-axis size)."
|
|
6546
|
+
},
|
|
6547
|
+
{
|
|
6548
|
+
name: "minWidth",
|
|
6549
|
+
type: "string",
|
|
6550
|
+
default: "undefined",
|
|
6551
|
+
note: "Minimum main-axis size before it wraps/shrinks."
|
|
6552
|
+
},
|
|
6553
|
+
{
|
|
6554
|
+
name: "align",
|
|
6555
|
+
type: "string",
|
|
6556
|
+
default: "undefined",
|
|
6557
|
+
note: "Per-item cross-axis alignment (align-self)."
|
|
6558
|
+
}
|
|
6559
|
+
],
|
|
6560
|
+
events: [],
|
|
6561
|
+
slots: [
|
|
6562
|
+
{
|
|
6563
|
+
name: "default"
|
|
6564
|
+
}
|
|
6565
|
+
],
|
|
6566
|
+
a11y: [
|
|
6567
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6568
|
+
],
|
|
6569
|
+
behavior: [
|
|
6570
|
+
"controls_single_flex_child: true",
|
|
6571
|
+
"defaults_min_inline_size_zero: true"
|
|
6572
|
+
],
|
|
6573
|
+
selection: {
|
|
6574
|
+
keywords: [],
|
|
6575
|
+
useWhen: [],
|
|
6576
|
+
avoidWhen: [],
|
|
6577
|
+
alternatives: []
|
|
6578
|
+
},
|
|
6579
|
+
setup: {
|
|
6580
|
+
required: [],
|
|
6581
|
+
notes: []
|
|
6582
|
+
},
|
|
6583
|
+
recipes: []
|
|
6584
|
+
},
|
|
6195
6585
|
{
|
|
6196
6586
|
name: "TStat",
|
|
6197
6587
|
aliases: [],
|
|
@@ -6794,6 +7184,95 @@ var treeui_catalog_default = {
|
|
|
6794
7184
|
"tag-input"
|
|
6795
7185
|
]
|
|
6796
7186
|
},
|
|
7187
|
+
{
|
|
7188
|
+
name: "TText",
|
|
7189
|
+
aliases: [],
|
|
7190
|
+
package: "@treeui/vue",
|
|
7191
|
+
kind: "primitive",
|
|
7192
|
+
category: "Data Display",
|
|
7193
|
+
status: "available",
|
|
7194
|
+
purpose: "Typography primitive for body text, labels and headings \u2014 size, tone, weight and truncation from tokens, with no hand-written CSS.",
|
|
7195
|
+
sourceFile: "packages/vue/src/components/TText.vue",
|
|
7196
|
+
storyFile: "apps/docs/src/stories/Text.stories.ts",
|
|
7197
|
+
storyTitle: "Components/Data Display/Text",
|
|
7198
|
+
manifestFile: "docs/ai/COMPONENTS/text.yaml",
|
|
7199
|
+
props: [
|
|
7200
|
+
{
|
|
7201
|
+
name: "as",
|
|
7202
|
+
type: "string",
|
|
7203
|
+
default: "span",
|
|
7204
|
+
note: "Render element. Use `p`, `h1`\u2013`h6`, `label`, `small`, `strong`, \u2026 for correct semantics."
|
|
7205
|
+
},
|
|
7206
|
+
{
|
|
7207
|
+
name: "size",
|
|
7208
|
+
type: "TTextSize",
|
|
7209
|
+
default: "undefined",
|
|
7210
|
+
values: [
|
|
7211
|
+
"xs",
|
|
7212
|
+
"sm",
|
|
7213
|
+
"md",
|
|
7214
|
+
"lg",
|
|
7215
|
+
"xl",
|
|
7216
|
+
"2xl",
|
|
7217
|
+
"3xl"
|
|
7218
|
+
],
|
|
7219
|
+
note: "Maps to --tree-font-size-*. Omitted = inherit."
|
|
7220
|
+
},
|
|
7221
|
+
{
|
|
7222
|
+
name: "tone",
|
|
7223
|
+
type: "TTextTone",
|
|
7224
|
+
default: "default",
|
|
7225
|
+
values: [
|
|
7226
|
+
"default",
|
|
7227
|
+
"muted",
|
|
7228
|
+
"inverse",
|
|
7229
|
+
"brand"
|
|
7230
|
+
],
|
|
7231
|
+
note: "`default` inherits the current colour; others map to --tree-color-text-* / brand."
|
|
7232
|
+
},
|
|
7233
|
+
{
|
|
7234
|
+
name: "weight",
|
|
7235
|
+
type: "TTextWeight",
|
|
7236
|
+
default: "undefined",
|
|
7237
|
+
values: [
|
|
7238
|
+
"regular",
|
|
7239
|
+
"medium",
|
|
7240
|
+
"semibold",
|
|
7241
|
+
"bold"
|
|
7242
|
+
]
|
|
7243
|
+
},
|
|
7244
|
+
{
|
|
7245
|
+
name: "truncate",
|
|
7246
|
+
type: "boolean",
|
|
7247
|
+
default: "false",
|
|
7248
|
+
note: "Clip to a single line with an ellipsis."
|
|
7249
|
+
}
|
|
7250
|
+
],
|
|
7251
|
+
events: [],
|
|
7252
|
+
slots: [
|
|
7253
|
+
{
|
|
7254
|
+
name: "default"
|
|
7255
|
+
}
|
|
7256
|
+
],
|
|
7257
|
+
a11y: [
|
|
7258
|
+
"Choose `as` to convey the correct semantics (e.g. headings via h1\u2013h6); TText adds only visual styling."
|
|
7259
|
+
],
|
|
7260
|
+
behavior: [
|
|
7261
|
+
"semantic_element_controlled_by_as: true",
|
|
7262
|
+
"token_driven_size_tone_weight: true"
|
|
7263
|
+
],
|
|
7264
|
+
selection: {
|
|
7265
|
+
keywords: [],
|
|
7266
|
+
useWhen: [],
|
|
7267
|
+
avoidWhen: [],
|
|
7268
|
+
alternatives: []
|
|
7269
|
+
},
|
|
7270
|
+
setup: {
|
|
7271
|
+
required: [],
|
|
7272
|
+
notes: []
|
|
7273
|
+
},
|
|
7274
|
+
recipes: []
|
|
7275
|
+
},
|
|
6797
7276
|
{
|
|
6798
7277
|
name: "TTextarea",
|
|
6799
7278
|
aliases: [],
|
|
@@ -6822,6 +7301,20 @@ var treeui_catalog_default = {
|
|
|
6822
7301
|
"lg"
|
|
6823
7302
|
]
|
|
6824
7303
|
},
|
|
7304
|
+
{
|
|
7305
|
+
name: "width",
|
|
7306
|
+
type: "TFieldWidth",
|
|
7307
|
+
default: "full",
|
|
7308
|
+
values: [
|
|
7309
|
+
"xs",
|
|
7310
|
+
"sm",
|
|
7311
|
+
"md",
|
|
7312
|
+
"lg",
|
|
7313
|
+
"xl",
|
|
7314
|
+
"full"
|
|
7315
|
+
],
|
|
7316
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
7317
|
+
},
|
|
6825
7318
|
{
|
|
6826
7319
|
name: "disabled",
|
|
6827
7320
|
type: "boolean",
|