jsswift 1.0.43 → 1.0.45

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 (79) hide show
  1. package/dist/css/base.css +2 -137
  2. package/dist/css/fonts-material.css +7 -0
  3. package/dist/css/fonts-nunito.css +134 -0
  4. package/dist/css/min-ui.css +1 -1
  5. package/dist/css/ui.css +2 -137
  6. package/dist/css/ui.min.css +1 -1
  7. package/dist/documentions/README.md +22 -0
  8. package/dist/documentions/ai-development.md +68 -0
  9. package/dist/documentions/application-rules.md +19 -0
  10. package/dist/documentions/components/README.md +11 -0
  11. package/dist/documentions/components/alert.md +506 -0
  12. package/dist/documentions/components/app-shell.md +537 -0
  13. package/dist/documentions/components/avatar.md +588 -0
  14. package/dist/documentions/components/badge.md +474 -0
  15. package/dist/documentions/components/banner.md +548 -0
  16. package/dist/documentions/components/breadcrumbs.md +535 -0
  17. package/dist/documentions/components/btn.md +52 -0
  18. package/dist/documentions/components/card-body.md +341 -0
  19. package/dist/documentions/components/card-footer.md +380 -0
  20. package/dist/documentions/components/card-header.md +380 -0
  21. package/dist/documentions/components/card.md +77 -0
  22. package/dist/documentions/components/checkbox.md +473 -0
  23. package/dist/documentions/components/chip.md +409 -0
  24. package/dist/documentions/components/col.md +625 -0
  25. package/dist/documentions/components/container.md +548 -0
  26. package/dist/documentions/components/context-menu.md +715 -0
  27. package/dist/documentions/components/date.md +693 -0
  28. package/dist/documentions/components/dialog.md +100 -0
  29. package/dist/documentions/components/drawer.md +629 -0
  30. package/dist/documentions/components/empty-state.md +490 -0
  31. package/dist/documentions/components/footer.md +599 -0
  32. package/dist/documentions/components/form-field.md +581 -0
  33. package/dist/documentions/components/form.md +334 -0
  34. package/dist/documentions/components/grid-col.md +559 -0
  35. package/dist/documentions/components/grid.md +555 -0
  36. package/dist/documentions/components/header.md +560 -0
  37. package/dist/documentions/components/icon.md +383 -0
  38. package/dist/documentions/components/input.md +88 -0
  39. package/dist/documentions/components/item.md +546 -0
  40. package/dist/documentions/components/kpi.md +532 -0
  41. package/dist/documentions/components/layout.md +824 -0
  42. package/dist/documentions/components/list.md +418 -0
  43. package/dist/documentions/components/loading-bar.md +692 -0
  44. package/dist/documentions/components/menu.md +728 -0
  45. package/dist/documentions/components/notify.md +538 -0
  46. package/dist/documentions/components/page.md +539 -0
  47. package/dist/documentions/components/pagination.md +73 -0
  48. package/dist/documentions/components/parallax.md +646 -0
  49. package/dist/documentions/components/popover.md +678 -0
  50. package/dist/documentions/components/progress.md +567 -0
  51. package/dist/documentions/components/radio.md +487 -0
  52. package/dist/documentions/components/rating.md +592 -0
  53. package/dist/documentions/components/route-tab.md +508 -0
  54. package/dist/documentions/components/row.md +520 -0
  55. package/dist/documentions/components/search.md +748 -0
  56. package/dist/documentions/components/select.md +99 -0
  57. package/dist/documentions/components/separator.md +334 -0
  58. package/dist/documentions/components/slider.md +648 -0
  59. package/dist/documentions/components/spacer.md +327 -0
  60. package/dist/documentions/components/spinner.md +453 -0
  61. package/dist/documentions/components/stat.md +518 -0
  62. package/dist/documentions/components/tab-panel.md +579 -0
  63. package/dist/documentions/components/table.md +112 -0
  64. package/dist/documentions/components/tabs.md +554 -0
  65. package/dist/documentions/components/time.md +510 -0
  66. package/dist/documentions/components/toggle.md +515 -0
  67. package/dist/documentions/components/toolbar.md +656 -0
  68. package/dist/documentions/components/tooltip.md +553 -0
  69. package/dist/documentions/getting-started.md +47 -0
  70. package/dist/documentions/knowledge-map.json +947 -0
  71. package/dist/documentions/platform.md +9 -0
  72. package/dist/documentions/reactivity.md +13 -0
  73. package/dist/documentions/reference/function-catalog.md +333 -0
  74. package/dist/documentions/reference/html-svg-helpers.md +131 -0
  75. package/dist/documentions/ui/data-feedback-overlays.md +5 -0
  76. package/dist/documentions/ui/forms.md +11 -0
  77. package/dist/documentions/ui/layout-and-responsive.md +15 -0
  78. package/dist/tabler.js +7 -0
  79. package/package.json +7 -2
