@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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// src/generated/treeui.catalog.json
|
|
2
2
|
var treeui_catalog_default = {
|
|
3
|
-
generatedAt: "2026-07-
|
|
3
|
+
generatedAt: "2026-07-18T19:02:09.022Z",
|
|
4
4
|
packageName: "@treeui/vue",
|
|
5
|
-
packageVersion: "0.
|
|
5
|
+
packageVersion: "0.15.0",
|
|
6
6
|
decisionGuides: [
|
|
7
7
|
{
|
|
8
8
|
id: "single-choice",
|
|
@@ -946,6 +946,22 @@ var treeui_catalog_default = {
|
|
|
946
946
|
type: "boolean",
|
|
947
947
|
default: "true"
|
|
948
948
|
},
|
|
949
|
+
{
|
|
950
|
+
name: "showCollapseButton",
|
|
951
|
+
type: "boolean",
|
|
952
|
+
default: "true",
|
|
953
|
+
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."
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
name: "collapseLabel",
|
|
957
|
+
type: "string",
|
|
958
|
+
default: "Collapse sidebar"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
name: "expandLabel",
|
|
962
|
+
type: "string",
|
|
963
|
+
default: "Expand sidebar"
|
|
964
|
+
},
|
|
949
965
|
{
|
|
950
966
|
name: "menuLabel",
|
|
951
967
|
type: "string",
|
|
@@ -980,14 +996,26 @@ var treeui_catalog_default = {
|
|
|
980
996
|
{
|
|
981
997
|
name: "header"
|
|
982
998
|
},
|
|
999
|
+
{
|
|
1000
|
+
name: "header-start"
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
name: "sidebar-header"
|
|
1004
|
+
},
|
|
983
1005
|
{
|
|
984
1006
|
name: "sidebar"
|
|
985
1007
|
},
|
|
1008
|
+
{
|
|
1009
|
+
name: "sidebar-footer"
|
|
1010
|
+
},
|
|
986
1011
|
{
|
|
987
1012
|
name: "default"
|
|
988
1013
|
},
|
|
989
1014
|
{
|
|
990
1015
|
name: "menu-icon"
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
name: "collapse-icon"
|
|
991
1019
|
}
|
|
992
1020
|
],
|
|
993
1021
|
a11y: [
|
|
@@ -1015,7 +1043,10 @@ var treeui_catalog_default = {
|
|
|
1015
1043
|
"left_and_right_variants: true",
|
|
1016
1044
|
"locks_body_scroll_while_drawer_open: true",
|
|
1017
1045
|
"overlay_click_closes_when_enabled: true",
|
|
1018
|
-
"exposes_slot_props_with_mobile_collapsed_and_toggles: true"
|
|
1046
|
+
"exposes_slot_props_with_mobile_collapsed_and_toggles: true",
|
|
1047
|
+
"sidebar_footer_pinned_to_bottom: true",
|
|
1048
|
+
"sidebar_header_and_footer_inset_to_align_with_nav_icons: true",
|
|
1049
|
+
"header_mirrors_shell_columns_when_header_start_is_used: true"
|
|
1019
1050
|
],
|
|
1020
1051
|
selection: {
|
|
1021
1052
|
keywords: [
|
|
@@ -1324,6 +1355,18 @@ var treeui_catalog_default = {
|
|
|
1324
1355
|
name: "type",
|
|
1325
1356
|
type: "button | submit | reset",
|
|
1326
1357
|
default: "button"
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
name: "block",
|
|
1361
|
+
type: "boolean",
|
|
1362
|
+
default: "false",
|
|
1363
|
+
note: "Stretches the button to the full width of its container. Useful for menu rows and mobile CTAs."
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
name: "align",
|
|
1367
|
+
type: "start | center | end",
|
|
1368
|
+
default: "center",
|
|
1369
|
+
note: "Content alignment; only meaningful together with `block`. Use `start` for left-aligned icon+label menu rows."
|
|
1327
1370
|
}
|
|
1328
1371
|
],
|
|
1329
1372
|
events: [
|
|
@@ -1389,7 +1432,6 @@ var treeui_catalog_default = {
|
|
|
1389
1432
|
values: [
|
|
1390
1433
|
"outline",
|
|
1391
1434
|
"soft",
|
|
1392
|
-
"solid",
|
|
1393
1435
|
"inset"
|
|
1394
1436
|
]
|
|
1395
1437
|
},
|
|
@@ -1428,7 +1470,8 @@ var treeui_catalog_default = {
|
|
|
1428
1470
|
a11y: [],
|
|
1429
1471
|
behavior: [
|
|
1430
1472
|
"body_wrapper_class: t-card__body",
|
|
1431
|
-
"
|
|
1473
|
+
'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."}',
|
|
1474
|
+
"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."
|
|
1432
1475
|
],
|
|
1433
1476
|
selection: {
|
|
1434
1477
|
keywords: [
|
|
@@ -1757,6 +1800,92 @@ var treeui_catalog_default = {
|
|
|
1757
1800
|
},
|
|
1758
1801
|
recipes: []
|
|
1759
1802
|
},
|
|
1803
|
+
{
|
|
1804
|
+
name: "TColorSwatch",
|
|
1805
|
+
aliases: [],
|
|
1806
|
+
package: "@treeui/vue",
|
|
1807
|
+
kind: "form",
|
|
1808
|
+
category: "Data Entry",
|
|
1809
|
+
status: "available",
|
|
1810
|
+
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.",
|
|
1811
|
+
sourceFile: "packages/vue/src/components/TColorSwatch.vue",
|
|
1812
|
+
storyFile: "apps/docs/src/stories/ColorSwatch.stories.ts",
|
|
1813
|
+
storyTitle: "Components/Data Entry/ColorSwatch",
|
|
1814
|
+
manifestFile: "docs/ai/COMPONENTS/color-swatch.yaml",
|
|
1815
|
+
props: [
|
|
1816
|
+
{
|
|
1817
|
+
name: "modelValue",
|
|
1818
|
+
type: "string",
|
|
1819
|
+
default: "undefined",
|
|
1820
|
+
note: "Selected colour as a hex string. Matching is case-insensitive."
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
name: "options",
|
|
1824
|
+
type: "TColorSwatchOption[]",
|
|
1825
|
+
default: "[]",
|
|
1826
|
+
note: "Preset swatches, each `{ label, value }`. `label` becomes the button's accessible name."
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
name: "allowCustom",
|
|
1830
|
+
type: "boolean",
|
|
1831
|
+
default: "false",
|
|
1832
|
+
note: 'Appends a native `<input type="color">` for values outside the presets.'
|
|
1833
|
+
},
|
|
1834
|
+
{
|
|
1835
|
+
name: "size",
|
|
1836
|
+
type: "TSize",
|
|
1837
|
+
default: "md",
|
|
1838
|
+
values: [
|
|
1839
|
+
"sm",
|
|
1840
|
+
"md",
|
|
1841
|
+
"lg"
|
|
1842
|
+
]
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
name: "label",
|
|
1846
|
+
type: "string",
|
|
1847
|
+
default: "Color",
|
|
1848
|
+
note: 'Accessible label for the swatch group (`role="group"`).'
|
|
1849
|
+
},
|
|
1850
|
+
{
|
|
1851
|
+
name: "customLabel",
|
|
1852
|
+
type: "string",
|
|
1853
|
+
default: "Custom color"
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
name: "disabled",
|
|
1857
|
+
type: "boolean",
|
|
1858
|
+
default: "false"
|
|
1859
|
+
}
|
|
1860
|
+
],
|
|
1861
|
+
events: [
|
|
1862
|
+
{
|
|
1863
|
+
name: "update:modelValue"
|
|
1864
|
+
}
|
|
1865
|
+
],
|
|
1866
|
+
slots: [],
|
|
1867
|
+
a11y: [
|
|
1868
|
+
'Wrapper is `role="group"` labelled by `label`.',
|
|
1869
|
+
"Each swatch is a native button with `aria-pressed` reflecting selection and `aria-label` from the option label.",
|
|
1870
|
+
"Selection is conveyed by an outline (not colour alone), since the swatch's own colour is the content."
|
|
1871
|
+
],
|
|
1872
|
+
behavior: [
|
|
1873
|
+
"emits_on_preset_click: true",
|
|
1874
|
+
"emits_on_custom_input: true",
|
|
1875
|
+
"blocks_interaction_when_disabled: true"
|
|
1876
|
+
],
|
|
1877
|
+
selection: {
|
|
1878
|
+
keywords: [],
|
|
1879
|
+
useWhen: [],
|
|
1880
|
+
avoidWhen: [],
|
|
1881
|
+
alternatives: []
|
|
1882
|
+
},
|
|
1883
|
+
setup: {
|
|
1884
|
+
required: [],
|
|
1885
|
+
notes: []
|
|
1886
|
+
},
|
|
1887
|
+
recipes: []
|
|
1888
|
+
},
|
|
1760
1889
|
{
|
|
1761
1890
|
name: "TCombobox",
|
|
1762
1891
|
aliases: [],
|
|
@@ -3740,6 +3869,20 @@ var treeui_catalog_default = {
|
|
|
3740
3869
|
"lg"
|
|
3741
3870
|
]
|
|
3742
3871
|
},
|
|
3872
|
+
{
|
|
3873
|
+
name: "width",
|
|
3874
|
+
type: "TFieldWidth",
|
|
3875
|
+
default: "full",
|
|
3876
|
+
values: [
|
|
3877
|
+
"xs",
|
|
3878
|
+
"sm",
|
|
3879
|
+
"md",
|
|
3880
|
+
"lg",
|
|
3881
|
+
"xl",
|
|
3882
|
+
"full"
|
|
3883
|
+
],
|
|
3884
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
3885
|
+
},
|
|
3743
3886
|
{
|
|
3744
3887
|
name: "disabled",
|
|
3745
3888
|
type: "boolean",
|
|
@@ -3824,6 +3967,43 @@ var treeui_catalog_default = {
|
|
|
3824
3967
|
"tag-input"
|
|
3825
3968
|
]
|
|
3826
3969
|
},
|
|
3970
|
+
{
|
|
3971
|
+
name: "TKbd",
|
|
3972
|
+
aliases: [],
|
|
3973
|
+
package: "@treeui/vue",
|
|
3974
|
+
kind: "primitive",
|
|
3975
|
+
category: "Data Display",
|
|
3976
|
+
status: "available",
|
|
3977
|
+
purpose: "Keyboard-key hint (e.g. \u2318K, Esc, Ctrl) rendered as a native <kbd> with the library's chip styling.",
|
|
3978
|
+
sourceFile: "packages/vue/src/components/TKbd.vue",
|
|
3979
|
+
storyFile: "apps/docs/src/stories/Kbd.stories.ts",
|
|
3980
|
+
storyTitle: "Components/Data Display/Kbd",
|
|
3981
|
+
manifestFile: "docs/ai/COMPONENTS/kbd.yaml",
|
|
3982
|
+
props: [],
|
|
3983
|
+
events: [],
|
|
3984
|
+
slots: [
|
|
3985
|
+
{
|
|
3986
|
+
name: "default"
|
|
3987
|
+
}
|
|
3988
|
+
],
|
|
3989
|
+
a11y: [
|
|
3990
|
+
"Uses the native <kbd> element so assistive tech announces it as keyboard input."
|
|
3991
|
+
],
|
|
3992
|
+
behavior: [
|
|
3993
|
+
"renders_native_kbd_element: true"
|
|
3994
|
+
],
|
|
3995
|
+
selection: {
|
|
3996
|
+
keywords: [],
|
|
3997
|
+
useWhen: [],
|
|
3998
|
+
avoidWhen: [],
|
|
3999
|
+
alternatives: []
|
|
4000
|
+
},
|
|
4001
|
+
setup: {
|
|
4002
|
+
required: [],
|
|
4003
|
+
notes: []
|
|
4004
|
+
},
|
|
4005
|
+
recipes: []
|
|
4006
|
+
},
|
|
3827
4007
|
{
|
|
3828
4008
|
name: "TLink",
|
|
3829
4009
|
aliases: [],
|
|
@@ -5474,6 +5654,20 @@ var treeui_catalog_default = {
|
|
|
5474
5654
|
"lg"
|
|
5475
5655
|
]
|
|
5476
5656
|
},
|
|
5657
|
+
{
|
|
5658
|
+
name: "width",
|
|
5659
|
+
type: "TFieldWidth",
|
|
5660
|
+
default: "full",
|
|
5661
|
+
values: [
|
|
5662
|
+
"xs",
|
|
5663
|
+
"sm",
|
|
5664
|
+
"md",
|
|
5665
|
+
"lg",
|
|
5666
|
+
"xl",
|
|
5667
|
+
"full"
|
|
5668
|
+
],
|
|
5669
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
5670
|
+
},
|
|
5477
5671
|
{
|
|
5478
5672
|
name: "disabled",
|
|
5479
5673
|
type: "boolean",
|
|
@@ -5888,6 +6082,46 @@ var treeui_catalog_default = {
|
|
|
5888
6082
|
},
|
|
5889
6083
|
recipes: []
|
|
5890
6084
|
},
|
|
6085
|
+
{
|
|
6086
|
+
name: "TSpacer",
|
|
6087
|
+
aliases: [],
|
|
6088
|
+
package: "@treeui/vue",
|
|
6089
|
+
kind: "layout",
|
|
6090
|
+
category: "Layout",
|
|
6091
|
+
status: "available",
|
|
6092
|
+
purpose: "Flexible spacer that absorbs free space between siblings in a flex layout (e.g. TStack), replacing hand-written margin:auto / flex:1.",
|
|
6093
|
+
sourceFile: "packages/vue/src/components/TSpacer.vue",
|
|
6094
|
+
storyFile: "apps/docs/src/stories/Spacer.stories.ts",
|
|
6095
|
+
storyTitle: "Components/Layout/Spacer",
|
|
6096
|
+
manifestFile: "docs/ai/COMPONENTS/spacer.yaml",
|
|
6097
|
+
props: [
|
|
6098
|
+
{
|
|
6099
|
+
name: "as",
|
|
6100
|
+
type: "string",
|
|
6101
|
+
default: "div"
|
|
6102
|
+
}
|
|
6103
|
+
],
|
|
6104
|
+
events: [],
|
|
6105
|
+
slots: [],
|
|
6106
|
+
a11y: [
|
|
6107
|
+
"Rendered with aria-hidden='true'; it is a layout-only element with no content."
|
|
6108
|
+
],
|
|
6109
|
+
behavior: [
|
|
6110
|
+
"grows_to_fill_free_space: true",
|
|
6111
|
+
"pushes_siblings_apart_or_to_ends: true"
|
|
6112
|
+
],
|
|
6113
|
+
selection: {
|
|
6114
|
+
keywords: [],
|
|
6115
|
+
useWhen: [],
|
|
6116
|
+
avoidWhen: [],
|
|
6117
|
+
alternatives: []
|
|
6118
|
+
},
|
|
6119
|
+
setup: {
|
|
6120
|
+
required: [],
|
|
6121
|
+
notes: []
|
|
6122
|
+
},
|
|
6123
|
+
recipes: []
|
|
6124
|
+
},
|
|
5891
6125
|
{
|
|
5892
6126
|
name: "TSparkline",
|
|
5893
6127
|
aliases: [],
|
|
@@ -6060,6 +6294,82 @@ var treeui_catalog_default = {
|
|
|
6060
6294
|
},
|
|
6061
6295
|
recipes: []
|
|
6062
6296
|
},
|
|
6297
|
+
{
|
|
6298
|
+
name: "TSplit",
|
|
6299
|
+
aliases: [],
|
|
6300
|
+
package: "@treeui/vue",
|
|
6301
|
+
kind: "layout",
|
|
6302
|
+
category: "Layout",
|
|
6303
|
+
status: "available",
|
|
6304
|
+
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.",
|
|
6305
|
+
sourceFile: "packages/vue/src/components/TSplit.vue",
|
|
6306
|
+
storyFile: "apps/docs/src/stories/Split.stories.ts",
|
|
6307
|
+
storyTitle: "Components/Layout/Split",
|
|
6308
|
+
manifestFile: "docs/ai/COMPONENTS/split.yaml",
|
|
6309
|
+
props: [
|
|
6310
|
+
{
|
|
6311
|
+
name: "as",
|
|
6312
|
+
type: "string",
|
|
6313
|
+
default: "div"
|
|
6314
|
+
},
|
|
6315
|
+
{
|
|
6316
|
+
name: "gap",
|
|
6317
|
+
type: "string",
|
|
6318
|
+
default: "var(--tree-space-5)"
|
|
6319
|
+
},
|
|
6320
|
+
{
|
|
6321
|
+
name: "ratio",
|
|
6322
|
+
type: "number",
|
|
6323
|
+
default: "2",
|
|
6324
|
+
note: "How many times faster the main pane grows than the aside pane."
|
|
6325
|
+
},
|
|
6326
|
+
{
|
|
6327
|
+
name: "minWidth",
|
|
6328
|
+
type: "string",
|
|
6329
|
+
default: "18rem",
|
|
6330
|
+
note: "Min width each pane keeps before the layout wraps to a single column (flex-wrap, no @media)."
|
|
6331
|
+
},
|
|
6332
|
+
{
|
|
6333
|
+
name: "side",
|
|
6334
|
+
type: "start | end",
|
|
6335
|
+
default: "end",
|
|
6336
|
+
note: "Which side the aside pane sits on when side by side."
|
|
6337
|
+
},
|
|
6338
|
+
{
|
|
6339
|
+
name: "align",
|
|
6340
|
+
type: "string",
|
|
6341
|
+
default: "start",
|
|
6342
|
+
note: "Cross-axis alignment (align-items)."
|
|
6343
|
+
}
|
|
6344
|
+
],
|
|
6345
|
+
events: [],
|
|
6346
|
+
slots: [
|
|
6347
|
+
{
|
|
6348
|
+
name: "default"
|
|
6349
|
+
},
|
|
6350
|
+
{
|
|
6351
|
+
name: "aside"
|
|
6352
|
+
}
|
|
6353
|
+
],
|
|
6354
|
+
a11y: [
|
|
6355
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6356
|
+
],
|
|
6357
|
+
behavior: [
|
|
6358
|
+
"wraps_to_single_column_when_narrow: true",
|
|
6359
|
+
"media_query_free: true"
|
|
6360
|
+
],
|
|
6361
|
+
selection: {
|
|
6362
|
+
keywords: [],
|
|
6363
|
+
useWhen: [],
|
|
6364
|
+
avoidWhen: [],
|
|
6365
|
+
alternatives: []
|
|
6366
|
+
},
|
|
6367
|
+
setup: {
|
|
6368
|
+
required: [],
|
|
6369
|
+
notes: []
|
|
6370
|
+
},
|
|
6371
|
+
recipes: []
|
|
6372
|
+
},
|
|
6063
6373
|
{
|
|
6064
6374
|
name: "TStack",
|
|
6065
6375
|
aliases: [],
|
|
@@ -6111,6 +6421,12 @@ var treeui_catalog_default = {
|
|
|
6111
6421
|
name: "reverse",
|
|
6112
6422
|
type: "boolean",
|
|
6113
6423
|
default: "false"
|
|
6424
|
+
},
|
|
6425
|
+
{
|
|
6426
|
+
name: "grow",
|
|
6427
|
+
type: "boolean",
|
|
6428
|
+
default: "false",
|
|
6429
|
+
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."
|
|
6114
6430
|
}
|
|
6115
6431
|
],
|
|
6116
6432
|
events: [],
|
|
@@ -6158,6 +6474,80 @@ var treeui_catalog_default = {
|
|
|
6158
6474
|
"chart-surface"
|
|
6159
6475
|
]
|
|
6160
6476
|
},
|
|
6477
|
+
{
|
|
6478
|
+
name: "TStackItem",
|
|
6479
|
+
aliases: [],
|
|
6480
|
+
package: "@treeui/vue",
|
|
6481
|
+
kind: "layout",
|
|
6482
|
+
category: "Layout",
|
|
6483
|
+
status: "available",
|
|
6484
|
+
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.",
|
|
6485
|
+
sourceFile: "packages/vue/src/components/TStackItem.vue",
|
|
6486
|
+
storyFile: "apps/docs/src/stories/StackItem.stories.ts",
|
|
6487
|
+
storyTitle: "Components/Layout/StackItem",
|
|
6488
|
+
manifestFile: "docs/ai/COMPONENTS/stack-item.yaml",
|
|
6489
|
+
props: [
|
|
6490
|
+
{
|
|
6491
|
+
name: "as",
|
|
6492
|
+
type: "string",
|
|
6493
|
+
default: "div"
|
|
6494
|
+
},
|
|
6495
|
+
{
|
|
6496
|
+
name: "grow",
|
|
6497
|
+
type: "boolean | number",
|
|
6498
|
+
default: "false",
|
|
6499
|
+
note: "true = flex-grow 1; a number sets the grow factor."
|
|
6500
|
+
},
|
|
6501
|
+
{
|
|
6502
|
+
name: "shrink",
|
|
6503
|
+
type: "boolean | number",
|
|
6504
|
+
default: "undefined",
|
|
6505
|
+
note: "false prevents shrinking; a number sets the shrink factor."
|
|
6506
|
+
},
|
|
6507
|
+
{
|
|
6508
|
+
name: "basis",
|
|
6509
|
+
type: "string",
|
|
6510
|
+
default: "undefined",
|
|
6511
|
+
note: "flex-basis (initial main-axis size)."
|
|
6512
|
+
},
|
|
6513
|
+
{
|
|
6514
|
+
name: "minWidth",
|
|
6515
|
+
type: "string",
|
|
6516
|
+
default: "undefined",
|
|
6517
|
+
note: "Minimum main-axis size before it wraps/shrinks."
|
|
6518
|
+
},
|
|
6519
|
+
{
|
|
6520
|
+
name: "align",
|
|
6521
|
+
type: "string",
|
|
6522
|
+
default: "undefined",
|
|
6523
|
+
note: "Per-item cross-axis alignment (align-self)."
|
|
6524
|
+
}
|
|
6525
|
+
],
|
|
6526
|
+
events: [],
|
|
6527
|
+
slots: [
|
|
6528
|
+
{
|
|
6529
|
+
name: "default"
|
|
6530
|
+
}
|
|
6531
|
+
],
|
|
6532
|
+
a11y: [
|
|
6533
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6534
|
+
],
|
|
6535
|
+
behavior: [
|
|
6536
|
+
"controls_single_flex_child: true",
|
|
6537
|
+
"defaults_min_inline_size_zero: true"
|
|
6538
|
+
],
|
|
6539
|
+
selection: {
|
|
6540
|
+
keywords: [],
|
|
6541
|
+
useWhen: [],
|
|
6542
|
+
avoidWhen: [],
|
|
6543
|
+
alternatives: []
|
|
6544
|
+
},
|
|
6545
|
+
setup: {
|
|
6546
|
+
required: [],
|
|
6547
|
+
notes: []
|
|
6548
|
+
},
|
|
6549
|
+
recipes: []
|
|
6550
|
+
},
|
|
6161
6551
|
{
|
|
6162
6552
|
name: "TStat",
|
|
6163
6553
|
aliases: [],
|
|
@@ -6760,6 +7150,95 @@ var treeui_catalog_default = {
|
|
|
6760
7150
|
"tag-input"
|
|
6761
7151
|
]
|
|
6762
7152
|
},
|
|
7153
|
+
{
|
|
7154
|
+
name: "TText",
|
|
7155
|
+
aliases: [],
|
|
7156
|
+
package: "@treeui/vue",
|
|
7157
|
+
kind: "primitive",
|
|
7158
|
+
category: "Data Display",
|
|
7159
|
+
status: "available",
|
|
7160
|
+
purpose: "Typography primitive for body text, labels and headings \u2014 size, tone, weight and truncation from tokens, with no hand-written CSS.",
|
|
7161
|
+
sourceFile: "packages/vue/src/components/TText.vue",
|
|
7162
|
+
storyFile: "apps/docs/src/stories/Text.stories.ts",
|
|
7163
|
+
storyTitle: "Components/Data Display/Text",
|
|
7164
|
+
manifestFile: "docs/ai/COMPONENTS/text.yaml",
|
|
7165
|
+
props: [
|
|
7166
|
+
{
|
|
7167
|
+
name: "as",
|
|
7168
|
+
type: "string",
|
|
7169
|
+
default: "span",
|
|
7170
|
+
note: "Render element. Use `p`, `h1`\u2013`h6`, `label`, `small`, `strong`, \u2026 for correct semantics."
|
|
7171
|
+
},
|
|
7172
|
+
{
|
|
7173
|
+
name: "size",
|
|
7174
|
+
type: "TTextSize",
|
|
7175
|
+
default: "undefined",
|
|
7176
|
+
values: [
|
|
7177
|
+
"xs",
|
|
7178
|
+
"sm",
|
|
7179
|
+
"md",
|
|
7180
|
+
"lg",
|
|
7181
|
+
"xl",
|
|
7182
|
+
"2xl",
|
|
7183
|
+
"3xl"
|
|
7184
|
+
],
|
|
7185
|
+
note: "Maps to --tree-font-size-*. Omitted = inherit."
|
|
7186
|
+
},
|
|
7187
|
+
{
|
|
7188
|
+
name: "tone",
|
|
7189
|
+
type: "TTextTone",
|
|
7190
|
+
default: "default",
|
|
7191
|
+
values: [
|
|
7192
|
+
"default",
|
|
7193
|
+
"muted",
|
|
7194
|
+
"inverse",
|
|
7195
|
+
"brand"
|
|
7196
|
+
],
|
|
7197
|
+
note: "`default` inherits the current colour; others map to --tree-color-text-* / brand."
|
|
7198
|
+
},
|
|
7199
|
+
{
|
|
7200
|
+
name: "weight",
|
|
7201
|
+
type: "TTextWeight",
|
|
7202
|
+
default: "undefined",
|
|
7203
|
+
values: [
|
|
7204
|
+
"regular",
|
|
7205
|
+
"medium",
|
|
7206
|
+
"semibold",
|
|
7207
|
+
"bold"
|
|
7208
|
+
]
|
|
7209
|
+
},
|
|
7210
|
+
{
|
|
7211
|
+
name: "truncate",
|
|
7212
|
+
type: "boolean",
|
|
7213
|
+
default: "false",
|
|
7214
|
+
note: "Clip to a single line with an ellipsis."
|
|
7215
|
+
}
|
|
7216
|
+
],
|
|
7217
|
+
events: [],
|
|
7218
|
+
slots: [
|
|
7219
|
+
{
|
|
7220
|
+
name: "default"
|
|
7221
|
+
}
|
|
7222
|
+
],
|
|
7223
|
+
a11y: [
|
|
7224
|
+
"Choose `as` to convey the correct semantics (e.g. headings via h1\u2013h6); TText adds only visual styling."
|
|
7225
|
+
],
|
|
7226
|
+
behavior: [
|
|
7227
|
+
"semantic_element_controlled_by_as: true",
|
|
7228
|
+
"token_driven_size_tone_weight: true"
|
|
7229
|
+
],
|
|
7230
|
+
selection: {
|
|
7231
|
+
keywords: [],
|
|
7232
|
+
useWhen: [],
|
|
7233
|
+
avoidWhen: [],
|
|
7234
|
+
alternatives: []
|
|
7235
|
+
},
|
|
7236
|
+
setup: {
|
|
7237
|
+
required: [],
|
|
7238
|
+
notes: []
|
|
7239
|
+
},
|
|
7240
|
+
recipes: []
|
|
7241
|
+
},
|
|
6763
7242
|
{
|
|
6764
7243
|
name: "TTextarea",
|
|
6765
7244
|
aliases: [],
|
|
@@ -6788,6 +7267,20 @@ var treeui_catalog_default = {
|
|
|
6788
7267
|
"lg"
|
|
6789
7268
|
]
|
|
6790
7269
|
},
|
|
7270
|
+
{
|
|
7271
|
+
name: "width",
|
|
7272
|
+
type: "TFieldWidth",
|
|
7273
|
+
default: "full",
|
|
7274
|
+
values: [
|
|
7275
|
+
"xs",
|
|
7276
|
+
"sm",
|
|
7277
|
+
"md",
|
|
7278
|
+
"lg",
|
|
7279
|
+
"xl",
|
|
7280
|
+
"full"
|
|
7281
|
+
],
|
|
7282
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
7283
|
+
},
|
|
6791
7284
|
{
|
|
6792
7285
|
name: "disabled",
|
|
6793
7286
|
type: "boolean",
|