@fluentui/web-components 3.0.0-rc.12 → 3.0.0-rc.13

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.
@@ -1,501 +1,14 @@
1
- import { __decorate } from "tslib";
2
- import { attr, FASTElement, Observable, observable, Updates } from '@microsoft/fast-element';
3
- import { findLastIndex } from '@microsoft/fast-web-utilities';
4
- import { isRadio } from '../radio/radio.options.js';
5
- import { getDirection } from '../utils/direction.js';
6
- import { getRootActiveElement } from '../utils/root-active-element.js';
7
- import { RadioGroupOrientation } from './radio-group.options.js';
1
+ import { BaseRadioGroup } from './radio-group.base.js';
8
2
  /**
9
3
  * A Radio Group Custom HTML Element.
10
4
  * Implements the {@link https://w3c.github.io/aria/#radiogroup | ARIA `radiogroup` role}.
11
5
  *
12
6
  * @tag fluent-radio-group
13
7
  *
14
- * @public
15
- *
16
8
  * @slot - The default slot for the radio group
9
+ *
10
+ * @public
17
11
  */
18
- export class RadioGroup extends FASTElement {
19
- /**
20
- * Sets the checked state of the nearest enabled radio when the `checkedIndex` changes.
21
- *
22
- * @param prev - the previous index
23
- * @param next - the current index
24
- * @internal
25
- */
26
- checkedIndexChanged(prev, next) {
27
- if (!this.enabledRadios) {
28
- return;
29
- }
30
- this.checkRadio(next);
31
- }
32
- /**
33
- * Sets the `disabled` attribute on all child radios when the `disabled` property changes.
34
- *
35
- * @param prev - the previous disabled value
36
- * @param next - the current disabled value
37
- * @internal
38
- */
39
- disabledChanged(prev, next) {
40
- if (this.radios) {
41
- this.checkedIndex = -1;
42
- this.radios?.forEach(radio => {
43
- radio.disabled = !!radio.disabledAttribute || !!this.disabled;
44
- });
45
- this.restrictFocus();
46
- }
47
- }
48
- /**
49
- * Sets the matching radio to checked when the value changes. If no radio matches the value, no radio will be checked.
50
- *
51
- * @param prev - the previous value
52
- * @param next - the current value
53
- */
54
- initialValueChanged(prev, next) {
55
- this.value = next ?? '';
56
- }
57
- /**
58
- * Sets the `name` attribute on all child radios when the `name` property changes.
59
- *
60
- * @internal
61
- */
62
- nameChanged(prev, next) {
63
- if (this.isConnected && next) {
64
- this.radios?.forEach(radio => {
65
- radio.name = this.name;
66
- });
67
- }
68
- }
69
- /**
70
- * Sets the ariaOrientation attribute when the orientation changes.
71
- *
72
- * @param prev - the previous orientation
73
- * @param next - the current orientation
74
- * @internal
75
- */
76
- orientationChanged(prev, next) {
77
- this.elementInternals.ariaOrientation = this.orientation ?? RadioGroupOrientation.horizontal;
78
- }
79
- /**
80
- * Updates the enabled radios collection when properties on the child radios change.
81
- *
82
- * @param prev - the previous radios
83
- * @param next - the current radios
84
- */
85
- radiosChanged(prev, next) {
86
- const setSize = next?.length;
87
- if (!setSize) {
88
- return;
89
- }
90
- if (!this.name && next.every(x => x.name === next[0].name)) {
91
- this.name = next[0].name;
92
- }
93
- const checkedIndex = findLastIndex(this.enabledRadios, x => x.initialChecked);
94
- next.forEach((radio, index) => {
95
- radio.ariaPosInSet = `${index + 1}`;
96
- radio.ariaSetSize = `${setSize}`;
97
- if (this.initialValue && !this.dirtyState) {
98
- radio.checked = radio.value === this.initialValue;
99
- }
100
- else {
101
- radio.checked = index === checkedIndex;
102
- }
103
- radio.name = this.name ?? radio.name;
104
- radio.disabled = !!this.disabled || !!radio.disabledAttribute;
105
- });
106
- if (!this.dirtyState && this.initialValue) {
107
- this.value = this.initialValue;
108
- }
109
- if (!this.value ||
110
- // This logic covers the case when the RadioGroup doesn't have a `value`
111
- // attribute, but does have a checked child Radio. Without this condition,
112
- // the checked Radio's value will be assigned to `this.value`, and
113
- // `checkedIndex` will be the checked Radio's index, but `this.checkedIndex`
114
- // will remain `undefined`, which would cause the RadioGroup to add
115
- // `tabindex=-1` to the checked Radio, and effectively makes the whole
116
- // RadioGroup unfocusable.
117
- (this.value && typeof this.checkedIndex !== 'number' && checkedIndex >= 0)) {
118
- // TODO: Switch to standard `Array.findLastIndex` when TypeScript 5 is available
119
- this.checkedIndex = checkedIndex;
120
- }
121
- // prettier-ignore
122
- const radioIds = next.map(radio => radio.id).join(' ').trim();
123
- if (radioIds) {
124
- this.setAttribute('aria-owns', radioIds);
125
- }
126
- Updates.enqueue(() => {
127
- this.restrictFocus();
128
- });
129
- }
130
- /**
131
- *
132
- * @param prev - the previous required value
133
- * @param next - the current required value
134
- */
135
- requiredChanged(prev, next) {
136
- this.elementInternals.ariaRequired = next ? 'true' : null;
137
- this.setValidity();
138
- }
139
- /**
140
- * Updates the radios collection when the slotted radios change.
141
- *
142
- * @param prev - the previous slotted radios
143
- * @param next - the current slotted radios
144
- */
145
- slottedRadiosChanged(prev, next) {
146
- this.radios = [...this.querySelectorAll('*')].filter(x => isRadio(x));
147
- }
148
- /**
149
- * A collection of child radios that are not disabled.
150
- *
151
- * @internal
152
- */
153
- get enabledRadios() {
154
- if (this.disabled) {
155
- return [];
156
- }
157
- return this.radios?.filter(x => !x.disabled) ?? [];
158
- }
159
- /**
160
- * The form-associated flag.
161
- * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
162
- *
163
- * @public
164
- */
165
- static { this.formAssociated = true; }
166
- /**
167
- * The validation message. Uses the browser's default validation message for native checkboxes if not otherwise
168
- * specified (e.g., via `setCustomValidity`).
169
- *
170
- * @internal
171
- */
172
- get validationMessage() {
173
- if (this.elementInternals.validationMessage) {
174
- return this.elementInternals.validationMessage;
175
- }
176
- if (this.enabledRadios?.[0]?.validationMessage) {
177
- return this.enabledRadios[0].validationMessage;
178
- }
179
- if (!this._validationFallbackMessage) {
180
- const validationMessageFallbackControl = document.createElement('input');
181
- validationMessageFallbackControl.type = 'radio';
182
- validationMessageFallbackControl.required = true;
183
- validationMessageFallbackControl.checked = false;
184
- this._validationFallbackMessage = validationMessageFallbackControl.validationMessage;
185
- }
186
- return this._validationFallbackMessage;
187
- }
188
- /**
189
- * The element's validity state.
190
- *
191
- * @public
192
- * @remarks
193
- * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/validity | `ElementInternals.validity`} property.
194
- */
195
- get validity() {
196
- return this.elementInternals.validity;
197
- }
198
- /**
199
- * The current value of the checked radio.
200
- *
201
- * @public
202
- */
203
- get value() {
204
- Observable.notify(this, 'value');
205
- return this.enabledRadios.find(x => x.checked)?.value ?? null;
206
- }
207
- set value(next) {
208
- const index = this.enabledRadios.findIndex(x => x.value === next);
209
- this.checkedIndex = index;
210
- if (this.$fastController.isConnected) {
211
- this.setFormValue(next);
212
- this.setValidity();
213
- }
214
- Observable.track(this, 'value');
215
- }
216
- /**
217
- * Sets the checked state of all radios when any radio emits a `change` event.
218
- *
219
- * @param e - the change event
220
- */
221
- changeHandler(e) {
222
- if (this === e.target) {
223
- return true;
224
- }
225
- this.dirtyState = true;
226
- const radioIndex = this.enabledRadios.indexOf(e.target);
227
- this.checkRadio(radioIndex);
228
- this.radios
229
- ?.filter(x => x.disabled)
230
- ?.forEach(item => {
231
- item.checked = false;
232
- });
233
- return true;
234
- }
235
- /**
236
- * Checks the radio at the specified index.
237
- *
238
- * @param index - the index of the radio to check
239
- * @internal
240
- */
241
- checkRadio(index = this.checkedIndex, shouldEmit = false) {
242
- let checkedIndex = this.checkedIndex;
243
- this.enabledRadios.forEach((item, i) => {
244
- const shouldCheck = i === index;
245
- item.checked = shouldCheck;
246
- if (shouldCheck) {
247
- checkedIndex = i;
248
- if (shouldEmit) {
249
- item.$emit('change');
250
- }
251
- }
252
- });
253
- this.checkedIndex = checkedIndex;
254
- this.setFormValue(this.value);
255
- this.setValidity();
256
- }
257
- /**
258
- * Checks the validity of the element and returns the result.
259
- *
260
- * @public
261
- * @remarks
262
- * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity | `HTMLInputElement.checkValidity()`} method.
263
- */
264
- checkValidity() {
265
- return this.elementInternals.checkValidity();
266
- }
267
- /**
268
- * Handles click events for the radio group.
269
- *
270
- * @param e - the click event
271
- * @internal
272
- */
273
- clickHandler(e) {
274
- if (this === e.target) {
275
- this.enabledRadios[Math.max(0, this.checkedIndex)]?.focus();
276
- }
277
- return true;
278
- }
279
- constructor() {
280
- super();
281
- /**
282
- * Indicates that the value has been changed by the user.
283
- */
284
- this.dirtyState = false;
285
- /**
286
- * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
287
- *
288
- * @internal
289
- */
290
- this.elementInternals = this.attachInternals();
291
- this.elementInternals.role = 'radiogroup';
292
- this.elementInternals.ariaOrientation = this.orientation ?? RadioGroupOrientation.horizontal;
293
- }
294
- /**
295
- * Focuses the checked radio or the first enabled radio.
296
- *
297
- * @internal
298
- */
299
- focus() {
300
- this.enabledRadios[Math.max(0, this.checkedIndex)]?.focus();
301
- }
302
- /**
303
- * Enables tabbing through the radio group when the group receives focus.
304
- *
305
- * @param e - the focus event
306
- * @internal
307
- */
308
- focusinHandler(e) {
309
- if (!this.disabled) {
310
- this.enabledRadios.forEach(radio => {
311
- radio.tabIndex = 0;
312
- });
313
- }
314
- return true;
315
- }
316
- /**
317
- * Sets the tabindex of the radios based on the checked state when the radio group loses focus.
318
- *
319
- * @param e - the focusout event
320
- * @internal
321
- */
322
- focusoutHandler(e) {
323
- if (this.radios?.includes(e.relatedTarget) && this.radios?.some(x => x.checked)) {
324
- this.restrictFocus();
325
- }
326
- return true;
327
- }
328
- formResetCallback() {
329
- this.dirtyState = false;
330
- this.checkedIndex = -1;
331
- this.setFormValue(this.value);
332
- this.setValidity();
333
- }
334
- getEnabledIndexInBounds(index, upperBound = this.enabledRadios.length) {
335
- if (upperBound === 0) {
336
- return -1;
337
- }
338
- return (index + upperBound) % upperBound;
339
- }
340
- /**
341
- * Handles keydown events for the radio group.
342
- *
343
- * @param e - the keyboard event
344
- * @internal
345
- */
346
- keydownHandler(e) {
347
- const isRtl = getDirection(this) === 'rtl';
348
- const checkedIndex = this.enabledRadios.findIndex(x => x === getRootActiveElement(this)) ?? this.checkedIndex;
349
- let increment = 0;
350
- switch (e.key) {
351
- case 'ArrowLeft': {
352
- increment = isRtl ? 1 : -1;
353
- break;
354
- }
355
- case 'ArrowUp': {
356
- increment = -1;
357
- break;
358
- }
359
- case 'ArrowRight': {
360
- increment = isRtl ? -1 : 1;
361
- break;
362
- }
363
- case 'ArrowDown': {
364
- increment = 1;
365
- break;
366
- }
367
- case 'Tab': {
368
- this.restrictFocus();
369
- break;
370
- }
371
- case ' ': {
372
- this.checkRadio();
373
- break;
374
- }
375
- }
376
- if (!increment) {
377
- return true;
378
- }
379
- const nextIndex = checkedIndex + increment;
380
- this.checkRadio(this.getEnabledIndexInBounds(nextIndex), true);
381
- this.enabledRadios[this.checkedIndex]?.focus();
382
- }
383
- /**
384
- *
385
- * @param e - the disabled event
386
- */
387
- disabledRadioHandler(e) {
388
- if (e.detail === true && e.target.checked) {
389
- this.checkedIndex = -1;
390
- }
391
- }
392
- /**
393
- * Reports the validity of the element.
394
- *
395
- * @public
396
- * @remarks
397
- * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity | `HTMLInputElement.reportValidity()`} method.
398
- */
399
- reportValidity() {
400
- return this.elementInternals.reportValidity();
401
- }
402
- /**
403
- * Resets the `tabIndex` for all child radios when the radio group loses focus.
404
- *
405
- * @internal
406
- */
407
- restrictFocus() {
408
- let activeIndex = Math.max(this.checkedIndex, 0);
409
- const focusedRadioIndex = this.enabledRadios.indexOf(getRootActiveElement(this));
410
- if (focusedRadioIndex !== -1) {
411
- activeIndex = focusedRadioIndex;
412
- }
413
- activeIndex = this.getEnabledIndexInBounds(activeIndex);
414
- this.enabledRadios.forEach((item, index) => {
415
- item.tabIndex = index === activeIndex ? 0 : -1;
416
- });
417
- }
418
- /**
419
- * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue | `ElementInternals.setFormValue()`} method.
420
- *
421
- * @internal
422
- */
423
- setFormValue(value, state) {
424
- this.elementInternals.setFormValue(value, value ?? state);
425
- }
426
- /**
427
- * Sets the validity of the element.
428
- *
429
- * @param flags - Validity flags to set.
430
- * @param message - Optional message to supply. If not provided, the element's `validationMessage` will be used.
431
- * @param anchor - Optional anchor to use for the validation message.
432
- *
433
- * @internal
434
- * @remarks
435
- * RadioGroup validation is reported through the individual Radio elements rather than the RadioGroup itself.
436
- * This is necessary because:
437
- * 1. Each Radio is form-associated (extends BaseCheckbox which has `formAssociated = true`)
438
- * 2. Browser validation UIs and screen readers announce validation against individual form controls
439
- * 3. For groups like RadioGroup, the browser needs to report the error on a specific member of the group
440
- * 4. We anchor the error to the first Radio so it receives focus and announcement
441
- *
442
- * When the group is invalid (required but no selection):
443
- * - Only the first Radio gets the invalid state with the validation message
444
- * - Other Radios are kept valid since selecting any of them would satisfy the requirement
445
- *
446
- * When the group becomes valid (user selects any Radio):
447
- * - All Radios are cleared back to valid state
448
- * - This allows form submission to proceed
449
- */
450
- setValidity(flags, message, anchor) {
451
- if (this.$fastController.isConnected) {
452
- // Always check if still required and has no value
453
- const isInvalid = this.required && !this.value && !this.disabled;
454
- if (!isInvalid) {
455
- // Clear validity on all radios when group is valid
456
- this.enabledRadios?.forEach(radio => {
457
- radio.elementInternals.setValidity({});
458
- });
459
- return;
460
- }
461
- // Group is invalid - set error only on first enabled radio for announcement
462
- const validationFlags = { valueMissing: true, ...flags };
463
- const validationMessage = message ?? this.validationMessage;
464
- this.enabledRadios?.forEach((radio, index) => {
465
- if (index === 0) {
466
- // Only the first radio shows the validation error for screen reader announcement
467
- radio.elementInternals.setValidity(validationFlags, validationMessage, radio);
468
- }
469
- else {
470
- // Other radios are valid (they're just not selected yet)
471
- radio.elementInternals.setValidity({});
472
- }
473
- });
474
- }
475
- }
12
+ export class RadioGroup extends BaseRadioGroup {
476
13
  }
477
- __decorate([
478
- observable
479
- ], RadioGroup.prototype, "checkedIndex", void 0);
480
- __decorate([
481
- attr({ attribute: 'disabled', mode: 'boolean' })
482
- ], RadioGroup.prototype, "disabled", void 0);
483
- __decorate([
484
- attr({ attribute: 'value', mode: 'fromView' })
485
- ], RadioGroup.prototype, "initialValue", void 0);
486
- __decorate([
487
- attr
488
- ], RadioGroup.prototype, "name", void 0);
489
- __decorate([
490
- attr
491
- ], RadioGroup.prototype, "orientation", void 0);
492
- __decorate([
493
- observable
494
- ], RadioGroup.prototype, "radios", void 0);
495
- __decorate([
496
- attr({ mode: 'boolean' })
497
- ], RadioGroup.prototype, "required", void 0);
498
- __decorate([
499
- observable
500
- ], RadioGroup.prototype, "slottedRadios", void 0);
501
14
  //# sourceMappingURL=radio-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/radio-group/radio-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/radio-group/radio-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAW,SAAQ,cAAc;CAAG"}