@@ -0,0 +1,383 @@
1
+ # Icon
2
+
3
+ Exact JSswift UI metadata contract. Use only the props, slots, events, and methods documented below.
4
+
5
+ ```json
6
+ {
7
+ "signature": "_.Icon(name) | _.Icon(props) | _.Icon(props, ...children)",
8
+ "props": {
9
+ "size": {
10
+ "type": "number|string",
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": "number|string",
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": "boolean|string",
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
+ "name": {
301
+ "type": "string|Node|Function",
302
+ "description": "HTML name attribute for form submission.",
303
+ "default": null,
304
+ "values": null,
305
+ "category": "general"
306
+ },
307
+ "lightShadow": {
308
+ "type": "boolean",
309
+ "description": "Component configuration for \"lightShadow\". When not handled internally, it is forwarded to the root element.",
310
+ "default": null,
311
+ "values": null,
312
+ "category": "general"
313
+ },
314
+ "border": {
315
+ "type": "boolean",
316
+ "description": "Component configuration for \"border\". When not handled internally, it is forwarded to the root element.",
317
+ "default": null,
318
+ "values": null,
319
+ "category": "general"
320
+ },
321
+ "glossy": {
322
+ "type": "boolean",
323
+ "description": "Component configuration for \"glossy\". When not handled internally, it is forwarded to the root element.",
324
+ "default": null,
325
+ "values": null,
326
+ "category": "general"
327
+ },
328
+ "glow": {
329
+ "type": "boolean",
330
+ "description": "Component configuration for \"glow\". When not handled internally, it is forwarded to the root element.",
331
+ "default": null,
332
+ "values": null,
333
+ "category": "general"
334
+ },
335
+ "glass": {
336
+ "type": "boolean",
337
+ "description": "Component configuration for \"glass\". When not handled internally, it is forwarded to the root element.",
338
+ "default": null,
339
+ "values": null,
340
+ "category": "general"
341
+ },
342
+ "gradient": {
343
+ "type": "boolean|number",
344
+ "description": "Component configuration for \"gradient\". When not handled internally, it is forwarded to the root element.",
345
+ "default": null,
346
+ "values": null,
347
+ "category": "general"
348
+ },
349
+ "textGradient": {
350
+ "type": "boolean",
351
+ "description": "Component configuration for \"textGradient\". When not handled internally, it is forwarded to the root element.",
352
+ "default": null,
353
+ "values": null,
354
+ "category": "general"
355
+ },
356
+ "slots": {
357
+ "type": "{ default? }",
358
+ "description": "Named slots map for render overrides.",
359
+ "default": null,
360
+ "values": null,
361
+ "category": "general"
362
+ },
363
+ "children": {
364
+ "type": "Node|Array|Function",
365
+ "description": "Default child content (nodes, arrays, or render function).",
366
+ "default": null,
367
+ "values": null,
368
+ "category": "general"
369
+ }
370
+ },
371
+ "slots": {
372
+ "default": {
373
+ "type": "Custom icon content",
374
+ "description": "Primary content for the component.",
375
+ "default": null,
376
+ "values": null,
377
+ "category": "slot"
378
+ }
379
+ },
380
+ "returns": "HTMLSpanElement",
381
+ "description": "Sprite- or text-based icon with configurable size/color."
382
+ }
383
+ ```
@@ -0,0 +1,88 @@
1
+ # Input
2
+
3
+ Exact JSswift UI metadata contract. Use only the props, slots, events, and methods documented below.
4
+
5
+ ```json
6
+ {
7
+ "signature": "_.Input(props)",
8
+ "description": "Input field with floating label, hint/error/success/warning/note, clearable control, icon, prefix/suffix, and reactive support (rod/signal).",
9
+ "props": {
10
+ "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"},
11
+ "color": {"type": "string", "description": "Semantic color name used to style the component.", "default": null, "values": ["primary", "secondary", "success", "warning", "danger", "info", "light", "dark"], "category": "style"},
12
+ "outline": {"type": "boolean", "description": "Uses outlined visual style.", "default": false, "values": ["number", "CSS units", "xxs", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"], "category": "style"},
13
+ "clickable": {"type": "boolean", "description": "Enables pointer/hover styles and click handling on the component.", "default": false, "values": null, "category": "behavior"},
14
+ "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"},
15
+ "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"},
16
+ "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"},
17
+ "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"},
18
+ "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"},
19
+ "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"},
20
+ "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"},
21
+ "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"},
22
+ "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"},
23
+ "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"},
24
+ "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"},
25
+ "mobile": {"type": "object", "description": "Responsive overrides applied at the base/mobile viewport.", "default": null, "values": null, "category": "layout"},
26
+ "tablet": {"type": "object", "description": "Responsive overrides applied from the tablet breakpoint upward.", "default": null, "values": null, "category": "layout"},
27
+ "pc": {"type": "object", "description": "Responsive overrides applied from the desktop breakpoint upward.", "default": null, "values": null, "category": "layout"},
28
+ "class": {"type": "string (applicata all'input)", "description": "Additional CSS classes applied to the component root element.", "default": null, "values": null, "category": "style"},
29
+ "style": {"type": "object", "description": "Inline styles applied to the component root element.", "default": null, "values": null, "category": "style"},
30
+ "model": {"type": "rod | [get,set] signal", "description": "Two-way bound value (alias to value in some components).", "default": null, "values": null, "category": "data"},
31
+ "value": {"type": "string", "description": "Current value (controlled).", "default": null, "values": null, "category": "data"},
32
+ "type": {"type": "string (default: 'text')", "description": "Variant or native input type.", "default": null, "values": ["primary", "secondary", "success", "warning", "danger", "info", "light", "dark"], "category": "general"},
33
+ "name": {"type": "string", "description": "HTML name attribute for form submission.", "default": null, "values": null, "category": "general"},
34
+ "autocomplete": {"type": "string", "description": "Native autocomplete attribute for input elements.", "default": null, "values": null, "category": "general"},
35
+ "inputmode": {"type": "string", "description": "Native inputmode attribute hint for virtual keyboards.", "default": null, "values": null, "category": "general"},
36
+ "disabled": {"type": "boolean", "description": "Disables interaction and applies disabled styling/ARIA.", "default": false, "values": null, "category": "state"},
37
+ "readonly": {"type": "boolean", "description": "Prevents editing while keeping focus and selection.", "default": false, "values": null, "category": "state"},
38
+ "shortcode": {"type": "string|Array<string>|object", "description": "Keyboard shortcut string, object, or array bound to the component action.", "default": null, "values": null, "category": "general"},
39
+ "showShortcode": {"type": "boolean", "description": "Displays the configured keyboard shortcut badge when the component supports it.", "default": null, "values": null, "category": "general"},
40
+ "label": {"type": "String|Node|Function (floating label)", "description": "Label text or node for the component.", "default": null, "values": null, "category": "general"},
41
+ "topLabel": {"type": "String|Node|Function (label above, not floating)", "description": "Label displayed above the control.", "default": null, "values": null, "category": "general"},
42
+ "placeholder": {"type": "string (fallback when label is not used)", "description": "Placeholder text for inputs.", "default": null, "values": null, "category": "general"},
43
+ "hint": {"type": "String|Node|Function", "description": "Helper text shown near the control.", "default": null, "values": null, "category": "state"},
44
+ "error": {"type": "String|Node|Function", "description": "Error state or message displayed with the component.", "default": null, "values": null, "category": "state"},
45
+ "success": {"type": "String|Node|Function", "description": "Marks the component with success state styling.", "default": null, "values": null, "category": "state"},
46
+ "warning": {"type": "String|Node|Function", "description": "Marks the component with warning state styling.", "default": null, "values": null, "category": "state"},
47
+ "note": {"type": "String|Node|Function", "description": "Secondary note text.", "default": null, "values": null, "category": "state"},
48
+ "clearable": {"type": "boolean", "description": "Shows a clear action to reset the current value.", "default": null, "values": null, "category": "general"},
49
+ "icon": {"type": "String|Node|Function", "description": "Icon name or node rendered with the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"},
50
+ "iconRight": {"type": "String|Node|Function", "description": "Icon name or node rendered on the right side of the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"},
51
+ "prefix": {"type": "String|Node|Function", "description": "Content rendered before the main control.", "default": null, "values": null, "category": "general"},
52
+ "suffix": {"type": "String|Node|Function", "description": "Content rendered after the main control.", "default": null, "values": null, "category": "general"},
53
+ "wrapClass": {"type": "string (applicata al field wrapper)", "description": "Additional CSS classes applied to the outer wrapper.", "default": null, "values": null, "category": "general"},
54
+ "onInput": {"type": "(value:string) => void", "description": "Callback fired on input events or while typing.", "default": null, "values": null, "category": "events"},
55
+ "onChange": {"type": "(value:string) => void", "description": "Callback fired when the value or selection changes.", "default": null, "values": null, "category": "events"},
56
+ "onFocus": {"type": "(event) => void", "description": "Callback fired when the control gains focus.", "default": null, "values": null, "category": "events"},
57
+ "onBlur": {"type": "(event) => void", "description": "Callback fired when the control loses focus.", "default": null, "values": null, "category": "events"},
58
+ "children": {"type": "Node|Array|Function", "description": "Default child content (nodes, arrays, or render function).", "default": null, "values": null, "category": "general"}
59
+ },
60
+ "slots": {
61
+ "label": {"type": "Floating label (via FormField slots.label)", "description": "Slot for label content.", "default": null, "values": null, "category": "slot"},
62
+ "topLabel": {"type": "Top label (via FormField slots.topLabel)", "description": "Slot for top label content.", "default": null, "values": null, "category": "slot"},
63
+ "prefix": {"type": "Left addon (via FormField slots.prefix)", "description": "Slot for prefix content.", "default": null, "values": null, "category": "slot"},
64
+ "suffix": {"type": "Right addon (via FormField slots.suffix)", "description": "Slot for suffix content.", "default": null, "values": null, "category": "slot"},
65
+ "shortcode": {"type": "Shortcut badge (via FormField slots.shortcode)", "description": "Slot content for \"shortcode\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
66
+ "icon": {"type": "Left icon (via FormField slots.icon)", "description": "Slot for icon content.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "slot"},
67
+ "iconRight": {"type": "Right icon (via FormField slots.iconRight)", "description": "Slot for right-aligned icon content.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "slot"},
68
+ "clear": {"type": "Clear button (via FormField slots.clear)", "description": "Slot for the clear control/content.", "default": null, "values": null, "category": "slot"},
69
+ "hint": {"type": "Hint content (via FormField slots.hint)", "description": "Slot for helper/hint text.", "default": null, "values": null, "category": "state"},
70
+ "errorMessage": {"type": "Error content (via FormField slots.errorMessage)", "description": "Slot for custom error message rendering.", "default": null, "values": null, "category": "slot"},
71
+ "success": {"type": "Success content (via FormField slots.success)", "description": "Slot for success message/content.", "default": null, "values": null, "category": "state"},
72
+ "warning": {"type": "Warning content (via FormField slots.warning)", "description": "Slot for warning message/content.", "default": null, "values": null, "category": "state"},
73
+ "note": {"type": "Note content (via FormField slots.note)", "description": "Slot for note/secondary text.", "default": null, "values": null, "category": "state"},
74
+ "input": {"type": "Custom input node (ctx: { input, props })", "description": "Slot for custom input element/content.", "default": null, "values": null, "category": "slot"}
75
+ },
76
+ "returns": "HTMLDivElement (field wrapper) con ._input = HTMLInputElement"
77
+ }
78
+ ```
79
+
80
+ ## Value callback
81
+
82
+ `onInput(value, event)` and `onChange(value, event)` receive the value first, rather than the DOM event first. For a text field:
83
+
84
+ ```js
85
+ _.Input({ label: 'Cerca per nome', onInput: value => console.log(value) });
86
+ ```
87
+
88
+ Use the documented `model` binding for reactive state. Verify the rendered control's accessible name; a visible label alone does not prove that it is associated with the input.