@italia/radio 0.1.0-alpha.2
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/AUTHORS +3 -0
- package/LICENSE +11 -0
- package/README.md +106 -0
- package/custom-elements.json +852 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/it-radio-group.d.ts +117 -0
- package/dist/src/it-radio-group.d.ts.map +1 -0
- package/dist/src/it-radio-group.js +1725 -0
- package/dist/src/it-radio-group.js.map +1 -0
- package/dist/src/it-radio.d.ts +70 -0
- package/dist/src/it-radio.d.ts.map +1 -0
- package/dist/src/it-radio.js +1459 -0
- package/dist/src/it-radio.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,852 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"readme": "",
|
|
4
|
+
"modules": [
|
|
5
|
+
{
|
|
6
|
+
"kind": "javascript-module",
|
|
7
|
+
"path": "src/index.ts",
|
|
8
|
+
"declarations": [],
|
|
9
|
+
"exports": [
|
|
10
|
+
{
|
|
11
|
+
"kind": "js",
|
|
12
|
+
"name": "ItRadio",
|
|
13
|
+
"declaration": {
|
|
14
|
+
"name": "ItRadio",
|
|
15
|
+
"module": "./it-radio.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"kind": "js",
|
|
20
|
+
"name": "ItRadioGroup",
|
|
21
|
+
"declaration": {
|
|
22
|
+
"name": "ItRadioGroup",
|
|
23
|
+
"module": "./it-radio-group.js"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"kind": "javascript-module",
|
|
30
|
+
"path": "src/it-radio-group.ts",
|
|
31
|
+
"declarations": [
|
|
32
|
+
{
|
|
33
|
+
"kind": "class",
|
|
34
|
+
"description": "Radio group component - manages a collection of radio buttons",
|
|
35
|
+
"name": "ItRadioGroup",
|
|
36
|
+
"slots": [
|
|
37
|
+
{
|
|
38
|
+
"description": "Contains the `<it-radio>` elements",
|
|
39
|
+
"name": ""
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"members": [
|
|
43
|
+
{
|
|
44
|
+
"kind": "field",
|
|
45
|
+
"name": "formAssociated",
|
|
46
|
+
"type": {
|
|
47
|
+
"text": "boolean"
|
|
48
|
+
},
|
|
49
|
+
"static": true,
|
|
50
|
+
"default": "true"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"kind": "field",
|
|
54
|
+
"name": "name",
|
|
55
|
+
"type": {
|
|
56
|
+
"text": "string"
|
|
57
|
+
},
|
|
58
|
+
"default": "''",
|
|
59
|
+
"description": "The name of the radio group, used for form submission",
|
|
60
|
+
"attribute": "name"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kind": "field",
|
|
64
|
+
"name": "value",
|
|
65
|
+
"type": {
|
|
66
|
+
"text": "string"
|
|
67
|
+
},
|
|
68
|
+
"default": "''",
|
|
69
|
+
"description": "The currently selected value",
|
|
70
|
+
"attribute": "value",
|
|
71
|
+
"reflects": true
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"kind": "field",
|
|
75
|
+
"name": "disabled",
|
|
76
|
+
"type": {
|
|
77
|
+
"text": "boolean"
|
|
78
|
+
},
|
|
79
|
+
"default": "false",
|
|
80
|
+
"description": "Whether the radio group is disabled",
|
|
81
|
+
"attribute": "disabled",
|
|
82
|
+
"reflects": true
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "field",
|
|
86
|
+
"name": "required",
|
|
87
|
+
"type": {
|
|
88
|
+
"text": "boolean"
|
|
89
|
+
},
|
|
90
|
+
"default": "false",
|
|
91
|
+
"description": "Whether a selection is required",
|
|
92
|
+
"attribute": "required",
|
|
93
|
+
"reflects": true
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"kind": "field",
|
|
97
|
+
"name": "grouped",
|
|
98
|
+
"type": {
|
|
99
|
+
"text": "boolean"
|
|
100
|
+
},
|
|
101
|
+
"default": "false",
|
|
102
|
+
"description": "Optional prop for visual styling of grouped radios (borders between radios)",
|
|
103
|
+
"attribute": "grouped",
|
|
104
|
+
"reflects": true
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"kind": "field",
|
|
108
|
+
"name": "inline",
|
|
109
|
+
"type": {
|
|
110
|
+
"text": "boolean"
|
|
111
|
+
},
|
|
112
|
+
"default": "false",
|
|
113
|
+
"description": "Whether the radios are displayed inline (horizontally) or stacked (vertically)",
|
|
114
|
+
"attribute": "inline",
|
|
115
|
+
"reflects": true
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"kind": "field",
|
|
119
|
+
"name": "_radios",
|
|
120
|
+
"type": {
|
|
121
|
+
"text": "ItRadio[]"
|
|
122
|
+
},
|
|
123
|
+
"privacy": "private",
|
|
124
|
+
"description": "Get all slotted radio buttons"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"kind": "field",
|
|
128
|
+
"name": "_label",
|
|
129
|
+
"type": {
|
|
130
|
+
"text": "HTMLElement[]"
|
|
131
|
+
},
|
|
132
|
+
"privacy": "private"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"kind": "field",
|
|
136
|
+
"name": "_validationTriggered",
|
|
137
|
+
"type": {
|
|
138
|
+
"text": "boolean"
|
|
139
|
+
},
|
|
140
|
+
"privacy": "private",
|
|
141
|
+
"default": "false",
|
|
142
|
+
"description": "Track if validation has been triggered (via reportValidity or setCustomValidity)\nARIA best practice: don't show aria-invalid until user attempts submission"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"kind": "field",
|
|
146
|
+
"name": "rovingTabindex",
|
|
147
|
+
"privacy": "private",
|
|
148
|
+
"default": "new RovingTabindexController<ItRadio>(this, { getItems: () => this._radios, onSelect: (radio, event) => this.selectRadio(radio, event), direction: 'both', selectOnFocus: true, })",
|
|
149
|
+
"description": "Roving tabindex controller for keyboard navigation"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"kind": "field",
|
|
153
|
+
"name": "_formController",
|
|
154
|
+
"privacy": "private",
|
|
155
|
+
"default": "new FormControlController(this as any, { value: () => this.value, // disabled: () => this.disabled, setValue: (control: FormControl, value: unknown) => { const radioGroup = control as ItRadioGroup; radioGroup.value = value as string; }, })",
|
|
156
|
+
"description": "Form control integration"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"kind": "field",
|
|
160
|
+
"name": "validity",
|
|
161
|
+
"type": {
|
|
162
|
+
"text": "ValidityState"
|
|
163
|
+
},
|
|
164
|
+
"description": "Override: Custom validity check for radio group",
|
|
165
|
+
"readonly": true
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"kind": "method",
|
|
169
|
+
"name": "checkValidity",
|
|
170
|
+
"return": {
|
|
171
|
+
"type": {
|
|
172
|
+
"text": "boolean"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"description": "Override: Check validity for radio group"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"kind": "method",
|
|
179
|
+
"name": "reportValidity",
|
|
180
|
+
"return": {
|
|
181
|
+
"type": {
|
|
182
|
+
"text": "boolean"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"description": "Override: Report validity for radio group"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"kind": "method",
|
|
189
|
+
"name": "setCustomValidity",
|
|
190
|
+
"privacy": "public",
|
|
191
|
+
"parameters": [
|
|
192
|
+
{
|
|
193
|
+
"name": "message",
|
|
194
|
+
"type": {
|
|
195
|
+
"text": "string"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"description": "Sets a custom validation message. Pass an empty string to restore validity."
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"kind": "method",
|
|
203
|
+
"name": "handleValidationMessages",
|
|
204
|
+
"privacy": "protected"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"kind": "method",
|
|
208
|
+
"name": "_updateInvalidState",
|
|
209
|
+
"privacy": "private"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"kind": "method",
|
|
213
|
+
"name": "_updateValidationMessage",
|
|
214
|
+
"privacy": "private",
|
|
215
|
+
"description": "Update validation message in light DOM (for aria-describedby cross-boundary support)"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"kind": "method",
|
|
219
|
+
"name": "updateRadios",
|
|
220
|
+
"privacy": "private"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"kind": "method",
|
|
224
|
+
"name": "_syncValueFromRadios",
|
|
225
|
+
"privacy": "private",
|
|
226
|
+
"description": "Sync group value from checked radio (initialization)"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"kind": "method",
|
|
230
|
+
"name": "selectRadio",
|
|
231
|
+
"return": {
|
|
232
|
+
"type": {
|
|
233
|
+
"text": "void"
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"parameters": [
|
|
237
|
+
{
|
|
238
|
+
"name": "radio",
|
|
239
|
+
"type": {
|
|
240
|
+
"text": "ItRadio"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "event",
|
|
245
|
+
"type": {
|
|
246
|
+
"text": "KeyboardEvent | PointerEvent | MouseEvent"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"description": "PUBLIC API: Called by radio buttons to select themselves"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"kind": "method",
|
|
254
|
+
"name": "handleRadioKeyDown",
|
|
255
|
+
"return": {
|
|
256
|
+
"type": {
|
|
257
|
+
"text": "void"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"parameters": [
|
|
261
|
+
{
|
|
262
|
+
"name": "radio",
|
|
263
|
+
"type": {
|
|
264
|
+
"text": "ItRadio"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "event",
|
|
269
|
+
"type": {
|
|
270
|
+
"text": "KeyboardEvent"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
"description": "PUBLIC API: Handle keyboard navigation from radio buttons"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"kind": "method",
|
|
278
|
+
"name": "_updateRadiosState",
|
|
279
|
+
"privacy": "private",
|
|
280
|
+
"description": "Synchronize radio button states with group state"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"kind": "method",
|
|
284
|
+
"name": "_syncGroupStateToRadios",
|
|
285
|
+
"privacy": "private",
|
|
286
|
+
"description": "Sync group state (name, grouped, inline, required) to child radios\nThis replaces the need for requestUpdate() calls"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"kind": "field",
|
|
290
|
+
"name": "_handleSlotChange",
|
|
291
|
+
"privacy": "private",
|
|
292
|
+
"description": "Handle slot changes (when radios are added/removed)"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"kind": "field",
|
|
296
|
+
"name": "_handleLabelSlotChange",
|
|
297
|
+
"privacy": "private"
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
"events": [
|
|
301
|
+
{
|
|
302
|
+
"name": "change",
|
|
303
|
+
"type": {
|
|
304
|
+
"text": "Event"
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
"attributes": [
|
|
309
|
+
{
|
|
310
|
+
"name": "name",
|
|
311
|
+
"type": {
|
|
312
|
+
"text": "string"
|
|
313
|
+
},
|
|
314
|
+
"default": "''",
|
|
315
|
+
"description": "The name of the radio group, used for form submission",
|
|
316
|
+
"fieldName": "name"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "value",
|
|
320
|
+
"type": {
|
|
321
|
+
"text": "string"
|
|
322
|
+
},
|
|
323
|
+
"default": "''",
|
|
324
|
+
"description": "The currently selected value",
|
|
325
|
+
"fieldName": "value"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"name": "disabled",
|
|
329
|
+
"type": {
|
|
330
|
+
"text": "boolean"
|
|
331
|
+
},
|
|
332
|
+
"default": "false",
|
|
333
|
+
"description": "Whether the radio group is disabled",
|
|
334
|
+
"fieldName": "disabled"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"name": "required",
|
|
338
|
+
"type": {
|
|
339
|
+
"text": "boolean"
|
|
340
|
+
},
|
|
341
|
+
"default": "false",
|
|
342
|
+
"description": "Whether a selection is required",
|
|
343
|
+
"fieldName": "required"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"name": "grouped",
|
|
347
|
+
"type": {
|
|
348
|
+
"text": "boolean"
|
|
349
|
+
},
|
|
350
|
+
"default": "false",
|
|
351
|
+
"description": "Optional prop for visual styling of grouped radios (borders between radios)",
|
|
352
|
+
"fieldName": "grouped"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "inline",
|
|
356
|
+
"type": {
|
|
357
|
+
"text": "boolean"
|
|
358
|
+
},
|
|
359
|
+
"default": "false",
|
|
360
|
+
"description": "Whether the radios are displayed inline (horizontally) or stacked (vertically)",
|
|
361
|
+
"fieldName": "inline"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"superclass": {
|
|
365
|
+
"name": "FormControl",
|
|
366
|
+
"package": "@italia/globals"
|
|
367
|
+
},
|
|
368
|
+
"tagName": "it-radio-group",
|
|
369
|
+
"customElement": true
|
|
370
|
+
}
|
|
371
|
+
],
|
|
372
|
+
"exports": [
|
|
373
|
+
{
|
|
374
|
+
"kind": "js",
|
|
375
|
+
"name": "ItRadioGroup",
|
|
376
|
+
"declaration": {
|
|
377
|
+
"name": "ItRadioGroup",
|
|
378
|
+
"module": "src/it-radio-group.ts"
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"kind": "custom-element-definition",
|
|
383
|
+
"name": "it-radio-group",
|
|
384
|
+
"declaration": {
|
|
385
|
+
"name": "ItRadioGroup",
|
|
386
|
+
"module": "src/it-radio-group.ts"
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
]
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"kind": "javascript-module",
|
|
393
|
+
"path": "src/it-radio.ts",
|
|
394
|
+
"declarations": [
|
|
395
|
+
{
|
|
396
|
+
"kind": "class",
|
|
397
|
+
"description": "",
|
|
398
|
+
"name": "ItRadio",
|
|
399
|
+
"members": [
|
|
400
|
+
{
|
|
401
|
+
"kind": "field",
|
|
402
|
+
"name": "value",
|
|
403
|
+
"type": {
|
|
404
|
+
"text": "string"
|
|
405
|
+
},
|
|
406
|
+
"default": "''",
|
|
407
|
+
"description": "The radio's value attribute",
|
|
408
|
+
"attribute": "value",
|
|
409
|
+
"reflects": true
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"kind": "field",
|
|
413
|
+
"name": "disabled",
|
|
414
|
+
"type": {
|
|
415
|
+
"text": "boolean"
|
|
416
|
+
},
|
|
417
|
+
"default": "false",
|
|
418
|
+
"description": "Whether the radio is disabled",
|
|
419
|
+
"attribute": "disabled",
|
|
420
|
+
"reflects": true
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"kind": "field",
|
|
424
|
+
"name": "checked",
|
|
425
|
+
"type": {
|
|
426
|
+
"text": "boolean"
|
|
427
|
+
},
|
|
428
|
+
"default": "false",
|
|
429
|
+
"description": "Draws the radio in a checked state.",
|
|
430
|
+
"attribute": "checked",
|
|
431
|
+
"reflects": true
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"kind": "field",
|
|
435
|
+
"name": "supportText",
|
|
436
|
+
"type": {
|
|
437
|
+
"text": "string"
|
|
438
|
+
},
|
|
439
|
+
"default": "''",
|
|
440
|
+
"description": "The input's help text.",
|
|
441
|
+
"attribute": "support-text"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"kind": "field",
|
|
445
|
+
"name": "_name",
|
|
446
|
+
"type": {
|
|
447
|
+
"text": "string"
|
|
448
|
+
},
|
|
449
|
+
"privacy": "private",
|
|
450
|
+
"default": "''",
|
|
451
|
+
"description": "Internal reactive state synced from group\nThese replace the old getters that read from this.group"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"kind": "field",
|
|
455
|
+
"name": "_grouped",
|
|
456
|
+
"type": {
|
|
457
|
+
"text": "boolean"
|
|
458
|
+
},
|
|
459
|
+
"privacy": "private",
|
|
460
|
+
"default": "false"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"kind": "field",
|
|
464
|
+
"name": "_required",
|
|
465
|
+
"type": {
|
|
466
|
+
"text": "boolean"
|
|
467
|
+
},
|
|
468
|
+
"privacy": "private",
|
|
469
|
+
"default": "false"
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"kind": "field",
|
|
473
|
+
"name": "_inline",
|
|
474
|
+
"type": {
|
|
475
|
+
"text": "boolean"
|
|
476
|
+
},
|
|
477
|
+
"privacy": "private",
|
|
478
|
+
"default": "false"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"kind": "field",
|
|
482
|
+
"name": "labelElements",
|
|
483
|
+
"type": {
|
|
484
|
+
"text": "HTMLElement[]"
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"kind": "field",
|
|
489
|
+
"name": "label",
|
|
490
|
+
"type": {
|
|
491
|
+
"text": "string"
|
|
492
|
+
},
|
|
493
|
+
"readonly": true
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"kind": "field",
|
|
497
|
+
"name": "group",
|
|
498
|
+
"type": {
|
|
499
|
+
"text": "ItRadioGroup | null"
|
|
500
|
+
},
|
|
501
|
+
"readonly": true
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"kind": "field",
|
|
505
|
+
"name": "name",
|
|
506
|
+
"type": {
|
|
507
|
+
"text": "string"
|
|
508
|
+
},
|
|
509
|
+
"readonly": true
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"kind": "field",
|
|
513
|
+
"name": "grouped",
|
|
514
|
+
"type": {
|
|
515
|
+
"text": "boolean"
|
|
516
|
+
},
|
|
517
|
+
"readonly": true
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"kind": "field",
|
|
521
|
+
"name": "required",
|
|
522
|
+
"type": {
|
|
523
|
+
"text": "boolean"
|
|
524
|
+
},
|
|
525
|
+
"readonly": true
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"kind": "field",
|
|
529
|
+
"name": "inline",
|
|
530
|
+
"type": {
|
|
531
|
+
"text": "boolean"
|
|
532
|
+
},
|
|
533
|
+
"readonly": true
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"kind": "field",
|
|
537
|
+
"name": "invalid",
|
|
538
|
+
"type": {
|
|
539
|
+
"text": "boolean"
|
|
540
|
+
},
|
|
541
|
+
"readonly": true
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"kind": "method",
|
|
545
|
+
"name": "syncFromGroup",
|
|
546
|
+
"return": {
|
|
547
|
+
"type": {
|
|
548
|
+
"text": "void"
|
|
549
|
+
}
|
|
550
|
+
},
|
|
551
|
+
"parameters": [
|
|
552
|
+
{
|
|
553
|
+
"name": "groupState",
|
|
554
|
+
"type": {
|
|
555
|
+
"text": "{ name?: string; grouped?: boolean; required?: boolean; inline?: boolean }"
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
],
|
|
559
|
+
"description": "PUBLIC API: Called by group to sync state\nThis replaces the need for requestUpdate() calls"
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"kind": "method",
|
|
563
|
+
"name": "activate",
|
|
564
|
+
"privacy": "private",
|
|
565
|
+
"return": {
|
|
566
|
+
"type": {
|
|
567
|
+
"text": "void"
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"parameters": [
|
|
571
|
+
{
|
|
572
|
+
"name": "event",
|
|
573
|
+
"type": {
|
|
574
|
+
"text": "KeyboardEvent | PointerEvent | MouseEvent"
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
],
|
|
578
|
+
"description": "Activate the radio via the group's public API"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"kind": "field",
|
|
582
|
+
"name": "handleKeyup",
|
|
583
|
+
"privacy": "private",
|
|
584
|
+
"description": "Handle keyup for Space key"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"kind": "field",
|
|
588
|
+
"name": "handleKeydown",
|
|
589
|
+
"privacy": "private",
|
|
590
|
+
"description": "Handle keydown - delegate arrow keys to the group"
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"kind": "field",
|
|
594
|
+
"name": "handleClick",
|
|
595
|
+
"privacy": "private",
|
|
596
|
+
"description": "Handle click on the host"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"kind": "method",
|
|
600
|
+
"name": "_renderInput",
|
|
601
|
+
"privacy": "private",
|
|
602
|
+
"description": "Render internal structure (like Spectrum)\nJust visual elements, no role/aria/events here (they're on the host)"
|
|
603
|
+
}
|
|
604
|
+
],
|
|
605
|
+
"attributes": [
|
|
606
|
+
{
|
|
607
|
+
"name": "value",
|
|
608
|
+
"type": {
|
|
609
|
+
"text": "string"
|
|
610
|
+
},
|
|
611
|
+
"default": "''",
|
|
612
|
+
"description": "The radio's value attribute",
|
|
613
|
+
"fieldName": "value"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"name": "disabled",
|
|
617
|
+
"type": {
|
|
618
|
+
"text": "boolean"
|
|
619
|
+
},
|
|
620
|
+
"default": "false",
|
|
621
|
+
"description": "Whether the radio is disabled",
|
|
622
|
+
"fieldName": "disabled"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"name": "checked",
|
|
626
|
+
"type": {
|
|
627
|
+
"text": "boolean"
|
|
628
|
+
},
|
|
629
|
+
"default": "false",
|
|
630
|
+
"description": "Draws the radio in a checked state.",
|
|
631
|
+
"fieldName": "checked"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"name": "support-text",
|
|
635
|
+
"type": {
|
|
636
|
+
"text": "string"
|
|
637
|
+
},
|
|
638
|
+
"default": "''",
|
|
639
|
+
"description": "The input's help text.",
|
|
640
|
+
"fieldName": "supportText"
|
|
641
|
+
}
|
|
642
|
+
],
|
|
643
|
+
"superclass": {
|
|
644
|
+
"name": "BaseComponent",
|
|
645
|
+
"package": "@italia/globals"
|
|
646
|
+
},
|
|
647
|
+
"tagName": "it-radio",
|
|
648
|
+
"customElement": true
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
"exports": [
|
|
652
|
+
{
|
|
653
|
+
"kind": "js",
|
|
654
|
+
"name": "ItRadio",
|
|
655
|
+
"declaration": {
|
|
656
|
+
"name": "ItRadio",
|
|
657
|
+
"module": "src/it-radio.ts"
|
|
658
|
+
}
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"kind": "custom-element-definition",
|
|
662
|
+
"name": "it-radio",
|
|
663
|
+
"declaration": {
|
|
664
|
+
"name": "ItRadio",
|
|
665
|
+
"module": "src/it-radio.ts"
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
]
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"kind": "javascript-module",
|
|
672
|
+
"path": "stories/it-radio.stories.ts",
|
|
673
|
+
"declarations": [
|
|
674
|
+
{
|
|
675
|
+
"kind": "variable",
|
|
676
|
+
"name": "meta",
|
|
677
|
+
"default": "{ title: 'Componenti/Form/Radio', tags: ['autodocs'], component: 'it-radio-group', args: { id: '', name: 'gruppo1', // @ts-ignore these are docs disabled: false, supportText: '', grouped: false, inline: false, form: '', customValidation: false, validityMessage: '', required: false, }, argTypes: { id: { control: 'text', description: 'ID del campo', }, name: { control: 'text', description: 'Nome del campo. I radio dello stesso gruppo devono avere lo stesso name.', }, grouped: { control: 'boolean', type: 'boolean', description: 'Se il radio-group deve avere i suoi elementi raggruppati visivamente', table: { defaultValue: { summary: 'false' } }, }, // @ts-ignore these are docs disabled: { control: 'boolean', type: 'boolean', description: \"Se il gruppo di radio è disabilitato. Per l'omonimo attributo del componente it-radio, vedi la sezione dedicata\", table: { defaultValue: { summary: 'false' } }, }, inline: { control: 'boolean', type: 'boolean', description: 'Se il radio-group deve avere i suoi elementi visualizzati in linea', table: { defaultValue: { summary: 'false' } }, }, supportText: { name: 'support-text', control: 'text', description: 'Testo di supporto per un singolo componente it-radio', }, form: { control: 'text', description: \"ID html del form a cui è associato il componente it-radio-group, se non si trova all'interno di una form \", }, customValidation: { name: 'custom-validation', control: 'boolean', type: 'boolean', table: { defaultValue: { summary: 'false' } }, description: 'Se la validazione del radio group è fatta esternamente (lato server o con plugin js - validazione custom), impostare questo attributo a `true`.', }, validityMessage: { name: 'validity-message', control: 'text', description: \"Messaggio da mostrare quando il radio group è invalido nel caso di validazione esterna (validazione custom). Se impostato a '' (stringa vuota) il campo viene considerato valido.\", }, required: { control: 'boolean', type: 'boolean', description: 'Se il radio group è obbligatorio', table: { defaultValue: { summary: 'false' } }, }, }, parameters: { docs: { description: { component: ` <Description>Radio button accessibili e personalizzabili.</Description> Il componente \\`<it-radio-group>\\` permette di raggruppare una serie di \\`<it-radio>\\`, gestendo la selezione di un solo elemento alla volta.\\n Ogni \\`<it-radio>\\` all'interno del gruppo deve avere un valore unico nell'attributo \\`value\\`. <div class=\"callout callout-success\"><div class=\"callout-inner\"><div class=\"callout-title\"><span class=\"text\">Accessibilità</span></div> <p> Il componente implementa completamente le specifiche ARIA per i gruppi di radio button: \\`<it-radio-group>\\` gestisce automaticamente gli attributi \\`role=\"radiogroup\"\\` e \\`aria-labelledby\\`, mentre ogni \\`<it-radio>\\` riceve gli attributi \\`role=\"radio\"\\`, \\`aria-checked\\` e \\`aria-disabled\\` in base al proprio stato.</p> <p> A causa delle limitazioni architetturali dei Web Components e del Shadow DOM, non è possibile utilizzare il meccanismo nativo HTML basato su \\`<fieldset>\\` e \\`<legend>\\`. Questo approccio, pur essendo standard, presenta notevoli problematiche di compatibilità cross-browser con gli screen reader: test approfonditi hanno dimostrato comportamenti inconsistenti tra diverse combinazioni di browser, sistemi operativi e tecnologie assistive. In alcuni casi la \\`<legend>\\` non viene annunciata, in altri il gruppo non viene riconosciuto come tale, mentre in altri ancora mancano informazioni sulla posizione delle opzioni all'interno del gruppo. Per superare queste limitazioni e garantire un'esperienza uniforme e accessibile su tutte le piattaforme, il componente richiede che la label del gruppo venga fornita tramite lo slot \\`label\\`, assicurando così la corretta associazione semantica anche all'interno dello Shadow DOM.</p> <p>L'implementazione si conforma al pattern \"Radio Group\" definito nelle [WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/radio/examples/radio/), adottando la gestione della tastiera e degli stati prevista dalle linee guida di accessibilità. Questo approccio garantisce che le tecnologie assistive, in particolare gli screen reader, comunichino correttamente la posizione di ogni opzione nel gruppo (es. \"1 di 3\", \"2 di 3\", \"3 di 3\"), migliorando significativamente l'esperienza utente per le persone con disabilità. </p></div></div> `, }, }, }, } satisfies Meta<RadioProps>"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"kind": "variable",
|
|
681
|
+
"name": "EsempioInterattivo",
|
|
682
|
+
"type": {
|
|
683
|
+
"text": "Story"
|
|
684
|
+
},
|
|
685
|
+
"default": "{ ...meta, name: 'Esempio interattivo', tags: ['!autodocs', '!dev'], parameters: { docs: { canvas: { sourceState: 'shown', }, }, }, decorators: [(Story) => html` <div style=\"min-width:450px\">${Story()}</div>`], render: (params) => html` <it-radio-group name=\"${params.name}\" ?inline=\"${params.inline}\" ?grouped=\"${params.grouped}\" .form=\"${params.form}\" ?required=\"${params.required}\" ?custom-validation=\"${params.customValidation}\" validity-message=\"${ifDefined(params.validityMessage || undefined)}\" > <span slot=\"label\">Esempio interattivo</span> ${renderComponent({ ...params, id: 'radio1', label: 'Radio di esempio 1', value: 'opzione1', })} ${renderComponent({ ...params, id: 'radio2', label: 'Radio di esempio 2', value: 'opzione2', })} ${renderComponent({ ...params, id: 'radio3', label: 'Radio di esempio 3', value: 'opzione3', })} </it-radio-group> </div> `, }"
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
"kind": "variable",
|
|
689
|
+
"name": "PersonalizzazioneDegliStili",
|
|
690
|
+
"type": {
|
|
691
|
+
"text": "Story"
|
|
692
|
+
},
|
|
693
|
+
"default": "{ name: 'Personalizzazione degli stili', tags: ['!dev'], parameters: { viewMode: 'docs', docs: { canvas: { hidden: true, sourceState: 'none' }, description: { story: ` Per la personalizzazione degli stili del componente \\`<it-radio>\\` si può usare il selettore \\`::part\\` con i seguenti valori: | Part | Descrizione | |------|-------------| | \\`input\\` | Il contenitore dell'input nascosto | | \\`button\\` | Il cerchio del radio button visibile | | \\`input-wrapper\\` | Il wrapper principale che contiene il radio control e il testo di supporto | | \\`radio-control\\` | Il contenitore che racchiude il button e la label | | \\`label\\` | La label del radio button | [Vedi qui la guida dettagliata](/docs/personalizzazione-degli-stili--documentazione#selettore-part). Esempio di personalizzazione: \\`\\`\\`css it-radio::part(button) { border-color: #0066cc; } it-radio::part(label) { font-weight: bold; color: #333; } \\`\\`\\` `, }, }, }, render: () => html`<div class=\"hide-preview\"></div>`, }"
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"kind": "variable",
|
|
697
|
+
"name": "ComeUsareItRadio",
|
|
698
|
+
"type": {
|
|
699
|
+
"text": "Story"
|
|
700
|
+
},
|
|
701
|
+
"default": "{ ...meta, name: 'Utilizzo', tags: ['!dev'], parameters: { viewMode: 'docs', docs: { canvas: { hidden: true, sourceState: 'none' }, description: { story: ` Il componente \\`<it-radio>\\` deve essere sempre utilizzato all'interno di un \\`<it-radio-group>\\` e richiede obbligatoriamente: - Un **attributo \\`value\\`** univoco per identificare l'opzione - Una **label definita tramite slot** \\`<span slot=\"label\">Testo della label</span>\\` #### Proprietà principali | Proprietà | Tipo | Descrizione | |-----------|------|-------------| | \\`value\\` | \\`string\\` | Valore univoco del radio button (obbligatorio) | | \\`disabled\\` | \\`boolean\\` | Se \\`true\\`, disabilita il singolo radio button | | \\`support-text\\` | \\`string\\` | Testo di supporto visualizzato sotto la label (obbligatorio) | `, }, }, }, render: () => html`<div class=\"hide-preview\"></div>`, }"
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
"kind": "variable",
|
|
705
|
+
"name": "DefinizioneDellaLabel",
|
|
706
|
+
"type": {
|
|
707
|
+
"text": "Story"
|
|
708
|
+
},
|
|
709
|
+
"default": "{ ...meta, name: 'Definizione della Label', parameters: { docs: { description: { story: ` Sia \\`<it-radio-group>\\` che \\`<it-radio>\\` espongono uno slot \\`label\\` per definire le rispettive etichette. La label del gruppo \\`<it-radio-group>\\` viene definita tramite lo slot \\`label\\` dell'elemento \\`<it-radio-group>\\` e identifica l'intero gruppo di radio button. È possibile utilizzare HTML all'interno dello slot per creare label formattate. Ogni \\`<it-radio>\\` richiede obbligatoriamente una label definita tramite il proprio slot \\`label\\`. La label identifica la singola opzione all'interno del gruppo. È possibile utilizzare anche HTML all'interno dello slot per creare label più complesse con formattazione o altri elementi. `, }, }, }, render: (params) => html` <it-radio-group name=\"gruppo-label\"> <span slot=\"label\">Gruppo con label formattate</span> ${renderComponent({ ...params, id: 'radio-label1', label: 'Label semplice', value: 'opzione1', })} <it-radio id=\"radio-label2\" value=\"opzione2\"> <span slot=\"label\"><strong>Label</strong> con <em>formattazione</em></span> </it-radio> <it-radio id=\"radio-label3\" value=\"opzione3\"> <span slot=\"label\">Label semplice</span> </it-radio> </it-radio-group> `, }"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"kind": "variable",
|
|
713
|
+
"name": "TestoDiSupporto",
|
|
714
|
+
"type": {
|
|
715
|
+
"text": "Story"
|
|
716
|
+
},
|
|
717
|
+
"default": "{ ...meta, name: 'Testo di supporto', parameters: { docs: { description: { story: `In caso di necessità, è possibile utilizzare un contenuto testuale sotto il radio button tramite l'attributo \\`support-text\\` del componente \\`<it-radio>\\`.`, }, }, }, render: (params) => html` <it-radio-group name=\"gruppo-support\"> <span slot=\"label\">Esempio con testo di supporto</span> ${renderComponent({ ...params, id: 'radio-support1', label: 'Radio con testo di supporto', value: 'opzione1', supportText: 'Questo è un testo di supporto per il radio button', })} ${renderComponent({ ...params, id: 'radio-support2', label: 'Altro radio', value: 'opzione2', })} </it-radio-group> `, }"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"kind": "variable",
|
|
721
|
+
"name": "Inline",
|
|
722
|
+
"type": {
|
|
723
|
+
"text": "Story"
|
|
724
|
+
},
|
|
725
|
+
"default": "{ ...meta, parameters: { docs: { description: { story: `Per allineare orizzontalmente i radio button basterà aggiungere l'attributo \\`inline\\` a \\`<it-radio-group>\\`.`, }, }, }, render: (params) => html` <it-radio-group name=\"gruppo-inline\" inline> <span slot=\"label\">Esempio inline</span> ${renderComponent({ ...params, id: 'radio-inline1', label: 'Radio inline 1', name: 'gruppo-inline', value: 'opzione1', checked: true, })} ${renderComponent({ ...params, id: 'radio-inline2', label: 'Radio inline 2', name: 'gruppo-inline', value: 'opzione2', })} ${renderComponent({ ...params, id: 'radio-inline3', label: 'Radio inline 3', name: 'gruppo-inline', value: 'opzione3', })} </it-radio-group> `, }"
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"kind": "variable",
|
|
729
|
+
"name": "Disabilitato",
|
|
730
|
+
"type": {
|
|
731
|
+
"text": "Story"
|
|
732
|
+
},
|
|
733
|
+
"default": "{ ...meta, name: 'Radio disabilitati', parameters: { docs: { description: { story: ` #### Radio singolo disabilitato Aggiungi l'attributo \\`disabled\\` ad un singolo \\`<it-radio>\\` per disabilitare quell'opzione. #### Gruppo intero disabilitato Se invece intendi disabilitare l'intero gruppo, aggiungi l'attributo \\`disabled\\` a \\`<it-radio-group>\\`. In questo modo tutti i radio al suo interno risulteranno disabilitati automaticamente. `, }, }, }, render: (params) => html` <div class=\"row\"> <div class=\"col-12 col-md-6\"> <it-radio-group name=\"gruppo-alcuni-disabled\" value=\"opzione1\"> <span slot=\"label\">Esempio con alcuni disabilitati</span> ${renderComponent({ ...params, id: 'radio-disabled1', label: 'Radio selezionato e disabilitato', value: 'opzione1', disabled: true, })} ${renderComponent({ ...params, id: 'radio-disabled2', label: 'Radio disabilitato', name: 'gruppo-disabled', value: 'opzione2', disabled: true, })} ${renderComponent({ ...params, id: 'radio-disabled3', label: 'Radio abilitato', name: 'gruppo-disabled', value: 'opzione3', })} </it-radio-group> </div> <div class=\"col-12 col-md-6\"> <it-radio-group name=\"gruppo-tutti-disabled\" value=\"opzione2\" disabled> <span slot=\"label\">Esempio con tutti disabilitati</span> ${renderComponent({ ...params, id: 'radio-disabled4', label: 'Radio selezionato e disabilitato', value: 'opzione1', })} ${renderComponent({ ...params, id: 'radio-disabled5', label: 'Radio disabilitato', value: 'opzione2', })} ${renderComponent({ ...params, id: 'radio-disabled6', label: 'Radio abilitato', value: 'opzione3', })} </it-radio-group> </div> </div> </div> `, }"
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"kind": "variable",
|
|
737
|
+
"name": "RaggruppatiVisivamente",
|
|
738
|
+
"type": {
|
|
739
|
+
"text": "Story"
|
|
740
|
+
},
|
|
741
|
+
"default": "{ ...meta, name: 'Raggruppati visivamente', parameters: { docs: { description: { story: `Per raggruppare visivamente i radio button occorrerà aggiungere l'attributo \\`group\\` a \\`<it-radio-group>\\`. L'elemento grafico di selezione verrà allineato alla destra del contenuto testuale.`, }, }, }, render: (params) => html` <div> <div class=\"row\"> <div class=\"col-12 col-md-6\"> <it-radio-group name=\"gruppo-visual\" grouped> <span slot=\"label\">Esempio grouped senza testo di supporto</span> ${renderComponent({ ...params, id: 'radio-group1', label: 'Opzione 1', name: 'gruppo-visual', value: 'opzione1', checked: true, })} ${renderComponent({ ...params, id: 'radio-group2', label: 'Opzione 2', name: 'gruppo-visual', value: 'opzione2', })} ${renderComponent({ ...params, id: 'radio-group3', label: 'Opzione 3', name: 'gruppo-visual', value: 'opzione3', })} </it-radio-group> </div> <div class=\"col-12 col-md-6\"> <it-radio-group name=\"gruppo-visual2\" grouped> <span slot=\"label\">Esempio grouped con testo di supporto</span> ${renderComponent({ ...params, id: 'radio-group4', label: 'Opzione 1', supportText: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie libero', name: 'gruppo-visual2', value: 'opzione1', checked: true, })} ${renderComponent({ ...params, id: 'radio-group5', label: 'Opzione 2', supportText: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie libero', name: 'gruppo-visual2', value: 'opzione2', })} ${renderComponent({ ...params, id: 'radio-group6', label: 'Opzione 3', supportText: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie libero', name: 'gruppo-visual2', value: 'opzione3', })} </it-radio-group> </div> </div> </div> `, }"
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"kind": "variable",
|
|
745
|
+
"name": "RadioGroupRequired",
|
|
746
|
+
"type": {
|
|
747
|
+
"text": "Story"
|
|
748
|
+
},
|
|
749
|
+
"default": "{ name: 'Validazione e gestione degli errori', parameters: { docs: { description: { story: ` Se non è stata impostata la validazione custom tramite l'attributo \\`custom-validation\\`, e sono stati impostati attributi come \\`required\\`, viene effettuata una validazione interna utilizzando la validazione nativa del browser. Verranno mostrati i messaggi di errore nativi, e i componenti \\`<it-radio-group>\\` e \\`<it-radio>\\` riceveranno l'attributo \\`aria-invalid=\"true\"\\` quando non validi. \\`\\`\\`html <form> <it-radio-group name=\"scelta\" required> <span slot=\"label\">Seleziona un'opzione (obbligatorio)</span> <it-radio value=\"si\"> <span slot=\"label\">Sì, accetto</span> </it-radio> <it-radio value=\"no\"> <span slot=\"label\">No, non accetto</span> </it-radio> </it-radio-group> <button type=\"submit\">Invia</button> </form> \\`\\`\\` <br/> ### Personalizzazione dei messaggi di errore E' possibile personalizzare alcuni dei messaggi di errore di validazione, traducendo le seguenti stringhe tramite l'[utility di internazionalizzazione](/docs/i18n-internazionalizzazione--documentazione): <ul> <li>\\`validityRequired\\`: messaggio che viene mostrato quando il radio group è obbligatorio e nessuna opzione è stata selezionata</li> </ul> Non esistono altre possibili validazioni native per questo tipo di input. Per validazioni custom dovrai fornire i tuoi messaggi di errore. `, }, }, }, render: () => html` <form id=\"demo-form\"> <it-radio-group name=\"scelta\" required> <span slot=\"label\">Esempio con validazione</span> <it-radio value=\"si\"> <span slot=\"label\">Sì, accetto</span> </it-radio> <it-radio value=\"no\"> <span slot=\"label\">No, non accetto</span> </it-radio> <it-radio value=\"forse\"> <span slot=\"label\">Forse</span> </it-radio> </it-radio-group> <button type=\"submit\" class=\"btn btn-primary mt-3\">Invia</button> <p class=\"form-text mt-2\">Prova a inviare il form senza selezionare nulla per vedere la validazione.</p> </form> `, }"
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"kind": "variable",
|
|
753
|
+
"name": "MetodiEPropPubblici",
|
|
754
|
+
"type": {
|
|
755
|
+
"text": "Story"
|
|
756
|
+
},
|
|
757
|
+
"default": "{ ...StoryFormControlMethodAndProps('', `|\\`click()\\`| Triggera l'evento di click sull'input reale | - |`), tags: ['!dev'], }"
|
|
758
|
+
}
|
|
759
|
+
],
|
|
760
|
+
"exports": [
|
|
761
|
+
{
|
|
762
|
+
"kind": "js",
|
|
763
|
+
"name": "default",
|
|
764
|
+
"declaration": {
|
|
765
|
+
"name": "meta",
|
|
766
|
+
"module": "stories/it-radio.stories.ts"
|
|
767
|
+
}
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"kind": "js",
|
|
771
|
+
"name": "EsempioInterattivo",
|
|
772
|
+
"declaration": {
|
|
773
|
+
"name": "EsempioInterattivo",
|
|
774
|
+
"module": "stories/it-radio.stories.ts"
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"kind": "js",
|
|
779
|
+
"name": "PersonalizzazioneDegliStili",
|
|
780
|
+
"declaration": {
|
|
781
|
+
"name": "PersonalizzazioneDegliStili",
|
|
782
|
+
"module": "stories/it-radio.stories.ts"
|
|
783
|
+
}
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"kind": "js",
|
|
787
|
+
"name": "ComeUsareItRadio",
|
|
788
|
+
"declaration": {
|
|
789
|
+
"name": "ComeUsareItRadio",
|
|
790
|
+
"module": "stories/it-radio.stories.ts"
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"kind": "js",
|
|
795
|
+
"name": "DefinizioneDellaLabel",
|
|
796
|
+
"declaration": {
|
|
797
|
+
"name": "DefinizioneDellaLabel",
|
|
798
|
+
"module": "stories/it-radio.stories.ts"
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"kind": "js",
|
|
803
|
+
"name": "TestoDiSupporto",
|
|
804
|
+
"declaration": {
|
|
805
|
+
"name": "TestoDiSupporto",
|
|
806
|
+
"module": "stories/it-radio.stories.ts"
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"kind": "js",
|
|
811
|
+
"name": "Inline",
|
|
812
|
+
"declaration": {
|
|
813
|
+
"name": "Inline",
|
|
814
|
+
"module": "stories/it-radio.stories.ts"
|
|
815
|
+
}
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"kind": "js",
|
|
819
|
+
"name": "Disabilitato",
|
|
820
|
+
"declaration": {
|
|
821
|
+
"name": "Disabilitato",
|
|
822
|
+
"module": "stories/it-radio.stories.ts"
|
|
823
|
+
}
|
|
824
|
+
},
|
|
825
|
+
{
|
|
826
|
+
"kind": "js",
|
|
827
|
+
"name": "RaggruppatiVisivamente",
|
|
828
|
+
"declaration": {
|
|
829
|
+
"name": "RaggruppatiVisivamente",
|
|
830
|
+
"module": "stories/it-radio.stories.ts"
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"kind": "js",
|
|
835
|
+
"name": "RadioGroupRequired",
|
|
836
|
+
"declaration": {
|
|
837
|
+
"name": "RadioGroupRequired",
|
|
838
|
+
"module": "stories/it-radio.stories.ts"
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"kind": "js",
|
|
843
|
+
"name": "MetodiEPropPubblici",
|
|
844
|
+
"declaration": {
|
|
845
|
+
"name": "MetodiEPropPubblici",
|
|
846
|
+
"module": "stories/it-radio.stories.ts"
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
]
|
|
850
|
+
}
|
|
851
|
+
]
|
|
852
|
+
}
|