@warp-ds/elements 2.8.2-next.1 → 2.8.2-next.3

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 (172) hide show
  1. package/dist/custom-elements.json +195 -121
  2. package/dist/index.d.ts +52 -22
  3. package/dist/packages/affix/affix.hydration.test.d.ts +1 -0
  4. package/dist/packages/affix/affix.hydration.test.js +33 -0
  5. package/dist/packages/affix/affix.js +5 -5
  6. package/dist/packages/affix/affix.js.map +3 -3
  7. package/dist/packages/alert/alert.d.ts +1 -0
  8. package/dist/packages/alert/alert.hydration.test.d.ts +1 -0
  9. package/dist/packages/alert/alert.hydration.test.js +47 -0
  10. package/dist/packages/alert/alert.js +7 -7
  11. package/dist/packages/alert/alert.js.map +3 -3
  12. package/dist/packages/alert/alert.test.js +21 -0
  13. package/dist/packages/attention/attention.hydration.test.d.ts +1 -0
  14. package/dist/packages/attention/attention.hydration.test.js +66 -0
  15. package/dist/packages/attention/attention.js +15 -15
  16. package/dist/packages/attention/attention.js.map +3 -3
  17. package/dist/packages/badge/badge.hydration.test.d.ts +1 -0
  18. package/dist/packages/badge/badge.hydration.test.js +50 -0
  19. package/dist/packages/badge/badge.js +2 -2
  20. package/dist/packages/badge/badge.js.map +3 -3
  21. package/dist/packages/badge/badge.test.js +14 -0
  22. package/dist/packages/box/box.hydration.test.d.ts +1 -0
  23. package/dist/packages/box/box.hydration.test.js +37 -0
  24. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
  25. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -0
  26. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +141 -0
  27. package/dist/packages/breadcrumbs/breadcrumbs.js +7 -7
  28. package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
  29. package/dist/packages/breadcrumbs/breadcrumbs.test.js +3 -1
  30. package/dist/packages/button/button.hydration.test.d.ts +1 -0
  31. package/dist/packages/button/button.hydration.test.js +43 -0
  32. package/dist/packages/button/button.js +9 -9
  33. package/dist/packages/button/button.js.map +3 -3
  34. package/dist/packages/button/button.react.stories.d.ts +1 -1
  35. package/dist/packages/card/card.hydration.test.d.ts +1 -0
  36. package/dist/packages/card/card.hydration.test.js +38 -0
  37. package/dist/packages/card/card.react.stories.d.ts +1 -1
  38. package/dist/packages/checkbox/checkbox.d.ts +17 -1
  39. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -0
  40. package/dist/packages/checkbox/checkbox.hydration.test.js +47 -0
  41. package/dist/packages/checkbox/checkbox.js +20 -19
  42. package/dist/packages/checkbox/checkbox.js.map +3 -3
  43. package/dist/packages/checkbox/styles.js +10 -9
  44. package/dist/packages/checkbox-group/checkbox-group.d.ts +7 -0
  45. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -0
  46. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +40 -0
  47. package/dist/packages/checkbox-group/checkbox-group.js +14 -14
  48. package/dist/packages/checkbox-group/checkbox-group.js.map +3 -3
  49. package/dist/packages/checkbox-group/checkbox-group.test.js +10 -0
  50. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -0
  51. package/dist/packages/combobox/combobox.hydration.test.js +43 -0
  52. package/dist/packages/combobox/combobox.js +2 -2
  53. package/dist/packages/combobox/combobox.js.map +2 -2
  54. package/dist/packages/combobox/combobox.react.stories.d.ts +1 -1
  55. package/dist/packages/combobox/combobox.test.js +5 -2
  56. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -0
  57. package/dist/packages/datepicker/datepicker.hydration.test.js +40 -0
  58. package/dist/packages/datepicker/datepicker.js +5 -5
  59. package/dist/packages/datepicker/datepicker.js.map +3 -3
  60. package/dist/packages/datepicker/datepicker.react.stories.d.ts +1 -1
  61. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -0
  62. package/dist/packages/expandable/expandable.hydration.test.js +47 -0
  63. package/dist/packages/expandable/expandable.js +12 -12
  64. package/dist/packages/expandable/expandable.js.map +3 -3
  65. package/dist/packages/icon/icon.hydration.test.d.ts +1 -0
  66. package/dist/packages/icon/icon.hydration.test.js +47 -0
  67. package/dist/packages/icon/icon.js +2 -2
  68. package/dist/packages/icon/icon.js.map +3 -3
  69. package/dist/packages/icon/icon.test.d.ts +1 -0
  70. package/dist/packages/icon/icon.test.js +51 -0
  71. package/dist/packages/link/link.hydration.test.d.ts +1 -0
  72. package/dist/packages/link/link.hydration.test.js +54 -0
  73. package/dist/packages/link/link.js +4 -4
  74. package/dist/packages/link/link.js.map +3 -3
  75. package/dist/packages/link/link.test.js +14 -0
  76. package/dist/packages/modal/modal.hydration.test.d.ts +1 -0
  77. package/dist/packages/modal/modal.hydration.test.js +25 -0
  78. package/dist/packages/modal-header/modal-header.js +6 -6
  79. package/dist/packages/modal-header/modal-header.js.map +3 -3
  80. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -0
  81. package/dist/packages/page-indicator/page-indicator.hydration.test.js +41 -0
  82. package/dist/packages/page-indicator/page-indicator.js +7 -7
  83. package/dist/packages/page-indicator/page-indicator.js.map +3 -3
  84. package/dist/packages/page-indicator/page-indicator.test.js +23 -0
  85. package/dist/packages/pagination/pagination.d.ts +4 -0
  86. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -0
  87. package/dist/packages/pagination/pagination.hydration.test.js +38 -0
  88. package/dist/packages/pagination/pagination.js +20 -20
  89. package/dist/packages/pagination/pagination.js.map +3 -3
  90. package/dist/packages/pagination/pagination.react.stories.d.ts +1 -1
  91. package/dist/packages/pagination/pagination.test.js +18 -0
  92. package/dist/packages/pill/pill.hydration.test.d.ts +1 -0
  93. package/dist/packages/pill/pill.hydration.test.js +32 -0
  94. package/dist/packages/pill/pill.js +5 -5
  95. package/dist/packages/pill/pill.js.map +3 -3
  96. package/dist/packages/radio/radio.a11y.test.js +15 -6
  97. package/dist/packages/radio/radio.d.ts +33 -1
  98. package/dist/packages/radio/radio.hydration.test.d.ts +1 -0
  99. package/dist/packages/radio/radio.hydration.test.js +29 -0
  100. package/dist/packages/radio/radio.js +7 -7
  101. package/dist/packages/radio/radio.js.map +3 -3
  102. package/dist/packages/radio/radio.test.js +22 -15
  103. package/dist/packages/radio-group/radio-group.a11y.test.js +4 -0
  104. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -0
  105. package/dist/packages/radio-group/radio-group.hydration.test.js +32 -0
  106. package/dist/packages/radio-group/radio-group.js +17 -17
  107. package/dist/packages/radio-group/radio-group.js.map +3 -3
  108. package/dist/packages/radio-group/radio-group.test.js +3 -2
  109. package/dist/packages/select/select.hydration.test.d.ts +1 -0
  110. package/dist/packages/select/select.hydration.test.js +37 -0
  111. package/dist/packages/select/select.js +13 -13
  112. package/dist/packages/select/select.js.map +3 -3
  113. package/dist/packages/select/select.react.stories.d.ts +1 -1
  114. package/dist/packages/slider/slider.hydration.test.d.ts +1 -0
  115. package/dist/packages/slider/slider.hydration.test.js +33 -0
  116. package/dist/packages/slider/slider.js +9 -9
  117. package/dist/packages/slider/slider.js.map +3 -3
  118. package/dist/packages/slider/slider.test.js +54 -0
  119. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -0
  120. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +35 -0
  121. package/dist/packages/slider-thumb/slider-thumb.js +16 -16
  122. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  123. package/dist/packages/step/step.d.ts +1 -0
  124. package/dist/packages/step/step.hydration.test.d.ts +1 -0
  125. package/dist/packages/step/step.hydration.test.js +25 -0
  126. package/dist/packages/step/step.js +4 -4
  127. package/dist/packages/step/step.js.map +3 -3
  128. package/dist/packages/step-indicator/step-indicator.a11y.test.js +3 -1
  129. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -0
  130. package/dist/packages/step-indicator/step-indicator.hydration.test.js +25 -0
  131. package/dist/packages/switch/switch.a11y.test.js +23 -9
  132. package/dist/packages/switch/switch.d.ts +6 -0
  133. package/dist/packages/switch/switch.hydration.test.d.ts +1 -0
  134. package/dist/packages/switch/switch.hydration.test.js +54 -0
  135. package/dist/packages/switch/switch.js +7 -13
  136. package/dist/packages/switch/switch.js.map +3 -3
  137. package/dist/packages/switch/switch.test.js +0 -5
  138. package/dist/packages/tab/tab.d.ts +39 -2
  139. package/dist/packages/tab/tab.hydration.test.d.ts +1 -0
  140. package/dist/packages/tab/tab.hydration.test.js +25 -0
  141. package/dist/packages/tab/tab.js +22 -12
  142. package/dist/packages/tab/tab.js.map +3 -3
  143. package/dist/packages/tab-panel/tab-panel.d.ts +23 -1
  144. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -0
  145. package/dist/packages/tab-panel/tab-panel.hydration.test.js +21 -0
  146. package/dist/packages/tab-panel/tab-panel.js +18 -3
  147. package/dist/packages/tab-panel/tab-panel.js.map +3 -3
  148. package/dist/packages/tabs/tabs.a11y.test.js +59 -8
  149. package/dist/packages/tabs/tabs.hydration.test.d.ts +1 -0
  150. package/dist/packages/tabs/tabs.hydration.test.js +20 -0
  151. package/dist/packages/tabs/tabs.js +6 -6
  152. package/dist/packages/tabs/tabs.js.map +3 -3
  153. package/dist/packages/tabs/tabs.test.js +93 -1
  154. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -0
  155. package/dist/packages/textarea/textarea.hydration.test.js +43 -0
  156. package/dist/packages/textarea/textarea.react.stories.d.ts +1 -1
  157. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -0
  158. package/dist/packages/textfield/textfield.hydration.test.js +43 -0
  159. package/dist/packages/textfield/textfield.js +2 -2
  160. package/dist/packages/textfield/textfield.js.map +2 -2
  161. package/dist/packages/textfield/textfield.react.stories.d.ts +1 -1
  162. package/dist/packages/textfield/textfield.test.js +26 -0
  163. package/dist/packages/toast/toast.js +6 -6
  164. package/dist/packages/toast/toast.js.map +3 -3
  165. package/dist/packages/toast/toast.test.d.ts +1 -0
  166. package/dist/packages/toast/toast.test.js +58 -0
  167. package/dist/setup-tests.d.ts +2 -1
  168. package/dist/setup-tests.js +4 -3
  169. package/dist/tests/react-hydration.d.ts +20 -0
  170. package/dist/tests/react-hydration.js +138 -0
  171. package/dist/web-types.json +67 -63
  172. package/package.json +4 -3
