@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
@@ -6,11 +6,47 @@ import { LitElement, PropertyValues } from 'lit';
6
6
  */
7
7
  export declare class WarpTab extends LitElement {
8
8
  static styles: import("lit").CSSResult[];
9
+ static shadowRootOptions: {
10
+ delegatesFocus: boolean;
11
+ mode: ShadowRootMode;
12
+ serializable?: boolean;
13
+ slotAssignment?: SlotAssignmentMode;
14
+ };
15
+ private _internals;
9
16
  private _handleClick;
17
+ constructor();
10
18
  id: string;
11
19
  for: string;
12
- ariaSelected: 'true' | 'false';
13
- tabIndex: number;
20
+ private _ariaControlsAttr?;
21
+ /**
22
+ * Internal tabindex managed by parent w-tabs.
23
+ * Non-reflecting to avoid DOM changes during hydration.
24
+ * @internal
25
+ */
26
+ _parentTabIndex: number | undefined;
27
+ /**
28
+ * Internal aria-selected managed by parent w-tabs.
29
+ * Non-reflecting to avoid DOM changes during hydration.
30
+ * @internal
31
+ */
32
+ _parentAriaSelected: 'true' | 'false' | undefined;
33
+ /**
34
+ * Override tabIndex getter to return the computed internal tabIndex.
35
+ * This allows external code to check if the tab is focusable.
36
+ */
37
+ get tabIndex(): number;
38
+ /**
39
+ * Override tabIndex setter to set _parentTabIndex (for backwards compatibility).
40
+ */
41
+ set tabIndex(value: number);
42
+ /**
43
+ * Computed aria-selected: prefers parent-managed, falls back to own property
44
+ */
45
+ get _computedAriaSelected(): 'true' | 'false' | undefined;
46
+ private get _effectiveAriaControls();
47
+ set ariaSelected(value: 'true' | 'false');
48
+ get ariaSelected(): 'true' | 'false';
49
+ private _ownAriaSelected;
14
50
  /**
15
51
  * @deprecated Use `aria-selected="true"` instead
16
52
  */
@@ -21,5 +57,6 @@ export declare class WarpTab extends LitElement {
21
57
  connectedCallback(): void;
22
58
  disconnectedCallback(): void;
23
59
  updated(changedProperties: PropertyValues<this>): void;
60
+ private syncAriaControls;
24
61
  render(): import("lit").TemplateResult<1>;
25
62
  }
@@ -0,0 +1 @@
1
+ import './tab.js';
@@ -0,0 +1,25 @@
1
+ import { describe, expect, test, beforeEach, afterEach } from 'vitest';
2
+ import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
3
+ import './tab.js';
4
+ describe('w-tab 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-tab', {});
11
+ expect(warnings).toEqual([]);
12
+ });
13
+ test('with for hydrates without warnings', async () => {
14
+ const warnings = await testHydration('w-tab', { for: 'panel1' });
15
+ expect(warnings).toEqual([]);
16
+ });
17
+ test('active tab hydrates without warnings', async () => {
18
+ const warnings = await testHydration('w-tab', { for: 'panel1', active: true });
19
+ expect(warnings).toEqual([]);
20
+ });
21
+ test('with id hydrates without warnings', async () => {
22
+ const warnings = await testHydration('w-tab', { for: 'panel1', id: 'tab1' });
23
+ expect(warnings).toEqual([]);
24
+ });
25
+ });
@@ -1,4 +1,4 @@
1
- var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=(l,a,r,e)=>{for(var o=e>1?void 0:e?m(a,r):a,c=l.length-1,b;c>=0;c--)(b=l[c])&&(o=(e?b(a,r,o):b(o))||o);return e&&o&&u(a,r,o),o};var p=function(){for(var l=[],a=arguments.length;a--;)l[a]=arguments[a];return l.reduce(function(r,e){return r.concat(typeof e=="string"?e:Array.isArray(e)?p.apply(void 0,e):typeof e=="object"&&e?Object.keys(e).map(function(o){return e[o]?o:""}):"")},[]).join(" ")};import{css as f,html as s,LitElement as x}from"lit";import{property as d}from"lit/decorators.js";import{css as g}from"lit";var v=g`
1
+ var f=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var i=(d,a,e,r)=>{for(var o=r>1?void 0:r?x(a,e):a,n=d.length-1,c;n>=0;n--)(c=d[n])&&(o=(r?c(a,e,o):c(o))||o);return r&&o&&f(a,e,o),o};var p=function(){for(var d=[],a=arguments.length;a--;)d[a]=arguments[a];return d.reduce(function(e,r){return e.concat(typeof r=="string"?r:Array.isArray(r)?p.apply(void 0,r):typeof r=="object"&&r?Object.keys(r).map(function(o){return r[o]?o:""}):"")},[]).join(" ")};import{css as y,html as b,LitElement as w}from"lit";import{property as l}from"lit/decorators.js";import{css as u}from"lit";var h=u`
2
2
  *,
