@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/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-07-
|
|
50
|
+
generatedAt: "2026-07-18T19:02:09.022Z",
|
|
51
51
|
packageName: "@treeui/vue",
|
|
52
|
-
packageVersion: "0.
|
|
52
|
+
packageVersion: "0.15.0",
|
|
53
53
|
decisionGuides: [
|
|
54
54
|
{
|
|
55
55
|
id: "single-choice",
|
|
@@ -993,6 +993,22 @@ var treeui_catalog_default = {
|
|
|
993
993
|
type: "boolean",
|
|
994
994
|
default: "true"
|
|
995
995
|
},
|
|
996
|
+
{
|
|
997
|
+
name: "showCollapseButton",
|
|
998
|
+
type: "boolean",
|
|
999
|
+
default: "true",
|
|
1000
|
+
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."
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
name: "collapseLabel",
|
|
1004
|
+
type: "string",
|
|
1005
|
+
default: "Collapse sidebar"
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
name: "expandLabel",
|
|
1009
|
+
type: "string",
|
|
1010
|
+
default: "Expand sidebar"
|
|
1011
|
+
},
|
|
996
1012
|
{
|
|
997
1013
|
name: "menuLabel",
|
|
998
1014
|
type: "string",
|
|
@@ -1027,14 +1043,26 @@ var treeui_catalog_default = {
|
|
|
1027
1043
|
{
|
|
1028
1044
|
name: "header"
|
|
1029
1045
|
},
|
|
1046
|
+
{
|
|
1047
|
+
name: "header-start"
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
name: "sidebar-header"
|
|
1051
|
+
},
|
|
1030
1052
|
{
|
|
1031
1053
|
name: "sidebar"
|
|
1032
1054
|
},
|
|
1055
|
+
{
|
|
1056
|
+
name: "sidebar-footer"
|
|
1057
|
+
},
|
|
1033
1058
|
{
|
|
1034
1059
|
name: "default"
|
|
1035
1060
|
},
|
|
1036
1061
|
{
|
|
1037
1062
|
name: "menu-icon"
|
|
1063
|
+
},
|
|
1064
|
+
{
|
|
1065
|
+
name: "collapse-icon"
|
|
1038
1066
|
}
|
|
1039
1067
|
],
|
|
1040
1068
|
a11y: [
|
|
@@ -1062,7 +1090,10 @@ var treeui_catalog_default = {
|
|
|
1062
1090
|
"left_and_right_variants: true",
|
|
1063
1091
|
"locks_body_scroll_while_drawer_open: true",
|
|
1064
1092
|
"overlay_click_closes_when_enabled: true",
|
|
1065
|
-
"exposes_slot_props_with_mobile_collapsed_and_toggles: true"
|
|
1093
|
+
"exposes_slot_props_with_mobile_collapsed_and_toggles: true",
|
|
1094
|
+
"sidebar_footer_pinned_to_bottom: true",
|
|
1095
|
+
"sidebar_header_and_footer_inset_to_align_with_nav_icons: true",
|
|
1096
|
+
"header_mirrors_shell_columns_when_header_start_is_used: true"
|
|
1066
1097
|
],
|
|
1067
1098
|
selection: {
|
|
1068
1099
|
keywords: [
|
|
@@ -1371,6 +1402,18 @@ var treeui_catalog_default = {
|
|
|
1371
1402
|
name: "type",
|
|
1372
1403
|
type: "button | submit | reset",
|
|
1373
1404
|
default: "button"
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
name: "block",
|
|
1408
|
+
type: "boolean",
|
|
1409
|
+
default: "false",
|
|
1410
|
+
note: "Stretches the button to the full width of its container. Useful for menu rows and mobile CTAs."
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
name: "align",
|
|
1414
|
+
type: "start | center | end",
|
|
1415
|
+
default: "center",
|
|
1416
|
+
note: "Content alignment; only meaningful together with `block`. Use `start` for left-aligned icon+label menu rows."
|
|
1374
1417
|
}
|
|
1375
1418
|
],
|
|
1376
1419
|
events: [
|
|
@@ -1436,7 +1479,6 @@ var treeui_catalog_default = {
|
|
|
1436
1479
|
values: [
|
|
1437
1480
|
"outline",
|
|
1438
1481
|
"soft",
|
|
1439
|
-
"solid",
|
|
1440
1482
|
"inset"
|
|
1441
1483
|
]
|
|
1442
1484
|
},
|
|
@@ -1475,7 +1517,8 @@ var treeui_catalog_default = {
|
|
|
1475
1517
|
a11y: [],
|
|
1476
1518
|
behavior: [
|
|
1477
1519
|
"body_wrapper_class: t-card__body",
|
|
1478
|
-
"
|
|
1520
|
+
'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."}',
|
|
1521
|
+
"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."
|
|
1479
1522
|
],
|
|
1480
1523
|
selection: {
|
|
1481
1524
|
keywords: [
|
|
@@ -1804,6 +1847,92 @@ var treeui_catalog_default = {
|
|
|
1804
1847
|
},
|
|
1805
1848
|
recipes: []
|
|
1806
1849
|
},
|
|
1850
|
+
{
|
|
1851
|
+
name: "TColorSwatch",
|
|
1852
|
+
aliases: [],
|
|
1853
|
+
package: "@treeui/vue",
|
|
1854
|
+
kind: "form",
|
|
1855
|
+
category: "Data Entry",
|
|
1856
|
+
status: "available",
|
|
1857
|
+
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.",
|
|
1858
|
+
sourceFile: "packages/vue/src/components/TColorSwatch.vue",
|
|
1859
|
+
storyFile: "apps/docs/src/stories/ColorSwatch.stories.ts",
|
|
1860
|
+
storyTitle: "Components/Data Entry/ColorSwatch",
|
|
1861
|
+
manifestFile: "docs/ai/COMPONENTS/color-swatch.yaml",
|
|
1862
|
+
props: [
|
|
1863
|
+
{
|
|
1864
|
+
name: "modelValue",
|
|
1865
|
+
type: "string",
|
|
1866
|
+
default: "undefined",
|
|
1867
|
+
note: "Selected colour as a hex string. Matching is case-insensitive."
|
|
1868
|
+
},
|
|
1869
|
+
{
|
|
1870
|
+
name: "options",
|
|
1871
|
+
type: "TColorSwatchOption[]",
|
|
1872
|
+
default: "[]",
|
|
1873
|
+
note: "Preset swatches, each `{ label, value }`. `label` becomes the button's accessible name."
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
name: "allowCustom",
|
|
1877
|
+
type: "boolean",
|
|
1878
|
+
default: "false",
|
|
1879
|
+
note: 'Appends a native `<input type="color">` for values outside the presets.'
|
|
1880
|
+
},
|
|
1881
|
+
{
|
|
1882
|
+
name: "size",
|
|
1883
|
+
type: "TSize",
|
|
1884
|
+
default: "md",
|
|
1885
|
+
values: [
|
|
1886
|
+
"sm",
|
|
1887
|
+
"md",
|
|
1888
|
+
"lg"
|
|
1889
|
+
]
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
name: "label",
|
|
1893
|
+
type: "string",
|
|
1894
|
+
default: "Color",
|
|
1895
|
+
note: 'Accessible label for the swatch group (`role="group"`).'
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
name: "customLabel",
|
|
1899
|
+
type: "string",
|
|
1900
|
+
default: "Custom color"
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
name: "disabled",
|
|
1904
|
+
type: "boolean",
|
|
1905
|
+
default: "false"
|
|
1906
|
+
}
|
|
1907
|
+
],
|
|
1908
|
+
events: [
|
|
1909
|
+
{
|
|
1910
|
+
name: "update:modelValue"
|
|
1911
|
+
}
|
|
1912
|
+
],
|
|
1913
|
+
slots: [],
|
|
1914
|
+
a11y: [
|
|
1915
|
+
'Wrapper is `role="group"` labelled by `label`.',
|
|
1916
|
+
"Each swatch is a native button with `aria-pressed` reflecting selection and `aria-label` from the option label.",
|
|
1917
|
+
"Selection is conveyed by an outline (not colour alone), since the swatch's own colour is the content."
|
|
1918
|
+
],
|
|
1919
|
+
behavior: [
|
|
1920
|
+
"emits_on_preset_click: true",
|
|
1921
|
+
"emits_on_custom_input: true",
|
|
1922
|
+
"blocks_interaction_when_disabled: true"
|
|
1923
|
+
],
|
|
1924
|
+
selection: {
|
|
1925
|
+
keywords: [],
|
|
1926
|
+
useWhen: [],
|
|
1927
|
+
avoidWhen: [],
|
|
1928
|
+
alternatives: []
|
|
1929
|
+
},
|
|
1930
|
+
setup: {
|
|
1931
|
+
required: [],
|
|
1932
|
+
notes: []
|
|
1933
|
+
},
|
|
1934
|
+
recipes: []
|
|
1935
|
+
},
|
|
1807
1936
|
{
|
|
1808
1937
|
name: "TCombobox",
|
|
1809
1938
|
aliases: [],
|
|
@@ -3787,6 +3916,20 @@ var treeui_catalog_default = {
|
|
|
3787
3916
|
"lg"
|
|
3788
3917
|
]
|
|
3789
3918
|
},
|
|
3919
|
+
{
|
|
3920
|
+
name: "width",
|
|
3921
|
+
type: "TFieldWidth",
|
|
3922
|
+
default: "full",
|
|
3923
|
+
values: [
|
|
3924
|
+
"xs",
|
|
3925
|
+
"sm",
|
|
3926
|
+
"md",
|
|
3927
|
+
"lg",
|
|
3928
|
+
"xl",
|
|
3929
|
+
"full"
|
|
3930
|
+
],
|
|
3931
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
3932
|
+
},
|
|
3790
3933
|
{
|
|
3791
3934
|
name: "disabled",
|
|
3792
3935
|
type: "boolean",
|
|
@@ -3871,6 +4014,43 @@ var treeui_catalog_default = {
|
|
|
3871
4014
|
"tag-input"
|
|
3872
4015
|
]
|
|
3873
4016
|
},
|
|
4017
|
+
{
|
|
4018
|
+
name: "TKbd",
|
|
4019
|
+
aliases: [],
|
|
4020
|
+
package: "@treeui/vue",
|
|
4021
|
+
kind: "primitive",
|
|
4022
|
+
category: "Data Display",
|
|
4023
|
+
status: "available",
|
|
4024
|
+
purpose: "Keyboard-key hint (e.g. \u2318K, Esc, Ctrl) rendered as a native <kbd> with the library's chip styling.",
|
|
4025
|
+
sourceFile: "packages/vue/src/components/TKbd.vue",
|
|
4026
|
+
storyFile: "apps/docs/src/stories/Kbd.stories.ts",
|
|
4027
|
+
storyTitle: "Components/Data Display/Kbd",
|
|
4028
|
+
manifestFile: "docs/ai/COMPONENTS/kbd.yaml",
|
|
4029
|
+
props: [],
|
|
4030
|
+
events: [],
|
|
4031
|
+
slots: [
|
|
4032
|
+
{
|
|
4033
|
+
name: "default"
|
|
4034
|
+
}
|
|
4035
|
+
],
|
|
4036
|
+
a11y: [
|
|
4037
|
+
"Uses the native <kbd> element so assistive tech announces it as keyboard input."
|
|
4038
|
+
],
|
|
4039
|
+
behavior: [
|
|
4040
|
+
"renders_native_kbd_element: true"
|
|
4041
|
+
],
|
|
4042
|
+
selection: {
|
|
4043
|
+
keywords: [],
|
|
4044
|
+
useWhen: [],
|
|
4045
|
+
avoidWhen: [],
|
|
4046
|
+
alternatives: []
|
|
4047
|
+
},
|
|
4048
|
+
setup: {
|
|
4049
|
+
required: [],
|
|
4050
|
+
notes: []
|
|
4051
|
+
},
|
|
4052
|
+
recipes: []
|
|
4053
|
+
},
|
|
3874
4054
|
{
|
|
3875
4055
|
name: "TLink",
|
|
3876
4056
|
aliases: [],
|
|
@@ -5521,6 +5701,20 @@ var treeui_catalog_default = {
|
|
|
5521
5701
|
"lg"
|
|
5522
5702
|
]
|
|
5523
5703
|
},
|
|
5704
|
+
{
|
|
5705
|
+
name: "width",
|
|
5706
|
+
type: "TFieldWidth",
|
|
5707
|
+
default: "full",
|
|
5708
|
+
values: [
|
|
5709
|
+
"xs",
|
|
5710
|
+
"sm",
|
|
5711
|
+
"md",
|
|
5712
|
+
"lg",
|
|
5713
|
+
"xl",
|
|
5714
|
+
"full"
|
|
5715
|
+
],
|
|
5716
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
5717
|
+
},
|
|
5524
5718
|
{
|
|
5525
5719
|
name: "disabled",
|
|
5526
5720
|
type: "boolean",
|
|
@@ -5935,6 +6129,46 @@ var treeui_catalog_default = {
|
|
|
5935
6129
|
},
|
|
5936
6130
|
recipes: []
|
|
5937
6131
|
},
|
|
6132
|
+
{
|
|
6133
|
+
name: "TSpacer",
|
|
6134
|
+
aliases: [],
|
|
6135
|
+
package: "@treeui/vue",
|
|
6136
|
+
kind: "layout",
|
|
6137
|
+
category: "Layout",
|
|
6138
|
+
status: "available",
|
|
6139
|
+
purpose: "Flexible spacer that absorbs free space between siblings in a flex layout (e.g. TStack), replacing hand-written margin:auto / flex:1.",
|
|
6140
|
+
sourceFile: "packages/vue/src/components/TSpacer.vue",
|
|
6141
|
+
storyFile: "apps/docs/src/stories/Spacer.stories.ts",
|
|
6142
|
+
storyTitle: "Components/Layout/Spacer",
|
|
6143
|
+
manifestFile: "docs/ai/COMPONENTS/spacer.yaml",
|
|
6144
|
+
props: [
|
|
6145
|
+
{
|
|
6146
|
+
name: "as",
|
|
6147
|
+
type: "string",
|
|
6148
|
+
default: "div"
|
|
6149
|
+
}
|
|
6150
|
+
],
|
|
6151
|
+
events: [],
|
|
6152
|
+
slots: [],
|
|
6153
|
+
a11y: [
|
|
6154
|
+
"Rendered with aria-hidden='true'; it is a layout-only element with no content."
|
|
6155
|
+
],
|
|
6156
|
+
behavior: [
|
|
6157
|
+
"grows_to_fill_free_space: true",
|
|
6158
|
+
"pushes_siblings_apart_or_to_ends: true"
|
|
6159
|
+
],
|
|
6160
|
+
selection: {
|
|
6161
|
+
keywords: [],
|
|
6162
|
+
useWhen: [],
|
|
6163
|
+
avoidWhen: [],
|
|
6164
|
+
alternatives: []
|
|
6165
|
+
},
|
|
6166
|
+
setup: {
|
|
6167
|
+
required: [],
|
|
6168
|
+
notes: []
|
|
6169
|
+
},
|
|
6170
|
+
recipes: []
|
|
6171
|
+
},
|
|
5938
6172
|
{
|
|
5939
6173
|
name: "TSparkline",
|
|
5940
6174
|
aliases: [],
|
|
@@ -6107,6 +6341,82 @@ var treeui_catalog_default = {
|
|
|
6107
6341
|
},
|
|
6108
6342
|
recipes: []
|
|
6109
6343
|
},
|
|
6344
|
+
{
|
|
6345
|
+
name: "TSplit",
|
|
6346
|
+
aliases: [],
|
|
6347
|
+
package: "@treeui/vue",
|
|
6348
|
+
kind: "layout",
|
|
6349
|
+
category: "Layout",
|
|
6350
|
+
status: "available",
|
|
6351
|
+
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.",
|
|
6352
|
+
sourceFile: "packages/vue/src/components/TSplit.vue",
|
|
6353
|
+
storyFile: "apps/docs/src/stories/Split.stories.ts",
|
|
6354
|
+
storyTitle: "Components/Layout/Split",
|
|
6355
|
+
manifestFile: "docs/ai/COMPONENTS/split.yaml",
|
|
6356
|
+
props: [
|
|
6357
|
+
{
|
|
6358
|
+
name: "as",
|
|
6359
|
+
type: "string",
|
|
6360
|
+
default: "div"
|
|
6361
|
+
},
|
|
6362
|
+
{
|
|
6363
|
+
name: "gap",
|
|
6364
|
+
type: "string",
|
|
6365
|
+
default: "var(--tree-space-5)"
|
|
6366
|
+
},
|
|
6367
|
+
{
|
|
6368
|
+
name: "ratio",
|
|
6369
|
+
type: "number",
|
|
6370
|
+
default: "2",
|
|
6371
|
+
note: "How many times faster the main pane grows than the aside pane."
|
|
6372
|
+
},
|
|
6373
|
+
{
|
|
6374
|
+
name: "minWidth",
|
|
6375
|
+
type: "string",
|
|
6376
|
+
default: "18rem",
|
|
6377
|
+
note: "Min width each pane keeps before the layout wraps to a single column (flex-wrap, no @media)."
|
|
6378
|
+
},
|
|
6379
|
+
{
|
|
6380
|
+
name: "side",
|
|
6381
|
+
type: "start | end",
|
|
6382
|
+
default: "end",
|
|
6383
|
+
note: "Which side the aside pane sits on when side by side."
|
|
6384
|
+
},
|
|
6385
|
+
{
|
|
6386
|
+
name: "align",
|
|
6387
|
+
type: "string",
|
|
6388
|
+
default: "start",
|
|
6389
|
+
note: "Cross-axis alignment (align-items)."
|
|
6390
|
+
}
|
|
6391
|
+
],
|
|
6392
|
+
events: [],
|
|
6393
|
+
slots: [
|
|
6394
|
+
{
|
|
6395
|
+
name: "default"
|
|
6396
|
+
},
|
|
6397
|
+
{
|
|
6398
|
+
name: "aside"
|
|
6399
|
+
}
|
|
6400
|
+
],
|
|
6401
|
+
a11y: [
|
|
6402
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6403
|
+
],
|
|
6404
|
+
behavior: [
|
|
6405
|
+
"wraps_to_single_column_when_narrow: true",
|
|
6406
|
+
"media_query_free: true"
|
|
6407
|
+
],
|
|
6408
|
+
selection: {
|
|
6409
|
+
keywords: [],
|
|
6410
|
+
useWhen: [],
|
|
6411
|
+
avoidWhen: [],
|
|
6412
|
+
alternatives: []
|
|
6413
|
+
},
|
|
6414
|
+
setup: {
|
|
6415
|
+
required: [],
|
|
6416
|
+
notes: []
|
|
6417
|
+
},
|
|
6418
|
+
recipes: []
|
|
6419
|
+
},
|
|
6110
6420
|
{
|
|
6111
6421
|
name: "TStack",
|
|
6112
6422
|
aliases: [],
|
|
@@ -6158,6 +6468,12 @@ var treeui_catalog_default = {
|
|
|
6158
6468
|
name: "reverse",
|
|
6159
6469
|
type: "boolean",
|
|
6160
6470
|
default: "false"
|
|
6471
|
+
},
|
|
6472
|
+
{
|
|
6473
|
+
name: "grow",
|
|
6474
|
+
type: "boolean",
|
|
6475
|
+
default: "false",
|
|
6476
|
+
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."
|
|
6161
6477
|
}
|
|
6162
6478
|
],
|
|
6163
6479
|
events: [],
|
|
@@ -6205,6 +6521,80 @@ var treeui_catalog_default = {
|
|
|
6205
6521
|
"chart-surface"
|
|
6206
6522
|
]
|
|
6207
6523
|
},
|
|
6524
|
+
{
|
|
6525
|
+
name: "TStackItem",
|
|
6526
|
+
aliases: [],
|
|
6527
|
+
package: "@treeui/vue",
|
|
6528
|
+
kind: "layout",
|
|
6529
|
+
category: "Layout",
|
|
6530
|
+
status: "available",
|
|
6531
|
+
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.",
|
|
6532
|
+
sourceFile: "packages/vue/src/components/TStackItem.vue",
|
|
6533
|
+
storyFile: "apps/docs/src/stories/StackItem.stories.ts",
|
|
6534
|
+
storyTitle: "Components/Layout/StackItem",
|
|
6535
|
+
manifestFile: "docs/ai/COMPONENTS/stack-item.yaml",
|
|
6536
|
+
props: [
|
|
6537
|
+
{
|
|
6538
|
+
name: "as",
|
|
6539
|
+
type: "string",
|
|
6540
|
+
default: "div"
|
|
6541
|
+
},
|
|
6542
|
+
{
|
|
6543
|
+
name: "grow",
|
|
6544
|
+
type: "boolean | number",
|
|
6545
|
+
default: "false",
|
|
6546
|
+
note: "true = flex-grow 1; a number sets the grow factor."
|
|
6547
|
+
},
|
|
6548
|
+
{
|
|
6549
|
+
name: "shrink",
|
|
6550
|
+
type: "boolean | number",
|
|
6551
|
+
default: "undefined",
|
|
6552
|
+
note: "false prevents shrinking; a number sets the shrink factor."
|
|
6553
|
+
},
|
|
6554
|
+
{
|
|
6555
|
+
name: "basis",
|
|
6556
|
+
type: "string",
|
|
6557
|
+
default: "undefined",
|
|
6558
|
+
note: "flex-basis (initial main-axis size)."
|
|
6559
|
+
},
|
|
6560
|
+
{
|
|
6561
|
+
name: "minWidth",
|
|
6562
|
+
type: "string",
|
|
6563
|
+
default: "undefined",
|
|
6564
|
+
note: "Minimum main-axis size before it wraps/shrinks."
|
|
6565
|
+
},
|
|
6566
|
+
{
|
|
6567
|
+
name: "align",
|
|
6568
|
+
type: "string",
|
|
6569
|
+
default: "undefined",
|
|
6570
|
+
note: "Per-item cross-axis alignment (align-self)."
|
|
6571
|
+
}
|
|
6572
|
+
],
|
|
6573
|
+
events: [],
|
|
6574
|
+
slots: [
|
|
6575
|
+
{
|
|
6576
|
+
name: "default"
|
|
6577
|
+
}
|
|
6578
|
+
],
|
|
6579
|
+
a11y: [
|
|
6580
|
+
"Layout-only wrapper; semantics come from the slotted content."
|
|
6581
|
+
],
|
|
6582
|
+
behavior: [
|
|
6583
|
+
"controls_single_flex_child: true",
|
|
6584
|
+
"defaults_min_inline_size_zero: true"
|
|
6585
|
+
],
|
|
6586
|
+
selection: {
|
|
6587
|
+
keywords: [],
|
|
6588
|
+
useWhen: [],
|
|
6589
|
+
avoidWhen: [],
|
|
6590
|
+
alternatives: []
|
|
6591
|
+
},
|
|
6592
|
+
setup: {
|
|
6593
|
+
required: [],
|
|
6594
|
+
notes: []
|
|
6595
|
+
},
|
|
6596
|
+
recipes: []
|
|
6597
|
+
},
|
|
6208
6598
|
{
|
|
6209
6599
|
name: "TStat",
|
|
6210
6600
|
aliases: [],
|
|
@@ -6807,6 +7197,95 @@ var treeui_catalog_default = {
|
|
|
6807
7197
|
"tag-input"
|
|
6808
7198
|
]
|
|
6809
7199
|
},
|
|
7200
|
+
{
|
|
7201
|
+
name: "TText",
|
|
7202
|
+
aliases: [],
|
|
7203
|
+
package: "@treeui/vue",
|
|
7204
|
+
kind: "primitive",
|
|
7205
|
+
category: "Data Display",
|
|
7206
|
+
status: "available",
|
|
7207
|
+
purpose: "Typography primitive for body text, labels and headings \u2014 size, tone, weight and truncation from tokens, with no hand-written CSS.",
|
|
7208
|
+
sourceFile: "packages/vue/src/components/TText.vue",
|
|
7209
|
+
storyFile: "apps/docs/src/stories/Text.stories.ts",
|
|
7210
|
+
storyTitle: "Components/Data Display/Text",
|
|
7211
|
+
manifestFile: "docs/ai/COMPONENTS/text.yaml",
|
|
7212
|
+
props: [
|
|
7213
|
+
{
|
|
7214
|
+
name: "as",
|
|
7215
|
+
type: "string",
|
|
7216
|
+
default: "span",
|
|
7217
|
+
note: "Render element. Use `p`, `h1`\u2013`h6`, `label`, `small`, `strong`, \u2026 for correct semantics."
|
|
7218
|
+
},
|
|
7219
|
+
{
|
|
7220
|
+
name: "size",
|
|
7221
|
+
type: "TTextSize",
|
|
7222
|
+
default: "undefined",
|
|
7223
|
+
values: [
|
|
7224
|
+
"xs",
|
|
7225
|
+
"sm",
|
|
7226
|
+
"md",
|
|
7227
|
+
"lg",
|
|
7228
|
+
"xl",
|
|
7229
|
+
"2xl",
|
|
7230
|
+
"3xl"
|
|
7231
|
+
],
|
|
7232
|
+
note: "Maps to --tree-font-size-*. Omitted = inherit."
|
|
7233
|
+
},
|
|
7234
|
+
{
|
|
7235
|
+
name: "tone",
|
|
7236
|
+
type: "TTextTone",
|
|
7237
|
+
default: "default",
|
|
7238
|
+
values: [
|
|
7239
|
+
"default",
|
|
7240
|
+
"muted",
|
|
7241
|
+
"inverse",
|
|
7242
|
+
"brand"
|
|
7243
|
+
],
|
|
7244
|
+
note: "`default` inherits the current colour; others map to --tree-color-text-* / brand."
|
|
7245
|
+
},
|
|
7246
|
+
{
|
|
7247
|
+
name: "weight",
|
|
7248
|
+
type: "TTextWeight",
|
|
7249
|
+
default: "undefined",
|
|
7250
|
+
values: [
|
|
7251
|
+
"regular",
|
|
7252
|
+
"medium",
|
|
7253
|
+
"semibold",
|
|
7254
|
+
"bold"
|
|
7255
|
+
]
|
|
7256
|
+
},
|
|
7257
|
+
{
|
|
7258
|
+
name: "truncate",
|
|
7259
|
+
type: "boolean",
|
|
7260
|
+
default: "false",
|
|
7261
|
+
note: "Clip to a single line with an ellipsis."
|
|
7262
|
+
}
|
|
7263
|
+
],
|
|
7264
|
+
events: [],
|
|
7265
|
+
slots: [
|
|
7266
|
+
{
|
|
7267
|
+
name: "default"
|
|
7268
|
+
}
|
|
7269
|
+
],
|
|
7270
|
+
a11y: [
|
|
7271
|
+
"Choose `as` to convey the correct semantics (e.g. headings via h1\u2013h6); TText adds only visual styling."
|
|
7272
|
+
],
|
|
7273
|
+
behavior: [
|
|
7274
|
+
"semantic_element_controlled_by_as: true",
|
|
7275
|
+
"token_driven_size_tone_weight: true"
|
|
7276
|
+
],
|
|
7277
|
+
selection: {
|
|
7278
|
+
keywords: [],
|
|
7279
|
+
useWhen: [],
|
|
7280
|
+
avoidWhen: [],
|
|
7281
|
+
alternatives: []
|
|
7282
|
+
},
|
|
7283
|
+
setup: {
|
|
7284
|
+
required: [],
|
|
7285
|
+
notes: []
|
|
7286
|
+
},
|
|
7287
|
+
recipes: []
|
|
7288
|
+
},
|
|
6810
7289
|
{
|
|
6811
7290
|
name: "TTextarea",
|
|
6812
7291
|
aliases: [],
|
|
@@ -6835,6 +7314,20 @@ var treeui_catalog_default = {
|
|
|
6835
7314
|
"lg"
|
|
6836
7315
|
]
|
|
6837
7316
|
},
|
|
7317
|
+
{
|
|
7318
|
+
name: "width",
|
|
7319
|
+
type: "TFieldWidth",
|
|
7320
|
+
default: "full",
|
|
7321
|
+
values: [
|
|
7322
|
+
"xs",
|
|
7323
|
+
"sm",
|
|
7324
|
+
"md",
|
|
7325
|
+
"lg",
|
|
7326
|
+
"xl",
|
|
7327
|
+
"full"
|
|
7328
|
+
],
|
|
7329
|
+
note: "Inline-size cap (max-inline-size). Fluid by default; use instead of an inline width style."
|
|
7330
|
+
},
|
|
6838
7331
|
{
|
|
6839
7332
|
name: "disabled",
|
|
6840
7333
|
type: "boolean",
|
package/dist/index.js
CHANGED