jsswift 1.0.45 → 1.0.47

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.
Files changed (69) hide show
  1. package/dist/documentions/AI.md +85 -0
  2. package/dist/documentions/README.md +2 -0
  3. package/dist/documentions/ai-development.md +3 -1
  4. package/dist/documentions/components/alert.md +29 -493
  5. package/dist/documentions/components/app-shell.md +37 -524
  6. package/dist/documentions/components/avatar.md +47 -575
  7. package/dist/documentions/components/badge.md +27 -461
  8. package/dist/documentions/components/banner.md +35 -535
  9. package/dist/documentions/components/breadcrumbs.md +35 -518
  10. package/dist/documentions/components/btn.md +3 -21
  11. package/dist/documentions/components/button.md +3 -0
  12. package/dist/documentions/components/card-body.md +11 -328
  13. package/dist/documentions/components/card-footer.md +15 -367
  14. package/dist/documentions/components/card-header.md +15 -367
  15. package/dist/documentions/components/card.md +3 -19
  16. package/dist/documentions/components/checkbox.md +25 -456
  17. package/dist/documentions/components/chip.md +16 -393
  18. package/dist/documentions/components/col.md +57 -612
  19. package/dist/documentions/components/container.md +40 -535
  20. package/dist/documentions/components/context-menu.md +60 -696
  21. package/dist/documentions/components/date.md +56 -673
  22. package/dist/documentions/components/dialog.md +5 -21
  23. package/dist/documentions/components/drawer.md +48 -616
  24. package/dist/documentions/components/empty-state.md +28 -477
  25. package/dist/documentions/components/footer.md +42 -586
  26. package/dist/documentions/components/form-field.md +40 -568
  27. package/dist/documentions/components/form.md +7 -321
  28. package/dist/documentions/components/grid-col.md +42 -542
  29. package/dist/documentions/components/grid.md +40 -542
  30. package/dist/documentions/components/header.md +38 -547
  31. package/dist/documentions/components/icon.md +17 -370
  32. package/dist/documentions/components/input.md +4 -22
  33. package/dist/documentions/components/item.md +37 -533
  34. package/dist/documentions/components/kpi.md +34 -519
  35. package/dist/documentions/components/layout.md +81 -811
  36. package/dist/documentions/components/list.md +19 -405
  37. package/dist/documentions/components/loading-bar.md +58 -679
  38. package/dist/documentions/components/menu.md +62 -710
  39. package/dist/documentions/components/notify.md +34 -525
  40. package/dist/documentions/components/page.md +35 -526
  41. package/dist/documentions/components/pagination.md +3 -20
  42. package/dist/documentions/components/parallax.md +50 -633
  43. package/dist/documentions/components/popover.md +55 -661
  44. package/dist/documentions/components/progress.md +39 -554
  45. package/dist/documentions/components/radio.md +27 -470
  46. package/dist/documentions/components/rating.md +41 -574
  47. package/dist/documentions/components/route-tab.md +30 -491
  48. package/dist/documentions/components/row.md +35 -507
  49. package/dist/documentions/components/search.md +62 -723
  50. package/dist/documentions/components/select.md +17 -22
  51. package/dist/documentions/components/separator.md +7 -321
  52. package/dist/documentions/components/slider.md +49 -631
  53. package/dist/documentions/components/spacer.md +6 -314
  54. package/dist/documentions/components/spinner.md +25 -440
  55. package/dist/documentions/components/stat.md +32 -505
  56. package/dist/documentions/components/tab-panel.md +40 -563
  57. package/dist/documentions/components/table.md +3 -22
  58. package/dist/documentions/components/tabs.md +36 -538
  59. package/dist/documentions/components/time.md +29 -491
  60. package/dist/documentions/components/toggle.md +31 -498
  61. package/dist/documentions/components/toolbar.md +52 -640
  62. package/dist/documentions/components/tooltip.md +35 -535
  63. package/dist/documentions/knowledge-map.json +27 -2
  64. package/dist/documentions/reactivity.md +21 -7
  65. package/dist/documentions/ui/common-props.md +301 -0
  66. package/dist/jsswift.js +10544 -14103
  67. package/dist/jsswift.min.js +3 -3
  68. package/dist/min-jsswift.js +3 -3
  69. package/package.json +3 -2