3
3
  :before,
4
4
  :after {
@@ -271,7 +271,7 @@ var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=(l,a,r,e
271
271
  svg {
272
272
  pointer-events: none;
273
273
  }
274
- `,j=g`*, :before, :after {
274
+ `,A=u`*, :before, :after {
275
275
  --w-rotate: 0;
276
276
  --w-rotate-x: 0;
277
277
  --w-rotate-y: 0;
@@ -2437,26 +2437,36 @@ var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=(l,a,r,e
2437
2437
  display: none
2438
2438
  }
2439
2439
  }
2440
- `;import{css as w}from"lit";var h=w`*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.border-b{border-bottom-width:1px}.border-b-4{border-bottom-width:4px}.inline-block{display:inline-block}.inline-grid{display:inline-grid}.hidden{display:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.-bottom-0{bottom:0}.absolute{position:absolute}.relative{position:relative}.static{position:static}.s-border{border-color:var(--w-s-color-border)}.s-border-selected{border-color:var(--w-s-color-border-selected)}.-mb-1{margin-bottom:-.1rem}.mb-32{margin-bottom:3.2rem}.resize{resize:both}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bg-transparent{background-color:#0000}.appearance-none{-webkit-appearance:none;appearance:none}.border-0{border-width:0}.border-b-4{border-bottom-width:4px}.border-transparent{border-color:#0000}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.focusable:focus{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:focus-visible{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:not(:focus-visible){outline:none}.gap-8{gap:.8rem}.focus\\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.items-center{align-items:center}.justify-center{justify-content:center}.static{position:static}.s-text-link{color:var(--w-s-color-text-link)}.s-text-subtle{color:var(--w-s-color-text-subtle)}.hover\\:s-text-link:hover{color:var(--w-s-color-text-link)}.s-border-selected{border-color:var(--w-s-color-border-selected)}.hover\\:s-border-primary:hover{border-color:var(--w-s-color-border-primary)}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-16{padding:1.6rem}.pb-8{padding-bottom:.8rem}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.w-full{width: 100%;}`;var n={base:"grid w-full items-center font-bold gap-8 antialias p-16 pb-8 border-b-4 bg-transparent border-transparent hover:s-text-link hover:s-border-primary",inactive:"s-text-subtle",active:"s-text-link s-border-selected",icon:"mx-auto",content:"flex items-center justify-center gap-8",contentUnderlined:"content-underlined"},k="focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block",t=class extends x{constructor(){super(...arguments);this._handleClick=r=>{r.tab||(r.tab=this)};this.id="";this.for="";this.active=!1;this.over=!1}get _classes(){return p([k,n.base,this.active||this.ariaSelected==="true"?n.active:n.inactive])}get _hasIcon(){return this.querySelector('[slot="icon"]')!==null}connectedCallback(){super.connectedCallback(),this.setAttribute("role","tab"),this.setAttribute("aria-controls",this.for),this.addEventListener("click",this._handleClick)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this._handleClick)}updated(r){super.updated(r),r.has("active")&&this.hasAttribute("active")&&this.setAttribute("aria-selected",this.active?"true":"false"),r.has("for")&&this.setAttribute("aria-controls",this.for)}render(){let r=this._hasIcon;return s`
2440
+ `;import{css as k}from"lit";var m=k`*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.border-b{border-bottom-width:1px}.border-b-4{border-bottom-width:4px}.inline-block{display:inline-block}.inline-grid{display:inline-grid}.hidden{display:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.-bottom-0{bottom:0}.absolute{position:absolute}.relative{position:relative}.static{position:static}.s-border{border-color:var(--w-s-color-border)}.s-border-selected{border-color:var(--w-s-color-border-selected)}.-mb-1{margin-bottom:-.1rem}.mb-32{margin-bottom:3.2rem}.resize{resize:both}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bg-transparent{background-color:#0000}.appearance-none{-webkit-appearance:none;appearance:none}.border-0{border-width:0}.border-b-4{border-bottom-width:4px}.border-transparent{border-color:#0000}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.focusable:focus{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:focus-visible{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:not(:focus-visible){outline:none}.gap-8{gap:.8rem}.focus\\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.items-center{align-items:center}.justify-center{justify-content:center}.static{position:static}.s-text-link{color:var(--w-s-color-text-link)}.s-text-subtle{color:var(--w-s-color-text-subtle)}.hover\\:s-text-link:hover{color:var(--w-s-color-text-link)}.s-border-selected{border-color:var(--w-s-color-border-selected)}.hover\\:s-border-primary:hover{border-color:var(--w-s-color-border-primary)}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-16{padding:1.6rem}.pb-8{padding-bottom:.8rem}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.w-full{width: 100%;}`;var s={base:"grid w-full items-center font-bold gap-8 antialias p-16 pb-8 border-b-4 bg-transparent border-transparent hover:s-text-link hover:s-border-primary",inactive:"s-text-subtle",active:"s-text-link s-border-selected",icon:"mx-auto",content:"flex items-center justify-center gap-8",contentUnderlined:"content-underlined"},z="focusable appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block",t=class extends w{constructor(){super();this._handleClick=e=>{e.tab||(e.tab=this)};this.active=!1;this.over=!1;this._internals=this.attachInternals()}get tabIndex(){var e;return(e=this._parentTabIndex)!=null?e:0}set tabIndex(e){this._parentTabIndex=e}get _computedAriaSelected(){var e;return(e=this._parentAriaSelected)!=null?e:this._ownAriaSelected}get _effectiveAriaControls(){return this._ariaControlsAttr||this.for||""}set ariaSelected(e){var o;let r=this._ownAriaSelected;this._ownAriaSelected=e,this._internals.ariaSelected=(o=this._computedAriaSelected)!=null?o:null,this.requestUpdate("ariaSelected",r)}get ariaSelected(){var e;return(e=this._computedAriaSelected)!=null?e:"false"}get _classes(){return p([z,s.base,this.active||this.ariaSelected==="true"?s.active:s.inactive])}get _hasIcon(){return this.querySelector('[slot="icon"]')!==null}connectedCallback(){super.connectedCallback(),this._internals.role="tab",this.syncAriaControls(),this.addEventListener("click",this._handleClick)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this._handleClick)}updated(e){var o;super.updated(e);let r=e;e.has("_parentAriaSelected")&&(this._internals.ariaSelected=(o=this._computedAriaSelected)!=null?o:null),r.has("_ariaControlsAttr")&&this.syncAriaControls(),e.has("for")&&this.syncAriaControls(),e.has("active")&&this.hasAttribute("active")&&(this._internals.ariaSelected=this.active?"true":"false")}syncAriaControls(){var c,g,v;let e=this._effectiveAriaControls,r=this.closest("w-tabs"),o=(v=(g=r==null?void 0:r.querySelector(`w-tab-panel#${CSS.escape(e)}`))!=null?g:(c=this.ownerDocument)==null?void 0:c.getElementById(e))!=null?v:null,n=this._internals;if("ariaControlsElements"in n){n.ariaControlsElements=o?[o]:[];return}"ariaControls"in n&&(n.ariaControls=e||null)}render(){var r;let e=this._hasIcon;return b`
2441
2441
  <button
2442
2442
  type="button"
2443
2443
  role="none"
2444
2444
  id="warp-tab-${this.for}"
2445
2445
  class="${this._classes}"
2446
- tabindex="${-1}"
2447
- @click="${e=>{e.tab=this}}"
2446
+ tabindex="${(r=this._parentTabIndex)!=null?r:0}"
2447
+ aria-controls="${this._effectiveAriaControls}"
2448
+ @click="${o=>{o.tab=this}}"
2448
2449
  style="height: 100%">
2449
- ${r?this.over?s`
2450
- <span class="${n.icon}">
2450
+ ${e?this.over?b`
2451
+ <span class="${s.icon}">
2451
2452
  <slot name="icon"></slot>
2452
2453
  </span>
2453
- <span class="${n.contentUnderlined}"><slot></slot></span>
2454
- `:s`
2455
- <div class="${n.content}">
2454
+ <span class="${s.contentUnderlined}"><slot></slot></span>
2455
+ `:b`
2456
+ <div class="${s.content}">
2456
2457
  <slot name="icon"></slot>
2457
2458
  <slot></slot>
2458
2459
  </div>
2459
- `:s`<span class="${n.contentUnderlined}"><slot></slot></span>`}
2460
+ `:b`<span class="${s.contentUnderlined}"><slot></slot></span>`}
2460
2461
  </button>
2461
- `}};t.styles=[v,h,f`::slotted([slot="icon"]){display:flex}`],i([d({attribute:"id",reflect:!0})],t.prototype,"id",2),i([d({attribute:"for",reflect:!0})],t.prototype,"for",2),i([d({attribute:"aria-selected",reflect:!0})],t.prototype,"ariaSelected",2),i([d({attribute:"tabindex",type:Number,reflect:!0})],t.prototype,"tabIndex",2),i([d({type:Boolean,reflect:!0})],t.prototype,"active",2),i([d({type:Boolean,reflect:!0})],t.prototype,"over",2);customElements.get("w-tab")||customElements.define("w-tab",t);export{t as WarpTab};
2462
+ `}};t.styles=[h,m,y`
2463
+ ::slotted([slot='icon']) {
2464
+ display: flex;
2465
+ }
2466
+
2467
+ button.focusable:focus-visible {
2468
+ outline: 2px solid var(--w-s-color-border-focus, #1a73e8);
2469
+ outline-offset: var(--w-outline-offset, 1px);
2470
+ }
2471
+ `],t.shadowRootOptions={...w.shadowRootOptions,delegatesFocus:!0},i([l({attribute:"id",reflect:!0})],t.prototype,"id",2),i([l({attribute:"for",reflect:!0})],t.prototype,"for",2),i([l({attribute:"aria-controls"})],t.prototype,"_ariaControlsAttr",2),i([l({attribute:!1})],t.prototype,"_parentTabIndex",2),i([l({attribute:!1})],t.prototype,"_parentAriaSelected",2),i([l({attribute:"aria-selected"})],t.prototype,"ariaSelected",1),i([l({type:Boolean,reflect:!0})],t.prototype,"active",2),i([l({type:Boolean,reflect:!0})],t.prototype,"over",2);customElements.get("w-tab")||customElements.define("w-tab",t);export{t as WarpTab};
2462
2472
  //# sourceMappingURL=tab.js.map