@swisspost/design-system-components 10.0.0-next.51 → 10.0.0-next.52
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/cjs/focusable-D6snQLqS.js +5020 -0
- package/dist/cjs/get-focusable-children-Bx63XUQg.js +67 -0
- package/dist/cjs/{index-CpDyH7Ww.js → index-Cb8CTrOz.js} +13 -9
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-D1eOXW8H.js → package-B7Ni5Tuu.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/post-avatar.cjs.entry.js +2 -2
- package/dist/cjs/post-back-to-top.cjs.entry.js +3 -3
- package/dist/cjs/post-banner.cjs.entry.js +2 -2
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +4 -4
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +12 -11
- package/dist/cjs/post-card-control.cjs.entry.js +2 -2
- package/dist/cjs/post-closebutton_15.cjs.entry.js +128 -110
- package/dist/cjs/post-collapsible_2.cjs.entry.js +2 -2
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-footer.cjs.entry.js +2 -2
- package/dist/cjs/post-linkarea.cjs.entry.js +2 -2
- package/dist/cjs/post-popover-trigger.cjs.entry.js +109 -0
- package/dist/cjs/post-popover.cjs.entry.js +22 -104
- package/dist/cjs/post-rating.cjs.entry.js +4 -8
- package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
- package/dist/cjs/post-tabs.cjs.entry.js +3 -3
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +6 -5022
- package/dist/cjs/post-tooltip.cjs.entry.js +3 -3
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +1 -1
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +1 -1
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +34 -13
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +9 -2
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
- package/dist/collection/components/post-menu/post-menu.js +29 -33
- package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- package/dist/collection/components/post-popover/post-popover.js +21 -77
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.css +1 -0
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +145 -0
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +153 -32
- package/dist/collection/components/post-rating/post-rating.js +4 -9
- package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +1 -1
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +2 -2
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.css +1 -1
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
- package/dist/collection/utils/get-focusable-children.js +34 -5
- package/dist/component-names.json +1 -0
- package/dist/components/focusable.js +5018 -0
- package/dist/components/get-focusable-children.js +35 -6
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +1 -1
- package/dist/components/post-back-to-top.js +1 -1
- package/dist/components/post-breadcrumb-item2.js +1 -1
- package/dist/components/post-breadcrumbs.js +14 -11
- package/dist/components/post-closebutton2.js +1 -1
- package/dist/components/post-mainnavigation.js +1 -1
- package/dist/components/post-megadropdown-trigger.js +1 -1
- package/dist/components/post-megadropdown.js +10 -3
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +1 -1
- package/dist/components/post-menu2.js +27 -31
- package/dist/components/post-popover-trigger.d.ts +11 -0
- package/dist/components/post-popover-trigger.js +132 -0
- package/dist/components/post-popover.js +17 -99
- package/dist/components/post-popovercontainer2.js +82 -32
- package/dist/components/post-rating.js +2 -6
- package/dist/components/post-tab-header.js +1 -1
- package/dist/components/post-tab-panel.js +1 -1
- package/dist/components/post-tabs.js +1 -1
- package/dist/components/post-togglebutton.js +1 -1
- package/dist/components/post-tooltip-trigger.js +6 -5022
- package/dist/components/post-tooltip.js +1 -1
- package/dist/components/react/index.js +1 -1
- package/dist/components/react/{p-BVVgwjV0.js → p-B35HsBxh.js} +83 -33
- package/dist/components/react/{p-BnCGzVcR.js → p-BL8WEb6K.js} +3 -3
- package/dist/components/react/p-BVXiQdHq.js +64 -0
- package/dist/components/react/{p-BsuTiCyd.js → p-By7jk8fL.js} +1 -1
- package/dist/components/react/{p-BIslNfKd.js → p-C4zJkcAb.js} +2 -2
- package/dist/components/react/{p-D7N0KPNm.js → p-CQhnMei5.js} +2 -2
- package/dist/components/react/{p-Cpz7bn7D.js → p-CrEdcwed.js} +5 -5
- package/dist/components/react/{p-DC3aZ-Qt.js → p-Dl8clYLV.js} +3 -3
- package/dist/components/react/{p-WA0BpGMu.js → p-DnhWNGb-.js} +1 -1
- package/dist/components/react/{p-BcpJoB81.js → p-DnqwBx5e.js} +1 -1
- package/dist/components/react/{p-BRBszIzq.js → p-Due3yZDR.js} +30 -34
- package/dist/components/react/p-HygIVKXC.js +5018 -0
- package/dist/components/react/p-kxuZ8mOU.js +3 -0
- package/dist/components/react/{p-2qJcvMt7.js → p-lC8Sp5tg.js} +1 -1
- package/dist/components/react/post-accordion-item.js +1 -1
- package/dist/components/react/post-accordion.js +1 -1
- package/dist/components/react/post-avatar.js +1 -1
- package/dist/components/react/post-back-to-top.js +3 -3
- package/dist/components/react/post-banner.js +1 -1
- package/dist/components/react/post-breadcrumb-item.js +1 -1
- package/dist/components/react/post-breadcrumbs.js +21 -18
- package/dist/components/react/post-card-control.js +2 -2
- package/dist/components/react/post-closebutton.js +1 -1
- package/dist/components/react/post-collapsible-trigger.js +1 -1
- package/dist/components/react/post-collapsible.js +1 -1
- package/dist/components/react/post-footer.js +6 -6
- package/dist/components/react/post-header.js +2 -2
- package/dist/components/react/post-icon.js +1 -1
- package/dist/components/react/post-language-option.js +1 -1
- package/dist/components/react/post-language-switch.js +5 -5
- package/dist/components/react/post-linkarea.js +1 -1
- package/dist/components/react/post-list-item.js +1 -1
- package/dist/components/react/post-list.js +1 -1
- package/dist/components/react/post-logo.js +1 -1
- package/dist/components/react/post-mainnavigation.js +3 -3
- package/dist/components/react/post-megadropdown-trigger.js +2 -2
- package/dist/components/react/post-megadropdown.js +12 -5
- package/dist/components/react/post-menu-item.js +1 -1
- package/dist/components/react/post-menu-trigger.js +1 -1
- package/dist/components/react/post-menu.js +1 -1
- package/dist/components/react/post-popover-trigger.d.ts +11 -0
- package/dist/components/react/post-popover-trigger.js +133 -0
- package/dist/components/react/post-popover.js +21 -103
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-rating.js +4 -8
- package/dist/components/react/post-tab-header.js +2 -2
- package/dist/components/react/post-tab-panel.js +2 -2
- package/dist/components/react/post-tabs.js +2 -2
- package/dist/components/react/post-togglebutton.js +2 -2
- package/dist/components/react/post-tooltip-trigger.js +4 -5020
- package/dist/components/react/post-tooltip.js +3 -3
- package/dist/docs.json +206 -42
- package/dist/esm/focusable-HygIVKXC.js +5018 -0
- package/dist/esm/get-focusable-children-D9ZHp2FP.js +64 -0
- package/dist/esm/{index-C8a0ddDa.js → index-CFNKgUjL.js} +13 -9
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-kxuZ8mOU.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +3 -3
- package/dist/esm/post-avatar.entry.js +2 -2
- package/dist/esm/post-back-to-top.entry.js +3 -3
- package/dist/esm/post-banner.entry.js +2 -2
- package/dist/esm/post-breadcrumb-item_2.entry.js +4 -4
- package/dist/esm/post-breadcrumbs.entry.js +13 -12
- package/dist/esm/post-card-control.entry.js +2 -2
- package/dist/esm/post-closebutton_15.entry.js +125 -107
- package/dist/esm/post-collapsible_2.entry.js +2 -2
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-footer.entry.js +2 -2
- package/dist/esm/post-linkarea.entry.js +2 -2
- package/dist/esm/post-popover-trigger.entry.js +107 -0
- package/dist/esm/post-popover.entry.js +19 -101
- package/dist/esm/post-rating.entry.js +4 -8
- package/dist/esm/post-tab-header.entry.js +3 -3
- package/dist/esm/post-tab-panel.entry.js +3 -3
- package/dist/esm/post-tabs.entry.js +3 -3
- package/dist/esm/post-tooltip-trigger.entry.js +5 -5021
- package/dist/esm/post-tooltip.entry.js +3 -3
- package/dist/post-components/{p-2440cba5.entry.js → p-1096ed89.entry.js} +1 -1
- package/dist/post-components/{p-b871aa1b.entry.js → p-12183522.entry.js} +1 -1
- package/dist/post-components/{p-ef38c78d.entry.js → p-173dcaab.entry.js} +1 -1
- package/dist/post-components/p-1d7418ce.entry.js +1 -0
- package/dist/post-components/p-244a47db.entry.js +1 -0
- package/dist/post-components/p-264c5f97.entry.js +1 -0
- package/dist/post-components/{p-2b003617.entry.js → p-290ea78f.entry.js} +1 -1
- package/dist/post-components/p-2f8cad6c.entry.js +1 -0
- package/dist/post-components/p-47e43863.entry.js +1 -0
- package/dist/post-components/{p-509ae720.entry.js → p-50a5c57f.entry.js} +1 -1
- package/dist/post-components/p-6d8f95de.entry.js +1 -0
- package/dist/post-components/p-72e56701.entry.js +1 -0
- package/dist/post-components/p-81d78878.entry.js +1 -0
- package/dist/post-components/p-8a6467b4.entry.js +1 -0
- package/dist/post-components/{p-759510e5.entry.js → p-9e461598.entry.js} +1 -1
- package/dist/post-components/p-CFNKgUjL.js +2 -0
- package/dist/post-components/p-D9ZHp2FP.js +1 -0
- package/dist/post-components/p-HygIVKXC.js +1 -0
- package/dist/post-components/p-a92b241a.entry.js +1 -0
- package/dist/post-components/{p-e764835b.entry.js → p-c84e7f02.entry.js} +1 -1
- package/dist/post-components/{p-0b1143d4.entry.js → p-e37d9a31.entry.js} +1 -1
- package/dist/post-components/p-f62f52d7.entry.js +1 -0
- package/dist/post-components/p-kxuZ8mOU.js +1 -0
- package/dist/post-components/post-components.css +1 -1
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -1
- package/dist/types/components/post-menu/post-menu.d.ts +4 -3
- package/dist/types/components/post-popover/post-popover.d.ts +5 -10
- package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +37 -0
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +34 -5
- package/dist/types/components.d.ts +66 -13
- package/dist/types/utils/get-focusable-children.d.ts +1 -0
- package/hydrate/index.js +6707 -6594
- package/hydrate/index.mjs +6707 -6594
- package/package.json +7 -7
- package/dist/components/react/p-C35MCWIp.js +0 -35
- package/dist/components/react/p-DgSkXfqW.js +0 -3
- package/dist/esm/package-DgSkXfqW.js +0 -3
- package/dist/post-components/p-017fbd63.entry.js +0 -1
- package/dist/post-components/p-2c1e0e21.entry.js +0 -1
- package/dist/post-components/p-C8a0ddDa.js +0 -2
- package/dist/post-components/p-DgSkXfqW.js +0 -1
- package/dist/post-components/p-a9d4dc7f.entry.js +0 -1
- package/dist/post-components/p-d0fea1d7.entry.js +0 -1
- package/dist/post-components/p-d25fc2d8.entry.js +0 -1
- package/dist/post-components/p-d377069a.entry.js +0 -1
- package/dist/post-components/p-ea71d9fd.entry.js +0 -1
- package/dist/post-components/p-efa44b64.entry.js +0 -1
- package/dist/post-components/p-f86fb192.entry.js +0 -1
- package/dist/post-components/p-feed36d6.entry.js +0 -1
|
@@ -18,10 +18,6 @@ export class PostRating {
|
|
|
18
18
|
}
|
|
19
19
|
constructor() {
|
|
20
20
|
this.hasChanged = false;
|
|
21
|
-
/**
|
|
22
|
-
* Defines a hidden label for the component.
|
|
23
|
-
*/
|
|
24
|
-
this.label = 'Rating';
|
|
25
21
|
/**
|
|
26
22
|
* Defines the total amount of stars rendered in the component.
|
|
27
23
|
*/
|
|
@@ -91,13 +87,13 @@ export class PostRating {
|
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
render() {
|
|
94
|
-
return (h(Host, { key: '
|
|
90
|
+
return (h(Host, { key: '9089061145d80c4791a56580d107d6fab88f1d6d', "data-version": version }, h("div", { key: '81f0ba286541aecf6ddfd2e2fa113526a02abdcd', role: "slider", class: "rating", tabindex: "0", "aria-label": this.label, "aria-valuemin": "0", "aria-valuemax": this.stars, "aria-valuenow": this.currentRating, "aria-valuetext": `${this.currentRating} / ${this.stars}`, "aria-readonly": this.readonly ? 'true' : 'false', onKeyDown: this.keydownHandler, onBlur: this.blurHandler }, Array.from({ length: this.stars }).map((v, i) => (h("div", { key: `star-${v}`, "aria-hidden": "true", class: {
|
|
95
91
|
'star': true,
|
|
96
92
|
'before-hover': i < this.hoveredIndex,
|
|
97
93
|
'active': i < Math.round(this.currentRating),
|
|
98
94
|
'hover': i === this.hoveredIndex,
|
|
99
95
|
'after-active': i > this.hoveredIndex && i < this.currentRating,
|
|
100
|
-
}, onClick: () => this.update(i + 1), onMouseEnter: e => this.hoverHandler(i, e), onMouseLeave: e => this.hoverHandler(i, e) }, h("post-icon", { name: "
|
|
96
|
+
}, onClick: () => this.update(i + 1), onMouseEnter: e => this.hoverHandler(i, e), onMouseLeave: e => this.hoverHandler(i, e) }, h("post-icon", { name: "favoritestar", class: "stroke" }), h("post-icon", { name: "favoritestar-solid", class: "fill" })))))));
|
|
101
97
|
}
|
|
102
98
|
static get is() { return "post-rating"; }
|
|
103
99
|
static get encapsulation() { return "shadow"; }
|
|
@@ -122,7 +118,7 @@ export class PostRating {
|
|
|
122
118
|
"resolved": "string",
|
|
123
119
|
"references": {}
|
|
124
120
|
},
|
|
125
|
-
"required":
|
|
121
|
+
"required": true,
|
|
126
122
|
"optional": false,
|
|
127
123
|
"docs": {
|
|
128
124
|
"tags": [],
|
|
@@ -130,8 +126,7 @@ export class PostRating {
|
|
|
130
126
|
},
|
|
131
127
|
"getter": false,
|
|
132
128
|
"setter": false,
|
|
133
|
-
"reflect": false
|
|
134
|
-
"defaultValue": "'Rating'"
|
|
129
|
+
"reflect": false
|
|
135
130
|
},
|
|
136
131
|
"stars": {
|
|
137
132
|
"type": "number",
|
|
@@ -13,7 +13,7 @@ export class PostTabHeader {
|
|
|
13
13
|
this.tabId = `tab-${this.host.id || nanoid(6)}`;
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '5d9cfad4e62285e8b64a5f597e3d38d451dd493f', id: this.tabId, role: "tab", "data-version": version, "aria-selected": "false", tabindex: "-1", class: "tab-title", slot: "tabs" }, h("slot", { key: '679874586fb55510af17838ef73403c8b7a33ddc' })));
|
|
17
17
|
}
|
|
18
18
|
static get is() { return "post-tab-header"; }
|
|
19
19
|
static get encapsulation() { return "shadow"; }
|
|
@@ -15,7 +15,7 @@ export class PostTabPanel {
|
|
|
15
15
|
this.panelId = `panel-${this.host.id || nanoid(6)}`;
|
|
16
16
|
}
|
|
17
17
|
render() {
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: '5d6c56e41ac61b10dd2560482bc5e4edab394742', "data-version": version, id: this.panelId, role: "tabpanel" }, h("slot", { key: 'ec7be772a0d3f883388742460c825dce0f0e44e8' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "post-tab-panel"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -145,7 +145,7 @@ export class PostTabs {
|
|
|
145
145
|
nextTab.focus();
|
|
146
146
|
}
|
|
147
147
|
render() {
|
|
148
|
-
return (h(Host, { key: '
|
|
148
|
+
return (h(Host, { key: '3e352bc059be99242f612a49bdea71fd065d67b0', "data-version": version }, h("div", { key: '34d608d7af834fd4fb3106ac3fb90100a9b73138', class: "tabs-wrapper", part: "tabs" }, h("div", { key: '102e75b53d3e485a185d391f84755142d8690de6', class: "tabs", role: "tablist" }, h("slot", { key: '03624f2944dfd37d3eb3403772d430a6e053e676', name: "tabs", onSlotchange: () => this.enableTabs() }))), h("div", { key: '8c7c956b831ef19fb093122ca35c14b5a015dad3', class: "tab-content", part: "content" }, h("slot", { key: '8fad35a2a6d26814f513c422b4fcbe98aae7bd22', onSlotchange: () => this.moveMisplacedTabs() }))));
|
|
149
149
|
}
|
|
150
150
|
static get is() { return "post-tabs"; }
|
|
151
151
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,7 +26,7 @@ export class PostTogglebutton {
|
|
|
26
26
|
this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
|
|
27
27
|
}
|
|
28
28
|
render() {
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: 'f56832bfbfacc23923ac06d8455fffcdafa8a7ec', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '7adc9ed579b6badeb08c7599ceb95892d68f027f' })));
|
|
30
30
|
}
|
|
31
31
|
static get is() { return "post-togglebutton"; }
|
|
32
32
|
static get encapsulation() { return "shadow"; }
|
|
@@ -64,7 +64,7 @@ export class PostTooltip {
|
|
|
64
64
|
}
|
|
65
65
|
render() {
|
|
66
66
|
const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
|
|
67
|
-
return (h(Host, { key: '
|
|
67
|
+
return (h(Host, { key: '0755eeba6f7be3cd0d94138369355df9767ca541', "data-version": version }, h("post-popovercontainer", { key: '1e1d71a4878e60f9e20b34b5f12588e09a8c7716', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, animation: this.animation, placement: this.placement, onPostToggle: e => this.handleToggle(e), ref: (el) => (this.popoverRef = el) }, h("slot", { key: '25a69d406a91cb0ba8d4c5fadee44d937c84a266' }))));
|
|
68
68
|
}
|
|
69
69
|
static get is() { return "post-tooltip"; }
|
|
70
70
|
static get encapsulation() { return "shadow"; }
|
|
@@ -91,7 +91,7 @@ export class PostTooltip {
|
|
|
91
91
|
"Placement": {
|
|
92
92
|
"location": "import",
|
|
93
93
|
"path": "@floating-ui/dom",
|
|
94
|
-
"id": "../../node_modules/.pnpm/@floating-ui+dom@1.7.
|
|
94
|
+
"id": "../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts::Placement"
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
post-tooltip-trigger{vertical-align:top}
|
|
1
|
+
post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}
|
|
@@ -169,7 +169,7 @@ export class PostTooltipTrigger {
|
|
|
169
169
|
this.tooltip?.hide();
|
|
170
170
|
}
|
|
171
171
|
render() {
|
|
172
|
-
return (h(Host, { key: '
|
|
172
|
+
return (h(Host, { key: 'e545db2bc489025c51e51f680f4139b508ef09f8', "data-version": version }, h("slot", { key: '90abc548bccbc51d233001c98d289fd60599c482', onSlotchange: () => this.handleSlotChange() })));
|
|
173
173
|
}
|
|
174
174
|
static get is() { return "post-tooltip-trigger"; }
|
|
175
175
|
static get encapsulation() { return "shadow"; }
|
|
@@ -25,9 +25,38 @@ const focusDisablingSelector = `:where(${[
|
|
|
25
25
|
].join(',')})`;
|
|
26
26
|
export function getFocusableChildren(element) {
|
|
27
27
|
const focusableChildren = element.querySelectorAll(`${focusableSelector}:not(${focusDisablingSelector})`);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
return Array.from(focusableChildren).filter(isVisible);
|
|
29
|
+
}
|
|
30
|
+
// Searches deeper accross shadowDom
|
|
31
|
+
export function getDeepFocusableChildren(element) {
|
|
32
|
+
const results = [];
|
|
33
|
+
function traverse(node) {
|
|
34
|
+
if (isElementFocusable(node)) {
|
|
35
|
+
results.push(node);
|
|
36
|
+
}
|
|
37
|
+
if (node instanceof HTMLElement && node.shadowRoot) {
|
|
38
|
+
traverse(node.shadowRoot);
|
|
39
|
+
}
|
|
40
|
+
for (const child of Array.from(node.children)) {
|
|
41
|
+
traverse(child);
|
|
42
|
+
}
|
|
43
|
+
if (node instanceof HTMLElement) {
|
|
44
|
+
for (const slot of Array.from(node.querySelectorAll('slot'))) {
|
|
45
|
+
for (const el of slot.assignedElements({ flatten: true })) {
|
|
46
|
+
traverse(el);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
traverse(element);
|
|
52
|
+
return results;
|
|
53
|
+
}
|
|
54
|
+
function isVisible(el) {
|
|
55
|
+
const style = window.getComputedStyle(el.parentElement);
|
|
56
|
+
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
57
|
+
}
|
|
58
|
+
function isElementFocusable(node) {
|
|
59
|
+
return (node instanceof HTMLElement &&
|
|
60
|
+
node.matches(`${focusableSelector}:not(${focusDisablingSelector})`) &&
|
|
61
|
+
isVisible(node));
|
|
33
62
|
}
|