@toyu-ui/elements 0.1.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/LICENSE +21 -0
- package/README.md +79 -0
- package/button/tyui-button.d.ts +27 -0
- package/button.d.ts +1 -0
- package/button.js +339 -0
- package/center/tyui-center.d.ts +13 -0
- package/center.d.ts +1 -0
- package/center.js +39 -0
- package/checkbox/tyui-checkbox.d.ts +25 -0
- package/checkbox.d.ts +1 -0
- package/checkbox.js +288 -0
- package/cluster/tyui-cluster.d.ts +16 -0
- package/cluster.d.ts +1 -0
- package/cluster.js +53 -0
- package/container/tyui-container.d.ts +14 -0
- package/container.d.ts +1 -0
- package/container.js +44 -0
- package/custom-elements.json +1651 -0
- package/flex/tyui-flex.d.ts +22 -0
- package/flex.d.ts +1 -0
- package/flex.js +66 -0
- package/frame/tyui-frame.d.ts +13 -0
- package/frame.d.ts +1 -0
- package/frame.js +35 -0
- package/grid/tyui-grid.d.ts +20 -0
- package/grid.d.ts +1 -0
- package/grid.js +59 -0
- package/index.d.ts +12 -0
- package/index.js +26 -0
- package/input/tyui-input.d.ts +40 -0
- package/input.d.ts +1 -0
- package/input.js +345 -0
- package/layout/layout-helpers.d.ts +9 -0
- package/layout-helpers-C2WgKm6F.js +171 -0
- package/package.json +91 -0
- package/radio/tyui-radio.d.ts +21 -0
- package/radio-group/tyui-radio-group.d.ts +28 -0
- package/radio-group.d.ts +1 -0
- package/radio-group.js +234 -0
- package/radio.d.ts +1 -0
- package/radio.js +239 -0
- package/sidebar/tyui-sidebar.d.ts +17 -0
- package/sidebar.d.ts +1 -0
- package/sidebar.js +53 -0
- package/skills/button/SKILL.md +49 -0
- package/skills/center/SKILL.md +45 -0
- package/skills/checkbox/SKILL.md +39 -0
- package/skills/cluster/SKILL.md +44 -0
- package/skills/components/SKILL.md +53 -0
- package/skills/container/SKILL.md +42 -0
- package/skills/flex/SKILL.md +45 -0
- package/skills/frame/SKILL.md +42 -0
- package/skills/grid/SKILL.md +44 -0
- package/skills/input/SKILL.md +59 -0
- package/skills/radio/SKILL.md +49 -0
- package/skills/radio-group/SKILL.md +51 -0
- package/skills/sidebar/SKILL.md +43 -0
|
@@ -0,0 +1,1651 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"readme": "",
|
|
4
|
+
"package": "@toyu-ui/elements",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"modules": [
|
|
7
|
+
{
|
|
8
|
+
"kind": "javascript-module",
|
|
9
|
+
"path": "./src/button/tyui-button.ts",
|
|
10
|
+
"declarations": [
|
|
11
|
+
{
|
|
12
|
+
"kind": "class",
|
|
13
|
+
"declaration": {
|
|
14
|
+
"name": "TyuiButtonElement",
|
|
15
|
+
"module": "./src/button/tyui-button.ts"
|
|
16
|
+
},
|
|
17
|
+
"name": "TyuiButtonElement",
|
|
18
|
+
"tagName": "tyui-button",
|
|
19
|
+
"customElement": true,
|
|
20
|
+
"summary": "Native custom element button for immediate actions.",
|
|
21
|
+
"attributes": [
|
|
22
|
+
{
|
|
23
|
+
"name": "appearance",
|
|
24
|
+
"type": "default | secondary | primary | outline | subtle | transparent",
|
|
25
|
+
"default": "default",
|
|
26
|
+
"description": "Visual emphasis."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "disabled",
|
|
30
|
+
"type": "boolean",
|
|
31
|
+
"default": "false",
|
|
32
|
+
"description": "Disables the native button."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "disabled-focusable",
|
|
36
|
+
"type": "boolean",
|
|
37
|
+
"default": "false",
|
|
38
|
+
"description": "Keeps the button focusable while suppressing activation."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "icon-position",
|
|
42
|
+
"type": "before | after",
|
|
43
|
+
"default": "before",
|
|
44
|
+
"description": "Places slotted icon before or after text."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "shape",
|
|
48
|
+
"type": "rounded | circular | square",
|
|
49
|
+
"default": "rounded",
|
|
50
|
+
"description": "Control corner treatment."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "size",
|
|
54
|
+
"type": "small | medium | large",
|
|
55
|
+
"default": "medium",
|
|
56
|
+
"description": "Control density."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "type",
|
|
60
|
+
"type": "button | submit | reset",
|
|
61
|
+
"default": "button",
|
|
62
|
+
"description": "Native button type."
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"members": [
|
|
66
|
+
{
|
|
67
|
+
"kind": "field",
|
|
68
|
+
"name": "appearance",
|
|
69
|
+
"type": {
|
|
70
|
+
"text": "TyuiButtonAppearance"
|
|
71
|
+
},
|
|
72
|
+
"attribute": "appearance",
|
|
73
|
+
"description": "Reflected visual emphasis."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"kind": "field",
|
|
77
|
+
"name": "disabled",
|
|
78
|
+
"type": {
|
|
79
|
+
"text": "boolean"
|
|
80
|
+
},
|
|
81
|
+
"attribute": "disabled",
|
|
82
|
+
"description": "Reflected disabled state."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "field",
|
|
86
|
+
"name": "disabledFocusable",
|
|
87
|
+
"type": {
|
|
88
|
+
"text": "boolean"
|
|
89
|
+
},
|
|
90
|
+
"attribute": "disabled-focusable",
|
|
91
|
+
"description": "Focusable disabled state."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"kind": "field",
|
|
95
|
+
"name": "type",
|
|
96
|
+
"type": {
|
|
97
|
+
"text": "TyuiButtonType"
|
|
98
|
+
},
|
|
99
|
+
"attribute": "type",
|
|
100
|
+
"description": "Native button type."
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"events": [
|
|
104
|
+
{
|
|
105
|
+
"name": "click",
|
|
106
|
+
"type": {
|
|
107
|
+
"text": "MouseEvent"
|
|
108
|
+
},
|
|
109
|
+
"description": "Native composed click from the internal button."
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"slots": [
|
|
113
|
+
{
|
|
114
|
+
"name": "default",
|
|
115
|
+
"description": "Button label."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "icon",
|
|
119
|
+
"description": "Decorative or named icon."
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"cssParts": [
|
|
123
|
+
{
|
|
124
|
+
"name": "control",
|
|
125
|
+
"description": "Internal native button."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "label",
|
|
129
|
+
"description": "Label wrapper."
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"cssProperties": [
|
|
133
|
+
{
|
|
134
|
+
"name": "--ty-button-background",
|
|
135
|
+
"description": "Resting background."
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"name": "--ty-button-foreground",
|
|
139
|
+
"description": "Text color."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "--ty-button-border-color",
|
|
143
|
+
"description": "Border color."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "--ty-button-radius",
|
|
147
|
+
"description": "Corner radius."
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"x-design-system": {
|
|
151
|
+
"intent": "Trigger an immediate in-page action.",
|
|
152
|
+
"pattern": "Native button",
|
|
153
|
+
"layoutOwnership": "Component owns internal padding and icon-label gap; parent owns width and placement.",
|
|
154
|
+
"accessibility": [
|
|
155
|
+
"Use a button for actions, not navigation.",
|
|
156
|
+
"Icon-only buttons require an accessible name."
|
|
157
|
+
],
|
|
158
|
+
"misuse": [
|
|
159
|
+
"Do not use for navigation.",
|
|
160
|
+
"Do not place interactive controls inside the label slot."
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"exports": [
|
|
166
|
+
{
|
|
167
|
+
"kind": "custom-element-definition",
|
|
168
|
+
"name": "tyui-button",
|
|
169
|
+
"declaration": {
|
|
170
|
+
"name": "TyuiButtonElement",
|
|
171
|
+
"module": "./src/button/tyui-button.ts"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"kind": "javascript-module",
|
|
178
|
+
"path": "./src/input/tyui-input.ts",
|
|
179
|
+
"declarations": [
|
|
180
|
+
{
|
|
181
|
+
"kind": "class",
|
|
182
|
+
"declaration": {
|
|
183
|
+
"name": "TyuiInputElement",
|
|
184
|
+
"module": "./src/input/tyui-input.ts"
|
|
185
|
+
},
|
|
186
|
+
"name": "TyuiInputElement",
|
|
187
|
+
"tagName": "tyui-input",
|
|
188
|
+
"customElement": true,
|
|
189
|
+
"summary": "Form-associated single-line text input.",
|
|
190
|
+
"attributes": [
|
|
191
|
+
{
|
|
192
|
+
"name": "appearance",
|
|
193
|
+
"type": "outline | filled-darker | filled-lighter",
|
|
194
|
+
"default": "outline",
|
|
195
|
+
"description": "Base field style."
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"name": "default-value",
|
|
199
|
+
"type": "string",
|
|
200
|
+
"default": "",
|
|
201
|
+
"description": "Initial uncontrolled value."
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "disabled",
|
|
205
|
+
"type": "boolean",
|
|
206
|
+
"default": "false",
|
|
207
|
+
"description": "Disables the native input."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "invalid",
|
|
211
|
+
"type": "boolean",
|
|
212
|
+
"default": "false",
|
|
213
|
+
"description": "Reflects invalid visual/ARIA state."
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "name",
|
|
217
|
+
"type": "string",
|
|
218
|
+
"default": "",
|
|
219
|
+
"description": "Form field name."
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"name": "placeholder",
|
|
223
|
+
"type": "string",
|
|
224
|
+
"default": "",
|
|
225
|
+
"description": "Native placeholder, not a label."
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "readonly",
|
|
229
|
+
"type": "boolean",
|
|
230
|
+
"default": "false",
|
|
231
|
+
"description": "Forwards native readOnly."
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "required",
|
|
235
|
+
"type": "boolean",
|
|
236
|
+
"default": "false",
|
|
237
|
+
"description": "Participates in validity."
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "size",
|
|
241
|
+
"type": "small | medium | large",
|
|
242
|
+
"default": "medium",
|
|
243
|
+
"description": "Control density."
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"name": "type",
|
|
247
|
+
"type": "text | email | password | search | tel | url | number",
|
|
248
|
+
"default": "text",
|
|
249
|
+
"description": "Supported native input type."
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"name": "value",
|
|
253
|
+
"type": "string",
|
|
254
|
+
"default": "",
|
|
255
|
+
"description": "Current value."
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"members": [
|
|
259
|
+
{
|
|
260
|
+
"kind": "field",
|
|
261
|
+
"name": "value",
|
|
262
|
+
"type": {
|
|
263
|
+
"text": "string"
|
|
264
|
+
},
|
|
265
|
+
"attribute": "value",
|
|
266
|
+
"description": "Updates internal input and form value."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"kind": "field",
|
|
270
|
+
"name": "defaultValue",
|
|
271
|
+
"type": {
|
|
272
|
+
"text": "string"
|
|
273
|
+
},
|
|
274
|
+
"attribute": "default-value",
|
|
275
|
+
"description": "Seeds initial value once."
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"kind": "field",
|
|
279
|
+
"name": "invalid",
|
|
280
|
+
"type": {
|
|
281
|
+
"text": "boolean"
|
|
282
|
+
},
|
|
283
|
+
"attribute": "invalid",
|
|
284
|
+
"description": "Reflected invalid state."
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
"events": [
|
|
288
|
+
{
|
|
289
|
+
"name": "input",
|
|
290
|
+
"type": {
|
|
291
|
+
"text": "CustomEvent<{ value: string }>"
|
|
292
|
+
},
|
|
293
|
+
"description": "User text input after host value updates."
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"name": "change",
|
|
297
|
+
"type": {
|
|
298
|
+
"text": "Event"
|
|
299
|
+
},
|
|
300
|
+
"description": "Native change re-dispatched from host."
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"slots": [
|
|
304
|
+
{
|
|
305
|
+
"name": "contentBefore",
|
|
306
|
+
"description": "Decorative content before text."
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"name": "contentAfter",
|
|
310
|
+
"description": "Decorative content after text."
|
|
311
|
+
}
|
|
312
|
+
],
|
|
313
|
+
"cssParts": [
|
|
314
|
+
{
|
|
315
|
+
"name": "control",
|
|
316
|
+
"description": "Input surface wrapper."
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "input",
|
|
320
|
+
"description": "Internal native input."
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"name": "content-before",
|
|
324
|
+
"description": "Before slot wrapper."
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"name": "content-after",
|
|
328
|
+
"description": "After slot wrapper."
|
|
329
|
+
}
|
|
330
|
+
],
|
|
331
|
+
"cssProperties": [
|
|
332
|
+
{
|
|
333
|
+
"name": "--ty-input-background",
|
|
334
|
+
"description": "Resting field background."
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"name": "--ty-input-border-color",
|
|
338
|
+
"description": "Resting border."
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "--ty-input-focus-indicator-color",
|
|
342
|
+
"description": "Focus indicator color."
|
|
343
|
+
}
|
|
344
|
+
],
|
|
345
|
+
"x-design-system": {
|
|
346
|
+
"intent": "Capture short single-line text.",
|
|
347
|
+
"pattern": "Native input",
|
|
348
|
+
"layoutOwnership": "Component owns internal padding, gap, and native input; field wrapper owns label and messages.",
|
|
349
|
+
"accessibility": [
|
|
350
|
+
"Requires a visible label or accessible name.",
|
|
351
|
+
"Placeholder is not a label."
|
|
352
|
+
],
|
|
353
|
+
"misuse": [
|
|
354
|
+
"Do not put focusable controls in content slots.",
|
|
355
|
+
"Use combobox/search components for popups or clear buttons."
|
|
356
|
+
]
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
],
|
|
360
|
+
"exports": [
|
|
361
|
+
{
|
|
362
|
+
"kind": "custom-element-definition",
|
|
363
|
+
"name": "tyui-input",
|
|
364
|
+
"declaration": {
|
|
365
|
+
"name": "TyuiInputElement",
|
|
366
|
+
"module": "./src/input/tyui-input.ts"
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
]
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"kind": "javascript-module",
|
|
373
|
+
"path": "./src/checkbox/tyui-checkbox.ts",
|
|
374
|
+
"declarations": [
|
|
375
|
+
{
|
|
376
|
+
"kind": "class",
|
|
377
|
+
"declaration": {
|
|
378
|
+
"name": "TyuiCheckboxElement",
|
|
379
|
+
"module": "./src/checkbox/tyui-checkbox.ts"
|
|
380
|
+
},
|
|
381
|
+
"name": "TyuiCheckboxElement",
|
|
382
|
+
"tagName": "tyui-checkbox",
|
|
383
|
+
"customElement": true,
|
|
384
|
+
"summary": "Native checkbox custom element.",
|
|
385
|
+
"attributes": [
|
|
386
|
+
{
|
|
387
|
+
"name": "checked",
|
|
388
|
+
"type": "boolean",
|
|
389
|
+
"default": "false",
|
|
390
|
+
"description": "Checked state."
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "disabled",
|
|
394
|
+
"type": "boolean",
|
|
395
|
+
"default": "false",
|
|
396
|
+
"description": "Disabled state."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"name": "indeterminate",
|
|
400
|
+
"type": "boolean",
|
|
401
|
+
"default": "false",
|
|
402
|
+
"description": "Mixed visual state."
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"name": "value",
|
|
406
|
+
"type": "string",
|
|
407
|
+
"default": "on",
|
|
408
|
+
"description": "Submitted value."
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"members": [
|
|
412
|
+
{
|
|
413
|
+
"kind": "field",
|
|
414
|
+
"name": "checked",
|
|
415
|
+
"type": {
|
|
416
|
+
"text": "boolean"
|
|
417
|
+
},
|
|
418
|
+
"attribute": "checked",
|
|
419
|
+
"description": "Reflected checked state."
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"kind": "field",
|
|
423
|
+
"name": "indeterminate",
|
|
424
|
+
"type": {
|
|
425
|
+
"text": "boolean"
|
|
426
|
+
},
|
|
427
|
+
"attribute": "indeterminate",
|
|
428
|
+
"description": "Reflected mixed state."
|
|
429
|
+
}
|
|
430
|
+
],
|
|
431
|
+
"events": [
|
|
432
|
+
{
|
|
433
|
+
"name": "change",
|
|
434
|
+
"type": {
|
|
435
|
+
"text": "CustomEvent<{ checked: boolean }>"
|
|
436
|
+
},
|
|
437
|
+
"description": "User change event."
|
|
438
|
+
}
|
|
439
|
+
],
|
|
440
|
+
"slots": [
|
|
441
|
+
{
|
|
442
|
+
"name": "default",
|
|
443
|
+
"description": "Checkbox label."
|
|
444
|
+
}
|
|
445
|
+
],
|
|
446
|
+
"cssParts": [
|
|
447
|
+
{
|
|
448
|
+
"name": "control",
|
|
449
|
+
"description": "Native input."
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"name": "box",
|
|
453
|
+
"description": "Visual box."
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"name": "label",
|
|
457
|
+
"description": "Label wrapper."
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
"cssProperties": [
|
|
461
|
+
{
|
|
462
|
+
"name": "--ty-checkbox-size",
|
|
463
|
+
"description": "Checkbox visual size."
|
|
464
|
+
}
|
|
465
|
+
],
|
|
466
|
+
"x-design-system": {
|
|
467
|
+
"intent": "Toggle an independent boolean choice.",
|
|
468
|
+
"pattern": "Native checkbox",
|
|
469
|
+
"layoutOwnership": "Component owns indicator/label gap; parent owns grouping.",
|
|
470
|
+
"accessibility": [
|
|
471
|
+
"Use for independent choices.",
|
|
472
|
+
"Use radio for mutually exclusive choices."
|
|
473
|
+
],
|
|
474
|
+
"misuse": [
|
|
475
|
+
"Do not use checkbox as a command button."
|
|
476
|
+
]
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
],
|
|
480
|
+
"exports": [
|
|
481
|
+
{
|
|
482
|
+
"kind": "custom-element-definition",
|
|
483
|
+
"name": "tyui-checkbox",
|
|
484
|
+
"declaration": {
|
|
485
|
+
"name": "TyuiCheckboxElement",
|
|
486
|
+
"module": "./src/checkbox/tyui-checkbox.ts"
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
]
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"kind": "javascript-module",
|
|
493
|
+
"path": "./src/radio/tyui-radio.ts",
|
|
494
|
+
"declarations": [
|
|
495
|
+
{
|
|
496
|
+
"kind": "class",
|
|
497
|
+
"declaration": {
|
|
498
|
+
"name": "TyuiRadioElement",
|
|
499
|
+
"module": "./src/radio/tyui-radio.ts"
|
|
500
|
+
},
|
|
501
|
+
"name": "TyuiRadioElement",
|
|
502
|
+
"tagName": "tyui-radio",
|
|
503
|
+
"customElement": true,
|
|
504
|
+
"summary": "Radio option used inside tyui-radio-group.",
|
|
505
|
+
"attributes": [
|
|
506
|
+
{
|
|
507
|
+
"name": "checked",
|
|
508
|
+
"type": "boolean",
|
|
509
|
+
"default": "false",
|
|
510
|
+
"description": "Checked state controlled by group."
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"name": "disabled",
|
|
514
|
+
"type": "boolean",
|
|
515
|
+
"default": "false",
|
|
516
|
+
"description": "Disabled state."
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"name": "value",
|
|
520
|
+
"type": "string",
|
|
521
|
+
"default": "",
|
|
522
|
+
"description": "Option value."
|
|
523
|
+
}
|
|
524
|
+
],
|
|
525
|
+
"members": [
|
|
526
|
+
{
|
|
527
|
+
"kind": "field",
|
|
528
|
+
"name": "value",
|
|
529
|
+
"type": {
|
|
530
|
+
"text": "string"
|
|
531
|
+
},
|
|
532
|
+
"attribute": "value",
|
|
533
|
+
"description": "Option value."
|
|
534
|
+
}
|
|
535
|
+
],
|
|
536
|
+
"events": [
|
|
537
|
+
{
|
|
538
|
+
"name": "change",
|
|
539
|
+
"type": {
|
|
540
|
+
"text": "Event"
|
|
541
|
+
},
|
|
542
|
+
"description": "Native input change reflected to host."
|
|
543
|
+
}
|
|
544
|
+
],
|
|
545
|
+
"slots": [
|
|
546
|
+
{
|
|
547
|
+
"name": "default",
|
|
548
|
+
"description": "Radio label."
|
|
549
|
+
}
|
|
550
|
+
],
|
|
551
|
+
"cssParts": [
|
|
552
|
+
{
|
|
553
|
+
"name": "root",
|
|
554
|
+
"description": "Label root."
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"name": "input",
|
|
558
|
+
"description": "Native radio input."
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"name": "circle",
|
|
562
|
+
"description": "Visual circle."
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"name": "dot",
|
|
566
|
+
"description": "Selected dot."
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "label",
|
|
570
|
+
"description": "Label wrapper."
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
"cssProperties": [
|
|
574
|
+
{
|
|
575
|
+
"name": "--ty-radio-checked-color",
|
|
576
|
+
"description": "Selected fill and border."
|
|
577
|
+
}
|
|
578
|
+
],
|
|
579
|
+
"x-design-system": {
|
|
580
|
+
"intent": "Represent one option in a mutually exclusive set.",
|
|
581
|
+
"pattern": "Native radio",
|
|
582
|
+
"layoutOwnership": "Radio owns native input and indicator; radio group owns value and roving tabindex.",
|
|
583
|
+
"accessibility": [
|
|
584
|
+
"Use inside tyui-radio-group for coordinated keyboard behavior."
|
|
585
|
+
],
|
|
586
|
+
"misuse": [
|
|
587
|
+
"Do not use standalone radios for unrelated boolean choices."
|
|
588
|
+
]
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
],
|
|
592
|
+
"exports": [
|
|
593
|
+
{
|
|
594
|
+
"kind": "custom-element-definition",
|
|
595
|
+
"name": "tyui-radio",
|
|
596
|
+
"declaration": {
|
|
597
|
+
"name": "TyuiRadioElement",
|
|
598
|
+
"module": "./src/radio/tyui-radio.ts"
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
]
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"kind": "javascript-module",
|
|
605
|
+
"path": "./src/radio-group/tyui-radio-group.ts",
|
|
606
|
+
"declarations": [
|
|
607
|
+
{
|
|
608
|
+
"kind": "class",
|
|
609
|
+
"declaration": {
|
|
610
|
+
"name": "TyuiRadioGroupElement",
|
|
611
|
+
"module": "./src/radio-group/tyui-radio-group.ts"
|
|
612
|
+
},
|
|
613
|
+
"name": "TyuiRadioGroupElement",
|
|
614
|
+
"tagName": "tyui-radio-group",
|
|
615
|
+
"customElement": true,
|
|
616
|
+
"summary": "Form-associated radio group coordinating tyui-radio children.",
|
|
617
|
+
"attributes": [
|
|
618
|
+
{
|
|
619
|
+
"name": "disabled",
|
|
620
|
+
"type": "boolean",
|
|
621
|
+
"default": "false",
|
|
622
|
+
"description": "Disables the group."
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"name": "label",
|
|
626
|
+
"type": "string",
|
|
627
|
+
"default": "",
|
|
628
|
+
"description": "Group label text."
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"name": "layout",
|
|
632
|
+
"type": "vertical | horizontal | horizontal-stacked",
|
|
633
|
+
"default": "vertical",
|
|
634
|
+
"description": "Child layout."
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"name": "name",
|
|
638
|
+
"type": "string",
|
|
639
|
+
"default": "",
|
|
640
|
+
"description": "Form field name."
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"name": "required",
|
|
644
|
+
"type": "boolean",
|
|
645
|
+
"default": "false",
|
|
646
|
+
"description": "Requires selection."
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"name": "value",
|
|
650
|
+
"type": "string",
|
|
651
|
+
"default": "",
|
|
652
|
+
"description": "Selected radio value."
|
|
653
|
+
}
|
|
654
|
+
],
|
|
655
|
+
"members": [
|
|
656
|
+
{
|
|
657
|
+
"kind": "field",
|
|
658
|
+
"name": "value",
|
|
659
|
+
"type": {
|
|
660
|
+
"text": "string"
|
|
661
|
+
},
|
|
662
|
+
"attribute": "value",
|
|
663
|
+
"description": "Selected value."
|
|
664
|
+
}
|
|
665
|
+
],
|
|
666
|
+
"events": [
|
|
667
|
+
{
|
|
668
|
+
"name": "change",
|
|
669
|
+
"type": {
|
|
670
|
+
"text": "CustomEvent<{ value: string }>"
|
|
671
|
+
},
|
|
672
|
+
"description": "User selection change."
|
|
673
|
+
}
|
|
674
|
+
],
|
|
675
|
+
"slots": [
|
|
676
|
+
{
|
|
677
|
+
"name": "default",
|
|
678
|
+
"description": "tyui-radio children."
|
|
679
|
+
}
|
|
680
|
+
],
|
|
681
|
+
"cssParts": [
|
|
682
|
+
{
|
|
683
|
+
"name": "label",
|
|
684
|
+
"description": "Group label."
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"name": "items",
|
|
688
|
+
"description": "Radio item container."
|
|
689
|
+
}
|
|
690
|
+
],
|
|
691
|
+
"cssProperties": [
|
|
692
|
+
{
|
|
693
|
+
"name": "--ty-radio-group-gap",
|
|
694
|
+
"description": "Gap between radio items."
|
|
695
|
+
}
|
|
696
|
+
],
|
|
697
|
+
"x-design-system": {
|
|
698
|
+
"intent": "Select one option from a small set.",
|
|
699
|
+
"pattern": "ARIA radiogroup with native radio children",
|
|
700
|
+
"layoutOwnership": "Group owns child layout, value, roving tabindex, and form state.",
|
|
701
|
+
"accessibility": [
|
|
702
|
+
"Tab enters one active radio.",
|
|
703
|
+
"Arrow keys move focus and selection."
|
|
704
|
+
],
|
|
705
|
+
"misuse": [
|
|
706
|
+
"Do not put non-radio interactive controls in the default slot."
|
|
707
|
+
]
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
],
|
|
711
|
+
"exports": [
|
|
712
|
+
{
|
|
713
|
+
"kind": "custom-element-definition",
|
|
714
|
+
"name": "tyui-radio-group",
|
|
715
|
+
"declaration": {
|
|
716
|
+
"name": "TyuiRadioGroupElement",
|
|
717
|
+
"module": "./src/radio-group/tyui-radio-group.ts"
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
]
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"kind": "javascript-module",
|
|
724
|
+
"path": "./src/flex/tyui-flex.ts",
|
|
725
|
+
"declarations": [
|
|
726
|
+
{
|
|
727
|
+
"kind": "class",
|
|
728
|
+
"declaration": {
|
|
729
|
+
"name": "TyuiFlexElement",
|
|
730
|
+
"module": "./src/flex/tyui-flex.ts"
|
|
731
|
+
},
|
|
732
|
+
"name": "TyuiFlexElement",
|
|
733
|
+
"tagName": "tyui-flex",
|
|
734
|
+
"customElement": true,
|
|
735
|
+
"summary": "Light-DOM flex layout primitive.",
|
|
736
|
+
"attributes": [
|
|
737
|
+
{
|
|
738
|
+
"name": "direction",
|
|
739
|
+
"type": "row | row-reverse | column | column-reverse",
|
|
740
|
+
"default": "row",
|
|
741
|
+
"description": "Flex direction."
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"name": "wrap",
|
|
745
|
+
"type": "nowrap | wrap | wrap-reverse",
|
|
746
|
+
"default": "nowrap",
|
|
747
|
+
"description": "Flex wrapping."
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"name": "align",
|
|
751
|
+
"type": "stretch | start | center | end | baseline",
|
|
752
|
+
"default": "stretch",
|
|
753
|
+
"description": "Cross-axis alignment."
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
"name": "justify",
|
|
757
|
+
"type": "start | center | end | between | around | evenly",
|
|
758
|
+
"default": "start",
|
|
759
|
+
"description": "Main-axis distribution."
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"name": "gap",
|
|
763
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
764
|
+
"default": "3",
|
|
765
|
+
"description": "Spacing token used for row and column gap."
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"name": "inline",
|
|
769
|
+
"type": "boolean",
|
|
770
|
+
"default": "false",
|
|
771
|
+
"description": "Uses inline-flex display."
|
|
772
|
+
}
|
|
773
|
+
],
|
|
774
|
+
"members": [
|
|
775
|
+
{
|
|
776
|
+
"kind": "field",
|
|
777
|
+
"name": "direction",
|
|
778
|
+
"type": {
|
|
779
|
+
"text": "TyuiFlexDirection"
|
|
780
|
+
},
|
|
781
|
+
"attribute": "direction",
|
|
782
|
+
"description": "Reflected flex direction."
|
|
783
|
+
},
|
|
784
|
+
{
|
|
785
|
+
"kind": "field",
|
|
786
|
+
"name": "wrap",
|
|
787
|
+
"type": {
|
|
788
|
+
"text": "TyuiFlexWrap"
|
|
789
|
+
},
|
|
790
|
+
"attribute": "wrap",
|
|
791
|
+
"description": "Reflected wrapping mode."
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"kind": "field",
|
|
795
|
+
"name": "align",
|
|
796
|
+
"type": {
|
|
797
|
+
"text": "TyuiFlexAlign"
|
|
798
|
+
},
|
|
799
|
+
"attribute": "align",
|
|
800
|
+
"description": "Reflected cross-axis alignment."
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"kind": "field",
|
|
804
|
+
"name": "justify",
|
|
805
|
+
"type": {
|
|
806
|
+
"text": "TyuiFlexJustify"
|
|
807
|
+
},
|
|
808
|
+
"attribute": "justify",
|
|
809
|
+
"description": "Reflected main-axis distribution."
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"kind": "field",
|
|
813
|
+
"name": "gap",
|
|
814
|
+
"type": {
|
|
815
|
+
"text": "string"
|
|
816
|
+
},
|
|
817
|
+
"attribute": "gap",
|
|
818
|
+
"description": "Reflected spacing token."
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
"kind": "field",
|
|
822
|
+
"name": "inline",
|
|
823
|
+
"type": {
|
|
824
|
+
"text": "boolean"
|
|
825
|
+
},
|
|
826
|
+
"attribute": "inline",
|
|
827
|
+
"description": "Reflected inline display flag."
|
|
828
|
+
}
|
|
829
|
+
],
|
|
830
|
+
"events": [],
|
|
831
|
+
"slots": [
|
|
832
|
+
{
|
|
833
|
+
"name": "default",
|
|
834
|
+
"description": "Laid-out children."
|
|
835
|
+
}
|
|
836
|
+
],
|
|
837
|
+
"cssParts": [],
|
|
838
|
+
"cssProperties": [
|
|
839
|
+
{
|
|
840
|
+
"name": "--ty-flex-display",
|
|
841
|
+
"description": "Display value used by the shared layout stylesheet."
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"name": "--ty-flex-direction",
|
|
845
|
+
"description": "Mapped flex-direction."
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
"name": "--ty-flex-wrap",
|
|
849
|
+
"description": "Mapped flex-wrap."
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"name": "--ty-flex-align",
|
|
853
|
+
"description": "Mapped align-items."
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"name": "--ty-flex-justify",
|
|
857
|
+
"description": "Mapped justify-content."
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"name": "--ty-flex-gap",
|
|
861
|
+
"description": "Mapped gap."
|
|
862
|
+
}
|
|
863
|
+
],
|
|
864
|
+
"x-design-system": {
|
|
865
|
+
"intent": "Arrange children along one axis.",
|
|
866
|
+
"pattern": "Intrinsic flex layout primitive",
|
|
867
|
+
"layoutOwnership": "Parent owns child placement; children keep intrinsic sizing unless CSS changes it.",
|
|
868
|
+
"accessibility": [
|
|
869
|
+
"Preserves DOM order and does not set roles."
|
|
870
|
+
],
|
|
871
|
+
"misuse": [
|
|
872
|
+
"Do not use for data grids or tabular relationships."
|
|
873
|
+
]
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
],
|
|
877
|
+
"exports": [
|
|
878
|
+
{
|
|
879
|
+
"kind": "custom-element-definition",
|
|
880
|
+
"name": "tyui-flex",
|
|
881
|
+
"declaration": {
|
|
882
|
+
"name": "TyuiFlexElement",
|
|
883
|
+
"module": "./src/flex/tyui-flex.ts"
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
]
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
"kind": "javascript-module",
|
|
890
|
+
"path": "./src/cluster/tyui-cluster.ts",
|
|
891
|
+
"declarations": [
|
|
892
|
+
{
|
|
893
|
+
"kind": "class",
|
|
894
|
+
"declaration": {
|
|
895
|
+
"name": "TyuiClusterElement",
|
|
896
|
+
"module": "./src/cluster/tyui-cluster.ts"
|
|
897
|
+
},
|
|
898
|
+
"name": "TyuiClusterElement",
|
|
899
|
+
"tagName": "tyui-cluster",
|
|
900
|
+
"customElement": true,
|
|
901
|
+
"summary": "Wrapping inline cluster layout primitive.",
|
|
902
|
+
"attributes": [
|
|
903
|
+
{
|
|
904
|
+
"name": "align",
|
|
905
|
+
"type": "start | center | end | baseline | stretch",
|
|
906
|
+
"default": "center",
|
|
907
|
+
"description": "Cross-axis alignment."
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"name": "justify",
|
|
911
|
+
"type": "start | center | end | between",
|
|
912
|
+
"default": "start",
|
|
913
|
+
"description": "Main-axis distribution."
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"name": "gap",
|
|
917
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
918
|
+
"default": "2",
|
|
919
|
+
"description": "Inline spacing token."
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
"name": "row-gap",
|
|
923
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
924
|
+
"description": "Optional row spacing token."
|
|
925
|
+
}
|
|
926
|
+
],
|
|
927
|
+
"members": [
|
|
928
|
+
{
|
|
929
|
+
"kind": "field",
|
|
930
|
+
"name": "align",
|
|
931
|
+
"type": {
|
|
932
|
+
"text": "TyuiClusterAlign"
|
|
933
|
+
},
|
|
934
|
+
"attribute": "align",
|
|
935
|
+
"description": "Reflected cross-axis alignment."
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"kind": "field",
|
|
939
|
+
"name": "justify",
|
|
940
|
+
"type": {
|
|
941
|
+
"text": "TyuiClusterJustify"
|
|
942
|
+
},
|
|
943
|
+
"attribute": "justify",
|
|
944
|
+
"description": "Reflected main-axis distribution."
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"kind": "field",
|
|
948
|
+
"name": "gap",
|
|
949
|
+
"type": {
|
|
950
|
+
"text": "string"
|
|
951
|
+
},
|
|
952
|
+
"attribute": "gap",
|
|
953
|
+
"description": "Reflected inline spacing token."
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"kind": "field",
|
|
957
|
+
"name": "rowGap",
|
|
958
|
+
"type": {
|
|
959
|
+
"text": "string | null"
|
|
960
|
+
},
|
|
961
|
+
"attribute": "row-gap",
|
|
962
|
+
"description": "Reflected row spacing token."
|
|
963
|
+
}
|
|
964
|
+
],
|
|
965
|
+
"events": [],
|
|
966
|
+
"slots": [
|
|
967
|
+
{
|
|
968
|
+
"name": "default",
|
|
969
|
+
"description": "Wrapping children."
|
|
970
|
+
}
|
|
971
|
+
],
|
|
972
|
+
"cssParts": [],
|
|
973
|
+
"cssProperties": [
|
|
974
|
+
{
|
|
975
|
+
"name": "--ty-cluster-align",
|
|
976
|
+
"description": "Mapped align-items."
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "--ty-cluster-justify",
|
|
980
|
+
"description": "Mapped justify-content."
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
"name": "--ty-cluster-gap",
|
|
984
|
+
"description": "Mapped column gap."
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"name": "--ty-cluster-row-gap",
|
|
988
|
+
"description": "Mapped row gap."
|
|
989
|
+
}
|
|
990
|
+
],
|
|
991
|
+
"x-design-system": {
|
|
992
|
+
"intent": "Wrap small peer controls or chips across lines.",
|
|
993
|
+
"pattern": "Intrinsic cluster layout primitive",
|
|
994
|
+
"layoutOwnership": "Parent owns wrapping, gaps, and alignment; children keep their own width.",
|
|
995
|
+
"accessibility": [
|
|
996
|
+
"Preserves DOM order and does not set roles."
|
|
997
|
+
],
|
|
998
|
+
"misuse": [
|
|
999
|
+
"Do not use as a radio group or toolbar behavior primitive."
|
|
1000
|
+
]
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
],
|
|
1004
|
+
"exports": [
|
|
1005
|
+
{
|
|
1006
|
+
"kind": "custom-element-definition",
|
|
1007
|
+
"name": "tyui-cluster",
|
|
1008
|
+
"declaration": {
|
|
1009
|
+
"name": "TyuiClusterElement",
|
|
1010
|
+
"module": "./src/cluster/tyui-cluster.ts"
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
]
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"kind": "javascript-module",
|
|
1017
|
+
"path": "./src/grid/tyui-grid.ts",
|
|
1018
|
+
"declarations": [
|
|
1019
|
+
{
|
|
1020
|
+
"kind": "class",
|
|
1021
|
+
"declaration": {
|
|
1022
|
+
"name": "TyuiGridElement",
|
|
1023
|
+
"module": "./src/grid/tyui-grid.ts"
|
|
1024
|
+
},
|
|
1025
|
+
"name": "TyuiGridElement",
|
|
1026
|
+
"tagName": "tyui-grid",
|
|
1027
|
+
"customElement": true,
|
|
1028
|
+
"summary": "Responsive auto-fit grid layout primitive.",
|
|
1029
|
+
"attributes": [
|
|
1030
|
+
{
|
|
1031
|
+
"name": "min-item-size",
|
|
1032
|
+
"type": "string",
|
|
1033
|
+
"default": "16rem",
|
|
1034
|
+
"description": "Minimum grid track size."
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
"name": "gap",
|
|
1038
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
1039
|
+
"default": "4",
|
|
1040
|
+
"description": "Column and row spacing token."
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
"name": "row-gap",
|
|
1044
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
1045
|
+
"description": "Optional row spacing token."
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"name": "align",
|
|
1049
|
+
"type": "stretch | start | center | end",
|
|
1050
|
+
"default": "stretch",
|
|
1051
|
+
"description": "Grid item block-axis placement."
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"name": "justify",
|
|
1055
|
+
"type": "stretch | start | center | end",
|
|
1056
|
+
"default": "stretch",
|
|
1057
|
+
"description": "Grid item inline-axis placement."
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"name": "dense",
|
|
1061
|
+
"type": "boolean",
|
|
1062
|
+
"default": "false",
|
|
1063
|
+
"description": "Enables dense auto-placement."
|
|
1064
|
+
}
|
|
1065
|
+
],
|
|
1066
|
+
"members": [
|
|
1067
|
+
{
|
|
1068
|
+
"kind": "field",
|
|
1069
|
+
"name": "minItemSize",
|
|
1070
|
+
"type": {
|
|
1071
|
+
"text": "string"
|
|
1072
|
+
},
|
|
1073
|
+
"attribute": "min-item-size",
|
|
1074
|
+
"description": "Reflected minimum item size."
|
|
1075
|
+
},
|
|
1076
|
+
{
|
|
1077
|
+
"kind": "field",
|
|
1078
|
+
"name": "gap",
|
|
1079
|
+
"type": {
|
|
1080
|
+
"text": "string"
|
|
1081
|
+
},
|
|
1082
|
+
"attribute": "gap",
|
|
1083
|
+
"description": "Reflected spacing token."
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"kind": "field",
|
|
1087
|
+
"name": "rowGap",
|
|
1088
|
+
"type": {
|
|
1089
|
+
"text": "string | null"
|
|
1090
|
+
},
|
|
1091
|
+
"attribute": "row-gap",
|
|
1092
|
+
"description": "Reflected row spacing token."
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"kind": "field",
|
|
1096
|
+
"name": "align",
|
|
1097
|
+
"type": {
|
|
1098
|
+
"text": "TyuiGridAlign"
|
|
1099
|
+
},
|
|
1100
|
+
"attribute": "align",
|
|
1101
|
+
"description": "Reflected block-axis placement."
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"kind": "field",
|
|
1105
|
+
"name": "justify",
|
|
1106
|
+
"type": {
|
|
1107
|
+
"text": "TyuiGridJustify"
|
|
1108
|
+
},
|
|
1109
|
+
"attribute": "justify",
|
|
1110
|
+
"description": "Reflected inline-axis placement."
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"kind": "field",
|
|
1114
|
+
"name": "dense",
|
|
1115
|
+
"type": {
|
|
1116
|
+
"text": "boolean"
|
|
1117
|
+
},
|
|
1118
|
+
"attribute": "dense",
|
|
1119
|
+
"description": "Reflected dense placement flag."
|
|
1120
|
+
}
|
|
1121
|
+
],
|
|
1122
|
+
"events": [],
|
|
1123
|
+
"slots": [
|
|
1124
|
+
{
|
|
1125
|
+
"name": "default",
|
|
1126
|
+
"description": "Grid children."
|
|
1127
|
+
}
|
|
1128
|
+
],
|
|
1129
|
+
"cssParts": [],
|
|
1130
|
+
"cssProperties": [
|
|
1131
|
+
{
|
|
1132
|
+
"name": "--ty-grid-min-item-size",
|
|
1133
|
+
"description": "Mapped grid minimum item size."
|
|
1134
|
+
},
|
|
1135
|
+
{
|
|
1136
|
+
"name": "--ty-grid-align",
|
|
1137
|
+
"description": "Mapped align-items."
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"name": "--ty-grid-justify",
|
|
1141
|
+
"description": "Mapped justify-items."
|
|
1142
|
+
},
|
|
1143
|
+
{
|
|
1144
|
+
"name": "--ty-grid-gap",
|
|
1145
|
+
"description": "Mapped column gap."
|
|
1146
|
+
},
|
|
1147
|
+
{
|
|
1148
|
+
"name": "--ty-grid-row-gap",
|
|
1149
|
+
"description": "Mapped row gap."
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"name": "--ty-grid-auto-flow",
|
|
1153
|
+
"description": "Mapped grid-auto-flow."
|
|
1154
|
+
}
|
|
1155
|
+
],
|
|
1156
|
+
"x-design-system": {
|
|
1157
|
+
"intent": "Lay out peer cards or fields in responsive columns.",
|
|
1158
|
+
"pattern": "Intrinsic grid layout primitive",
|
|
1159
|
+
"layoutOwnership": "Parent owns track sizing and gaps; children own their internal layout.",
|
|
1160
|
+
"accessibility": [
|
|
1161
|
+
"Preserves DOM order and does not set roles."
|
|
1162
|
+
],
|
|
1163
|
+
"misuse": [
|
|
1164
|
+
"Do not use for semantic data tables."
|
|
1165
|
+
]
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
],
|
|
1169
|
+
"exports": [
|
|
1170
|
+
{
|
|
1171
|
+
"kind": "custom-element-definition",
|
|
1172
|
+
"name": "tyui-grid",
|
|
1173
|
+
"declaration": {
|
|
1174
|
+
"name": "TyuiGridElement",
|
|
1175
|
+
"module": "./src/grid/tyui-grid.ts"
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
]
|
|
1179
|
+
},
|
|
1180
|
+
{
|
|
1181
|
+
"kind": "javascript-module",
|
|
1182
|
+
"path": "./src/center/tyui-center.ts",
|
|
1183
|
+
"declarations": [
|
|
1184
|
+
{
|
|
1185
|
+
"kind": "class",
|
|
1186
|
+
"declaration": {
|
|
1187
|
+
"name": "TyuiCenterElement",
|
|
1188
|
+
"module": "./src/center/tyui-center.ts"
|
|
1189
|
+
},
|
|
1190
|
+
"name": "TyuiCenterElement",
|
|
1191
|
+
"tagName": "tyui-center",
|
|
1192
|
+
"customElement": true,
|
|
1193
|
+
"summary": "Centered measure layout primitive.",
|
|
1194
|
+
"attributes": [
|
|
1195
|
+
{
|
|
1196
|
+
"name": "measure",
|
|
1197
|
+
"type": "string",
|
|
1198
|
+
"default": "65ch",
|
|
1199
|
+
"description": "Maximum inline measure."
|
|
1200
|
+
},
|
|
1201
|
+
{
|
|
1202
|
+
"name": "gutter",
|
|
1203
|
+
"type": "0 | 1 | 2 | 3 | 4 | page",
|
|
1204
|
+
"default": "page",
|
|
1205
|
+
"description": "Inline padding token."
|
|
1206
|
+
},
|
|
1207
|
+
{
|
|
1208
|
+
"name": "intrinsic",
|
|
1209
|
+
"type": "boolean",
|
|
1210
|
+
"default": "false",
|
|
1211
|
+
"description": "Centers children intrinsically."
|
|
1212
|
+
}
|
|
1213
|
+
],
|
|
1214
|
+
"members": [
|
|
1215
|
+
{
|
|
1216
|
+
"kind": "field",
|
|
1217
|
+
"name": "measure",
|
|
1218
|
+
"type": {
|
|
1219
|
+
"text": "string"
|
|
1220
|
+
},
|
|
1221
|
+
"attribute": "measure",
|
|
1222
|
+
"description": "Reflected maximum inline measure."
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"kind": "field",
|
|
1226
|
+
"name": "gutter",
|
|
1227
|
+
"type": {
|
|
1228
|
+
"text": "TyuiCenterGutter"
|
|
1229
|
+
},
|
|
1230
|
+
"attribute": "gutter",
|
|
1231
|
+
"description": "Reflected gutter token."
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"kind": "field",
|
|
1235
|
+
"name": "intrinsic",
|
|
1236
|
+
"type": {
|
|
1237
|
+
"text": "boolean"
|
|
1238
|
+
},
|
|
1239
|
+
"attribute": "intrinsic",
|
|
1240
|
+
"description": "Reflected intrinsic centering flag."
|
|
1241
|
+
}
|
|
1242
|
+
],
|
|
1243
|
+
"events": [],
|
|
1244
|
+
"slots": [
|
|
1245
|
+
{
|
|
1246
|
+
"name": "default",
|
|
1247
|
+
"description": "Centered content."
|
|
1248
|
+
}
|
|
1249
|
+
],
|
|
1250
|
+
"cssParts": [],
|
|
1251
|
+
"cssProperties": [
|
|
1252
|
+
{
|
|
1253
|
+
"name": "--ty-center-measure",
|
|
1254
|
+
"description": "Mapped max-inline-size."
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
"name": "--ty-center-gutter",
|
|
1258
|
+
"description": "Mapped inline padding."
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
"name": "--ty-center-display",
|
|
1262
|
+
"description": "Display value for intrinsic centering."
|
|
1263
|
+
}
|
|
1264
|
+
],
|
|
1265
|
+
"x-design-system": {
|
|
1266
|
+
"intent": "Center readable content within a measure.",
|
|
1267
|
+
"pattern": "Intrinsic center layout primitive",
|
|
1268
|
+
"layoutOwnership": "Parent owns readable measure and gutter; children own internal layout.",
|
|
1269
|
+
"accessibility": [
|
|
1270
|
+
"Preserves DOM order and does not set roles."
|
|
1271
|
+
],
|
|
1272
|
+
"misuse": [
|
|
1273
|
+
"Do not use as a generic card or surface."
|
|
1274
|
+
]
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
],
|
|
1278
|
+
"exports": [
|
|
1279
|
+
{
|
|
1280
|
+
"kind": "custom-element-definition",
|
|
1281
|
+
"name": "tyui-center",
|
|
1282
|
+
"declaration": {
|
|
1283
|
+
"name": "TyuiCenterElement",
|
|
1284
|
+
"module": "./src/center/tyui-center.ts"
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
]
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
"kind": "javascript-module",
|
|
1291
|
+
"path": "./src/container/tyui-container.ts",
|
|
1292
|
+
"declarations": [
|
|
1293
|
+
{
|
|
1294
|
+
"kind": "class",
|
|
1295
|
+
"declaration": {
|
|
1296
|
+
"name": "TyuiContainerElement",
|
|
1297
|
+
"module": "./src/container/tyui-container.ts"
|
|
1298
|
+
},
|
|
1299
|
+
"name": "TyuiContainerElement",
|
|
1300
|
+
"tagName": "tyui-container",
|
|
1301
|
+
"customElement": true,
|
|
1302
|
+
"summary": "Page container layout primitive.",
|
|
1303
|
+
"attributes": [
|
|
1304
|
+
{
|
|
1305
|
+
"name": "size",
|
|
1306
|
+
"type": "narrow | medium | wide | full",
|
|
1307
|
+
"default": "wide",
|
|
1308
|
+
"description": "Container rail size."
|
|
1309
|
+
},
|
|
1310
|
+
{
|
|
1311
|
+
"name": "gutter",
|
|
1312
|
+
"type": "0 | 1 | 2 | 3 | 4 | page",
|
|
1313
|
+
"default": "page",
|
|
1314
|
+
"description": "Inline padding token."
|
|
1315
|
+
},
|
|
1316
|
+
{
|
|
1317
|
+
"name": "bleed",
|
|
1318
|
+
"type": "boolean",
|
|
1319
|
+
"default": "false",
|
|
1320
|
+
"description": "Removes max width and gutter."
|
|
1321
|
+
}
|
|
1322
|
+
],
|
|
1323
|
+
"members": [
|
|
1324
|
+
{
|
|
1325
|
+
"kind": "field",
|
|
1326
|
+
"name": "size",
|
|
1327
|
+
"type": {
|
|
1328
|
+
"text": "TyuiContainerSize"
|
|
1329
|
+
},
|
|
1330
|
+
"attribute": "size",
|
|
1331
|
+
"description": "Reflected rail size."
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
"kind": "field",
|
|
1335
|
+
"name": "gutter",
|
|
1336
|
+
"type": {
|
|
1337
|
+
"text": "TyuiContainerGutter"
|
|
1338
|
+
},
|
|
1339
|
+
"attribute": "gutter",
|
|
1340
|
+
"description": "Reflected gutter token."
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"kind": "field",
|
|
1344
|
+
"name": "bleed",
|
|
1345
|
+
"type": {
|
|
1346
|
+
"text": "boolean"
|
|
1347
|
+
},
|
|
1348
|
+
"attribute": "bleed",
|
|
1349
|
+
"description": "Reflected bleed flag."
|
|
1350
|
+
}
|
|
1351
|
+
],
|
|
1352
|
+
"events": [],
|
|
1353
|
+
"slots": [
|
|
1354
|
+
{
|
|
1355
|
+
"name": "default",
|
|
1356
|
+
"description": "Page section content."
|
|
1357
|
+
}
|
|
1358
|
+
],
|
|
1359
|
+
"cssParts": [],
|
|
1360
|
+
"cssProperties": [
|
|
1361
|
+
{
|
|
1362
|
+
"name": "--ty-container-max-inline-size",
|
|
1363
|
+
"description": "Mapped max-inline-size."
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"name": "--ty-container-gutter",
|
|
1367
|
+
"description": "Mapped inline padding."
|
|
1368
|
+
}
|
|
1369
|
+
],
|
|
1370
|
+
"x-design-system": {
|
|
1371
|
+
"intent": "Constrain page sections to product rails.",
|
|
1372
|
+
"pattern": "Page container layout primitive",
|
|
1373
|
+
"layoutOwnership": "Parent owns section width and gutter; children own internal layout.",
|
|
1374
|
+
"accessibility": [
|
|
1375
|
+
"Preserves DOM order and does not set roles."
|
|
1376
|
+
],
|
|
1377
|
+
"misuse": [
|
|
1378
|
+
"Do not use bleed and full size to fake unrelated section behavior."
|
|
1379
|
+
]
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
],
|
|
1383
|
+
"exports": [
|
|
1384
|
+
{
|
|
1385
|
+
"kind": "custom-element-definition",
|
|
1386
|
+
"name": "tyui-container",
|
|
1387
|
+
"declaration": {
|
|
1388
|
+
"name": "TyuiContainerElement",
|
|
1389
|
+
"module": "./src/container/tyui-container.ts"
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
]
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"kind": "javascript-module",
|
|
1396
|
+
"path": "./src/frame/tyui-frame.ts",
|
|
1397
|
+
"declarations": [
|
|
1398
|
+
{
|
|
1399
|
+
"kind": "class",
|
|
1400
|
+
"declaration": {
|
|
1401
|
+
"name": "TyuiFrameElement",
|
|
1402
|
+
"module": "./src/frame/tyui-frame.ts"
|
|
1403
|
+
},
|
|
1404
|
+
"name": "TyuiFrameElement",
|
|
1405
|
+
"tagName": "tyui-frame",
|
|
1406
|
+
"customElement": true,
|
|
1407
|
+
"summary": "Aspect-ratio media frame layout primitive.",
|
|
1408
|
+
"attributes": [
|
|
1409
|
+
{
|
|
1410
|
+
"name": "ratio",
|
|
1411
|
+
"type": "string",
|
|
1412
|
+
"default": "16/9",
|
|
1413
|
+
"description": "Aspect ratio."
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"name": "fit",
|
|
1417
|
+
"type": "cover | contain | fill | scale-down | none",
|
|
1418
|
+
"default": "cover",
|
|
1419
|
+
"description": "Object-fit for replaced children."
|
|
1420
|
+
},
|
|
1421
|
+
{
|
|
1422
|
+
"name": "position",
|
|
1423
|
+
"type": "string",
|
|
1424
|
+
"default": "center",
|
|
1425
|
+
"description": "Object-position for replaced children."
|
|
1426
|
+
}
|
|
1427
|
+
],
|
|
1428
|
+
"members": [
|
|
1429
|
+
{
|
|
1430
|
+
"kind": "field",
|
|
1431
|
+
"name": "ratio",
|
|
1432
|
+
"type": {
|
|
1433
|
+
"text": "string"
|
|
1434
|
+
},
|
|
1435
|
+
"attribute": "ratio",
|
|
1436
|
+
"description": "Reflected aspect ratio."
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
"kind": "field",
|
|
1440
|
+
"name": "fit",
|
|
1441
|
+
"type": {
|
|
1442
|
+
"text": "TyuiFrameFit"
|
|
1443
|
+
},
|
|
1444
|
+
"attribute": "fit",
|
|
1445
|
+
"description": "Reflected object-fit."
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
"kind": "field",
|
|
1449
|
+
"name": "position",
|
|
1450
|
+
"type": {
|
|
1451
|
+
"text": "string"
|
|
1452
|
+
},
|
|
1453
|
+
"attribute": "position",
|
|
1454
|
+
"description": "Reflected object-position."
|
|
1455
|
+
}
|
|
1456
|
+
],
|
|
1457
|
+
"events": [],
|
|
1458
|
+
"slots": [
|
|
1459
|
+
{
|
|
1460
|
+
"name": "default",
|
|
1461
|
+
"description": "One media or visual child."
|
|
1462
|
+
}
|
|
1463
|
+
],
|
|
1464
|
+
"cssParts": [],
|
|
1465
|
+
"cssProperties": [
|
|
1466
|
+
{
|
|
1467
|
+
"name": "--ty-frame-ratio",
|
|
1468
|
+
"description": "Mapped aspect-ratio."
|
|
1469
|
+
},
|
|
1470
|
+
{
|
|
1471
|
+
"name": "--ty-frame-fit",
|
|
1472
|
+
"description": "Mapped object-fit for replaced children."
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"name": "--ty-frame-position",
|
|
1476
|
+
"description": "Mapped object-position for replaced children."
|
|
1477
|
+
}
|
|
1478
|
+
],
|
|
1479
|
+
"x-design-system": {
|
|
1480
|
+
"intent": "Preserve a media aspect ratio.",
|
|
1481
|
+
"pattern": "Intrinsic frame layout primitive",
|
|
1482
|
+
"layoutOwnership": "Parent owns ratio and crop behavior; media child owns rendered content.",
|
|
1483
|
+
"accessibility": [
|
|
1484
|
+
"Preserves child semantics and alternative text."
|
|
1485
|
+
],
|
|
1486
|
+
"misuse": [
|
|
1487
|
+
"Do not expect fit or position to affect non-replaced children."
|
|
1488
|
+
]
|
|
1489
|
+
}
|
|
1490
|
+
}
|
|
1491
|
+
],
|
|
1492
|
+
"exports": [
|
|
1493
|
+
{
|
|
1494
|
+
"kind": "custom-element-definition",
|
|
1495
|
+
"name": "tyui-frame",
|
|
1496
|
+
"declaration": {
|
|
1497
|
+
"name": "TyuiFrameElement",
|
|
1498
|
+
"module": "./src/frame/tyui-frame.ts"
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
]
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"kind": "javascript-module",
|
|
1505
|
+
"path": "./src/sidebar/tyui-sidebar.ts",
|
|
1506
|
+
"declarations": [
|
|
1507
|
+
{
|
|
1508
|
+
"kind": "class",
|
|
1509
|
+
"declaration": {
|
|
1510
|
+
"name": "TyuiSidebarElement",
|
|
1511
|
+
"module": "./src/sidebar/tyui-sidebar.ts"
|
|
1512
|
+
},
|
|
1513
|
+
"name": "TyuiSidebarElement",
|
|
1514
|
+
"tagName": "tyui-sidebar",
|
|
1515
|
+
"customElement": true,
|
|
1516
|
+
"summary": "Two-child sidebar/content layout primitive.",
|
|
1517
|
+
"attributes": [
|
|
1518
|
+
{
|
|
1519
|
+
"name": "side",
|
|
1520
|
+
"type": "start | end",
|
|
1521
|
+
"default": "start",
|
|
1522
|
+
"description": "Places the fixed side at the start or end."
|
|
1523
|
+
},
|
|
1524
|
+
{
|
|
1525
|
+
"name": "side-size",
|
|
1526
|
+
"type": "string",
|
|
1527
|
+
"default": "18rem",
|
|
1528
|
+
"description": "Preferred sidebar basis."
|
|
1529
|
+
},
|
|
1530
|
+
{
|
|
1531
|
+
"name": "content-min",
|
|
1532
|
+
"type": "string",
|
|
1533
|
+
"default": "50%",
|
|
1534
|
+
"description": "Minimum content width before wrapping."
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
"name": "gap",
|
|
1538
|
+
"type": "0 | 1 | 2 | 3 | 4",
|
|
1539
|
+
"default": "3",
|
|
1540
|
+
"description": "Spacing token between children."
|
|
1541
|
+
},
|
|
1542
|
+
{
|
|
1543
|
+
"name": "no-stretch",
|
|
1544
|
+
"type": "boolean",
|
|
1545
|
+
"default": "false",
|
|
1546
|
+
"description": "Aligns children to flex-start."
|
|
1547
|
+
}
|
|
1548
|
+
],
|
|
1549
|
+
"members": [
|
|
1550
|
+
{
|
|
1551
|
+
"kind": "field",
|
|
1552
|
+
"name": "side",
|
|
1553
|
+
"type": {
|
|
1554
|
+
"text": "TyuiSidebarSide"
|
|
1555
|
+
},
|
|
1556
|
+
"attribute": "side",
|
|
1557
|
+
"description": "Reflected sidebar side."
|
|
1558
|
+
},
|
|
1559
|
+
{
|
|
1560
|
+
"kind": "field",
|
|
1561
|
+
"name": "sideSize",
|
|
1562
|
+
"type": {
|
|
1563
|
+
"text": "string"
|
|
1564
|
+
},
|
|
1565
|
+
"attribute": "side-size",
|
|
1566
|
+
"description": "Reflected sidebar basis."
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"kind": "field",
|
|
1570
|
+
"name": "contentMin",
|
|
1571
|
+
"type": {
|
|
1572
|
+
"text": "string"
|
|
1573
|
+
},
|
|
1574
|
+
"attribute": "content-min",
|
|
1575
|
+
"description": "Reflected content minimum width."
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
"kind": "field",
|
|
1579
|
+
"name": "gap",
|
|
1580
|
+
"type": {
|
|
1581
|
+
"text": "string"
|
|
1582
|
+
},
|
|
1583
|
+
"attribute": "gap",
|
|
1584
|
+
"description": "Reflected spacing token."
|
|
1585
|
+
},
|
|
1586
|
+
{
|
|
1587
|
+
"kind": "field",
|
|
1588
|
+
"name": "noStretch",
|
|
1589
|
+
"type": {
|
|
1590
|
+
"text": "boolean"
|
|
1591
|
+
},
|
|
1592
|
+
"attribute": "no-stretch",
|
|
1593
|
+
"description": "Reflected no-stretch flag."
|
|
1594
|
+
}
|
|
1595
|
+
],
|
|
1596
|
+
"events": [],
|
|
1597
|
+
"slots": [
|
|
1598
|
+
{
|
|
1599
|
+
"name": "default",
|
|
1600
|
+
"description": "Exactly two direct children: sidebar and content."
|
|
1601
|
+
}
|
|
1602
|
+
],
|
|
1603
|
+
"cssParts": [],
|
|
1604
|
+
"cssProperties": [
|
|
1605
|
+
{
|
|
1606
|
+
"name": "--ty-sidebar-direction",
|
|
1607
|
+
"description": "Mapped flex-direction."
|
|
1608
|
+
},
|
|
1609
|
+
{
|
|
1610
|
+
"name": "--ty-sidebar-size",
|
|
1611
|
+
"description": "Mapped sidebar flex-basis."
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"name": "--ty-sidebar-content-min-inline-size",
|
|
1615
|
+
"description": "Mapped content minimum inline size."
|
|
1616
|
+
},
|
|
1617
|
+
{
|
|
1618
|
+
"name": "--ty-sidebar-gap",
|
|
1619
|
+
"description": "Mapped gap."
|
|
1620
|
+
},
|
|
1621
|
+
{
|
|
1622
|
+
"name": "--ty-sidebar-align",
|
|
1623
|
+
"description": "Mapped align-items."
|
|
1624
|
+
}
|
|
1625
|
+
],
|
|
1626
|
+
"x-design-system": {
|
|
1627
|
+
"intent": "Place a sidebar beside flexible content until wrapping is required.",
|
|
1628
|
+
"pattern": "Intrinsic sidebar layout primitive",
|
|
1629
|
+
"layoutOwnership": "Parent owns the two-child relationship, side sizing, wrapping, and gap.",
|
|
1630
|
+
"accessibility": [
|
|
1631
|
+
"Preserves DOM order; side=end changes visual order with row-reverse only."
|
|
1632
|
+
],
|
|
1633
|
+
"misuse": [
|
|
1634
|
+
"Do not use with more or fewer than two direct children."
|
|
1635
|
+
]
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1638
|
+
],
|
|
1639
|
+
"exports": [
|
|
1640
|
+
{
|
|
1641
|
+
"kind": "custom-element-definition",
|
|
1642
|
+
"name": "tyui-sidebar",
|
|
1643
|
+
"declaration": {
|
|
1644
|
+
"name": "TyuiSidebarElement",
|
|
1645
|
+
"module": "./src/sidebar/tyui-sidebar.ts"
|
|
1646
|
+
}
|
|
1647
|
+
}
|
|
1648
|
+
]
|
|
1649
|
+
}
|
|
1650
|
+
]
|
|
1651
|
+
}
|