@u-elements/u-tabs 0.0.12 → 0.1.0

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/dist/u-tabs.cjs CHANGED
@@ -46,9 +46,11 @@ var mutationObserver = (element, options) => {
46
46
  }
47
47
  };
48
48
  var asButton = (event) => {
49
- const isClick = "key" in event && (event.key === " " || event.key === "Enter");
50
- if (isClick) event.preventDefault();
51
- if (isClick && event.target instanceof HTMLElement) event.target.click();
49
+ var _a2;
50
+ const isClick = event.key === " " || event.key === "Enter";
51
+ if (isClick) (_a2 = event.preventDefault) == null ? void 0 : _a2.call(event);
52
+ if (isClick && event.target instanceof HTMLElement)
53
+ event.target.dispatchEvent(new MouseEvent("click", event));
52
54
  return isClick;
53
55
  };
54
56
  var getRoot = (node) => {
@@ -62,9 +64,9 @@ var useId = (el) => {
62
64
  if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;
63
65
  return el.id;
64
66
  };
65
- var createElement = (tagName, text, attrs) => {
67
+ var createElement = (tagName, content, attrs) => {
66
68
  const el = document.createElement(tagName);
67
- if (text) el.textContent = text;
69
+ if (content) el[tagName === "style" ? "textContent" : "innerHTML"] = content;
68
70
  return el;
69
71
  };
70
72
  var customElements = {
@@ -83,13 +85,30 @@ var UHTMLTabShadowRoot = declarativeShadowRoot(UHTMLTabStyle);
83
85
  var UHTMLTabPanelShadowRoot = declarativeShadowRoot(UHTMLTabPanelStyle);
84
86
  var ARIA_CONTROLS = "aria-controls";
85
87
  var ARIA_SELECTED = "aria-selected";
88
+ var ATTR_TABS = "data-utabs";
86
89
  var UHTMLTabsElement = class extends UHTMLElement {
87
90
  constructor() {
88
91
  super();
92
+ attr(this, ATTR_TABS, "");
89
93
  attachStyle(this, UHTMLTabsStyle);
90
94
  }
95
+ connectedCallback() {
96
+ mutationObserver(this, {
97
+ attributeFilter: ["role"],
98
+ attributes: true,
99
+ childList: true,
100
+ subtree: true
101
+ });
102
+ }
103
+ handleEvent() {
104
+ var _a2;
105
+ (_a2 = this.tabList) == null ? void 0 : _a2.handleEvent();
106
+ }
107
+ disconnectedCallback() {
108
+ mutationObserver(this, false);
109
+ }
91
110
  get tabList() {
92
- return queryWithoutNested("u-tablist", this)[0] || null;
111
+ return queryWithoutNested("tablist", this)[0] || null;
93
112
  }
94
113
  get selectedIndex() {
95
114
  return getSelectedIndex(this.tabs);
@@ -98,10 +117,10 @@ var UHTMLTabsElement = class extends UHTMLElement {
98
117
  setSelected(this.tabs[index]);
99
118
  }
100
119
  get tabs() {
101
- return queryWithoutNested("u-tab", this);
120
+ return queryWithoutNested("tab", this);
102
121
  }
103
122
  get panels() {
104
- return queryWithoutNested("u-tabpanel", this);
123
+ return queryWithoutNested("tabpanel", this);
105
124
  }
106
125
  };
107
126
  var UHTMLTabListElement = class extends UHTMLElement {
@@ -113,13 +132,14 @@ var UHTMLTabListElement = class extends UHTMLElement {
113
132
  attr(this, "role", "tablist");
114
133
  on(this, "click,keydown", this);
115
134
  mutationObserver(this, { childList: true });
116
- if (this.tabs.length) this.handleEvent();
135
+ requestAnimationFrame(() => this.handleEvent());
117
136
  }
118
137
  disconnectedCallback() {
119
138
  off(this, "click,keydown", this);
120
139
  mutationObserver(this, false);
121
140
  }
122
141
  handleEvent(event) {
142
+ var _a2, _b;
123
143
  if (!event || event.type === "mutation") {
124
144
  const tab = this.tabs[Math.max(this.selectedIndex, 0)];
125
145
  return tab == null ? void 0 : tab.setAttribute(ARIA_SELECTED, "true");
@@ -140,20 +160,20 @@ var UHTMLTabListElement = class extends UHTMLElement {
140
160
  else if (key === "Tab") next = getSelectedIndex(tabs);
141
161
  else return;
142
162
  setTimeout(() => {
143
- tabs[prev].tabIndex = -1;
144
- tabs[next].tabIndex = 0;
163
+ attr(tabs[prev], "tabindex", "-1");
164
+ attr(tabs[next], "tabindex", "0");
145
165
  });
146
166
  if (key !== "Tab") {
147
167
  event.preventDefault();
148
- tabs[next].focus();
168
+ (_b = (_a2 = tabs[next]).focus) == null ? void 0 : _b.call(_a2);
149
169
  }
150
170
  }
151
171
  }
152
172
  get tabsElement() {
153
- return this.closest("u-tabs");
173
+ return getTabsElement(this);
154
174
  }
155
175
  get tabs() {
156
- return this.querySelectorAll("u-tab");
176
+ return getTabs(this);
157
177
  }
158
178
  get selectedIndex() {
159
179
  return getSelectedIndex(this.tabs);
@@ -174,31 +194,32 @@ var UHTMLTabElement = class extends UHTMLElement {
174
194
  }
175
195
  connectedCallback() {
176
196
  attr(this, "role", "tab");
177
- this.tabIndex = this.selected ? 0 : -1;
197
+ attr(this, "tabindex", this.selected ? "0" : "-1");
178
198
  }
179
199
  attributeChangedCallback() {
180
200
  if (!SKIP_ATTR_CHANGE && this.selected && this.tabList) {
181
201
  SKIP_ATTR_CHANGE = true;
182
- const tabs = [...this.tabList.querySelectorAll("u-tab")];
183
- const panels = queryWithoutNested("u-tabpanel", this.tabsElement || this);
184
- const nextPanel = getPanel(this, panels[tabs.indexOf(this)]);
202
+ const tabs = this.tabList ? getTabs(this.tabList) : [];
203
+ const panels = queryWithoutNested("tabpanel", this.tabsElement || this);
204
+ const nextPanel = getPanel(this, panels[[...tabs].indexOf(this)]);
185
205
  if (nextPanel) attr(nextPanel, SAFE_LABELLEDBY, useId(this));
186
- tabs.forEach((tab, index) => {
187
- const panel = getPanel(tab, panels[index]);
188
- tab.tabIndex = tab === this ? 0 : -1;
206
+ let i = 0;
207
+ for (const tab of tabs) {
208
+ const panel = getPanel(tab, panels[i++]);
209
+ attr(tab, "tabindex", tab === this ? "0" : "-1");
189
210
  attr(tab, ARIA_SELECTED, `${tab === this}`);
190
- attr(tab, ARIA_CONTROLS, (panel == null ? void 0 : panel.id) || null);
211
+ if (panel == null ? void 0 : panel.id) attr(tab, ARIA_CONTROLS, panel.id);
191
212
  if (panel) panel.hidden = panel !== nextPanel;
192
- });
213
+ }
193
214
  SKIP_ATTR_CHANGE = false;
194
215
  }
195
216
  }
196
217
  get tabsElement() {
197
- return this.closest("u-tabs");
218
+ return getTabsElement(this);
198
219
  }
199
220
  get tabList() {
200
221
  const tablist = this.parentElement;
201
- return (tablist == null ? void 0 : tablist.nodeName) === "U-TABLIST" ? tablist : null;
222
+ return (tablist == null ? void 0 : tablist.getAttribute("role")) === "tablist" ? tablist : null;
202
223
  }
203
224
  get selected() {
204
225
  return attr(this, ARIA_SELECTED) === "true";
@@ -208,8 +229,8 @@ var UHTMLTabElement = class extends UHTMLElement {
208
229
  }
209
230
  /** Retrieves the ordinal position of an tab in a tablist. */
210
231
  get index() {
211
- const tabList = this.tabList;
212
- return tabList ? [...tabList.querySelectorAll("u-tab")].indexOf(this) : 0;
232
+ const tablist = this.tabList;
233
+ return tablist ? [...getTabs(tablist)].indexOf(this) : 0;
213
234
  }
214
235
  get panel() {
215
236
  return getPanel(this);
@@ -235,20 +256,21 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
235
256
  attr(this, "tabindex", hidden || isFocusable(this.firstChild) ? null : "0");
236
257
  }
237
258
  get tabsElement() {
238
- return this.closest("u-tabs");
259
+ return getTabsElement(this);
239
260
  }
240
261
  get tabs() {
241
- const css = `u-tab[${ARIA_CONTROLS}="${this.id}"]`;
242
- return getRoot(this).querySelectorAll(css);
262
+ return getRoot(this).querySelectorAll(
263
+ `[role="tab"][${ARIA_CONTROLS}="${this.id}"]`
264
+ );
243
265
  }
244
266
  };
245
- var queryWithoutNested = (tag, self) => self.querySelectorAll(`${tag}:not(:scope u-tabpanel ${tag})`);
246
- var getPanel = (tab, panel) => {
247
- const id2 = attr(tab, ARIA_CONTROLS) || useId(panel);
248
- const el = getRoot(tab).getElementById(id2);
249
- return (el == null ? void 0 : el.nodeName) === "U-TABPANEL" ? el : null;
250
- };
267
+ var queryWithoutNested = (role, self) => self.querySelectorAll(
268
+ `[role="${role}"]:not(:scope [role="tabpanel"] [role="${role}"])`
269
+ );
270
+ var getPanel = (tab, panel) => getRoot(tab).getElementById(attr(tab, ARIA_CONTROLS) || useId(panel));
251
271
  var getSelectedIndex = (tabs) => [...tabs].findIndex((tab) => attr(tab, ARIA_SELECTED) === "true");
272
+ var getTabsElement = (self) => self.closest(`[${ATTR_TABS}]`);
273
+ var getTabs = (self) => self.querySelectorAll(`:scope > [role="tab"]`);
252
274
  var setSelected = (tab) => tab && attr(tab, "aria-disabled") !== "true" && attr(tab, "aria-selected", "true");
253
275
  var isFocusable = (el) => el instanceof Element && !el.matches(':disabled,[tabindex^="-"]') && el.matches(
254
276
  `[contenteditable],[controls],[href],[tabindex],input:not([type="hidden"]),select,textarea,button,summary,iframe`
package/dist/u-tabs.d.cts CHANGED
@@ -25,6 +25,9 @@ declare const UHTMLTabPanelShadowRoot: string;
25
25
  */
26
26
  declare class UHTMLTabsElement extends UHTMLElement {
27
27
  constructor();
28
+ connectedCallback(): void;
29
+ handleEvent(): void;
30
+ disconnectedCallback(): void;
28
31
  get tabList(): UHTMLTabListElement | null;
29
32
  get selectedIndex(): number;
30
33
  set selectedIndex(index: number);
@@ -40,7 +43,7 @@ declare class UHTMLTabListElement extends UHTMLElement {
40
43
  connectedCallback(): void;
41
44
  disconnectedCallback(): void;
42
45
  handleEvent(event?: Event): void;
43
- get tabsElement(): UHTMLTabsElement | null;
46
+ get tabsElement(): HTMLElement | null;
44
47
  get tabs(): NodeListOf<UHTMLTabElement>;
45
48
  get selectedIndex(): number;
46
49
  set selectedIndex(index: number);
@@ -56,7 +59,7 @@ declare class UHTMLTabElement extends UHTMLElement {
56
59
  set selected(value: boolean);
57
60
  /** Retrieves the ordinal position of an tab in a tablist. */
58
61
  get index(): number;
59
- get panel(): UHTMLTabPanelElement | null;
62
+ get panel(): HTMLElement | null;
60
63
  }
61
64
  /**
62
65
  * The `<u-tabpanel>` HTML element is a container for the resources of layered content associated with a `<u-tab>`.
package/dist/u-tabs.d.ts CHANGED
@@ -25,6 +25,9 @@ declare const UHTMLTabPanelShadowRoot: string;
25
25
  */
26
26
  declare class UHTMLTabsElement extends UHTMLElement {
27
27
  constructor();
28
+ connectedCallback(): void;
29
+ handleEvent(): void;
30
+ disconnectedCallback(): void;
28
31
  get tabList(): UHTMLTabListElement | null;
29
32
  get selectedIndex(): number;
30
33
  set selectedIndex(index: number);
@@ -40,7 +43,7 @@ declare class UHTMLTabListElement extends UHTMLElement {
40
43
  connectedCallback(): void;
41
44
  disconnectedCallback(): void;
42
45
  handleEvent(event?: Event): void;
43
- get tabsElement(): UHTMLTabsElement | null;
46
+ get tabsElement(): HTMLElement | null;
44
47
  get tabs(): NodeListOf<UHTMLTabElement>;
45
48
  get selectedIndex(): number;
46
49
  set selectedIndex(index: number);
@@ -56,7 +59,7 @@ declare class UHTMLTabElement extends UHTMLElement {
56
59
  set selected(value: boolean);
57
60
  /** Retrieves the ordinal position of an tab in a tablist. */
58
61
  get index(): number;
59
- get panel(): UHTMLTabPanelElement | null;
62
+ get panel(): HTMLElement | null;
60
63
  }
61
64
  /**
62
65
  * The `<u-tabpanel>` HTML element is a container for the resources of layered content associated with a `<u-tab>`.
package/dist/u-tabs.js CHANGED
@@ -44,9 +44,11 @@ var mutationObserver = (element, options) => {
44
44
  }
45
45
  };
46
46
  var asButton = (event) => {
47
- const isClick = "key" in event && (event.key === " " || event.key === "Enter");
48
- if (isClick) event.preventDefault();
49
- if (isClick && event.target instanceof HTMLElement) event.target.click();
47
+ var _a2;
48
+ const isClick = event.key === " " || event.key === "Enter";
49
+ if (isClick) (_a2 = event.preventDefault) == null ? void 0 : _a2.call(event);
50
+ if (isClick && event.target instanceof HTMLElement)
51
+ event.target.dispatchEvent(new MouseEvent("click", event));
50
52
  return isClick;
51
53
  };
52
54
  var getRoot = (node) => {
@@ -60,9 +62,9 @@ var useId = (el) => {
60
62
  if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;
61
63
  return el.id;
62
64
  };
63
- var createElement = (tagName, text, attrs) => {
65
+ var createElement = (tagName, content, attrs) => {
64
66
  const el = document.createElement(tagName);
65
- if (text) el.textContent = text;
67
+ if (content) el[tagName === "style" ? "textContent" : "innerHTML"] = content;
66
68
  return el;
67
69
  };
68
70
  var customElements = {
@@ -81,13 +83,30 @@ var UHTMLTabShadowRoot = declarativeShadowRoot(UHTMLTabStyle);
81
83
  var UHTMLTabPanelShadowRoot = declarativeShadowRoot(UHTMLTabPanelStyle);
82
84
  var ARIA_CONTROLS = "aria-controls";
83
85
  var ARIA_SELECTED = "aria-selected";
86
+ var ATTR_TABS = "data-utabs";
84
87
  var UHTMLTabsElement = class extends UHTMLElement {
85
88
  constructor() {
86
89
  super();
90
+ attr(this, ATTR_TABS, "");
87
91
  attachStyle(this, UHTMLTabsStyle);
88
92
  }
93
+ connectedCallback() {
94
+ mutationObserver(this, {
95
+ attributeFilter: ["role"],
96
+ attributes: true,
97
+ childList: true,
98
+ subtree: true
99
+ });
100
+ }
101
+ handleEvent() {
102
+ var _a2;
103
+ (_a2 = this.tabList) == null ? void 0 : _a2.handleEvent();
104
+ }
105
+ disconnectedCallback() {
106
+ mutationObserver(this, false);
107
+ }
89
108
  get tabList() {
90
- return queryWithoutNested("u-tablist", this)[0] || null;
109
+ return queryWithoutNested("tablist", this)[0] || null;
91
110
  }
92
111
  get selectedIndex() {
93
112
  return getSelectedIndex(this.tabs);
@@ -96,10 +115,10 @@ var UHTMLTabsElement = class extends UHTMLElement {
96
115
  setSelected(this.tabs[index]);
97
116
  }
98
117
  get tabs() {
99
- return queryWithoutNested("u-tab", this);
118
+ return queryWithoutNested("tab", this);
100
119
  }
101
120
  get panels() {
102
- return queryWithoutNested("u-tabpanel", this);
121
+ return queryWithoutNested("tabpanel", this);
103
122
  }
104
123
  };
105
124
  var UHTMLTabListElement = class extends UHTMLElement {
@@ -111,13 +130,14 @@ var UHTMLTabListElement = class extends UHTMLElement {
111
130
  attr(this, "role", "tablist");
112
131
  on(this, "click,keydown", this);
113
132
  mutationObserver(this, { childList: true });
114
- if (this.tabs.length) this.handleEvent();
133
+ requestAnimationFrame(() => this.handleEvent());
115
134
  }
116
135
  disconnectedCallback() {
117
136
  off(this, "click,keydown", this);
118
137
  mutationObserver(this, false);
119
138
  }
120
139
  handleEvent(event) {
140
+ var _a2, _b;
121
141
  if (!event || event.type === "mutation") {
122
142
  const tab = this.tabs[Math.max(this.selectedIndex, 0)];
123
143
  return tab == null ? void 0 : tab.setAttribute(ARIA_SELECTED, "true");
@@ -138,20 +158,20 @@ var UHTMLTabListElement = class extends UHTMLElement {
138
158
  else if (key === "Tab") next = getSelectedIndex(tabs);
139
159
  else return;
140
160
  setTimeout(() => {
141
- tabs[prev].tabIndex = -1;
142
- tabs[next].tabIndex = 0;
161
+ attr(tabs[prev], "tabindex", "-1");
162
+ attr(tabs[next], "tabindex", "0");
143
163
  });
144
164
  if (key !== "Tab") {
145
165
  event.preventDefault();
146
- tabs[next].focus();
166
+ (_b = (_a2 = tabs[next]).focus) == null ? void 0 : _b.call(_a2);
147
167
  }
148
168
  }
149
169
  }
150
170
  get tabsElement() {
151
- return this.closest("u-tabs");
171
+ return getTabsElement(this);
152
172
  }
153
173
  get tabs() {
154
- return this.querySelectorAll("u-tab");
174
+ return getTabs(this);
155
175
  }
156
176
  get selectedIndex() {
157
177
  return getSelectedIndex(this.tabs);
@@ -172,31 +192,32 @@ var UHTMLTabElement = class extends UHTMLElement {
172
192
  }
173
193
  connectedCallback() {
174
194
  attr(this, "role", "tab");
175
- this.tabIndex = this.selected ? 0 : -1;
195
+ attr(this, "tabindex", this.selected ? "0" : "-1");
176
196
  }
177
197
  attributeChangedCallback() {
178
198
  if (!SKIP_ATTR_CHANGE && this.selected && this.tabList) {
179
199
  SKIP_ATTR_CHANGE = true;
180
- const tabs = [...this.tabList.querySelectorAll("u-tab")];
181
- const panels = queryWithoutNested("u-tabpanel", this.tabsElement || this);
182
- const nextPanel = getPanel(this, panels[tabs.indexOf(this)]);
200
+ const tabs = this.tabList ? getTabs(this.tabList) : [];
201
+ const panels = queryWithoutNested("tabpanel", this.tabsElement || this);
202
+ const nextPanel = getPanel(this, panels[[...tabs].indexOf(this)]);
183
203
  if (nextPanel) attr(nextPanel, SAFE_LABELLEDBY, useId(this));
184
- tabs.forEach((tab, index) => {
185
- const panel = getPanel(tab, panels[index]);
186
- tab.tabIndex = tab === this ? 0 : -1;
204
+ let i = 0;
205
+ for (const tab of tabs) {
206
+ const panel = getPanel(tab, panels[i++]);
207
+ attr(tab, "tabindex", tab === this ? "0" : "-1");
187
208
  attr(tab, ARIA_SELECTED, `${tab === this}`);
188
- attr(tab, ARIA_CONTROLS, (panel == null ? void 0 : panel.id) || null);
209
+ if (panel == null ? void 0 : panel.id) attr(tab, ARIA_CONTROLS, panel.id);
189
210
  if (panel) panel.hidden = panel !== nextPanel;
190
- });
211
+ }
191
212
  SKIP_ATTR_CHANGE = false;
192
213
  }
193
214
  }
194
215
  get tabsElement() {
195
- return this.closest("u-tabs");
216
+ return getTabsElement(this);
196
217
  }
197
218
  get tabList() {
198
219
  const tablist = this.parentElement;
199
- return (tablist == null ? void 0 : tablist.nodeName) === "U-TABLIST" ? tablist : null;
220
+ return (tablist == null ? void 0 : tablist.getAttribute("role")) === "tablist" ? tablist : null;
200
221
  }
201
222
  get selected() {
202
223
  return attr(this, ARIA_SELECTED) === "true";
@@ -206,8 +227,8 @@ var UHTMLTabElement = class extends UHTMLElement {
206
227
  }
207
228
  /** Retrieves the ordinal position of an tab in a tablist. */
208
229
  get index() {
209
- const tabList = this.tabList;
210
- return tabList ? [...tabList.querySelectorAll("u-tab")].indexOf(this) : 0;
230
+ const tablist = this.tabList;
231
+ return tablist ? [...getTabs(tablist)].indexOf(this) : 0;
211
232
  }
212
233
  get panel() {
213
234
  return getPanel(this);
@@ -233,20 +254,21 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
233
254
  attr(this, "tabindex", hidden || isFocusable(this.firstChild) ? null : "0");
234
255
  }
235
256
  get tabsElement() {
236
- return this.closest("u-tabs");
257
+ return getTabsElement(this);
237
258
  }
238
259
  get tabs() {
239
- const css = `u-tab[${ARIA_CONTROLS}="${this.id}"]`;
240
- return getRoot(this).querySelectorAll(css);
260
+ return getRoot(this).querySelectorAll(
261
+ `[role="tab"][${ARIA_CONTROLS}="${this.id}"]`
262
+ );
241
263
  }
242
264
  };
243
- var queryWithoutNested = (tag, self) => self.querySelectorAll(`${tag}:not(:scope u-tabpanel ${tag})`);
244
- var getPanel = (tab, panel) => {
245
- const id2 = attr(tab, ARIA_CONTROLS) || useId(panel);
246
- const el = getRoot(tab).getElementById(id2);
247
- return (el == null ? void 0 : el.nodeName) === "U-TABPANEL" ? el : null;
248
- };
265
+ var queryWithoutNested = (role, self) => self.querySelectorAll(
266
+ `[role="${role}"]:not(:scope [role="tabpanel"] [role="${role}"])`
267
+ );
268
+ var getPanel = (tab, panel) => getRoot(tab).getElementById(attr(tab, ARIA_CONTROLS) || useId(panel));
249
269
  var getSelectedIndex = (tabs) => [...tabs].findIndex((tab) => attr(tab, ARIA_SELECTED) === "true");
270
+ var getTabsElement = (self) => self.closest(`[${ATTR_TABS}]`);
271
+ var getTabs = (self) => self.querySelectorAll(`:scope > [role="tab"]`);
250
272
  var setSelected = (tab) => tab && attr(tab, "aria-disabled") !== "true" && attr(tab, "aria-selected", "true");
251
273
  var isFocusable = (el) => el instanceof Element && !el.matches(':disabled,[tabindex^="-"]') && el.matches(
252
274
  `[contenteditable],[controls],[href],[tabindex],input:not([type="hidden"]),select,textarea,button,summary,iframe`
@@ -50,6 +50,10 @@
50
50
  "description": "The `<u-tabs>` HTML element is used to group a `<u-tablist>` and several `<u-tabpanel>` elements.\nNo MDN reference available.",
51
51
  "name": "UHTMLTabsElement",
52
52
  "members": [
53
+ {
54
+ "kind": "method",
55
+ "name": "handleEvent"
56
+ },
53
57
  {
54
58
  "kind": "field",
55
59
  "name": "tabList",
@@ -111,7 +115,7 @@
111
115
  "kind": "field",
112
116
  "name": "tabsElement",
113
117
  "type": {
114
- "text": "UHTMLTabsElement | null"
118
+ "text": "HTMLElement | null"
115
119
  },
116
120
  "readonly": true
117
121
  },
@@ -179,7 +183,7 @@
179
183
  "kind": "field",
180
184
  "name": "panel",
181
185
  "type": {
182
- "text": "UHTMLTabPanelElement | null"
186
+ "text": "HTMLElement | null"
183
187
  },
184
188
  "readonly": true
185
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@u-elements/u-tabs",
3
- "version": "0.0.12",
3
+ "version": "0.1.0",
4
4
  "license": "MIT",
5
5
  "description": "HTML tags, just truly accessible",
6
6
  "homepage": "https://u-elements.github.io/u-elements/",