@@ -40,7 +40,10 @@ describe('w-radio accessibility (WCAG 2.2)', () => {
40
40
  <w-radio value="one">First option</w-radio>
41
41
  </w-radio-group>
42
42
  `);
43
- await expect.element(page.getByRole('radio', { name: 'First option' })).toBeVisible();
43
+ // ElementInternals role is set in accessibility tree but not queryable via getByRole
44
+ const radio = page.container.querySelector('w-radio');
45
+ await expect.element(radio).toBeVisible();
46
+ expect(radio.textContent?.trim()).toBe('First option');
44
47
  });
45
48
  });
46
49
  describe('WCAG 4.1.2 - Name, Role, Value', () => {
@@ -50,7 +53,9 @@ describe('w-radio accessibility (WCAG 2.2)', () => {
50
53
  <w-radio value="one" disabled>Disabled</w-radio>
51
54
  </w-radio-group>
52
55
  `);
53
- await expect.element(page.getByRole('radio', { name: 'Disabled' })).toBeDisabled();
56
+ // Check property - aria-disabled is set via ElementInternals
57
+ const radio = page.container.querySelector('w-radio');
58
+ expect(radio.disabled).toBe(true);
54
59
  });
55
60
  test('checked state is exposed', async () => {
56
61
  const page = render(html `
@@ -64,8 +69,9 @@ describe('w-radio accessibility (WCAG 2.2)', () => {
64
69
  const [checkedRadio, uncheckedRadio] = Array.from(document.querySelectorAll('w-radio'));
65
70
  await checkedRadio.click();
66
71
  await group.updateComplete;
67
- await expect.poll(() => checkedRadio.getAttribute('aria-checked')).toBe('true');
68
- await expect.poll(() => uncheckedRadio.getAttribute('aria-checked')).toBe('false');
72
+ // Check the checked property - the aria-checked state is set via ElementInternals
73
+ await expect.poll(() => checkedRadio.checked).toBe(true);
74
+ await expect.poll(() => uncheckedRadio.checked).toBe(false);
69
75
  });
70
76
  test('role and accessible name are preserved', async () => {
71
77
  const page = render(html `
@@ -74,8 +80,11 @@ describe('w-radio accessibility (WCAG 2.2)', () => {
74
80
  <w-radio value="two">Second option</w-radio>
75
81
  </w-radio-group>
76
82
  `);
77
- await expect.element(page.getByRole('radio', { name: 'First option' })).toBeVisible();
78
- await expect.element(page.getByRole('radio', { name: 'Second option' })).toBeVisible();
83
+ // ElementInternals role is set in accessibility tree but not queryable via getByRole
84
+ const radios = page.container.querySelectorAll('w-radio');
85
+ expect(radios).toHaveLength(2);
86
+ expect(radios[0].textContent?.trim()).toBe('First option');
87
+ expect(radios[1].textContent?.trim()).toBe('Second option');
79
88
  });
80
89
  });
81
90
  });
@@ -4,6 +4,12 @@ declare const WRadio_base: import("@open-wc/form-control").Constructor<import("@
4
4
  export declare class WRadio extends WRadio_base {
5
5
  #private;
6
6
  static styles: import("lit").CSSResult[];
7
+ static shadowRootOptions: {
8
+ delegatesFocus: boolean;
9
+ mode: ShadowRootMode;
10
+ serializable?: boolean;
11
+ slotAssignment?: SlotAssignmentMode;
12
+ };
7
13
  /** The name of the radio, submitted as a name/value pair with form data. */
8
14
  name: string;
9
15
  /** The radio's value. When selected, the radio group will receive this value. */
@@ -16,6 +22,22 @@ export declare class WRadio extends WRadio_base {
16
22
  required: boolean;
17
23
  /** Draws the radio in an invalid state. */
18
24
  invalid: boolean;
25
+ /**
26
+ * Internal tabindex managed by parent radio-group.
27
+ * Non-reflecting to avoid DOM changes during hydration.
28
+ * @internal
29
+ */
30
+ _groupTabIndex: number | undefined;
31
+ /**
32
+ * Override tabIndex getter to return the computed internal tabIndex.
33
+ * This allows external code to check if the radio is focusable.
34
+ */
35
+ get tabIndex(): number;
36
+ /**
37
+ * Override tabIndex setter to set _groupTabIndex (for backwards compatibility).
38
+ * Radio-group should use _groupTabIndex directly for clarity.
39
+ */
40
+ set tabIndex(value: number);
19
41
  constructor();
20
42
  connectedCallback(): void;
21
43
  private syncAriaDisabled;
@@ -38,10 +60,20 @@ export declare class WRadio extends WRadio_base {
38
60
  private getRadioScope;
39
61
  private getStandaloneNamedRadios;
40
62
  private syncStandaloneTabOrder;
63
+ /**
64
+ * Computed tabindex for the internal focusable element.
65
+ * Priority: group-managed > standalone-managed > default
66
+ */
67
+ private get _internalTabIndex();
68
+ /**
69
+ * Internal tabindex for standalone radios (not in a group).
70
+ * Non-reflecting to avoid DOM changes during hydration.
71
+ */
72
+ _standaloneTabIndex: number | undefined;
73
+ protected firstUpdated(): void;
41
74
  private uncheckOtherRadios;
42
75
  private updateValidity;
43
76
  private syncFormValue;
44
- private syncTabIndex;
45
77
  private shouldSyncFormState;
46
78
  render(): import("lit").TemplateResult<1>;
47
79
  }
@@ -0,0 +1 @@
1
+ import './radio.js';
@@ -0,0 +1,29 @@
1
+ import { describe, expect, test, beforeEach, afterEach } from 'vitest';
2
+ import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
3
+ import './radio.js';
4
+ describe('w-radio React SSR hydration', () => {
5
+ beforeEach(() => setupHydrationWarningCapture());
6
+ afterEach(() => {
7
+ window.__HYDRATION_WARNINGS__ = [];
8
+ });
9
+ test('default (no attributes) hydrates without warnings', async () => {
10
+ const warnings = await testHydration('w-radio', {});
11
+ expect(warnings).toEqual([]);
12
+ });
13
+ test('with value hydrates without warnings', async () => {
14
+ const warnings = await testHydration('w-radio', { value: 'option1' });
15
+ expect(warnings).toEqual([]);
16
+ });
17
+ test('with name hydrates without warnings', async () => {
18
+ const warnings = await testHydration('w-radio', { value: 'option1', name: 'options' });
19
+ expect(warnings).toEqual([]);
20
+ });
21
+ test('checked radio hydrates without warnings', async () => {
22
+ const warnings = await testHydration('w-radio', { value: 'option1', checked: true });
23
+ expect(warnings).toEqual([]);
24
+ });
25
+ test('disabled radio hydrates without warnings', async () => {
26
+ const warnings = await testHydration('w-radio', { value: 'option1', disabled: true });
27
+ expect(warnings).toEqual([]);
28
+ });
29
+ });
@@ -1,4 +1,4 @@
1
- var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{throw TypeError(i)};var C=(i,r,e,o)=>{for(var a=o>1?void 0:o?re(r,e):r,l=i.length-1,p;l>=0;l--)(p=i[l])&&(a=(o?p(r,e,a):p(a))||a);return o&&a&&ee(r,e,a),a};var O=(i,r,e)=>r.has(i)||D("Cannot "+e);var k=(i,r,e)=>(O(i,r,"read from private field"),e?e.call(i):r.get(i)),j=(i,r,e)=>r.has(i)?D("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(i):r.set(i,e),g=(i,r,e,o)=>(O(i,r,"write to private field"),o?o.call(i,e):r.set(i,e),e);var n=function(i,r,e,o){if(e==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof r=="function"?i!==r||!o:!r.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?o:e==="a"?o.call(i):o?o.value:r.get(i)},b=function(i,r,e,o,a){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof r=="function"?i!==r||!a:!r.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?a.call(i,e):a?a.value=e:r.set(i,e),e};function B(i){var r,e,o,a,l,p,d,R,z,v,m,Z,X,E,G,x,P,W,L;class Q extends i{constructor(...t){var s,c,h;super(...t),r.add(this),this.internals=this.attachInternals(),e.set(this,!1),o.set(this,!1),a.set(this,!1),l.set(this,void 0),p.set(this,void 0),d.set(this,!0),z.set(this,""),v.set(this,()=>{b(this,a,!0,"f"),b(this,e,!0,"f"),n(this,r,"m",x).call(this)}),m.set(this,()=>{b(this,e,!1,"f"),n(this,r,"m",P).call(this,this.shouldFormValueUpdate()?n(this,z,"f"):""),!this.validity.valid&&n(this,a,"f")&&b(this,o,!0,"f");let f=n(this,r,"m",x).call(this);this.validationMessageCallback&&this.validationMessageCallback(f?this.internals.validationMessage:"")}),Z.set(this,()=>{var f;n(this,d,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),b(this,d,!1,"f")),b(this,a,!0,"f"),b(this,o,!0,"f"),n(this,r,"m",x).call(this),(f=this===null||this===void 0?void 0:this.validationMessageCallback)===null||f===void 0||f.call(this,this.showError?this.internals.validationMessage:"")}),X.set(this,void 0),E.set(this,!1),G.set(this,Promise.resolve()),(s=this.addEventListener)===null||s===void 0||s.call(this,"focus",n(this,v,"f")),(c=this.addEventListener)===null||c===void 0||c.call(this,"blur",n(this,m,"f")),(h=this.addEventListener)===null||h===void 0||h.call(this,"invalid",n(this,Z,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let t=this.validators.map(h=>h.attribute).flat(),s=super.observedAttributes||[];return[...new Set([...s,...t])]}static getValidator(t){return this.validators.find(s=>s.attribute===t)||null}static getValidators(t){return this.validators.filter(s=>{var c;if(s.attribute===t||!((c=s.attribute)===null||c===void 0)&&c.includes(t))return!0})}get form(){return this.internals.form}get showError(){return n(this,r,"m",x).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(t,s,c){var h;(h=super.attributeChangedCallback)===null||h===void 0||h.call(this,t,s,c);let T=this.constructor.getValidators(t);T!=null&&T.length&&this.validationTarget&&this.setValue(n(this,z,"f"))}setValue(t){var s;b(this,o,!1,"f"),(s=this.validationMessageCallback)===null||s===void 0||s.call(this,""),b(this,z,t,"f");let h=this.shouldFormValueUpdate()?t:null;this.internals.setFormValue(h),n(this,r,"m",P).call(this,h),this.valueChangedCallback&&this.valueChangedCallback(h),n(this,r,"m",x).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(t=>t(n(this,G,"f")))}formResetCallback(){var t,s;b(this,a,!1,"f"),b(this,o,!1,"f"),n(this,r,"m",x).call(this),(t=this.resetFormControl)===null||t===void 0||t.call(this),(s=this.validationMessageCallback)===null||s===void 0||s.call(this,n(this,r,"m",x).call(this)?this.validationMessage:"")}}return e=new WeakMap,o=new WeakMap,a=new WeakMap,l=new WeakMap,p=new WeakMap,d=new WeakMap,z=new WeakMap,v=new WeakMap,m=new WeakMap,Z=new WeakMap,X=new WeakMap,E=new WeakMap,G=new WeakMap,r=new WeakSet,R=function(){let t=this.getRootNode(),s=`${this.localName}[name="${this.getAttribute("name")}"]`;return t.querySelectorAll(s)},x=function(){if(this.hasAttribute("disabled"))return!1;let t=n(this,o,"f")||n(this,a,"f")&&!this.validity.valid&&!n(this,e,"f");return t&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),t},P=function(t){let s=this.constructor,c={},h=s.validators,f=[],T=h.some(u=>u.isValid instanceof Promise);n(this,E,"f")||(b(this,G,new Promise(u=>{b(this,X,u,"f")}),"f"),b(this,E,!0,"f")),n(this,l,"f")&&(n(this,l,"f").abort(),b(this,p,n(this,l,"f"),"f"));let I=new AbortController;b(this,l,I,"f");let Y,U=!1;h.length&&(h.forEach(u=>{let q=u.key||"customError",F=u.isValid(this,t,I.signal);F instanceof Promise?(f.push(F),F.then(N=>{N!=null&&(c[q]=!N,Y=n(this,r,"m",L).call(this,u,t),n(this,r,"m",W).call(this,c,Y))})):(c[q]=!F,this.validity[q]!==!F&&(U=!0),!F&&!Y&&(Y=n(this,r,"m",L).call(this,u,t)))}),Promise.allSettled(f).then(()=>{var u;I!=null&&I.signal.aborted||(b(this,E,!1,"f"),(u=n(this,X,"f"))===null||u===void 0||u.call(this))}),(U||!T)&&n(this,r,"m",W).call(this,c,Y))},W=function(t,s){if(this.validationTarget)this.internals.setValidity(t,s,this.validationTarget),b(this,d,!1,"f");else{if(this.internals.setValidity(t,s),this.internals.validity.valid)return;b(this,d,!0,"f")}},L=function(t,s){if(this.validityCallback){let c=this.validityCallback(t.key||"customError");if(c)return c}return t.message instanceof Function?t.message(this,s):t.message},Q}import{html as ae,LitElement as ie}from"lit";import{property as A}from"lit/decorators.js";import{css as $}from"lit";var H=$`
1
+ var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{throw TypeError(i)};var f=(i,r,e,o)=>{for(var a=o>1?void 0:o?re(r,e):r,l=i.length-1,u;l>=0;l--)(u=i[l])&&(a=(o?u(r,e,a):u(a))||a);return o&&a&&ee(r,e,a),a};var N=(i,r,e)=>r.has(i)||D("Cannot "+e);var F=(i,r,e)=>(N(i,r,"read from private field"),e?e.call(i):r.get(i)),G=(i,r,e)=>r.has(i)?D("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(i):r.set(i,e),x=(i,r,e,o)=>(N(i,r,"write to private field"),o?o.call(i,e):r.set(i,e),e);var n=function(i,r,e,o){if(e==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof r=="function"?i!==r||!o:!r.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?o:e==="a"?o.call(i):o?o.value:r.get(i)},c=function(i,r,e,o,a){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof r=="function"?i!==r||!a:!r.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?a.call(i,e):a?a.value=e:r.set(i,e),e};function W(i){var r,e,o,a,l,u,h,q,z,g,w,X,Y,T,j,k,Z,O,P;class Q extends i{constructor(...t){var s,d,b;super(...t),r.add(this),this.internals=this.attachInternals(),e.set(this,!1),o.set(this,!1),a.set(this,!1),l.set(this,void 0),u.set(this,void 0),h.set(this,!0),z.set(this,""),g.set(this,()=>{c(this,a,!0,"f"),c(this,e,!0,"f"),n(this,r,"m",k).call(this)}),w.set(this,()=>{c(this,e,!1,"f"),n(this,r,"m",Z).call(this,this.shouldFormValueUpdate()?n(this,z,"f"):""),!this.validity.valid&&n(this,a,"f")&&c(this,o,!0,"f");let m=n(this,r,"m",k).call(this);this.validationMessageCallback&&this.validationMessageCallback(m?this.internals.validationMessage:"")}),X.set(this,()=>{var m;n(this,h,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),c(this,h,!1,"f")),c(this,a,!0,"f"),c(this,o,!0,"f"),n(this,r,"m",k).call(this),(m=this===null||this===void 0?void 0:this.validationMessageCallback)===null||m===void 0||m.call(this,this.showError?this.internals.validationMessage:"")}),Y.set(this,void 0),T.set(this,!1),j.set(this,Promise.resolve()),(s=this.addEventListener)===null||s===void 0||s.call(this,"focus",n(this,g,"f")),(d=this.addEventListener)===null||d===void 0||d.call(this,"blur",n(this,w,"f")),(b=this.addEventListener)===null||b===void 0||b.call(this,"invalid",n(this,X,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let t=this.validators.map(b=>b.attribute).flat(),s=super.observedAttributes||[];return[...new Set([...s,...t])]}static getValidator(t){return this.validators.find(s=>s.attribute===t)||null}static getValidators(t){return this.validators.filter(s=>{var d;if(s.attribute===t||!((d=s.attribute)===null||d===void 0)&&d.includes(t))return!0})}get form(){return this.internals.form}get showError(){return n(this,r,"m",k).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(t,s,d){var b;(b=super.attributeChangedCallback)===null||b===void 0||b.call(this,t,s,d);let S=this.constructor.getValidators(t);S!=null&&S.length&&this.validationTarget&&this.setValue(n(this,z,"f"))}setValue(t){var s;c(this,o,!1,"f"),(s=this.validationMessageCallback)===null||s===void 0||s.call(this,""),c(this,z,t,"f");let b=this.shouldFormValueUpdate()?t:null;this.internals.setFormValue(b),n(this,r,"m",Z).call(this,b),this.valueChangedCallback&&this.valueChangedCallback(b),n(this,r,"m",k).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(t=>t(n(this,j,"f")))}formResetCallback(){var t,s;c(this,a,!1,"f"),c(this,o,!1,"f"),n(this,r,"m",k).call(this),(t=this.resetFormControl)===null||t===void 0||t.call(this),(s=this.validationMessageCallback)===null||s===void 0||s.call(this,n(this,r,"m",k).call(this)?this.validationMessage:"")}}return e=new WeakMap,o=new WeakMap,a=new WeakMap,l=new WeakMap,u=new WeakMap,h=new WeakMap,z=new WeakMap,g=new WeakMap,w=new WeakMap,X=new WeakMap,Y=new WeakMap,T=new WeakMap,j=new WeakMap,r=new WeakSet,q=function(){let t=this.getRootNode(),s=`${this.localName}[name="${this.getAttribute("name")}"]`;return t.querySelectorAll(s)},k=function(){if(this.hasAttribute("disabled"))return!1;let t=n(this,o,"f")||n(this,a,"f")&&!this.validity.valid&&!n(this,e,"f");return t&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),t},Z=function(t){let s=this.constructor,d={},b=s.validators,m=[],S=b.some(v=>v.isValid instanceof Promise);n(this,T,"f")||(c(this,j,new Promise(v=>{c(this,Y,v,"f")}),"f"),c(this,T,!0,"f")),n(this,l,"f")&&(n(this,l,"f").abort(),c(this,u,n(this,l,"f"),"f"));let I=new AbortController;c(this,l,I,"f");let A,U=!1;b.length&&(b.forEach(v=>{let R=v.key||"customError",V=v.isValid(this,t,I.signal);V instanceof Promise?(m.push(V),V.then(L=>{L!=null&&(d[R]=!L,A=n(this,r,"m",P).call(this,v,t),n(this,r,"m",O).call(this,d,A))})):(d[R]=!V,this.validity[R]!==!V&&(U=!0),!V&&!A&&(A=n(this,r,"m",P).call(this,v,t)))}),Promise.allSettled(m).then(()=>{var v;I!=null&&I.signal.aborted||(c(this,T,!1,"f"),(v=n(this,Y,"f"))===null||v===void 0||v.call(this))}),(U||!S)&&n(this,r,"m",O).call(this,d,A))},O=function(t,s){if(this.validationTarget)this.internals.setValidity(t,s,this.validationTarget),c(this,h,!1,"f");else{if(this.internals.setValidity(t,s),this.internals.validity.valid)return;c(this,h,!0,"f")}},P=function(t,s){if(this.validityCallback){let d=this.validityCallback(t.key||"customError");if(d)return d}return t.message instanceof Function?t.message(this,s):t.message},Q}import{html as ae,LitElement as J}from"lit";import{property as y}from"lit/decorators.js";import{css as B}from"lit";var $=B`
2
2
  *,
3
3
  :before,
4
4
  :after {
@@ -271,7 +271,7 @@ var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{th
271
271
  svg {
272
272
  pointer-events: none;
273
273
  }
274
- `,ce=$`*, :before, :after {
274
+ `,de=B`*, :before, :after {
275
275
  --w-rotate: 0;
276
276
  --w-rotate-x: 0;
277
277
  --w-rotate-y: 0;
@@ -2437,7 +2437,7 @@ var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{th
2437
2437
  display: none
2438
2438
  }
2439
2439
  }
2440
- `;import{css as oe}from"lit";var K=oe`
2440
+ `;import{css as oe}from"lit";var H=oe`
2441
2441
  :host {
2442
2442
  box-sizing: border-box !important;
2443
2443
  }
@@ -2447,7 +2447,7 @@ var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{th
2447
2447
  :host *::after {
2448
2448
  box-sizing: inherit !important;
2449
2449
  }
2450
- `;import{css as te}from"lit";var J=te`
2450
+ `;import{css as te}from"lit";var K=te`
2451
2451
  :host {
2452
2452
  display: inline-flex;
2453
2453
  align-items: center;
@@ -2607,10 +2607,10 @@ var ee=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var D=i=>{th
2607
2607
  border-color: var(--_border-color-disabled);
2608
2608
  }
2609
2609
  }
2610
- `;var M,V,y,_,w=class extends B(ie){constructor(){super();this.name="";this.value=null;this.checked=!1;this.disabled=!1;this.required=!1;this.invalid=!1;j(this,M,!1);j(this,V,!1);j(this,y,!1);j(this,_,!1);this.handleClick=()=>{this.isInGroup()||this.disabled||(g(this,y,!0),!this.checked&&(this.checked=!0,this.updateComplete.then(()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})))};this.handleInvalid=()=>{g(this,y,!0),this.updateValidity()};this.handleKeyDown=e=>{var o,a;if(!this.isInGroup()&&!this.disabled&&!e.defaultPrevented){if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(e.key)){let l=this.getStandaloneNamedRadios().filter(m=>!m.disabled);if(l.length<=1)return;e.preventDefault();let p=(a=(o=l.find(m=>m.checked))!=null?o:l.find(m=>m===this))!=null?a:l[0],d=e.key==="ArrowUp"||e.key==="ArrowLeft"?-1:1,z=(l.indexOf(p)+d+l.length)%l.length,v=l[z];g(v,y,!0),v.checked||(v.checked=!0,v.updateComplete.then(()=>{v.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})),v.focus();return}e.key!==" "&&e.key!=="Spacebar"&&e.key!=="Enter"||(e.preventDefault(),this.click())}};this.addEventListener("click",this.handleClick),this.addEventListener("invalid",this.handleInvalid),this.addEventListener("keydown",this.handleKeyDown)}connectedCallback(){var e;super.connectedCallback(),this.setAttribute("type","radio"),this.value=(e=this.getAttribute("value"))!=null?e:"on",g(this,M,this.hasAttribute("checked")),this.checked=k(this,M),this.setAttribute("role","radio"),this.syncAriaDisabled(),this.syncTabIndex(),this.syncFormValue(),this.updateValidity()}syncAriaDisabled(){this.setAttribute("aria-disabled",this.disabled?"true":"false")}syncAriaChecked(){this.setAttribute("aria-checked",this.checked?"true":"false")}willUpdate(e){this.shouldSyncFormState(e)&&(this.syncFormValue(),this.updateValidity())}updated(e){super.updated(e),e.has("checked")&&(this[this.checked?"setAttribute":"removeAttribute"]("checked-ui",""),this.syncAriaChecked(),this.checked&&!this.isInGroup()&&this.uncheckOtherRadios(),this.syncTabIndex()),e.has("disabled")&&(this[this.disabled?"setAttribute":"removeAttribute"]("disabled-ui",""),this.syncAriaDisabled(),this.syncTabIndex()),e.has("invalid")&&this.toggleAttribute("aria-invalid",this.invalid),e.has("name")&&this.checked&&!this.isInGroup()&&this.uncheckOtherRadios()}resetFormControl(){this.checked=k(this,M),this.syncFormValue(),this.updateValidity()}get validationMessage(){return this.internals.validationMessage}get validity(){return this.internals.validity}checkValidity(){return this.updateValidity(),this.internals.checkValidity()}reportValidity(){return g(this,y,!0),this.updateValidity(),this.internals.checkValidity()}isInGroup(){return!!this.closest("w-radio-group")}getRadioScope(){var e,o;return(o=(e=this.internals.form)!=null?e:this.closest("form"))!=null?o:document}getStandaloneNamedRadios(){if(!this.name)return[this];let e=this.getRadioScope();return Array.from(e.querySelectorAll(`w-radio[name="${this.name}"]`)).filter(o=>!o.closest("w-radio-group"))}syncStandaloneTabOrder(){var p;let e=this.getStandaloneNamedRadios(),o=e.filter(d=>!d.disabled),a=o.find(d=>d.checked),l=(p=a!=null?a:o[0])!=null?p:null;e.forEach(d=>{if(d.disabled){d.tabIndex=-1;return}d.hasAttribute("tabindex")&&!k(d,_)||(d.tabIndex=d===l?0:-1,g(d,_,!0))})}uncheckOtherRadios(){if(!this.name)return;let e=this.getRadioScope();Array.from(e.querySelectorAll(`w-radio[name="${this.name}"]`)).forEach(a=>{a!==this&&(a.closest("w-radio-group")||a.checked&&(a.checked=!1))})}updateValidity(){if(this.disabled||this.isInGroup()){this.internals.setValidity({});return}let e=this.required&&!this.checked,o=this.invalid&&!k(this,V);if(e){g(this,V,!0),this.invalid=k(this,y),this.internals.setValidity({valueMissing:!0},this.internals.validationMessage||" ");return}if(k(this,V)&&(this.invalid=!1,g(this,V,!1)),o){this.internals.setValidity({customError:!0},this.internals.validationMessage||" ");return}this.internals.setValidity({})}syncFormValue(){if(this.disabled){this.setValue(null);return}this.setValue(this.checked?this.value:null)}syncTabIndex(){if(!this.hasAttribute("tabindex")&&!k(this,_)&&(g(this,_,!0),this.tabIndex=0),this.isInGroup()){this.disabled&&(this.tabIndex=-1);return}this.hasAttribute("tabindex")&&!k(this,_)||this.syncStandaloneTabOrder()}shouldSyncFormState(e){return e.has("checked")||e.has("value")||e.has("disabled")||e.has("required")||e.has("invalid")}render(){return ae`
2611
- <div class="wrapper">
2610
+ `;var M,C,_,p=class extends W(J){constructor(){super();this.value=null;this.checked=!1;this.disabled=!1;this.required=!1;this.invalid=!1;G(this,M,!1);G(this,C,!1);G(this,_,!1);this.handleClick=()=>{this.isInGroup()||this.disabled||(x(this,_,!0),!this.checked&&(this.checked=!0,this.updateComplete.then(()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})))};this.handleInvalid=()=>{x(this,_,!0),this.updateValidity()};this.handleKeyDown=e=>{var o,a;if(!this.isInGroup()&&!this.disabled&&!e.defaultPrevented){if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(e.key)){let l=this.getStandaloneNamedRadios().filter(w=>!w.disabled);if(l.length<=1)return;e.preventDefault();let u=(a=(o=l.find(w=>w.checked))!=null?o:l.find(w=>w===this))!=null?a:l[0],h=e.key==="ArrowUp"||e.key==="ArrowLeft"?-1:1,z=(l.indexOf(u)+h+l.length)%l.length,g=l[z];x(g,_,!0),g.checked||(g.checked=!0,g.updateComplete.then(()=>{g.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})),g.focus();return}e.key!==" "&&e.key!=="Spacebar"&&e.key!=="Enter"||(e.preventDefault(),this.click())}};this.addEventListener("click",this.handleClick),this.addEventListener("invalid",this.handleInvalid),this.addEventListener("keydown",this.handleKeyDown)}get tabIndex(){return this._internalTabIndex}set tabIndex(e){this._groupTabIndex=e}connectedCallback(){var e;super.connectedCallback(),this.value=(e=this.getAttribute("value"))!=null?e:"on",x(this,M,this.hasAttribute("checked")),this.checked=F(this,M),this.internals.role="radio",this.syncAriaDisabled(),this.syncFormValue(),this.updateValidity()}syncAriaDisabled(){this.internals.ariaDisabled=this.disabled?"true":"false"}syncAriaChecked(){this.internals.ariaChecked=this.checked?"true":"false"}willUpdate(e){this.shouldSyncFormState(e)&&(this.syncFormValue(),this.updateValidity())}updated(e){super.updated(e),e.has("checked")&&(this.syncAriaChecked(),this.checked&&!this.isInGroup()&&(this.uncheckOtherRadios(),this.syncStandaloneTabOrder())),e.has("disabled")&&(this.syncAriaDisabled(),this.isInGroup()||this.syncStandaloneTabOrder()),e.has("invalid")&&(this.internals.ariaInvalid=this.invalid?"true":null),e.has("name")&&this.checked&&!this.isInGroup()&&this.uncheckOtherRadios()}resetFormControl(){this.checked=F(this,M),this.syncFormValue(),this.updateValidity()}get validationMessage(){return this.internals.validationMessage}get validity(){return this.internals.validity}checkValidity(){return this.updateValidity(),this.internals.checkValidity()}reportValidity(){return x(this,_,!0),this.updateValidity(),this.internals.checkValidity()}isInGroup(){return!!this.closest("w-radio-group")}getRadioScope(){var e,o;return(o=(e=this.internals.form)!=null?e:this.closest("form"))!=null?o:document}getStandaloneNamedRadios(){if(!this.name)return[this];let e=this.getRadioScope();return Array.from(e.querySelectorAll(`w-radio[name="${this.name}"]`)).filter(o=>!o.closest("w-radio-group"))}syncStandaloneTabOrder(){var u;let e=this.getStandaloneNamedRadios(),o=e.filter(h=>!h.disabled),a=o.find(h=>h.checked),l=(u=a!=null?a:o[0])!=null?u:null;e.forEach(h=>{h._standaloneTabIndex=h===l?0:-1})}get _internalTabIndex(){return this.disabled?-1:this._groupTabIndex!==void 0?this._groupTabIndex:this._standaloneTabIndex!==void 0?this._standaloneTabIndex:0}firstUpdated(){this.isInGroup()||this.syncStandaloneTabOrder()}uncheckOtherRadios(){if(!this.name)return;let e=this.getRadioScope();Array.from(e.querySelectorAll(`w-radio[name="${this.name}"]`)).forEach(a=>{a!==this&&(a.closest("w-radio-group")||a.checked&&(a.checked=!1))})}updateValidity(){if(this.disabled||this.isInGroup()){this.internals.setValidity({});return}let e=this.required&&!this.checked,o=this.invalid&&!F(this,C);if(e){x(this,C,!0),this.invalid=F(this,_),this.internals.setValidity({valueMissing:!0},this.internals.validationMessage||" ");return}if(F(this,C)&&(this.invalid=!1,x(this,C,!1)),o){this.internals.setValidity({customError:!0},this.internals.validationMessage||" ");return}this.internals.setValidity({})}syncFormValue(){if(this.disabled){this.setValue(null);return}this.setValue(this.checked?this.value:null)}shouldSyncFormState(e){return e.has("checked")||e.has("value")||e.has("disabled")||e.has("required")||e.has("invalid")}render(){return ae`
2611
+ <div class="wrapper" tabindex="${this._internalTabIndex}">
2612
2612
  <div part="control" class="control"></div>
2613
2613
  <slot part="label" class="label"></slot>
2614
2614
  </div>
2615
- `}};M=new WeakMap,V=new WeakMap,y=new WeakMap,_=new WeakMap,w.styles=[K,H,J],C([A({reflect:!0})],w.prototype,"name",2),C([A({reflect:!0})],w.prototype,"value",2),C([A({type:Boolean,reflect:!0})],w.prototype,"checked",2),C([A({type:Boolean,reflect:!0})],w.prototype,"disabled",2),C([A({type:Boolean,reflect:!0})],w.prototype,"required",2),C([A({type:Boolean,reflect:!0})],w.prototype,"invalid",2);customElements.get("w-radio")||customElements.define("w-radio",w);export{w as WRadio};
2615
+ `}};M=new WeakMap,C=new WeakMap,_=new WeakMap,p.styles=[H,$,K],p.shadowRootOptions={...J.shadowRootOptions,delegatesFocus:!0},f([y({reflect:!0})],p.prototype,"name",2),f([y({reflect:!0})],p.prototype,"value",2),f([y({type:Boolean,reflect:!0})],p.prototype,"checked",2),f([y({type:Boolean,reflect:!0})],p.prototype,"disabled",2),f([y({type:Boolean,reflect:!0})],p.prototype,"required",2),f([y({type:Boolean,reflect:!0})],p.prototype,"invalid",2),f([y({attribute:!1})],p.prototype,"_groupTabIndex",2),f([y({attribute:!1})],p.prototype,"_standaloneTabIndex",2);customElements.get("w-radio")||customElements.define("w-radio",p);export{p as WRadio};
2616
2616
  //# sourceMappingURL=radio.js.map