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
@@ -0,0 +1,85 @@
1
+ # JSswift AI quick start
2
+
3
+ Start here for a small page using Input, Select, Button, Card, Table, and Dialog. The example and callback table below are a supported subset; read a component contract only when using additional APIs. Do not read the whole catalog or search runtime bundles for documentation. Button’s full contract is `components/btn.md`; `components/button.md` redirects to it.
4
+
5
+ ## Import, create, mount
6
+
7
+ Provide `<div id="app"></div>` in HTML and a module entrypoint. With Vite:
8
+
9
+ ```js
10
+ import 'jsswift';
11
+ import 'jsswift/css/ui.css';
12
+ const _ = window._;
13
+
14
+ const name = _.rod('Prodotto 01');
15
+ const category = _.rod('Casa');
16
+ const nameInput = _.Input({ label: 'Nome prodotto', model: name });
17
+ const categorySelect = _.Select({
18
+ label: 'Categoria', model: category,
19
+ options: [{ value: 'Casa', label: 'Casa' }, { value: 'Ufficio', label: 'Ufficio' }]
20
+ });
21
+ const errors = _.div({ role: 'alert' });
22
+ const dialog = _.Dialog({
23
+ title: 'Modifica prodotto', ariaLabel: 'Modifica prodotto',
24
+ content: _.div({}, nameInput, categorySelect, errors),
25
+ closeOnEsc: true, trapFocus: true, autoFocus: true
26
+ });
27
+ const save = _.Button({ color: 'primary', onClick: () => {
28
+ if (!name.value.trim()) {
29
+ errors.replaceChildren(_.p('Il nome è obbligatorio.'));
30
+ return;
31
+ }
32
+ errors.replaceChildren();
33
+ console.log({ name: name.value, category: category.value });
34
+ dialog.close();
35
+ }}, 'Salva');
36
+ dialog.update({ actions: [
37
+ _.Button({ onClick: () => dialog.close() }, 'Annulla'), save
38
+ ] });
39
+ const edit = _.Button({ onClick: () => dialog.open() }, 'Modifica');
40
+ const table = _.Table({
41
+ rows: [{ id: 1, name: 'Prodotto 01', price: 10 }], rowKey: 'id',
42
+ columns: [
43
+ { key: 'name', label: 'Nome', render: (row, { value }) => _.strong(value) },
44
+ { key: 'price', label: 'Prezzo', format: value => `${value} EUR` }
45
+ ],
46
+ pagination: false, hideFooter: true, minTableWidth: 700
47
+ });
48
+ const page = _.Page({}, _.Card({ title: 'Prodotti' }, edit, table));
49
+ _.mount('#app', page);
50
+ ```
51
+
52
+ This demonstrates composition and validation; saving logs the values. Add application persistence and refresh the table when your task requires them. Prefer `_.rod(initial)` for bidirectional field models: read `name.value`, write `name.value = 'Nuovo nome'`; `model` synchronizes the control. Use `_.signal(initial)` when explicit getter/setter functions suit the state, and `_.useForm()` for structured form validation and errors. This avoids reading private `_input` or `_select` references. The current controls do not document public `focus/getValue/setValue` methods; do not invent them.
53
+
54
+ ## Exact callback arguments
55
+
56
+ | API | Arguments |
57
+ | --- | --- |
58
+ | Input `onInput`, `onChange` | `(value)`; text value is a string. No DOM event argument is passed by Input. |
59
+ | Select `onChange` | `(value)`; single selection emits its option value; multiple selection emits an array. |
60
+ | Button `onClick` | DOM click event. |
61
+ | Table column `render` | `(row, cellContext)`; read `cellContext.value`. |
62
+ | Table column `format` | `(value, row, cellContext)`. |
63
+ | Table `actions` | `(row, rowContext)`. |
64
+ | Dialog `onOpen` | Overlay entry. |
65
+ | Dialog `onClose` | No arguments. |
66
+
67
+ Dialog returns an API object, not a node to mount: `open(overrides?)`, `close()`, `toggle(overrides?)`, `update(props)`, `isOpen()`, `entry()`, `props()`.
68
+
69
+ ## Existing CSS and optional assets
70
+
71
+ The UI stylesheet includes component styles, theme variables, and responsive rules. Start with native components. Prefer documented `color`, `dense`, `padding`, `radius`, `shadow`, and breakpoint props to overrides of internal `.cms-*` classes. Read [common props](ui/common-props.md) once when styling; component-specific definitions take precedence. Use custom CSS for remaining page requirements.
72
+
73
+ System fonts are the default. Import `jsswift/css/fonts-nunito.css`, `jsswift/css/fonts-material.css`, or `jsswift/tabler` only when required; Material Symbols loads a remote Google font. See [setup](getting-started.md).
74
+
75
+ ## Accessibility and verification
76
+
77
+ The current implementation requires checking the rendered accessible names: a visible `label` is not sufficient evidence of an associated control label. Set Dialog `ariaLabel` explicitly. Dialog normally restores the original focus element; if the app replaces that element, restore focus to its current replacement using a stable application identifier in `onClose`. Do not claim these behaviors were tested from a build alone.
78
+
79
+ Run the app's build after implementation and check values, validation, dialog keyboard behavior, and persistence when required. Start one development server on an explicit available port; with Vite use `npm run dev -- --port <port> --strictPort`. Report checks actually performed.
80
+
81
+ ## Read only what the task needs
82
+
83
+ - Exact APIs: [Input](components/input.md), [Select](components/select.md), [Button](components/btn.md), [Card](components/card.md), [Table](components/table.md), [Dialog](components/dialog.md).
84
+ - Extra behavior: [forms](ui/forms.md), [reactivity](reactivity.md), [layout](ui/layout-and-responsive.md), [overlays](ui/data-feedback-overlays.md).
85
+ - Other components: [index](components/README.md). MCP: read `guide:AI`, then search only for additional features.
@@ -1,5 +1,7 @@
1
1
  # JSswift application documentation
