@swisspost/design-system-components 10.0.0-next.50 → 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-qtH-QrKv.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 +5 -5
- 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.css +1 -1
- 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 +2 -2
- 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-CDsgZHvX.js → p-B35HsBxh.js} +83 -33
- package/dist/components/react/{p-BuKAaKXE.js → p-BL8WEb6K.js} +3 -3
- package/dist/components/react/p-BVXiQdHq.js +64 -0
- package/dist/components/react/{p-BmpB1vs4.js → p-By7jk8fL.js} +1 -1
- package/dist/components/react/{p-BXPcgIqO.js → p-C4zJkcAb.js} +3 -3
- package/dist/components/react/{p-U9MTjvRU.js → p-CQhnMei5.js} +2 -2
- package/dist/components/react/{p-BlOv-NDA.js → p-CrEdcwed.js} +5 -5
- package/dist/components/react/{p-DnHwlsBi.js → p-Dl8clYLV.js} +3 -3
- package/dist/components/react/{p-B9Y7UQKI.js → p-DnhWNGb-.js} +1 -1
- package/dist/components/react/{p-BcVKzjda.js → p-DnqwBx5e.js} +1 -1
- package/dist/components/react/{p-Bw6vnK1I.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-B392lG2N.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 +5 -5
- 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-1253185c.entry.js → p-1096ed89.entry.js} +1 -1
- package/dist/post-components/{p-0a4d9f33.entry.js → p-12183522.entry.js} +1 -1
- package/dist/post-components/{p-b82e7cbe.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-e7fbb03d.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-5ddde390.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-15e0d4b8.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-f9d044a3.entry.js → p-c84e7f02.entry.js} +1 -1
- package/dist/post-components/{p-048d2c1a.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 +6708 -6595
- package/hydrate/index.mjs +6708 -6595
- package/package.json +7 -7
- package/dist/components/react/p-C35MCWIp.js +0 -35
- package/dist/components/react/p-DimG3b3P.js +0 -3
- package/dist/esm/package-DimG3b3P.js +0 -3
- package/dist/post-components/p-11abb64f.entry.js +0 -1
- package/dist/post-components/p-1d4252ba.entry.js +0 -1
- package/dist/post-components/p-3d30eafa.entry.js +0 -1
- package/dist/post-components/p-4114fc83.entry.js +0 -1
- package/dist/post-components/p-89411986.entry.js +0 -1
- package/dist/post-components/p-9bbf7271.entry.js +0 -1
- package/dist/post-components/p-C8a0ddDa.js +0 -2
- package/dist/post-components/p-DimG3b3P.js +0 -1
- package/dist/post-components/p-b034d196.entry.js +0 -1
- package/dist/post-components/p-b36c129a.entry.js +0 -1
- package/dist/post-components/p-f1d53256.entry.js +0 -1
- package/dist/post-components/p-f97f3a19.entry.js +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index$1 = require('./index-Cb8CTrOz.js');
|
|
4
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
5
|
+
var focusable = require('./focusable-D6snQLqS.js');
|
|
6
|
+
var index = require('./index-DtvYdwe1.js');
|
|
7
|
+
require('./breakpoints-CEkeixld.js');
|
|
8
|
+
|
|
9
|
+
const postPopoverTriggerCss = ":host{cursor:pointer}";
|
|
10
|
+
|
|
11
|
+
const PostPopoverTrigger = class {
|
|
12
|
+
syncAriaExpanded(newValue) {
|
|
13
|
+
this.ariaExpanded = newValue;
|
|
14
|
+
if (this.trigger) {
|
|
15
|
+
this.trigger.setAttribute('aria-expanded', String(newValue));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Watch for changes to the `for` property to validate its type and ensure it is a string.
|
|
20
|
+
* @param forValue - The new value of the `for` property.
|
|
21
|
+
*/
|
|
22
|
+
validateFor() {
|
|
23
|
+
index.checkRequiredAndType(this, 'for', 'string');
|
|
24
|
+
}
|
|
25
|
+
// Gets the associated popover element to the trigger based on 'for'
|
|
26
|
+
get popover() {
|
|
27
|
+
const ref = document.getElementById(this.for);
|
|
28
|
+
return ref?.localName === 'post-popover' ? ref : null;
|
|
29
|
+
}
|
|
30
|
+
setupTrigger() {
|
|
31
|
+
this.trigger = this.host.querySelector('*');
|
|
32
|
+
if (this.trigger) {
|
|
33
|
+
this.trigger.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
34
|
+
// check if its not focusable and add aria role and tabindex
|
|
35
|
+
if (!focusable.isFocusable(this.trigger)) {
|
|
36
|
+
this.trigger.setAttribute('tabindex', '0');
|
|
37
|
+
this.trigger.setAttribute('role', 'button');
|
|
38
|
+
}
|
|
39
|
+
// Set aria attributes
|
|
40
|
+
this.trigger.setAttribute('aria-haspopup', 'true');
|
|
41
|
+
this.trigger.setAttribute('aria-controls', this.for);
|
|
42
|
+
this.trigger.addEventListener('click', this.boundHandleToggle);
|
|
43
|
+
this.trigger.addEventListener('keydown', this.boundHandleKeyDown);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.error('No content found in the post-popover-trigger slot. Please insert a focusable element or content that can receive focus.');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
handleToggle() {
|
|
50
|
+
const popoverEl = this.popover;
|
|
51
|
+
if (popoverEl) {
|
|
52
|
+
popoverEl.toggle(this.trigger);
|
|
53
|
+
this.focusTrigger();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.warn(`No post-popover found with ID: ${this.for}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
focusTrigger() {
|
|
60
|
+
// Restores focus to the trigger
|
|
61
|
+
if (!this.popoverOpen && this.trigger) {
|
|
62
|
+
this.trigger.focus();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
constructor(hostRef) {
|
|
66
|
+
index$1.registerInstance(this, hostRef);
|
|
67
|
+
/**
|
|
68
|
+
* Manages the accessibility attribute `aria-expanded` to indicate whether the associated popover is expanded or collapsed.
|
|
69
|
+
*/
|
|
70
|
+
this.ariaExpanded = false;
|
|
71
|
+
/**
|
|
72
|
+
* Holds the state of the popover toggle
|
|
73
|
+
*/
|
|
74
|
+
this.popoverOpen = false;
|
|
75
|
+
this.handleKeyDown = (e) => {
|
|
76
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
this.handleToggle();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
this.boundHandleToggle = this.handleToggle.bind(this);
|
|
82
|
+
this.boundHandleKeyDown = this.handleKeyDown.bind(this);
|
|
83
|
+
this.boundHandlePostToggle = (event) => {
|
|
84
|
+
this.popoverOpen = event.detail.isOpen;
|
|
85
|
+
this.focusTrigger();
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
componentDidLoad() {
|
|
89
|
+
this.validateFor();
|
|
90
|
+
this.setupTrigger();
|
|
91
|
+
this.popover?.addEventListener('postToggle', this.boundHandlePostToggle);
|
|
92
|
+
}
|
|
93
|
+
disconnectedCallback() {
|
|
94
|
+
this.trigger.removeEventListener('click', this.boundHandleToggle);
|
|
95
|
+
this.trigger.removeEventListener('keydown', this.boundHandleKeyDown);
|
|
96
|
+
this.popover?.removeEventListener('postToggle', this.boundHandlePostToggle);
|
|
97
|
+
}
|
|
98
|
+
render() {
|
|
99
|
+
return (index$1.h(index$1.Host, { key: 'd7467aa400f407d76df06e8bbc84210e5f016073', "data-version": _package.version }, index$1.h("slot", { key: '618f3d14fb89b3ad3c101a58f8519c337d9f1721', onSlotchange: () => this.setupTrigger() })));
|
|
100
|
+
}
|
|
101
|
+
get host() { return index$1.getElement(this); }
|
|
102
|
+
static get watchers() { return {
|
|
103
|
+
"popoverOpen": ["syncAriaExpanded"],
|
|
104
|
+
"for": ["validateFor"]
|
|
105
|
+
}; }
|
|
106
|
+
};
|
|
107
|
+
PostPopoverTrigger.style = postPopoverTriggerCss;
|
|
108
|
+
|
|
109
|
+
exports.post_popover_trigger = PostPopoverTrigger;
|
|
@@ -1,69 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index
|
|
3
|
+
var index = require('./index-Cb8CTrOz.js');
|
|
4
4
|
var placement = require('./placement-qEFR9hmI.js');
|
|
5
|
-
var _package = require('./package-
|
|
6
|
-
var
|
|
7
|
-
var index = require('./index-DtvYdwe1.js');
|
|
8
|
-
|
|
9
|
-
function getAttributeObserver(attribute, handler) {
|
|
10
|
-
/**
|
|
11
|
-
* Handle attribute changes and childList changes from the observer
|
|
12
|
-
* @param {MutationRecord[]} mutationList
|
|
13
|
-
*/
|
|
14
|
-
function observerHandler(mutationList) {
|
|
15
|
-
mutationList.forEach(mutation => {
|
|
16
|
-
if (mutation.type === 'attributes' && mutation.attributeName === attribute) {
|
|
17
|
-
handler(mutation.target);
|
|
18
|
-
}
|
|
19
|
-
if (mutation.type === 'childList') {
|
|
20
|
-
mutation.addedNodes.forEach(node => {
|
|
21
|
-
if (node.nodeType === Node.ELEMENT_NODE &&
|
|
22
|
-
node.hasAttribute(attribute)) {
|
|
23
|
-
handler(node);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
// Initialize a mutation observer for patching accessibility features
|
|
30
|
-
return breakpoints.IS_BROWSER ? new MutationObserver(observerHandler) : null;
|
|
31
|
-
}
|
|
5
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
6
|
+
var getFocusableChildren = require('./get-focusable-children-Bx63XUQg.js');
|
|
7
|
+
var index$1 = require('./index-DtvYdwe1.js');
|
|
8
|
+
require('./breakpoints-CEkeixld.js');
|
|
32
9
|
|
|
33
10
|
const postPopoverCss = "*{box-sizing:border-box}:host{display:block}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{color:var(--post-current-fg);background-color:var(--post-current-bg);display:flex;align-items:self-start;padding:.5em;min-width:160px;max-width:min(var(--post-popover-max-width, 280px),100vw)}.popover-content{padding:.5em;flex-grow:1}";
|
|
34
11
|
|
|
35
|
-
/**
|
|
36
|
-
* @slot default - Slot for placing content inside the popover.
|
|
37
|
-
*/
|
|
38
|
-
let popoverInstances = 0;
|
|
39
|
-
const popoverTargetAttribute = 'data-popover-target';
|
|
40
|
-
const globalToggleHandler = (e) => {
|
|
41
|
-
let currentElement = e.target;
|
|
42
|
-
// Traverse up the DOM tree to find if any parent has the popover target attribute
|
|
43
|
-
while (currentElement && !currentElement.getAttribute(popoverTargetAttribute)) {
|
|
44
|
-
if (currentElement === document.body || !currentElement.parentElement)
|
|
45
|
-
break;
|
|
46
|
-
currentElement = currentElement.parentElement;
|
|
47
|
-
}
|
|
48
|
-
const popoverTarget = currentElement?.getAttribute(popoverTargetAttribute);
|
|
49
|
-
if (!popoverTarget || ('key' in e && e.key !== 'Enter'))
|
|
50
|
-
return;
|
|
51
|
-
const popover = document.getElementById(popoverTarget);
|
|
52
|
-
popover?.toggle(currentElement);
|
|
53
|
-
};
|
|
54
12
|
const PostPopover = class {
|
|
55
|
-
validatePlacement() {
|
|
56
|
-
index.checkEmptyOrOneOf(this, 'placement', placement.PLACEMENT_TYPES);
|
|
57
|
-
}
|
|
58
|
-
validateCloseButtonCaption() {
|
|
59
|
-
index.checkRequiredAndType(this, 'closeButtonCaption', 'string');
|
|
60
|
-
}
|
|
61
13
|
constructor(hostRef) {
|
|
62
|
-
index
|
|
63
|
-
// Initialize a mutation observer for patching accessibility features
|
|
64
|
-
this.triggerObserver = breakpoints.IS_BROWSER
|
|
65
|
-
? getAttributeObserver(popoverTargetAttribute, this.patchAccessibilityFeatures)
|
|
66
|
-
: null;
|
|
14
|
+
index.registerInstance(this, hostRef);
|
|
67
15
|
/**
|
|
68
16
|
* Defines the position of the popover relative to its trigger.
|
|
69
17
|
* Popovers are automatically flipped to the opposite side if there is not enough available space and are shifted towards the viewport if they would overlap edge boundaries.
|
|
@@ -75,78 +23,48 @@ const PostPopover = class {
|
|
|
75
23
|
*/
|
|
76
24
|
// eslint-disable-next-line @stencil-community/ban-default-true
|
|
77
25
|
this.arrow = true;
|
|
78
|
-
this.localBeforeToggleHandler = this.beforeToggleHandler.bind(this);
|
|
79
26
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.triggerObserver?.observe(document.body, {
|
|
86
|
-
subtree: true,
|
|
87
|
-
childList: true,
|
|
88
|
-
attributeFilter: [popoverTargetAttribute],
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
popoverInstances++;
|
|
92
|
-
this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
|
|
27
|
+
validatePlacement() {
|
|
28
|
+
index$1.checkEmptyOrOneOf(this, 'placement', placement.PLACEMENT_TYPES);
|
|
29
|
+
}
|
|
30
|
+
validateCloseButtonCaption() {
|
|
31
|
+
index$1.checkRequiredAndType(this, 'closeButtonCaption', 'string');
|
|
93
32
|
}
|
|
94
33
|
componentDidLoad() {
|
|
95
34
|
this.validatePlacement();
|
|
96
35
|
this.validateCloseButtonCaption();
|
|
97
|
-
this.popoverRef.addEventListener('beforetoggle', this.localBeforeToggleHandler);
|
|
98
|
-
}
|
|
99
|
-
disconnectedCallback() {
|
|
100
|
-
popoverInstances--;
|
|
101
|
-
// Remove listeners and observer after the last popover has been destructed
|
|
102
|
-
if (popoverInstances === 0) {
|
|
103
|
-
window.removeEventListener('click', globalToggleHandler);
|
|
104
|
-
window.removeEventListener('keydown', globalToggleHandler);
|
|
105
|
-
this.triggerObserver?.disconnect();
|
|
106
|
-
}
|
|
107
|
-
this.popoverRef.removeEventListener('beforetoggle', this.localBeforeToggleHandler);
|
|
108
|
-
this.triggers.forEach(trigger => trigger.removeAttribute('aria-expanded'));
|
|
109
36
|
}
|
|
110
37
|
/**
|
|
111
38
|
* Programmatically display the popover
|
|
112
|
-
* @param target
|
|
39
|
+
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
113
40
|
*/
|
|
114
41
|
async show(target) {
|
|
115
42
|
this.popoverRef.show(target);
|
|
116
|
-
console.log(this.popoverRef);
|
|
117
|
-
target.setAttribute('aria-expanded', 'true');
|
|
118
43
|
}
|
|
119
44
|
/**
|
|
120
45
|
* Programmatically hide this popover
|
|
121
46
|
*/
|
|
122
47
|
async hide() {
|
|
123
48
|
this.popoverRef.hide();
|
|
124
|
-
this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
|
|
125
49
|
}
|
|
126
50
|
/**
|
|
127
51
|
* Toggle popover display
|
|
128
|
-
* @param target
|
|
52
|
+
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
129
53
|
* @param force Pass true to always show or false to always hide
|
|
130
54
|
*/
|
|
131
55
|
async toggle(target, force) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
beforeToggleHandler() {
|
|
140
|
-
this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
|
|
141
|
-
}
|
|
142
|
-
patchAccessibilityFeatures(trigger) {
|
|
143
|
-
const force = trigger.hasAttribute(popoverTargetAttribute);
|
|
144
|
-
trigger.setAttribute('aria-expanded', force ? 'false' : null);
|
|
56
|
+
await this.popoverRef.toggle(target, force);
|
|
57
|
+
const focusableChildren = getFocusableChildren.getDeepFocusableChildren(this.host);
|
|
58
|
+
// find first focusable element
|
|
59
|
+
const firstFocusable = focusableChildren[0];
|
|
60
|
+
if (firstFocusable) {
|
|
61
|
+
firstFocusable.focus();
|
|
62
|
+
}
|
|
145
63
|
}
|
|
146
64
|
render() {
|
|
147
|
-
return (index
|
|
65
|
+
return (index.h(index.Host, { key: '82f8d89013b8ddb37fb924c9608ba394c669f35a', "data-version": _package.version }, index.h("post-popovercontainer", { key: 'cf276e5faf65ae27bc0d8e51779de5470a1e49a3', arrow: this.arrow, placement: this.placement, ref: e => (this.popoverRef = e) }, index.h("div", { key: '9ab455b2ee7d7f082dc6fc588d519d7a362cad8c', class: "popover-container" }, index.h("div", { key: 'b3b468da2ff7ccb2a47d69a1841488359763e927', class: "popover-content" }, index.h("slot", { key: 'a32099475baaca02ce41350e36d363614a6f83ef' })), index.h("post-closebutton", { key: 'eac806bd1e6652cacce58fb7e915d66e82c24980', onClick: () => this.hide() }, this.closeButtonCaption)))));
|
|
148
66
|
}
|
|
149
|
-
get host() { return index
|
|
67
|
+
get host() { return index.getElement(this); }
|
|
150
68
|
static get watchers() { return {
|
|
151
69
|
"placement": ["validatePlacement"],
|
|
152
70
|
"closeButtonCaption": ["validateCloseButtonCaption"]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index$1 = require('./index-
|
|
4
|
-
var _package = require('./package-
|
|
3
|
+
var index$1 = require('./index-Cb8CTrOz.js');
|
|
4
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
5
5
|
var index = require('./index-DtvYdwe1.js');
|
|
6
6
|
require('./breakpoints-CEkeixld.js');
|
|
7
7
|
|
|
@@ -27,10 +27,6 @@ const PostRating = class {
|
|
|
27
27
|
this.postInput = index$1.createEvent(this, "postInput");
|
|
28
28
|
this.postChange = index$1.createEvent(this, "postChange");
|
|
29
29
|
this.hasChanged = false;
|
|
30
|
-
/**
|
|
31
|
-
* Defines a hidden label for the component.
|
|
32
|
-
*/
|
|
33
|
-
this.label = 'Rating';
|
|
34
30
|
/**
|
|
35
31
|
* Defines the total amount of stars rendered in the component.
|
|
36
32
|
*/
|
|
@@ -100,13 +96,13 @@ const PostRating = class {
|
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
98
|
render() {
|
|
103
|
-
return (index$1.h(index$1.Host, { key: '
|
|
99
|
+
return (index$1.h(index$1.Host, { key: '9089061145d80c4791a56580d107d6fab88f1d6d', "data-version": _package.version }, index$1.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) => (index$1.h("div", { key: `star-${v}`, "aria-hidden": "true", class: {
|
|
104
100
|
'star': true,
|
|
105
101
|
'before-hover': i < this.hoveredIndex,
|
|
106
102
|
'active': i < Math.round(this.currentRating),
|
|
107
103
|
'hover': i === this.hoveredIndex,
|
|
108
104
|
'after-active': i > this.hoveredIndex && i < this.currentRating,
|
|
109
|
-
}, onClick: () => this.update(i + 1), onMouseEnter: e => this.hoverHandler(i, e), onMouseLeave: e => this.hoverHandler(i, e) }, index$1.h("post-icon", { name: "
|
|
105
|
+
}, onClick: () => this.update(i + 1), onMouseEnter: e => this.hoverHandler(i, e), onMouseLeave: e => this.hoverHandler(i, e) }, index$1.h("post-icon", { name: "favoritestar", class: "stroke" }), index$1.h("post-icon", { name: "favoritestar-solid", class: "fill" })))))));
|
|
110
106
|
}
|
|
111
107
|
get host() { return index$1.getElement(this); }
|
|
112
108
|
static get watchers() { return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var _package = require('./package-
|
|
3
|
+
var index = require('./index-Cb8CTrOz.js');
|
|
4
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
5
5
|
var index$1 = require('./index-DtvYdwe1.js');
|
|
6
6
|
require('./breakpoints-CEkeixld.js');
|
|
7
7
|
var index_browser = require('./index.browser-Doj636JV.js');
|
|
@@ -19,7 +19,7 @@ const PostTabHeader = class {
|
|
|
19
19
|
this.tabId = `tab-${this.host.id || index_browser.nanoid(6)}`;
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
return (index.h(index.Host, { key: '
|
|
22
|
+
return (index.h(index.Host, { key: '5d9cfad4e62285e8b64a5f597e3d38d451dd493f', id: this.tabId, role: "tab", "data-version": _package.version, "aria-selected": "false", tabindex: "-1", class: "tab-title", slot: "tabs" }, index.h("slot", { key: '679874586fb55510af17838ef73403c8b7a33ddc' })));
|
|
23
23
|
}
|
|
24
24
|
get host() { return index.getElement(this); }
|
|
25
25
|
static get watchers() { return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var _package = require('./package-
|
|
3
|
+
var index = require('./index-Cb8CTrOz.js');
|
|
4
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
5
5
|
var index_browser = require('./index.browser-Doj636JV.js');
|
|
6
6
|
var index$1 = require('./index-DtvYdwe1.js');
|
|
7
7
|
require('./breakpoints-CEkeixld.js');
|
|
@@ -21,7 +21,7 @@ const PostTabPanel = class {
|
|
|
21
21
|
this.panelId = `panel-${this.host.id || index_browser.nanoid(6)}`;
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (index.h(index.Host, { key: '
|
|
24
|
+
return (index.h(index.Host, { key: '5d6c56e41ac61b10dd2560482bc5e4edab394742', "data-version": _package.version, id: this.panelId, role: "tabpanel" }, index.h("slot", { key: 'ec7be772a0d3f883388742460c825dce0f0e44e8' })));
|
|
25
25
|
}
|
|
26
26
|
get host() { return index.getElement(this); }
|
|
27
27
|
static get watchers() { return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var _package = require('./package-
|
|
3
|
+
var index = require('./index-Cb8CTrOz.js');
|
|
4
|
+
var _package = require('./package-B7Ni5Tuu.js');
|
|
5
5
|
var fade = require('./fade-nS5zzDQS.js');
|
|
6
6
|
require('./breakpoints-CEkeixld.js');
|
|
7
7
|
|
|
@@ -167,7 +167,7 @@ const PostTabs = class {
|
|
|
167
167
|
nextTab.focus();
|
|
168
168
|
}
|
|
169
169
|
render() {
|
|
170
|
-
return (index.h(index.Host, { key: '
|
|
170
|
+
return (index.h(index.Host, { key: '3e352bc059be99242f612a49bdea71fd065d67b0', "data-version": _package.version }, index.h("div", { key: '34d608d7af834fd4fb3106ac3fb90100a9b73138', class: "tabs-wrapper", part: "tabs" }, index.h("div", { key: '102e75b53d3e485a185d391f84755142d8690de6', class: "tabs", role: "tablist" }, index.h("slot", { key: '03624f2944dfd37d3eb3403772d430a6e053e676', name: "tabs", onSlotchange: () => this.enableTabs() }))), index.h("div", { key: '8c7c956b831ef19fb093122ca35c14b5a015dad3', class: "tab-content", part: "content" }, index.h("slot", { key: '8fad35a2a6d26814f513c422b4fcbe98aae7bd22', onSlotchange: () => this.moveMisplacedTabs() }))));
|
|
171
171
|
}
|
|
172
172
|
get host() { return index.getElement(this); }
|
|
173
173
|
};
|