@u-elements/u-tabs 0.0.9 → 0.0.11
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 +28 -15
- package/dist/u-tabs.d.cts +13 -6
- package/dist/u-tabs.d.ts +13 -6
- package/dist/u-tabs.js +21 -16
- package/dist/u-tabs.manifest.json +103 -0
- package/package.json +13 -1
package/dist/u-tabs.cjs
CHANGED
|
@@ -11,8 +11,7 @@ var DISPLAY_BLOCK = ":host(:not([hidden])) { display: block }";
|
|
|
11
11
|
var UHTMLElement = typeof HTMLElement === "undefined" ? class {
|
|
12
12
|
} : HTMLElement;
|
|
13
13
|
function attr(el, name, value) {
|
|
14
|
-
|
|
15
|
-
if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;
|
|
14
|
+
if (value === void 0) return el.getAttribute(name);
|
|
16
15
|
if (value === null) el.removeAttribute(name);
|
|
17
16
|
else if (el.getAttribute(name) !== value) el.setAttribute(name, value);
|
|
18
17
|
return null;
|
|
@@ -25,7 +24,7 @@ var events = (action, element, rest) => {
|
|
|
25
24
|
};
|
|
26
25
|
var on = (element, ...rest) => events("add", element, rest);
|
|
27
26
|
var off = (element, ...rest) => events("remove", element, rest);
|
|
28
|
-
var attachStyle = (element, css) => element.attachShadow({ mode: "open" }).append(
|
|
27
|
+
var attachStyle = (element, css) => element.shadowRoot || element.attachShadow({ mode: "open" }).append(
|
|
29
28
|
createElement("slot"),
|
|
30
29
|
// Unnamed slot does automatically render all top element nodes
|
|
31
30
|
createElement("style", css)
|
|
@@ -36,7 +35,7 @@ var mutationObserver = (element, options) => {
|
|
|
36
35
|
try {
|
|
37
36
|
observers.get(element).disconnect();
|
|
38
37
|
observers.delete(element);
|
|
39
|
-
} catch (
|
|
38
|
+
} catch (_err) {
|
|
40
39
|
}
|
|
41
40
|
if (options) {
|
|
42
41
|
const observer = new MutationObserver(
|
|
@@ -71,14 +70,23 @@ var createElement = (tagName, text, attrs) => {
|
|
|
71
70
|
var customElements = {
|
|
72
71
|
define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)
|
|
73
72
|
};
|
|
73
|
+
var declarativeShadowRoot = (style, slot = "<slot></slot>") => `<template shadowrootmode="open">${slot}<style>${style}</style></template>`;
|
|
74
74
|
|
|
75
75
|
// u-tabs.ts
|
|
76
|
+
var UHTMLTabsStyle = DISPLAY_BLOCK;
|
|
77
|
+
var UHTMLTabListStyle = DISPLAY_BLOCK;
|
|
78
|
+
var UHTMLTabPanelStyle = DISPLAY_BLOCK;
|
|
79
|
+
var UHTMLTabStyle = ":host(:not([hidden])) { cursor: pointer; display: inline-block }";
|
|
80
|
+
var UHTMLTabsShadowRoot = declarativeShadowRoot(UHTMLTabsStyle);
|
|
81
|
+
var UHTMLTabListShadowRoot = declarativeShadowRoot(UHTMLTabListStyle);
|
|
82
|
+
var UHTMLTabShadowRoot = declarativeShadowRoot(UHTMLTabStyle);
|
|
83
|
+
var UHTMLTabPanelShadowRoot = declarativeShadowRoot(UHTMLTabPanelStyle);
|
|
76
84
|
var ARIA_CONTROLS = "aria-controls";
|
|
77
85
|
var ARIA_SELECTED = "aria-selected";
|
|
78
86
|
var UHTMLTabsElement = class extends UHTMLElement {
|
|
79
87
|
constructor() {
|
|
80
88
|
super();
|
|
81
|
-
attachStyle(this,
|
|
89
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabsStyle);
|
|
82
90
|
}
|
|
83
91
|
get tabList() {
|
|
84
92
|
return queryWithoutNested("u-tablist", this)[0] || null;
|
|
@@ -99,7 +107,7 @@ var UHTMLTabsElement = class extends UHTMLElement {
|
|
|
99
107
|
var UHTMLTabListElement = class extends UHTMLElement {
|
|
100
108
|
constructor() {
|
|
101
109
|
super();
|
|
102
|
-
attachStyle(this,
|
|
110
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabListStyle);
|
|
103
111
|
}
|
|
104
112
|
connectedCallback() {
|
|
105
113
|
attr(this, "role", "tablist");
|
|
@@ -162,10 +170,7 @@ var UHTMLTabElement = class extends UHTMLElement {
|
|
|
162
170
|
}
|
|
163
171
|
constructor() {
|
|
164
172
|
super();
|
|
165
|
-
attachStyle(
|
|
166
|
-
this,
|
|
167
|
-
":host(:not([hidden])) { cursor: pointer; display: inline-block }"
|
|
168
|
-
);
|
|
173
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabStyle);
|
|
169
174
|
}
|
|
170
175
|
connectedCallback() {
|
|
171
176
|
attr(this, "role", "tab");
|
|
@@ -182,8 +187,8 @@ var UHTMLTabElement = class extends UHTMLElement {
|
|
|
182
187
|
const panel = getPanel(tab, panels[index]);
|
|
183
188
|
tab.tabIndex = tab === this ? 0 : -1;
|
|
184
189
|
attr(tab, ARIA_SELECTED, `${tab === this}`);
|
|
190
|
+
attr(tab, ARIA_CONTROLS, (panel == null ? void 0 : panel.id) || null);
|
|
185
191
|
if (panel) panel.hidden = panel !== nextPanel;
|
|
186
|
-
if (panel) attr(tab, ARIA_CONTROLS, panel.id);
|
|
187
192
|
});
|
|
188
193
|
SKIP_ATTR_CHANGE = false;
|
|
189
194
|
}
|
|
@@ -217,7 +222,7 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
|
|
|
217
222
|
}
|
|
218
223
|
constructor() {
|
|
219
224
|
super();
|
|
220
|
-
attachStyle(this,
|
|
225
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabPanelStyle);
|
|
221
226
|
}
|
|
222
227
|
connectedCallback() {
|
|
223
228
|
attr(this, "role", "tabpanel");
|
|
@@ -225,9 +230,9 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
|
|
|
225
230
|
this.attributeChangedCallback();
|
|
226
231
|
}
|
|
227
232
|
attributeChangedCallback() {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
233
|
+
const hidden = this.hidden;
|
|
234
|
+
attr(this, "aria-hidden", `${hidden}`);
|
|
235
|
+
attr(this, "tabindex", hidden || isFocusable(this.firstChild) ? null : "0");
|
|
231
236
|
}
|
|
232
237
|
get tabsElement() {
|
|
233
238
|
return this.closest("u-tabs");
|
|
@@ -255,5 +260,13 @@ customElements.define("u-tabpanel", UHTMLTabPanelElement);
|
|
|
255
260
|
|
|
256
261
|
exports.UHTMLTabElement = UHTMLTabElement;
|
|
257
262
|
exports.UHTMLTabListElement = UHTMLTabListElement;
|
|
263
|
+
exports.UHTMLTabListShadowRoot = UHTMLTabListShadowRoot;
|
|
264
|
+
exports.UHTMLTabListStyle = UHTMLTabListStyle;
|
|
258
265
|
exports.UHTMLTabPanelElement = UHTMLTabPanelElement;
|
|
266
|
+
exports.UHTMLTabPanelShadowRoot = UHTMLTabPanelShadowRoot;
|
|
267
|
+
exports.UHTMLTabPanelStyle = UHTMLTabPanelStyle;
|
|
268
|
+
exports.UHTMLTabShadowRoot = UHTMLTabShadowRoot;
|
|
269
|
+
exports.UHTMLTabStyle = UHTMLTabStyle;
|
|
259
270
|
exports.UHTMLTabsElement = UHTMLTabsElement;
|
|
271
|
+
exports.UHTMLTabsShadowRoot = UHTMLTabsShadowRoot;
|
|
272
|
+
exports.UHTMLTabsStyle = UHTMLTabsStyle;
|
package/dist/u-tabs.d.cts
CHANGED
|
@@ -11,6 +11,14 @@ declare global {
|
|
|
11
11
|
"u-tabpanel": UHTMLTabPanelElement;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
declare const UHTMLTabsStyle = ":host(:not([hidden])) { display: block }";
|
|
15
|
+
declare const UHTMLTabListStyle = ":host(:not([hidden])) { display: block }";
|
|
16
|
+
declare const UHTMLTabPanelStyle = ":host(:not([hidden])) { display: block }";
|
|
17
|
+
declare const UHTMLTabStyle = ":host(:not([hidden])) { cursor: pointer; display: inline-block }";
|
|
18
|
+
declare const UHTMLTabsShadowRoot: string;
|
|
19
|
+
declare const UHTMLTabListShadowRoot: string;
|
|
20
|
+
declare const UHTMLTabShadowRoot: string;
|
|
21
|
+
declare const UHTMLTabPanelShadowRoot: string;
|
|
14
22
|
/**
|
|
15
23
|
* The `<u-tabs>` HTML element is used to group a `<u-tablist>` and several `<u-tabpanel>` elements.
|
|
16
24
|
* No MDN reference available.
|
|
@@ -63,8 +71,7 @@ declare class UHTMLTabPanelElement extends UHTMLElement {
|
|
|
63
71
|
get tabs(): NodeListOf<UHTMLTabElement>;
|
|
64
72
|
}
|
|
65
73
|
|
|
66
|
-
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement };
|
|
67
|
-
|
|
74
|
+
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabListShadowRoot, UHTMLTabListStyle, UHTMLTabPanelElement, UHTMLTabPanelShadowRoot, UHTMLTabPanelStyle, UHTMLTabShadowRoot, UHTMLTabStyle, UHTMLTabsElement, UHTMLTabsShadowRoot, UHTMLTabsStyle };
|
|
68
75
|
import type * as PreactTypes from 'preact'
|
|
69
76
|
import type * as ReactTypes from 'react'
|
|
70
77
|
import type * as SvelteTypes from 'svelte/elements'
|
|
@@ -73,7 +80,7 @@ import type { JSX as QwikJSX } from '@builder.io/qwik/jsx-runtime'
|
|
|
73
80
|
import type { JSX as SolidJSX } from 'solid-js'
|
|
74
81
|
|
|
75
82
|
|
|
76
|
-
export type PreactUtabs = PreactTypes.JSX.HTMLAttributes<
|
|
83
|
+
export type PreactUtabs = PreactTypes.JSX.HTMLAttributes<UHTMLTabsElement> & { }
|
|
77
84
|
export type ReactUtabs = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabsElement>, UHTMLTabsElement> & { class?: string }
|
|
78
85
|
export type QwikUtabs = QwikJSX.IntrinsicElements['div']
|
|
79
86
|
export type VueUtabs = VueJSX.HTMLAttributes
|
|
@@ -92,7 +99,7 @@ declare module 'solid-js' {
|
|
|
92
99
|
interface CustomEvents { }
|
|
93
100
|
}
|
|
94
101
|
}
|
|
95
|
-
export type PreactUtablist = PreactTypes.JSX.HTMLAttributes<
|
|
102
|
+
export type PreactUtablist = PreactTypes.JSX.HTMLAttributes<UHTMLTabListElement> & { }
|
|
96
103
|
export type ReactUtablist = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabListElement>, UHTMLTabListElement> & { class?: string }
|
|
97
104
|
export type QwikUtablist = QwikJSX.IntrinsicElements['div']
|
|
98
105
|
export type VueUtablist = VueJSX.HTMLAttributes
|
|
@@ -111,7 +118,7 @@ declare module 'solid-js' {
|
|
|
111
118
|
interface CustomEvents { }
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
|
-
export type PreactUtab = PreactTypes.JSX.HTMLAttributes<
|
|
121
|
+
export type PreactUtab = PreactTypes.JSX.HTMLAttributes<UHTMLTabElement> & { }
|
|
115
122
|
export type ReactUtab = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabElement>, UHTMLTabElement> & { class?: string }
|
|
116
123
|
export type QwikUtab = QwikJSX.IntrinsicElements['div']
|
|
117
124
|
export type VueUtab = VueJSX.HTMLAttributes
|
|
@@ -130,7 +137,7 @@ declare module 'solid-js' {
|
|
|
130
137
|
interface CustomEvents { }
|
|
131
138
|
}
|
|
132
139
|
}
|
|
133
|
-
export type PreactUtabpanel = PreactTypes.JSX.HTMLAttributes<
|
|
140
|
+
export type PreactUtabpanel = PreactTypes.JSX.HTMLAttributes<UHTMLTabPanelElement> & { }
|
|
134
141
|
export type ReactUtabpanel = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabPanelElement>, UHTMLTabPanelElement> & { class?: string }
|
|
135
142
|
export type QwikUtabpanel = QwikJSX.IntrinsicElements['div']
|
|
136
143
|
export type VueUtabpanel = VueJSX.HTMLAttributes
|
package/dist/u-tabs.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ declare global {
|
|
|
11
11
|
"u-tabpanel": UHTMLTabPanelElement;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
declare const UHTMLTabsStyle = ":host(:not([hidden])) { display: block }";
|
|
15
|
+
declare const UHTMLTabListStyle = ":host(:not([hidden])) { display: block }";
|
|
16
|
+
declare const UHTMLTabPanelStyle = ":host(:not([hidden])) { display: block }";
|
|
17
|
+
declare const UHTMLTabStyle = ":host(:not([hidden])) { cursor: pointer; display: inline-block }";
|
|
18
|
+
declare const UHTMLTabsShadowRoot: string;
|
|
19
|
+
declare const UHTMLTabListShadowRoot: string;
|
|
20
|
+
declare const UHTMLTabShadowRoot: string;
|
|
21
|
+
declare const UHTMLTabPanelShadowRoot: string;
|
|
14
22
|
/**
|
|
15
23
|
* The `<u-tabs>` HTML element is used to group a `<u-tablist>` and several `<u-tabpanel>` elements.
|
|
16
24
|
* No MDN reference available.
|
|
@@ -63,8 +71,7 @@ declare class UHTMLTabPanelElement extends UHTMLElement {
|
|
|
63
71
|
get tabs(): NodeListOf<UHTMLTabElement>;
|
|
64
72
|
}
|
|
65
73
|
|
|
66
|
-
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement };
|
|
67
|
-
|
|
74
|
+
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabListShadowRoot, UHTMLTabListStyle, UHTMLTabPanelElement, UHTMLTabPanelShadowRoot, UHTMLTabPanelStyle, UHTMLTabShadowRoot, UHTMLTabStyle, UHTMLTabsElement, UHTMLTabsShadowRoot, UHTMLTabsStyle };
|
|
68
75
|
import type * as PreactTypes from 'preact'
|
|
69
76
|
import type * as ReactTypes from 'react'
|
|
70
77
|
import type * as SvelteTypes from 'svelte/elements'
|
|
@@ -73,7 +80,7 @@ import type { JSX as QwikJSX } from '@builder.io/qwik/jsx-runtime'
|
|
|
73
80
|
import type { JSX as SolidJSX } from 'solid-js'
|
|
74
81
|
|
|
75
82
|
|
|
76
|
-
export type PreactUtabs = PreactTypes.JSX.HTMLAttributes<
|
|
83
|
+
export type PreactUtabs = PreactTypes.JSX.HTMLAttributes<UHTMLTabsElement> & { }
|
|
77
84
|
export type ReactUtabs = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabsElement>, UHTMLTabsElement> & { class?: string }
|
|
78
85
|
export type QwikUtabs = QwikJSX.IntrinsicElements['div']
|
|
79
86
|
export type VueUtabs = VueJSX.HTMLAttributes
|
|
@@ -92,7 +99,7 @@ declare module 'solid-js' {
|
|
|
92
99
|
interface CustomEvents { }
|
|
93
100
|
}
|
|
94
101
|
}
|
|
95
|
-
export type PreactUtablist = PreactTypes.JSX.HTMLAttributes<
|
|
102
|
+
export type PreactUtablist = PreactTypes.JSX.HTMLAttributes<UHTMLTabListElement> & { }
|
|
96
103
|
export type ReactUtablist = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabListElement>, UHTMLTabListElement> & { class?: string }
|
|
97
104
|
export type QwikUtablist = QwikJSX.IntrinsicElements['div']
|
|
98
105
|
export type VueUtablist = VueJSX.HTMLAttributes
|
|
@@ -111,7 +118,7 @@ declare module 'solid-js' {
|
|
|
111
118
|
interface CustomEvents { }
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
|
-
export type PreactUtab = PreactTypes.JSX.HTMLAttributes<
|
|
121
|
+
export type PreactUtab = PreactTypes.JSX.HTMLAttributes<UHTMLTabElement> & { }
|
|
115
122
|
export type ReactUtab = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabElement>, UHTMLTabElement> & { class?: string }
|
|
116
123
|
export type QwikUtab = QwikJSX.IntrinsicElements['div']
|
|
117
124
|
export type VueUtab = VueJSX.HTMLAttributes
|
|
@@ -130,7 +137,7 @@ declare module 'solid-js' {
|
|
|
130
137
|
interface CustomEvents { }
|
|
131
138
|
}
|
|
132
139
|
}
|
|
133
|
-
export type PreactUtabpanel = PreactTypes.JSX.HTMLAttributes<
|
|
140
|
+
export type PreactUtabpanel = PreactTypes.JSX.HTMLAttributes<UHTMLTabPanelElement> & { }
|
|
134
141
|
export type ReactUtabpanel = ReactTypes.DetailedHTMLProps<ReactTypes.HTMLAttributes<UHTMLTabPanelElement>, UHTMLTabPanelElement> & { class?: string }
|
|
135
142
|
export type QwikUtabpanel = QwikJSX.IntrinsicElements['div']
|
|
136
143
|
export type VueUtabpanel = VueJSX.HTMLAttributes
|
package/dist/u-tabs.js
CHANGED
|
@@ -9,8 +9,7 @@ var DISPLAY_BLOCK = ":host(:not([hidden])) { display: block }";
|
|
|
9
9
|
var UHTMLElement = typeof HTMLElement === "undefined" ? class {
|
|
10
10
|
} : HTMLElement;
|
|
11
11
|
function attr(el, name, value) {
|
|
12
|
-
|
|
13
|
-
if (value === void 0) return (_a2 = el.getAttribute(name)) != null ? _a2 : null;
|
|
12
|
+
if (value === void 0) return el.getAttribute(name);
|
|
14
13
|
if (value === null) el.removeAttribute(name);
|
|
15
14
|
else if (el.getAttribute(name) !== value) el.setAttribute(name, value);
|
|
16
15
|
return null;
|
|
@@ -23,7 +22,7 @@ var events = (action, element, rest) => {
|
|
|
23
22
|
};
|
|
24
23
|
var on = (element, ...rest) => events("add", element, rest);
|
|
25
24
|
var off = (element, ...rest) => events("remove", element, rest);
|
|
26
|
-
var attachStyle = (element, css) => element.attachShadow({ mode: "open" }).append(
|
|
25
|
+
var attachStyle = (element, css) => element.shadowRoot || element.attachShadow({ mode: "open" }).append(
|
|
27
26
|
createElement("slot"),
|
|
28
27
|
// Unnamed slot does automatically render all top element nodes
|
|
29
28
|
createElement("style", css)
|
|
@@ -34,7 +33,7 @@ var mutationObserver = (element, options) => {
|
|
|
34
33
|
try {
|
|
35
34
|
observers.get(element).disconnect();
|
|
36
35
|
observers.delete(element);
|
|
37
|
-
} catch (
|
|
36
|
+
} catch (_err) {
|
|
38
37
|
}
|
|
39
38
|
if (options) {
|
|
40
39
|
const observer = new MutationObserver(
|
|
@@ -69,14 +68,23 @@ var createElement = (tagName, text, attrs) => {
|
|
|
69
68
|
var customElements = {
|
|
70
69
|
define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)
|
|
71
70
|
};
|
|
71
|
+
var declarativeShadowRoot = (style, slot = "<slot></slot>") => `<template shadowrootmode="open">${slot}<style>${style}</style></template>`;
|
|
72
72
|
|
|
73
73
|
// u-tabs.ts
|
|
74
|
+
var UHTMLTabsStyle = DISPLAY_BLOCK;
|
|
75
|
+
var UHTMLTabListStyle = DISPLAY_BLOCK;
|
|
76
|
+
var UHTMLTabPanelStyle = DISPLAY_BLOCK;
|
|
77
|
+
var UHTMLTabStyle = ":host(:not([hidden])) { cursor: pointer; display: inline-block }";
|
|
78
|
+
var UHTMLTabsShadowRoot = declarativeShadowRoot(UHTMLTabsStyle);
|
|
79
|
+
var UHTMLTabListShadowRoot = declarativeShadowRoot(UHTMLTabListStyle);
|
|
80
|
+
var UHTMLTabShadowRoot = declarativeShadowRoot(UHTMLTabStyle);
|
|
81
|
+
var UHTMLTabPanelShadowRoot = declarativeShadowRoot(UHTMLTabPanelStyle);
|
|
74
82
|
var ARIA_CONTROLS = "aria-controls";
|
|
75
83
|
var ARIA_SELECTED = "aria-selected";
|
|
76
84
|
var UHTMLTabsElement = class extends UHTMLElement {
|
|
77
85
|
constructor() {
|
|
78
86
|
super();
|
|
79
|
-
attachStyle(this,
|
|
87
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabsStyle);
|
|
80
88
|
}
|
|
81
89
|
get tabList() {
|
|
82
90
|
return queryWithoutNested("u-tablist", this)[0] || null;
|
|
@@ -97,7 +105,7 @@ var UHTMLTabsElement = class extends UHTMLElement {
|
|
|
97
105
|
var UHTMLTabListElement = class extends UHTMLElement {
|
|
98
106
|
constructor() {
|
|
99
107
|
super();
|
|
100
|
-
attachStyle(this,
|
|
108
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabListStyle);
|
|
101
109
|
}
|
|
102
110
|
connectedCallback() {
|
|
103
111
|
attr(this, "role", "tablist");
|
|
@@ -160,10 +168,7 @@ var UHTMLTabElement = class extends UHTMLElement {
|
|
|
160
168
|
}
|
|
161
169
|
constructor() {
|
|
162
170
|
super();
|
|
163
|
-
attachStyle(
|
|
164
|
-
this,
|
|
165
|
-
":host(:not([hidden])) { cursor: pointer; display: inline-block }"
|
|
166
|
-
);
|
|
171
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabStyle);
|
|
167
172
|
}
|
|
168
173
|
connectedCallback() {
|
|
169
174
|
attr(this, "role", "tab");
|
|
@@ -180,8 +185,8 @@ var UHTMLTabElement = class extends UHTMLElement {
|
|
|
180
185
|
const panel = getPanel(tab, panels[index]);
|
|
181
186
|
tab.tabIndex = tab === this ? 0 : -1;
|
|
182
187
|
attr(tab, ARIA_SELECTED, `${tab === this}`);
|
|
188
|
+
attr(tab, ARIA_CONTROLS, (panel == null ? void 0 : panel.id) || null);
|
|
183
189
|
if (panel) panel.hidden = panel !== nextPanel;
|
|
184
|
-
if (panel) attr(tab, ARIA_CONTROLS, panel.id);
|
|
185
190
|
});
|
|
186
191
|
SKIP_ATTR_CHANGE = false;
|
|
187
192
|
}
|
|
@@ -215,7 +220,7 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
|
|
|
215
220
|
}
|
|
216
221
|
constructor() {
|
|
217
222
|
super();
|
|
218
|
-
attachStyle(this,
|
|
223
|
+
if (!this.shadowRoot) attachStyle(this, UHTMLTabPanelStyle);
|
|
219
224
|
}
|
|
220
225
|
connectedCallback() {
|
|
221
226
|
attr(this, "role", "tabpanel");
|
|
@@ -223,9 +228,9 @@ var UHTMLTabPanelElement = class extends UHTMLElement {
|
|
|
223
228
|
this.attributeChangedCallback();
|
|
224
229
|
}
|
|
225
230
|
attributeChangedCallback() {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
231
|
+
const hidden = this.hidden;
|
|
232
|
+
attr(this, "aria-hidden", `${hidden}`);
|
|
233
|
+
attr(this, "tabindex", hidden || isFocusable(this.firstChild) ? null : "0");
|
|
229
234
|
}
|
|
230
235
|
get tabsElement() {
|
|
231
236
|
return this.closest("u-tabs");
|
|
@@ -251,4 +256,4 @@ customElements.define("u-tablist", UHTMLTabListElement);
|
|
|
251
256
|
customElements.define("u-tab", UHTMLTabElement);
|
|
252
257
|
customElements.define("u-tabpanel", UHTMLTabPanelElement);
|
|
253
258
|
|
|
254
|
-
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement };
|
|
259
|
+
export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabListShadowRoot, UHTMLTabListStyle, UHTMLTabPanelElement, UHTMLTabPanelShadowRoot, UHTMLTabPanelStyle, UHTMLTabShadowRoot, UHTMLTabStyle, UHTMLTabsElement, UHTMLTabsShadowRoot, UHTMLTabsStyle };
|
|
@@ -6,6 +6,45 @@
|
|
|
6
6
|
"kind": "javascript-module",
|
|
7
7
|
"path": "u-tabs.ts",
|
|
8
8
|
"declarations": [
|
|
9
|
+
{
|
|
10
|
+
"kind": "variable",
|
|
11
|
+
"name": "UHTMLTabsStyle",
|
|
12
|
+
"default": "DISPLAY_BLOCK"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"kind": "variable",
|
|
16
|
+
"name": "UHTMLTabListStyle",
|
|
17
|
+
"default": "DISPLAY_BLOCK"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"kind": "variable",
|
|
21
|
+
"name": "UHTMLTabPanelStyle",
|
|
22
|
+
"default": "DISPLAY_BLOCK"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"kind": "variable",
|
|
26
|
+
"name": "UHTMLTabStyle",
|
|
27
|
+
"type": {
|
|
28
|
+
"text": "string"
|
|
29
|
+
},
|
|
30
|
+
"default": "\":host(:not([hidden])) { cursor: pointer; display: inline-block }\""
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"kind": "variable",
|
|
34
|
+
"name": "UHTMLTabsShadowRoot"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "variable",
|
|
38
|
+
"name": "UHTMLTabListShadowRoot"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"kind": "variable",
|
|
42
|
+
"name": "UHTMLTabShadowRoot"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"kind": "variable",
|
|
46
|
+
"name": "UHTMLTabPanelShadowRoot"
|
|
47
|
+
},
|
|
9
48
|
{
|
|
10
49
|
"kind": "class",
|
|
11
50
|
"description": "The `<u-tabs>` HTML element is used to group a `<u-tablist>` and several `<u-tabpanel>` elements.\nNo MDN reference available.",
|
|
@@ -193,6 +232,70 @@
|
|
|
193
232
|
}
|
|
194
233
|
],
|
|
195
234
|
"exports": [
|
|
235
|
+
{
|
|
236
|
+
"kind": "js",
|
|
237
|
+
"name": "UHTMLTabsStyle",
|
|
238
|
+
"declaration": {
|
|
239
|
+
"name": "UHTMLTabsStyle",
|
|
240
|
+
"module": "u-tabs.ts"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"kind": "js",
|
|
245
|
+
"name": "UHTMLTabListStyle",
|
|
246
|
+
"declaration": {
|
|
247
|
+
"name": "UHTMLTabListStyle",
|
|
248
|
+
"module": "u-tabs.ts"
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"kind": "js",
|
|
253
|
+
"name": "UHTMLTabPanelStyle",
|
|
254
|
+
"declaration": {
|
|
255
|
+
"name": "UHTMLTabPanelStyle",
|
|
256
|
+
"module": "u-tabs.ts"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"kind": "js",
|
|
261
|
+
"name": "UHTMLTabStyle",
|
|
262
|
+
"declaration": {
|
|
263
|
+
"name": "UHTMLTabStyle",
|
|
264
|
+
"module": "u-tabs.ts"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"kind": "js",
|
|
269
|
+
"name": "UHTMLTabsShadowRoot",
|
|
270
|
+
"declaration": {
|
|
271
|
+
"name": "UHTMLTabsShadowRoot",
|
|
272
|
+
"module": "u-tabs.ts"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"kind": "js",
|
|
277
|
+
"name": "UHTMLTabListShadowRoot",
|
|
278
|
+
"declaration": {
|
|
279
|
+
"name": "UHTMLTabListShadowRoot",
|
|
280
|
+
"module": "u-tabs.ts"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"kind": "js",
|
|
285
|
+
"name": "UHTMLTabShadowRoot",
|
|
286
|
+
"declaration": {
|
|
287
|
+
"name": "UHTMLTabShadowRoot",
|
|
288
|
+
"module": "u-tabs.ts"
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"kind": "js",
|
|
293
|
+
"name": "UHTMLTabPanelShadowRoot",
|
|
294
|
+
"declaration": {
|
|
295
|
+
"name": "UHTMLTabPanelShadowRoot",
|
|
296
|
+
"module": "u-tabs.ts"
|
|
297
|
+
}
|
|
298
|
+
},
|
|
196
299
|
{
|
|
197
300
|
"kind": "js",
|
|
198
301
|
"name": "UHTMLTabsElement",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@u-elements/u-tabs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "HTML tags, just truly accessible",
|
|
6
6
|
"homepage": "https://u-elements.github.io/u-elements/",
|
|
@@ -9,6 +9,18 @@
|
|
|
9
9
|
"module": "dist/u-tabs.js",
|
|
10
10
|
"types": "dist/u-tabs.d.ts",
|
|
11
11
|
"customElements": "dist/u-tabs.manifest.json",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": {
|
|
15
|
+
"types": "./dist/u-tabs.d.ts",
|
|
16
|
+
"default": "./dist/u-tabs.js"
|
|
17
|
+
},
|
|
18
|
+
"require": {
|
|
19
|
+
"types": "./dist/u-tabs.d.cts",
|
|
20
|
+
"default": "./dist/u-tabs.cjs"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
12
24
|
"files": [
|
|
13
25
|
"dist"
|
|
14
26
|
],
|