2
2
 
3
+ Start with [AI.md](AI.md) for imports, a working composition example, and exact callback signatures. Use those supported examples directly; read full component contracts only for additional APIs.
4
+
3
5
  Build applications with JSswift by reading only the smallest focused guide. Exact component contracts are split by file to save context.
4
6
 
5
7
  | Need | Read |
@@ -1,6 +1,8 @@
1
1
  # JSswift knowledge for application development
2
2
 
3
- The [knowledge map](knowledge-map.json), Skill, and local MCP all route to these application documents. Component files remain the exact API contracts. Search results and keywords are discovery aids, not replacement APIs.
3
+ Start with [AI.md](AI.md), available through MCP as `guide:AI` and through the package export `jsswift/AI.md`. It covers a supported subset; read additional contracts only as needed. Shared property definitions are in [common props](ui/common-props.md).
4
+
5
+ The [knowledge map](knowledge-map.json), Skill, and local MCP all route to these application documents. Component files remain the exact API contracts. Component descriptions are not embedded in the UI runtime; use these files instead of looking for UI.meta registrations. Search results and keywords are discovery aids, not replacement APIs.
4
6
 
5
7
  ## Skill
6
8
 
@@ -1,506 +1,42 @@
1
1
  # Alert
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": "_.Alert(...children) | _.Alert(props, ...children)",
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
- "title": {
301
- "type": "String|Node|Function|Array",
302
- "description": "Title text or node.",
303
- "default": null,
304
- "values": null,
305
- "category": "general"
306
- },
307
- "message": {
308
- "type": "String|Node|Function|Array",
309
- "description": "Message text shown in banners/alerts.",
310
- "default": null,
311
- "values": null,
312
- "category": "general"
313
- },
314
- "description": {
315
- "type": "String|Node|Function|Array",
316
- "description": "Component configuration for \"description\". When not handled internally, it is forwarded to the root element.",
317
- "default": null,
318
- "values": null,
319
- "category": "general"
320
- },
321
- "meta": {
322
- "type": "Node|Function|Array",
323
- "description": "Component configuration for \"meta\". When not handled internally, it is forwarded to the root element.",
324
- "default": null,
325
- "values": null,
326
- "category": "general"
327
- },
328
- "icon": {
329
- "type": "String|Node|Function|Array|false",
330
- "description": "Icon name or node rendered with the component.",
331
- "default": null,
332
- "values": [
333
- "#name_tabler",
334
- "name_material",
335
- "class"
336
- ],
337
- "category": "general"
338
- },
339
- "actions": {
340
- "type": "Node|Function|Array",
341
- "description": "Content rendered in the action area, typically in a footer or trailing region.",
342
- "default": null,
343
- "values": null,
344
- "category": "general"
345
- },
346
- "aside": {
347
- "type": "Node|Function|Array",
348
- "description": "Content or configuration for the aside/secondary region.",
349
- "default": null,
350
- "values": null,
351
- "category": "general"
352
- },
353
- "dismissible": {
354
- "type": "boolean",
355
- "description": "Component configuration for \"dismissible\". When not handled internally, it is forwarded to the root element.",
356
- "default": null,
357
- "values": null,
358
- "category": "general"
359
- },
360
- "dismiss": {
361
- "type": "Node|Function|Array",
362
- "description": "Component configuration for \"dismiss\". When not handled internally, it is forwarded to the root element.",
363
- "default": null,
364
- "values": null,
365
- "category": "general"
366
- },
367
- "onDismiss": {
368
- "type": "function",
369
- "description": "Component configuration for \"onDismiss\". When not handled internally, it is forwarded to the root element.",
370
- "default": null,
371
- "values": null,
372
- "category": "general"
373
- },
374
- "closeLabel": {
375
- "type": "string",
376
- "description": "Component configuration for \"closeLabel\". When not handled internally, it is forwarded to the root element.",
377
- "default": null,
378
- "values": null,
379
- "category": "general"
380
- },
381
- "type": {
382
- "type": "success|warning|danger|error|info|primary|secondary|light|dark",
383
- "description": "Variant or native input type.",
384
- "default": null,
385
- "values": [
386
- "primary",
387
- "secondary",
388
- "success",
389
- "warning",
390
- "danger",
391
- "info",
392
- "light",
393
- "dark"
394
- ],
395
- "category": "general"
396
- },
397
- "state": {
398
- "type": "success|warning|danger|error|info|primary|secondary|light|dark",
399
- "description": "Component configuration for \"state\". When not handled internally, it is forwarded to the root element.",
400
- "default": null,
401
- "values": null,
402
- "category": "general"
403
- },
404
- "slots": {
405
- "type": "{ icon?, title?, message?, description?, meta?, actions?, aside?, dismiss?, default? }",
406
- "description": "Named slots map for render overrides.",
407
- "default": null,
408
- "values": null,
409
- "category": "general"
410
- },
411
- "children": {
412
- "type": "Node|Array|Function",
413
- "description": "Default child content (nodes, arrays, or render function).",
414
- "default": null,
415
- "values": null,
416
- "category": "general"
417
- },
418
- "iconRight": {
419
- "type": "String|Node|Function|Array|false",
420
- "description": "Icon name or node rendered on the right side of the component.",
421
- "default": null,
422
- "values": [
423
- "#name_tabler",
424
- "name_material",
425
- "class"
426
- ],
427
- "category": "general"
428
- }
9
+ "title": {"type": "String|Node|Function|Array", "description": "Title text or node.", "default": null, "values": null, "category": "general"},
10
+ "message": {"type": "String|Node|Function|Array", "description": "Message text shown in banners/alerts.", "default": null, "values": null, "category": "general"},
11
+ "description": {"type": "String|Node|Function|Array", "description": "Component configuration for \"description\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
12
+ "meta": {"type": "Node|Function|Array", "description": "Component configuration for \"meta\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
13
+ "icon": {"type": "String|Node|Function|Array|false", "description": "Icon name or node rendered with the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"},
14
+ "actions": {"type": "Node|Function|Array", "description": "Content rendered in the action area, typically in a footer or trailing region.", "default": null, "values": null, "category": "general"},
15
+ "aside": {"type": "Node|Function|Array", "description": "Content or configuration for the aside/secondary region.", "default": null, "values": null, "category": "general"},
16
+ "dismissible": {"type": "boolean", "description": "Component configuration for \"dismissible\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
17
+ "dismiss": {"type": "Node|Function|Array", "description": "Component configuration for \"dismiss\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
18
+ "onDismiss": {"type": "function", "description": "Component configuration for \"onDismiss\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
19
+ "closeLabel": {"type": "string", "description": "Component configuration for \"closeLabel\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
20
+ "type": {"type": "success|warning|danger|error|info|primary|secondary|light|dark", "description": "Variant or native input type.", "default": null, "values": ["primary", "secondary", "success", "warning", "danger", "info", "light", "dark"], "category": "general"},
21
+ "state": {"type": "success|warning|danger|error|info|primary|secondary|light|dark", "description": "Component configuration for \"state\". When not handled internally, it is forwarded to the root element.", "default": null, "values": null, "category": "general"},
22
+ "slots": {"type": "{ icon?, title?, message?, description?, meta?, actions?, aside?, dismiss?, default? }", "description": "Named slots map for render overrides.", "default": null, "values": null, "category": "general"},
23
+ "children": {"type": "Node|Array|Function", "description": "Default child content (nodes, arrays, or render function).", "default": null, "values": null, "category": "general"},
24
+ "iconRight": {"type": "String|Node|Function|Array|false", "description": "Icon name or node rendered on the right side of the component.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "general"}
429
25
  },
430
26
  "slots": {
431
- "icon": {
432
- "type": "Leading alert icon content",
433
- "description": "Slot for icon content.",
434
- "default": null,
435
- "values": [
436
- "#name_tabler",
437
- "name_material",
438
- "class"
439
- ],
440
- "category": "slot"
441
- },
442
- "title": {
443
- "type": "Alert title content",
444
- "description": "Slot for title content.",
445
- "default": null,
446
- "values": null,
447
- "category": "slot"
448
- },
449
- "message": {
450
- "type": "Primary alert copy",
451
- "description": "Slot for message/alert content.",
452
- "default": null,
453
- "values": null,
454
- "category": "slot"
455
- },
456
- "description": {
457
- "type": "Secondary/supporting text",
458
- "description": "Slot content for \"description\". Accepts nodes, arrays, or render functions.",
459
- "default": null,
460
- "values": null,
461
- "category": "slot"
462
- },
463
- "meta": {
464
- "type": "Inline meta content",
465
- "description": "Slot content for \"meta\". Accepts nodes, arrays, or render functions.",
466
- "default": null,
467
- "values": null,
468
- "category": "slot"
469
- },
470
- "actions": {
471
- "type": "Alert actions cluster",
472
- "description": "Slot for action buttons or links.",
473
- "default": null,
474
- "values": null,
475
- "category": "slot"
476
- },
477
- "aside": {
478
- "type": "Right side support content",
479
- "description": "Slot for aside/secondary content.",
480
- "default": null,
481
- "values": null,
482
- "category": "slot"
483
- },
484
- "dismiss": {
485
- "type": "Custom dismiss control",
486
- "description": "Slot content for \"dismiss\". Accepts nodes, arrays, or render functions.",
487
- "default": null,
488
- "values": null,
489
- "category": "slot"
490
- },
491
- "default": {
492
- "type": "Fallback alert message content",
493
- "description": "Primary content for the component.",
494
- "default": null,
495
- "values": null,
496
- "category": "slot"
497
- },
498
- "iconRight": {
499
- "type": "Leading alert icon content",
500
- "description": "Slot for right-aligned icon content."
501
- }
27
+ "icon": {"type": "Leading alert icon content", "description": "Slot for icon content.", "default": null, "values": ["#name_tabler", "name_material", "class"], "category": "slot"},
28
+ "title": {"type": "Alert title content", "description": "Slot for title content.", "default": null, "values": null, "category": "slot"},
29
+ "message": {"type": "Primary alert copy", "description": "Slot for message/alert content.", "default": null, "values": null, "category": "slot"},
30
+ "description": {"type": "Secondary/supporting text", "description": "Slot content for \"description\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
31
+ "meta": {"type": "Inline meta content", "description": "Slot content for \"meta\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
32
+ "actions": {"type": "Alert actions cluster", "description": "Slot for action buttons or links.", "default": null, "values": null, "category": "slot"},
33
+ "aside": {"type": "Right side support content", "description": "Slot for aside/secondary content.", "default": null, "values": null, "category": "slot"},
34
+ "dismiss": {"type": "Custom dismiss control", "description": "Slot content for \"dismiss\". Accepts nodes, arrays, or render functions.", "default": null, "values": null, "category": "slot"},
35
+ "default": {"type": "Fallback alert message content", "description": "Primary content for the component.", "default": null, "values": null, "category": "slot"},
36
+ "iconRight": {"type": "Leading alert icon content", "description": "Slot for right-aligned icon content."}
502
37
  },
503
38
  "returns": "HTMLDivElement",
504
- "description": "Alert compatto per warning inline, policy note e feedback persistente dentro page o card."
39
+ "description": "Alert compatto per warning inline, policy note e feedback persistente dentro page o card.",
40
+ "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"]}
505
41
  }
506
42
  ```