@@ -1,535 +1,52 @@
1
1
  # Breadcrumbs
2
2
 
3
- Exact JSswift UI metadata contract. Use only the props, slots, events, and methods documented below.
3
+ Exact JSswift UI contract. Shared definitions listed in `commonProps` are in [common props](../ui/common-props.md); all component-specific props, slots, events, and methods are below.
4
4
 
5
5
  ```json
6
6
  {
7
7
  "signature": "_.Breadcrumbs(props)",
8
8
  "props": {
9
- "size": {
10
- "type": "string|number",
11
- "description": "Size token, number, or CSS length for sizing.",
12
- "default": null,
13
- "values": [
14
- "number",
15
- "CSS units",
16
- "xxs",
17
- "xs",
18
- "sm",
19
- "md",
20
- "lg",
21
- "xl",
22
- "xxl",
23
- "xxxl"
24
- ],
25
- "category": "style"
26
- },
27
- "color": {
28
- "type": "string",
29
- "description": "Semantic color name used to style the component.",
30
- "default": null,
31
- "values": [
32
- "primary",
33
- "secondary",
34
- "success",
35
- "warning",
36
- "danger",
37
- "info",
38
- "light",
39
- "dark"
40
- ],
41
- "category": "style"
42
- },
43
- "outline": {
44
- "type": "boolean",
45
- "description": "Uses outlined visual style.",
46
- "default": false,
47
- "values": [
48
- "number",
49
- "CSS units",
50
- "xxs",
51
- "xs",
52
- "sm",
53
- "md",
54
- "lg",
55
- "xl",
56
- "xxl",
57
- "xxxl"
58
- ],
59
- "category": "style"
60
- },
61
- "clickable": {
62
- "type": "boolean",
63
- "description": "Enables pointer/hover styles and click handling on the component.",
64
- "default": false,
65
- "values": null,
66
- "category": "behavior"
67
- },
68
- "padding": {
69
- "type": "string|number",
70
- "description": "Padding applied to the component root element.",
71
- "default": null,
72
- "values": [
73
- "number",
74
- "CSS units",
75
- "xxs",
76
- "xs",
77
- "sm",
78
- "md",
79
- "lg",
80
- "xl",
81
- "xxl",
82
- "xxxl"
83
- ],
84
- "category": "layout"
85
- },
86
- "margin": {
87
- "type": "string|number",
88
- "description": "Margin applied to the component root element.",
89
- "default": null,
90
- "values": [
91
- "number",
92
- "CSS units",
93
- "xxs",
94
- "xs",
95
- "sm",
96
- "md",
97
- "lg",
98
- "xl",
99
- "xxl",
100
- "xxxl"
101
- ],
102
- "category": "layout"
103
- },
104
- "width": {
105
- "type": "string|number",
106
- "description": "Explicit width (number interpreted as px or CSS length).",
107
- "default": null,
108
- "values": [
109
- "number",
110
- "CSS units",
111
- "xxs",
112
- "xs",
113
- "sm",
114
- "md",
115
- "lg",
116
- "xl",
117
- "xxl",
118
- "xxxl"
119
- ],
120
- "category": "layout"
121
- },
122
- "minWidth": {
123
- "type": "string|number",
124
- "description": "Minimum width constraint (number interpreted as px or CSS length).",
125
- "default": null,
126
- "values": [
127
- "number",
128
- "CSS units",
129
- "xxs",
130
- "xs",
131
- "sm",
132
- "md",
133
- "lg",
134
- "xl",
135
- "xxl",
136
- "xxxl"
137
- ],
138
- "category": "layout"
139
- },
140
- "maxWidth": {
141
- "type": "string|number",
142
- "description": "Maximum width constraint (number interpreted as px or CSS length).",
143
- "default": null,
144
- "values": [
145
- "number",
146
- "CSS units",
147
- "xxs",
148
- "xs",
149
- "sm",
150
- "md",
151
- "lg",
152
- "xl",
153
- "xxl",
154
- "xxxl"
155
- ],
156
- "category": "layout"
157
- },
158
- "height": {
159
- "type": "string|number",
160
- "description": "Explicit height (number interpreted as px or CSS length).",
161
- "default": null,
162
- "values": [
163
- "number",
164
- "CSS units",
165
- "xxs",
166
- "xs",
167
- "sm",
168
- "md",
169
- "lg",
170
- "xl",
171
- "xxl",
172
- "xxxl"
173
- ],
174
- "category": "layout"
175
- },
176
- "minHeight": {
177
- "type": "string|number",
178
- "description": "Minimum height constraint (number interpreted as px or CSS length).",
179
- "default": null,
180
- "values": [
181
- "number",
182
- "CSS units",
183
- "xxs",
184
- "xs",
185
- "sm",
186
- "md",
187
- "lg",
188
- "xl",
189
- "xxl",
190
- "xxxl"
191
- ],
192
- "category": "layout"
193
- },
194
- "maxHeight": {
195
- "type": "string|number",
196
- "description": "Maximum height constraint (number interpreted as px or CSS length).",
197
- "default": null,
198
- "values": [
199
- "number",
200
- "CSS units",
201
- "xxs",
202
- "xs",
203
- "sm",
204
- "md",
205
- "lg",
206
- "xl",
207
- "xxl",
208
- "xxxl"
209
- ],
210
- "category": "layout"
211
- },
212
- "radius": {
213
- "type": "string|number",
214
- "description": "Border radius token or CSS length applied to the component.",
215
- "default": null,
216
- "values": [
217
- "number",
218
- "CSS units",
219
- "xxs",
220
- "xs",
221
- "sm",
222
- "md",
223
- "lg",
224
- "xl",
225
- "xxl",
226
- "xxxl"
227
- ],
228
- "category": "style"
229
- },
230
- "borderRadius": {
231
- "type": "string|number",
232
- "description": "Border radius token or CSS length applied to the component.",
233
- "default": null,
234
- "values": [
235
- "number",
236
- "CSS units",
237
- "xxs",
238
- "xs",
239
- "sm",
240
- "md",
241
- "lg",
242
- "xl",
243
- "xxl",
244
- "xxxl"
245
- ],
246
- "category": "style"
247
- },
248
- "shadow": {
249
- "type": "string|boolean",
250
- "description": "Shadow token or CSS box-shadow string applied to the component.",
251
- "default": null,
252
- "values": [
253
- "none",
254
- "xxs",
255
- "xs",
256
- "sm",
257
- "md",
258
- "lg",
259
- "xl",
260
- "xxl",
261
- "xxxl"
262
- ],
263
- "category": "style"
264
- },
265
- "mobile": {
266
- "type": "object",
267
- "description": "Responsive overrides applied at the base/mobile viewport.",
268
- "default": null,
269
- "values": null,
270
- "category": "layout"
271
- },
272
- "tablet": {
273
- "type": "object",
274
- "description": "Responsive overrides applied from the tablet breakpoint upward.",
275
- "default": null,
276
- "values": null,
277
- "category": "layout"
278
- },
279
- "pc": {
280
- "type": "object",
281
- "description": "Responsive overrides applied from the desktop breakpoint upward.",
282
- "default": null,
283
- "values": null,
284
- "category": "layout"
285
- },
286
- "class": {
287
- "type": "string",
288
- "description": "Additional CSS classes applied to the component root element.",
289
- "default": null,
290
- "values": null,
291
- "category": "style"
292
- },
293
- "style": {
294
- "type": "object",
295
- "description": "Inline styles applied to the component root element.",
296
- "default": null,
297
- "values": null,
298
- "category": "style"
299
- },
300
- "items": {
301
- "type": "Array<string|number|Node|Function|{ label?, to?, href?, icon?, note?, badge?, current?, disabled?, hidden?, slots? }>",
302
- "description": "Array of items or nodes to render.",
303
- "default": null,
304
- "values": null,
305
- "category": "data"
306
- },
307
- "model": {
308
- "type": "[get,set] signal|Array",
309
- "description": "Two-way bound value (alias to value in some components).",
310
- "default": null,
311
- "values": null,
312
- "category": "data"
313
- },
314
- "home": {
315
- "type": "boolean|Object",
316
- "description": "Component configuration for \"home\". When not handled internally, it is forwarded to the root element.",
317
- "default": null,
318
- "values": null,
319
- "category": "general"
320
- },
321
- "separator": {
322
- "type": "string|Node|Function",
323
- "description": "Separator string/node between items.",
324
- "default": null,
325
- "values": null,
326
- "category": "general"
327
- },
328
- "before": {
329
- "type": "Node|Function|Array",
330
- "description": "Component configuration for \"before\". When not handled internally, it is forwarded to the root element.",
331
- "default": null,
332
- "values": null,
333
- "category": "general"
334
- },
335
- "after": {
336
- "type": "Node|Function|Array",
337
- "description": "Component configuration for \"after\". When not handled internally, it is forwarded to the root element.",
338
- "default": null,
339
- "values": null,
340
- "category": "general"
341
- },
342
- "empty": {
343
- "type": "Node|Function|Array",
344
- "description": "Component configuration for \"empty\". When not handled internally, it is forwarded to the root element.",
345
- "default": null,
346
- "values": null,
347
- "category": "general"
348
- },
349
- "variant": {
350
- "type": "\"line\"|\"pills\"|\"soft\"",
351
- "description": "Component configuration for \"variant\". When not handled internally, it is forwarded to the root element.",
352
- "default": null,
353
- "values": null,
354
- "category": "general"
355
- },
356
- "max": {
357
- "type": "number",
358
- "description": "Maximum value for range-based controls.",
359
- "default": null,
360
- "values": null,
361
- "category": "general"
362
- },
363
- "leadingCount": {
364
- "type": "number",
365
- "description": "Component configuration for \"leadingCount\". When not handled internally, it is forwarded to the root element.",
366
- "default": null,
367
- "values": null,
368
- "category": "general"
369
- },
370
- "trailingCount": {
371
- "type": "number",
372
- "description": "Component configuration for \"trailingCount\". When not handled internally, it is forwarded to the root element.",
373
- "default": null,
374
- "values": null,
375
- "category": "general"
376
- },
377
- "dense": {
378
- "type": "boolean",
379
- "description": "Uses compact spacing and sizing.",
380
- "default": false,
381
- "values": null,
382
- "category": "layout"
383
- },
384
- "wrap": {
385
- "type": "boolean",
386
- "description": "Allows children to wrap to new lines.",
387
- "default": null,
388
- "values": null,
389
- "category": "general"
390
- },
391
- "nowrap": {
392
- "type": "boolean",
393
- "description": "Component configuration for \"nowrap\". When not handled internally, it is forwarded to the root element.",
394
- "default": null,
395
- "values": null,
396
- "category": "general"
397
- },
398
- "linkCurrent": {
399
- "type": "boolean",
400
- "description": "Component configuration for \"linkCurrent\". When not handled internally, it is forwarded to the root element.",
401
- "default": null,
402
- "values": null,
403
- "category": "general"
404
- },
405
- "state": {
406
- "type": "string",
407
- "description": "Component configuration for \"state\". When not handled internally, it is forwarded to the root element.",
408
- "default": null,
409
- "values": null,
410
- "category": "general"
411
- },
412
- "itemSize": {
413
- "type": "string|number",
414
- "description": "Component configuration for \"itemSize\". When not handled internally, it is forwarded to the root element.",
415
- "default": null,
416
- "values": null,
417
- "category": "general"
418
- },
419
- "ariaLabel": {
420
- "type": "string",
421
- "description": "Component configuration for \"ariaLabel\". When not handled internally, it is forwarded to the root element.",
422
- "default": null,
423
- "values": null,
424
- "category": "general"
425
- },
426
- "children": {
427
- "type": "Node|Array|Function",
428
- "description": "Default child content (nodes, arrays, or render function).",
429
- "default": null,
430
- "values": null,
431
- "category": "general"
432
- }
9
+ "items": {"type": "Array<string|number|Node|Function|{ label?, to?, href?, icon?, note?, badge?, current?, disabled?, hidden?, slots? }>", "description": "Array of items or nodes to render.", "default": null, "values": null, "category": "data"},
10
+ "model": {"type": "[get,set] signal|Array", "description": "Two-way bound value (alias to value in some components).", "default": null, "values": null, "category": "data"},
11
+ "home": {"type": "boolean|Object", "description": "Component configuration for \"home\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
12
+ "separator": {"type": "string|Node|Function", "description": "Separator string/node between items.", "default": null, "values": null, "category": "general"},
13
+ "before": {"type": "Node|Function|Array", "description": "Component configuration for \"before\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
14
+ "after": {"type": "Node|Function|Array", "description": "Component configuration for \"after\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
15
+ "empty": {"type": "Node|Function|Array", "description": "Component configuration for \"empty\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
16
+ "variant": {"type": "\"line\"|\"pills\"|\"soft\"", "description": "Component configuration for \"variant\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
17
+ "max": {"type": "number", "description": "Maximum value for range-based controls.", "default": null, "values": null, "category": "general"},
18
+ "leadingCount": {"type": "number", "description": "Component configuration for \"leadingCount\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
19
+ "trailingCount": {"type": "number", "description": "Component configuration for \"trailingCount\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
20
+ "dense": {"type": "boolean", "description": "Uses compact spacing and sizing.", "default": false, "values": null, "category": "layout"},
21
+ "wrap": {"type": "boolean", "description": "Allows children to wrap to new lines.", "default": null, "values": null, "category": "general"},
22
+ "nowrap": {"type": "boolean", "description": "Component configuration for \"nowrap\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
23
+ "linkCurrent": {"type": "boolean", "description": "Component configuration for \"linkCurrent\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
24
+ "state": {"type": "string", "description": "Component configuration for \"state\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
25
+ "itemSize": {"type": "string|number", "description": "Component configuration for \"itemSize\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
26
+ "ariaLabel": {"type": "string", "description": "Component configuration for \"ariaLabel\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
27
+ "children": {"type": "Node|Array|Function", "description": "Default child content (nodes, arrays, or render function).", "default": null, "values": null, "category": "general"}
433
28
  },
434
29
  "slots": {
435
- "before": {
436
- "type": "Content before breadcrumb list",
437
- "description": "Slot content for \"before\". Accepts nodes, arrays, or render functions.",
438
- "default": null,
439
- "values": null,
440
- "category": "slot"
441
- },
442
- "after": {
443
- "type": "Content after breadcrumb list",
444
- "description": "Slot content for \"after\". Accepts nodes, arrays, or render functions.",
445
- "default": null,
446
- "values": null,
447
- "category": "slot"
448
- },
449
- "item": {
450
- "type": "Full renderer for a breadcrumb entry",
451
- "description": "Slot for custom item rendering.",
452
- "default": null,
453
- "values": null,
454
- "category": "slot"
455
- },
456
- "icon": {
457
- "type": "Leading icon for each breadcrumb",
458
- "description": "Slot for icon content.",
459
- "default": null,
460
- "values": [
461
- "#name_tabler",
462
- "name_material",
463
- "class"
464
- ],
465
- "category": "slot"
466
- },
467
- "label": {
468
- "type": "Main breadcrumb label",
469
- "description": "Slot for label content.",
470
- "default": null,
471
- "values": null,
472
- "category": "slot"
473
- },
474
- "note": {
475
- "type": "Secondary line for the breadcrumb",
476
- "description": "Slot for note/secondary text.",
477
- "default": null,
478
- "values": null,
479
- "category": "state"
480
- },
481
- "badge": {
482
- "type": "Badge/counter area",
483
- "description": "Slot content for \"badge\". Accepts nodes, arrays, or render functions.",
484
- "default": null,
485
- "values": null,
486
- "category": "slot"
487
- },
488
- "aside": {
489
- "type": "Trailing area",
490
- "description": "Slot for aside/secondary content.",
491
- "default": null,
492
- "values": null,
493
- "category": "slot"
494
- },
495
- "default": {
496
- "type": "Extra content under note",
497
- "description": "Primary content for the component.",
498
- "default": null,
499
- "values": null,
500
- "category": "slot"
501
- },
502
- "separator": {
503
- "type": "Separator renderer",
504
- "description": "Slot for separator rendering between items.",
505
- "default": null,
506
- "values": null,
507
- "category": "slot"
508
- },
509
- "collapsed": {
510
- "type": "Renderer for collapsed middle items",
511
- "description": "Slot content for \"collapsed\". Accepts nodes, arrays, or render functions.",
512
- "default": null,
513
- "values": null,
514
- "category": "slot"
515
- },
516
- "empty": {
517
- "type": "Renderer for empty state",
518
- "description": "Slot for empty-state content.",
519
- "default": null,
520
- "values": null,
521
- "category": "slot"
522
- },
523
- "iconRight": {
524
- "type": "Leading icon for each breadcrumb",
525
- "description": "Slot for right-aligned icon content."
526
- }
30
+ "before": {"type": "Content before breadcrumb list", "description": "Slot content for \"before\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
31
+ "after": {"type": "Content after breadcrumb list", "description": "Slot content for \"after\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
32
+ "item": {"type": "Full renderer for a breadcrumb entry", "description": "Slot for custom item rendering.", "default": null, "values": null, "category": "slot"},
33
+ "icon": {"type": "Leading icon for each breadcrumb", "description": "Slot for icon content.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "slot"},
34
+ "label": {"type": "Main breadcrumb label", "description": "Slot for label content.", "default": null, "values": null, "category": "slot"},
35
+ "note": {"type": "Secondary line for the breadcrumb", "description": "Slot for note/secondary text.", "default": null, "values": null, "category": "state"},
36
+ "badge": {"type": "Badge/counter area", "description": "Slot content for \"badge\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
37
+ "aside": {"type": "Trailing area", "description": "Slot for aside/secondary content.", "default": null, "values": null, "category": "slot"},
38
+ "default": {"type": "Extra content under note", "description": "Primary content for the component.", "default": null, "values": null, "category": "slot"},
39
+ "separator": {"type": "Separator renderer", "description": "Slot for separator rendering between items.", "default": null, "values": null, "category": "slot"},
40
+ "collapsed": {"type": "Renderer for collapsed middle items", "description": "Slot content for \"collapsed\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
41
+ "empty": {"type": "Renderer for empty state", "description": "Slot for empty-state content.", "default": null, "values": null, "category": "slot"},
42
+ "iconRight": {"type": "Leading icon for each breadcrumb", "description": "Slot for right-aligned icon content."}
527
43
  },
528
44
  "events": {
529
45
  "onItemClick": "(item, ctx, event)",
530
46
  "onNavigate": "(toOrHref, item, event)"
531
47
  },
532
48
  "returns": "HTMLElement <nav> con .getItems(), .getVisibleItems(), .refresh(), .setItems(items)",
533
- "description": "Breadcrumbs standardizzati con item strutturati, slot completi, collapse automatico e supporto a link/router."
49
+ "description": "Breadcrumbs standardizzati con item strutturati, slot completi, collapse automatico e supporto a link/router.",
50
+ "commonProps": {"path": "ui/common-props.md", "keys": ["size", "color", "outline", "clickable", "padding", "margin", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "radius", "borderRadius", "shadow", "mobile", "tablet", "pc", "class", "style"]}
534
51
  }
535
52
  ```
@@ -2,32 +2,13 @@
2
2
 
3
3
  Preferred application name: `_.Button`. `_.Btn` is a compatible alias; the contract ID remains `component:btn`.
4
4
 
5
- Exact JSswift UI metadata contract. Use only the props, slots, events, and methods documented below.
5
+ Exact JSswift UI contract. Shared definitions listed in `commonProps` are in [common props](../ui/common-props.md); all component-specific props, slots, events, and methods are below.
6
6
 
7
7
  ```json
8
8
  {
9
9
  "signature": "_.Button(...children) | _.Button(props, ...children)",
10
10
  "props": {
11
- "size": {"type": "string|number", "description": "Size token, number, or CSS length for sizing.", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
12
11
  "color": {"type": "primary|secondary|warning|danger|success|info|light|dark", "description": "Semantic color name used to style the component.", "default": null, "values": ["primary", "secondary", "success", "warning", "danger", "info", "light", "dark"], "category": "style"},
13
- "outline": {"type": "boolean", "description": "Uses outlined visual style.", "default": false, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
14
- "clickable": {"type": "boolean", "description": "Enables pointer/hover styles and click handling on the component.", "default": false, "values": null, "category": "behavior"},
15
- "padding": {"type": "string|number", "description": "Padding applied to the component root element.", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
16
- "margin": {"type": "string|number", "description": "Margin applied to the component root element.", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
17
- "width": {"type": "string|number", "description": "Explicit width (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
18
- "minWidth": {"type": "string|number", "description": "Minimum width constraint (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
19
- "maxWidth": {"type": "string|number", "description": "Maximum width constraint (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
20
- "height": {"type": "string|number", "description": "Explicit height (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
21
- "minHeight": {"type": "string|number", "description": "Minimum height constraint (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
22
- "maxHeight": {"type": "string|number", "description": "Maximum height constraint (number interpreted as px or CSS length).", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "layout"},
23
- "radius": {"type": "string|number", "description": "Border radius token or CSS length applied to the component.", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
24
- "borderRadius": {"type": "string|number", "description": "Border radius token or CSS length applied to the component.", "default": null, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
25
- "shadow": {"type": "string|boolean", "description": "Shadow token or CSS box-shadow string applied to the component.", "default": null, "values": ["none", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
26
- "mobile": {"type": "object", "description": "Responsive overrides applied at the base/mobile viewport.", "default": null, "values": null, "category": "layout"},
27
- "tablet": {"type": "object", "description": "Responsive overrides applied from the tablet breakpoint upward.", "default": null, "values": null, "category": "layout"},
28
- "pc": {"type": "object", "description": "Responsive overrides applied from the desktop breakpoint upward.", "default": null, "values": null, "category": "layout"},
29
- "class": {"type": "string", "description": "Additional CSS classes applied to the component root element.", "default": null, "values": null, "category": "style"},
30
- "style": {"type": "object", "description": "Inline styles applied to the component root element.", "default": null, "values": null, "category": "style"},
31
12
  "label": {"type": "String|Node|Function|Array", "description": "Label text or node for the component.", "default": null, "values": null, "category": "general"},
32
13
  "icon": {"type": "String|Node|Function|Array", "description": "Icon name or node rendered with the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"},
33
14
  "iconRight": {"type": "String|Node|Function|Array", "description": "Icon name or node rendered on the right side of the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"},
@@ -47,6 +28,7 @@ Exact JSswift UI metadata contract. Use only the props, slots, events, and metho
47
28
  },
48
29
  "events": ["click", "pointerdown", "focus", "blur"],
49
30
  "returns": "HTMLButtonElement",
50
- "description": "Button component meta definition."
31
+ "description": "Button component meta definition.",
32
+ "commonProps": {"path": "ui/common-props.md", "keys": ["size", "outline", "clickable", "padding", "margin", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "radius", "borderRadius", "shadow", "mobile", "tablet", "pc", "class", "style"]}
51
33
  }
52
34
  ```
@@ -0,0 +1,3 @@
1
+ # Button
2
+
3
+ The canonical complete contract is [btn.md](btn.md). Use `_.Button`; `_.Btn` is a compatible alias. This path is a documentation alias, not a separate component.