@quartzds/core 1.0.0-beta.127 → 1.0.0-beta.129
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/CHANGELOG.md +56 -0
- package/components/index.js +1 -1
- package/components/{p--fUtCWTJ.js → p-BJEvSqqL.js} +6 -6
- package/components/{p--fUtCWTJ.js.map → p-BJEvSqqL.js.map} +1 -1
- package/components/{p-CeqWiFUg.js → p-Bn9o5Um2.js} +3 -3
- package/components/{p-CeqWiFUg.js.map → p-Bn9o5Um2.js.map} +1 -1
- package/components/{p-CaibVX_2.js → p-BoqB4ddF.js} +29 -7
- package/components/p-BoqB4ddF.js.map +1 -0
- package/components/{p-B2794xy3.js → p-CQ-Ilm5d.js} +5 -5
- package/components/p-CQ-Ilm5d.js.map +1 -0
- package/components/{p-CVa_aaUh.js → p-Cevyg51v.js} +46 -20
- package/components/p-Cevyg51v.js.map +1 -0
- package/components/{p-CgD-5rh_.js → p-CnWdHgve.js} +12 -22
- package/components/p-CnWdHgve.js.map +1 -0
- package/components/{p-D03cCQ_7.js → p-CrzaI1TQ.js} +6 -6
- package/components/p-CrzaI1TQ.js.map +1 -0
- package/components/{p-CIoYTw7w.js → p-DEa0r_EV.js} +6 -6
- package/components/p-DEa0r_EV.js.map +1 -0
- package/components/{p-CHINI0hi.js → p-DOqfdgQA.js} +6 -6
- package/components/p-DOqfdgQA.js.map +1 -0
- package/components/{p-BIt0dDIJ.js → p-DjZ2J7fQ.js} +4 -4
- package/components/{p-BIt0dDIJ.js.map → p-DjZ2J7fQ.js.map} +1 -1
- package/components/{p-epc3kt-8.js → p-Do46q_Gd.js} +5 -5
- package/components/p-Do46q_Gd.js.map +1 -0
- package/components/{p-CS-MebAm.js → p-cw45QxUT.js} +7 -7
- package/components/{p-CS-MebAm.js.map → p-cw45QxUT.js.map} +1 -1
- package/components/{p-CtPHn4AQ.js → p-fKK7EmM2.js} +3 -3
- package/components/{p-CtPHn4AQ.js.map → p-fKK7EmM2.js.map} +1 -1
- package/components/qds-action-item.js +3 -3
- package/components/qds-avatar-media.js +1 -1
- package/components/qds-avatar.js +5 -5
- package/components/qds-avatar.js.map +1 -1
- package/components/qds-badge-indicator.js +1 -1
- package/components/qds-breadcrumb-item.js +5 -5
- package/components/qds-breadcrumb-item.js.map +1 -1
- package/components/qds-button.js +12 -20
- package/components/qds-button.js.map +1 -1
- package/components/qds-checkbox.js +1 -1
- package/components/qds-chip.js +62 -29
- package/components/qds-chip.js.map +1 -1
- package/components/qds-dialog.js +6 -6
- package/components/qds-divider.js +1 -1
- package/components/qds-dropdown.js +1 -1
- package/components/qds-form-message.js +3 -3
- package/components/qds-icon-button.js +1 -1
- package/components/qds-icon-tab.js +68 -34
- package/components/qds-icon-tab.js.map +1 -1
- package/components/qds-icon.js +1 -1
- package/components/qds-inline-link.js +4 -4
- package/components/qds-inline-link.js.map +1 -1
- package/components/qds-input.js +6 -6
- package/components/qds-input.js.map +1 -1
- package/components/qds-label.js +4 -4
- package/components/qds-list-item.js +14 -14
- package/components/qds-loader.js +2 -2
- package/components/qds-menu-item.js +49 -16
- package/components/qds-menu-item.js.map +1 -1
- package/components/qds-mini-button.js +1 -1
- package/components/qds-progress-bar.js +1 -1
- package/components/qds-radio.js +1 -1
- package/components/qds-select.js +6 -6
- package/components/qds-standalone-link.js +2 -2
- package/components/qds-switch.js +2 -2
- package/components/qds-tab.js +39 -29
- package/components/qds-tab.js.map +1 -1
- package/components/qds-tabbar.js +140 -33
- package/components/qds-tabbar.js.map +1 -1
- package/components/qds-table-head-cell.js +2 -2
- package/components/qds-tag.js +1 -1
- package/components/qds-textarea.js +4 -4
- package/components/qds-textarea.js.map +1 -1
- package/components/qds-title.js +1 -1
- package/components/qds-tooltip.js +1 -1
- package/dist/cjs/{helpers-DjUgyTKn.js → helpers-D6srVOLt.js} +31 -6
- package/dist/{esm/helpers-mPQzhx-O.js.map → cjs/helpers-D6srVOLt.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/qds-action-item.cjs.entry.js +1 -1
- package/dist/cjs/qds-avatar-media.cjs.entry.js +2 -2
- package/dist/cjs/qds-avatar-media.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-avatar.cjs.entry.js +2 -2
- package/dist/cjs/qds-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-badge-counter.qds-badge-indicator.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-badge-counter_2.cjs.entry.js +3 -3
- package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/qds-breadcrumb-item.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-button.cjs.entry.js +9 -17
- package/dist/cjs/qds-button.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-checkbox.qds-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-checkbox_2.cjs.entry.js +3 -3
- package/dist/cjs/qds-chip.cjs.entry.js +56 -23
- package/dist/cjs/qds-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-dialog.cjs.entry.js +2 -2
- package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-divider_2.cjs.entry.js +8 -18
- package/dist/cjs/qds-dropdown.cjs.entry.js +44 -18
- package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-form-message.cjs.entry.js +2 -2
- package/dist/cjs/qds-icon-tab.cjs.entry.js +59 -29
- package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-icon.cjs.entry.js +1 -1
- package/dist/cjs/qds-inline-link.cjs.entry.js +3 -3
- package/dist/cjs/qds-inline-link.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-input.cjs.entry.js +4 -4
- package/dist/cjs/qds-input.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-label.cjs.entry.js +3 -3
- package/dist/cjs/qds-list-item.cjs.entry.js +5 -5
- package/dist/cjs/qds-loader.cjs.entry.js +1 -1
- package/dist/cjs/qds-menu-item.cjs.entry.js +42 -12
- package/dist/cjs/qds-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-mini-button.cjs.entry.js +1 -1
- package/dist/cjs/qds-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/qds-select.cjs.entry.js +5 -5
- package/dist/cjs/qds-standalone-link.cjs.entry.js +1 -1
- package/dist/cjs/qds-switch.cjs.entry.js +1 -1
- package/dist/cjs/qds-tab.cjs.entry.js +34 -24
- package/dist/cjs/qds-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-tabbar.cjs.entry.js +130 -26
- package/dist/cjs/qds-tabbar.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-table-head-cell.cjs.entry.js +2 -2
- package/dist/cjs/qds-tag.cjs.entry.js +3 -3
- package/dist/cjs/qds-textarea.cjs.entry.js +4 -4
- package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/qds-title.cjs.entry.js +3 -3
- package/dist/cjs/qds-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/qds-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/qds.cjs.js +1 -1
- package/dist/custom-elements.json +379 -47
- package/dist/docs.json +47 -1
- package/dist/esm/{helpers-mPQzhx-O.js → helpers-_a9kqEyo.js} +29 -7
- package/dist/{cjs/helpers-DjUgyTKn.js.map → esm/helpers-_a9kqEyo.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/qds-action-item.entry.js +1 -1
- package/dist/esm/qds-avatar-media.entry.js +2 -2
- package/dist/esm/qds-avatar-media.entry.js.map +1 -1
- package/dist/esm/qds-avatar.entry.js +2 -2
- package/dist/esm/qds-avatar.entry.js.map +1 -1
- package/dist/esm/qds-badge-counter.qds-badge-indicator.entry.js.map +1 -1
- package/dist/esm/qds-badge-counter_2.entry.js +3 -3
- package/dist/esm/qds-breadcrumb-item.entry.js +3 -3
- package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -1
- package/dist/esm/qds-button.entry.js +9 -17
- package/dist/esm/qds-button.entry.js.map +1 -1
- package/dist/esm/qds-checkbox.qds-radio.entry.js.map +1 -1
- package/dist/esm/qds-checkbox_2.entry.js +3 -3
- package/dist/esm/qds-chip.entry.js +56 -23
- package/dist/esm/qds-chip.entry.js.map +1 -1
- package/dist/esm/qds-dialog.entry.js +2 -2
- package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -1
- package/dist/esm/qds-divider_2.entry.js +8 -18
- package/dist/esm/qds-dropdown.entry.js +44 -18
- package/dist/esm/qds-dropdown.entry.js.map +1 -1
- package/dist/esm/qds-form-message.entry.js +2 -2
- package/dist/esm/qds-icon-tab.entry.js +59 -29
- package/dist/esm/qds-icon-tab.entry.js.map +1 -1
- package/dist/esm/qds-icon.entry.js +1 -1
- package/dist/esm/qds-inline-link.entry.js +3 -3
- package/dist/esm/qds-inline-link.entry.js.map +1 -1
- package/dist/esm/qds-input.entry.js +4 -4
- package/dist/esm/qds-input.entry.js.map +1 -1
- package/dist/esm/qds-label.entry.js +3 -3
- package/dist/esm/qds-list-item.entry.js +5 -5
- package/dist/esm/qds-loader.entry.js +1 -1
- package/dist/esm/qds-menu-item.entry.js +42 -12
- package/dist/esm/qds-menu-item.entry.js.map +1 -1
- package/dist/esm/qds-mini-button.entry.js +1 -1
- package/dist/esm/qds-progress-bar.entry.js +1 -1
- package/dist/esm/qds-select.entry.js +5 -5
- package/dist/esm/qds-standalone-link.entry.js +1 -1
- package/dist/esm/qds-switch.entry.js +1 -1
- package/dist/esm/qds-tab.entry.js +34 -24
- package/dist/esm/qds-tab.entry.js.map +1 -1
- package/dist/esm/qds-tabbar.entry.js +130 -26
- package/dist/esm/qds-tabbar.entry.js.map +1 -1
- package/dist/esm/qds-table-head-cell.entry.js +2 -2
- package/dist/esm/qds-tag.entry.js +3 -3
- package/dist/esm/qds-textarea.entry.js +4 -4
- package/dist/esm/qds-textarea.entry.js.map +1 -1
- package/dist/esm/qds-title.entry.js +3 -3
- package/dist/esm/qds-tooltip.entry.js +3 -3
- package/dist/esm/qds-tooltip.entry.js.map +1 -1
- package/dist/esm/qds.js +1 -1
- package/dist/types/components/chip/chip.d.ts +4 -2
- package/dist/types/components/icon-tab/icon-tab.d.ts +2 -0
- package/dist/types/components/menu-item/menu-item.d.ts +3 -0
- package/dist/types/components/tab/tab.d.ts +2 -0
- package/dist/types/components/tabbar/tabbar.d.ts +7 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/types/helpers.d.ts +4 -1
- package/dist/vscode.html-custom-data.json +4 -0
- package/hydrate/index.js +450 -212
- package/hydrate/index.mjs +450 -212
- package/package.json +1 -1
- package/components/p-B2794xy3.js.map +0 -1
- package/components/p-CHINI0hi.js.map +0 -1
- package/components/p-CIoYTw7w.js.map +0 -1
- package/components/p-CVa_aaUh.js.map +0 -1
- package/components/p-CaibVX_2.js.map +0 -1
- package/components/p-CgD-5rh_.js.map +0 -1
- package/components/p-D03cCQ_7.js.map +0 -1
- package/components/p-epc3kt-8.js.map +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { p as proxyCustomElement, H, c as createEvent, h, e as Host } from './p-D2489VzR.js';
|
|
7
7
|
import { o as offset, f as flip, s as shift, b as arrow, c as computePosition, a as autoUpdate, l as limitShift } from './p-Bv2vPjgL.js';
|
|
8
|
-
import {
|
|
8
|
+
import { j as ignorePromise, o as propertyToPx, i as invariant, r as resolveTarget, t as isTouchDevice } from './p-BoqB4ddF.js';
|
|
9
9
|
|
|
10
10
|
const tooltipCss = ":host([hidden]){display:none!important}:host{align-items:flex-start;background-color:var(--qds-theme-accessory-background);border:none;border-radius:var(--qds-accessory-border-radius);box-shadow:var(--qds-accessory-elevation);box-sizing:border-box;color:var(--qds-theme-text-standard);display:flex;flex-direction:column;gap:var(--qds-accessory-gap-children-unrelated);inset:unset;margin:0;overflow:initial;padding:0}:host:before{content:\"\";position:absolute}::slotted(blockquote),::slotted(button),::slotted(dd),::slotted(dl),::slotted(fieldset),::slotted(figure),::slotted(h1),::slotted(h2),::slotted(h3),::slotted(h4),::slotted(h5),::slotted(h6),::slotted(hr),::slotted(input),::slotted(menu),::slotted(ol),::slotted(p),::slotted(pre),::slotted(select),::slotted(textarea),::slotted(ul){margin:0}:host([data-side=bottom]):before,:host([data-side=top]):before{height:calc(var(--qds-accessory-gap-floating, 0px) + var(--qds-signature-triangle-pointer-size-height, 0px));top:100%;width:100%}:host([data-side=bottom]):before{top:calc((var(--qds-accessory-gap-floating, 0px) + var(--qds-signature-triangle-pointer-size-height, 0px))*-1)}:host([data-side=left]):before,:host([data-side=right]):before{left:100%;width:calc(var(--qds-accessory-gap-floating, 0px) + var(--qds-signature-triangle-pointer-size-height, 0px))}:host([data-side=right]):before{left:calc((var(--qds-accessory-gap-floating, 0px) + var(--qds-signature-triangle-pointer-size-height, 0px))*-1)}.qds-arrow{height:var(--qds-signature-triangle-pointer-size-height);position:absolute;width:var(--qds-signature-triangle-pointer-size-width)}.qds-arrow:before{background-color:var(--qds-theme-accessory-background);clip-path:polygon(0 0,100% 0,50% 100%);height:100%}.qds-arrow:after,.qds-arrow:before{content:\"\";position:absolute;width:100%}.qds-arrow:after{background-color:var(--qds-theme-accessory-border);bottom:calc(var(--qds-accessory-border-width)*-1);clip-path:polygon(0 10%,100% 10%,50% 100%);height:calc(100% + var(--qds-accessory-border-width));z-index:-1}.qds-arrow[data-side=bottom]{top:calc((var(--qds-signature-triangle-pointer-size-height) - var(--qds-accessory-effect-section-position-y))*-1);transform:rotate(180deg)}.qds-arrow[data-side=left]{right:calc((var(--qds-accessory-gap-floating) + var(--qds-signature-triangle-pointer-size-height))*-1 + var(--qds-accessory-effect-section-position-y));transform:rotate(-90deg)}.qds-arrow[data-side=right]{left:calc((var(--qds-accessory-gap-floating) + var(--qds-signature-triangle-pointer-size-height))*-1 + var(--qds-accessory-effect-section-position-y));transform:rotate(90deg)}.qds-arrow[data-side=top]{bottom:calc((var(--qds-signature-triangle-pointer-size-height) - var(--qds-accessory-effect-section-position-y))*-1)}.qds-tooltip{align-items:inherit;border:var(--qds-accessory-border-width) solid var(--qds-theme-accessory-border);border-radius:var(--qds-accessory-border-radius);display:inherit;flex-direction:inherit;flex-wrap:inherit;gap:inherit;justify-content:inherit;max-width:var(--qds-accessory-max-width);padding:var(--qds-accessory-padding-top) var(--qds-accessory-padding-end) var(--qds-accessory-padding-bottom) var(--qds-accessory-padding-start)}";
|
|
11
11
|
|
|
@@ -182,7 +182,7 @@ const Tooltip = /*@__PURE__*/ proxyCustomElement(class Tooltip extends H {
|
|
|
182
182
|
async updateReferenceElement() {
|
|
183
183
|
var _a;
|
|
184
184
|
this.disconnectedCallback();
|
|
185
|
-
__classPrivateFieldSet(this, _Tooltip_referenceElement, resolveTarget(this.target), "f");
|
|
185
|
+
__classPrivateFieldSet(this, _Tooltip_referenceElement, resolveTarget(this.target, 'qds-tooltip'), "f");
|
|
186
186
|
if (!(__classPrivateFieldGet(this, _Tooltip_referenceElement, "f") instanceof globalThis.Element))
|
|
187
187
|
return;
|
|
188
188
|
this.updateEventListeners();
|
|
@@ -273,7 +273,7 @@ const Tooltip = /*@__PURE__*/ proxyCustomElement(class Tooltip extends H {
|
|
|
273
273
|
__classPrivateFieldGet(this, _Tooltip_referenceElement, "f").removeAttribute('aria-describedby');
|
|
274
274
|
}
|
|
275
275
|
render() {
|
|
276
|
-
return (h(Host, { key: '
|
|
276
|
+
return (h(Host, { key: 'a1e938336ef0ec947ebf383f27058c2b40de8be5', onKeyDown: __classPrivateFieldGet(this, _Tooltip_boundKeyDown, "f"), onPointerDown: __classPrivateFieldGet(this, _Tooltip_boundTooltipPointerDown, "f") }, h("div", { key: '77b6fc341a9d8c29345abe2b60eaa5e80e616a25', class: "qds-tooltip" }, h("slot", { key: 'c1f60791b1ef2a20aca65cca9a5d555526e459cc' })), h("div", { key: '61c360af5eeed3532a054d7040acb21bd66b3292', class: "qds-arrow", ref: __classPrivateFieldGet(this, _Tooltip_arrowRef, "f") })));
|
|
277
277
|
}
|
|
278
278
|
get host() { return this; }
|
|
279
279
|
static get watchers() { return {
|
|
@@ -388,6 +388,6 @@ function defineCustomElement() {
|
|
|
388
388
|
}
|
|
389
389
|
|
|
390
390
|
export { Tooltip as T, defineCustomElement as d };
|
|
391
|
-
//# sourceMappingURL=p-
|
|
391
|
+
//# sourceMappingURL=p-CQ-Ilm5d.js.map
|
|
392
392
|
|
|
393
|
-
//# sourceMappingURL=p-
|
|
393
|
+
//# sourceMappingURL=p-CQ-Ilm5d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-CQ-Ilm5d.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/tooltip/tooltip.css?tag=qds-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n align-items: flex-start;\n background-color: var(--qds-theme-accessory-background);\n border-radius: var(--qds-accessory-border-radius);\n border: none;\n box-shadow: var(--qds-accessory-elevation);\n box-sizing: border-box;\n color: var(--qds-theme-text-standard);\n display: flex;\n flex-direction: column;\n gap: var(--qds-accessory-gap-children-unrelated);\n inset: unset;\n margin: 0;\n overflow: initial;\n padding: 0;\n}\n\n:host::before {\n content: '';\n position: absolute;\n}\n\n::slotted(blockquote),\n::slotted(button),\n::slotted(dd),\n::slotted(dl),\n::slotted(fieldset),\n::slotted(figure),\n::slotted(h1),\n::slotted(h2),\n::slotted(h3),\n::slotted(h4),\n::slotted(h5),\n::slotted(h6),\n::slotted(hr),\n::slotted(input),\n::slotted(menu),\n::slotted(ol),\n::slotted(p),\n::slotted(pre),\n::slotted(select),\n::slotted(textarea),\n::slotted(ul) {\n margin: 0;\n}\n\n:host([data-side='top'])::before,\n:host([data-side='bottom'])::before {\n width: 100%;\n height: calc(\n var(--qds-accessory-gap-floating, 0px) +\n var(--qds-signature-triangle-pointer-size-height, 0px)\n );\n top: 100%;\n}\n\n:host([data-side='bottom'])::before {\n top: calc(\n -1 *\n (\n var(--qds-accessory-gap-floating, 0px) +\n var(--qds-signature-triangle-pointer-size-height, 0px)\n )\n );\n}\n\n:host([data-side='left'])::before,\n:host([data-side='right'])::before {\n width: calc(\n var(--qds-accessory-gap-floating, 0px) +\n var(--qds-signature-triangle-pointer-size-height, 0px)\n );\n left: 100%;\n}\n\n:host([data-side='right'])::before {\n left: calc(\n -1 *\n (\n var(--qds-accessory-gap-floating, 0px) +\n var(--qds-signature-triangle-pointer-size-height, 0px)\n )\n );\n}\n\n.qds-arrow {\n position: absolute;\n width: var(--qds-signature-triangle-pointer-size-width);\n height: var(--qds-signature-triangle-pointer-size-height);\n\n &::before {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: var(--qds-theme-accessory-background);\n clip-path: polygon(0% 0%, 100% 0%, 50% 100%);\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: calc(100% + var(--qds-accessory-border-width));\n background-color: var(--qds-theme-accessory-border);\n clip-path: polygon(0% 10%, 100% 10%, 50% 100%);\n z-index: -1;\n bottom: calc(-1 * var(--qds-accessory-border-width));\n }\n\n &[data-side='bottom'] {\n top: calc(\n -1 *\n (\n var(--qds-signature-triangle-pointer-size-height) -\n var(--qds-accessory-effect-section-position-y)\n )\n );\n transform: rotate(180deg);\n }\n\n &[data-side='left'] {\n right: calc(\n (\n -1 *\n (\n var(--qds-accessory-gap-floating) +\n var(--qds-signature-triangle-pointer-size-height)\n )\n ) +\n var(--qds-accessory-effect-section-position-y)\n );\n transform: rotate(-90deg);\n }\n\n &[data-side='right'] {\n left: calc(\n (\n -1 *\n (\n var(--qds-accessory-gap-floating) +\n var(--qds-signature-triangle-pointer-size-height)\n )\n ) +\n var(--qds-accessory-effect-section-position-y)\n );\n transform: rotate(90deg);\n }\n\n &[data-side='top'] {\n bottom: calc(\n -1 *\n (\n var(--qds-signature-triangle-pointer-size-height) -\n var(--qds-accessory-effect-section-position-y)\n )\n );\n }\n}\n\n.qds-tooltip {\n border: var(--qds-accessory-border-width) solid\n var(--qds-theme-accessory-border);\n border-radius: var(--qds-accessory-border-radius);\n padding: var(--qds-accessory-padding-top) var(--qds-accessory-padding-end)\n var(--qds-accessory-padding-bottom) var(--qds-accessory-padding-start);\n display: inherit;\n flex-direction: inherit;\n flex-wrap: inherit;\n justify-content: inherit;\n align-items: inherit;\n gap: inherit;\n max-width: var(--qds-accessory-max-width);\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n AutoUpdateOptions,\n DetectOverflowOptions,\n FlipOptions,\n Middleware,\n Placement,\n ReferenceElement,\n ShiftOptions,\n Strategy,\n} from '@floating-ui/dom'\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n shift,\n} from '@floating-ui/dom'\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core'\nimport type { Split } from 'type-fest'\n\nimport type { OffsetOptions } from '../../helpers'\nimport {\n ignorePromise,\n invariant,\n isTouchDevice,\n propertyToPx,\n resolveTarget,\n} from '../../helpers'\n\nlet autoIncrementingId = 1\n\nexport type TriggerEvent = Extract<\n keyof GlobalEventHandlersEventMap,\n 'click' | 'focus' | 'focusin' | 'pointerenter'\n>\n\n/**\n * @slot Content to display in the dropdown.\n * @see https://quartz.se.com/build/components/tooltip\n */\n@Component({\n tag: 'qds-tooltip',\n shadow: true,\n styleUrl: 'tooltip.css',\n})\nexport class Tooltip implements ComponentInterface {\n /**\n * Options to pass to Floating UI's\n * [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).\n *\n * @see https://floating-ui.com/docs/autoupdate#options\n */\n @Prop() public readonly autoUpdateOptions?: AutoUpdateOptions\n\n /**\n * Prevents the tooltip from being shown by user interaction. The tooltip can\n * still be displayed by calling the `show()` method.\n */\n @Prop() public readonly disabled: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n *\n * The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is\n * set to the value of the `noShift` property by default for interoperability\n * with the [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/flip#options\n */\n @Prop() public readonly flipOptions?: Partial<\n DetectOverflowOptions & FlipOptions\n >\n\n /**\n * Disable Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n */\n @Prop() public readonly noFlip: boolean = false\n\n /**\n * Disable Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n */\n @Prop() public readonly noShift: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`offset` middleware](https://floating-ui.com/docs/offset).\n *\n * The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is\n * not supported.\n *\n * @see https://floating-ui.com/docs/offset#options\n */\n @Prop() public readonly offsetOptions?: OffsetOptions\n\n /**\n * Where to place the tooltip relative to the `target`.\n *\n * @see https://floating-ui.com/docs/tutorial#placements\n */\n @Prop() public readonly placement: Placement = 'top'\n\n /**\n * Options to pass to Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/shift#options\n */\n @Prop() public readonly shiftOptions?: Partial<\n DetectOverflowOptions & ShiftOptions\n >\n\n /**\n * The CSS position strategy to use.\n *\n * @see https://floating-ui.com/docs/computeposition#strategy\n */\n @Prop() public readonly strategy?: Strategy\n\n /**\n * The trigger element that will trigger the tooltip. The target specified\n * can be any of the following:\n *\n * - A CSS selector string\n * - A reference to an [`Element`][] or [Virtual Element][]\n * - A function returning a reference to an [`Element`][],\n * [Virtual Element][], or a CSS selector string\n *\n * [`Element`]: https://developer.mozilla.org/docs/Web/API/Element\n * [Virtual Element]: https://floating-ui.com/docs/virtual-elements\n */\n @Prop() public readonly target?:\n | ReferenceElement\n | string\n | (() => ReferenceElement | string)\n\n /**\n * Determines the events that cause the tooltip to show. Multiple event names\n * are separated by spaces.\n */\n @Prop() public readonly trigger?: TriggerEvent[] | string =\n 'pointerenter focus'\n\n /**\n * Emitted when the tooltip is closed.\n */\n @Event({\n eventName: 'qdsClose',\n bubbles: false,\n cancelable: false,\n composed: false,\n })\n private readonly closeEmitter!: EventEmitter<void>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #arrow?: HTMLElement\n\n #arrowPadding = 0\n\n #cleanup?: () => void\n\n #clickedTooltip = false\n\n #isTouchDevice = false\n\n #listeners: {\n element: Element\n event: keyof GlobalEventHandlersEventMap\n listener: EventListenerOrEventListenerObject\n }[] = []\n\n #mainAxisDistance = 0\n\n #middleware?: (Middleware | false)[]\n\n #open = false\n\n /**\n * Ensure that `updateArrow()` is called only once internally as this is\n * expensive.\n */\n #opened = false\n\n #referenceElement?: ReferenceElement\n\n /**\n * Show the tooltip.\n */\n @Method()\n public async show(): Promise<void> {\n if (this.#open) return\n\n if (!this.#opened) {\n await this.updateArrow()\n this.#opened = true\n }\n this.startAutoUpdate()\n this.#open = true\n this.#setAriaExpanded()\n }\n\n /**\n * Close the tooltip.\n */\n @Method()\n public async close(): Promise<void> {\n if (!this.#open) return\n\n this.closeEmitter.emit()\n\n if (this.#cleanup) this.#cleanup()\n this.#open = false\n this.#setAriaExpanded()\n this.#clickedTooltip = false\n }\n\n /**\n * Update the tooltip's arrow.\n *\n * This method should typically be called when the Quartz platform was\n * changed.\n */\n @Method()\n public async updateArrow(): Promise<void> {\n const gap = propertyToPx(this.host, '--qds-accessory-gap-floating') ?? 0\n const height =\n propertyToPx(this.host, '--qds-signature-triangle-pointer-size-height') ??\n 0\n const padding =\n propertyToPx(this.host, '--qds-accessory-border-radius') ?? 0\n this.#mainAxisDistance = gap + height\n this.#arrowPadding = padding\n\n await this.updateMiddleware()\n }\n\n @Watch('flipOptions')\n @Watch('noFlip')\n @Watch('noShift')\n @Watch('offsetOptions')\n @Watch('shiftOptions')\n private async updateMiddleware(): Promise<void> {\n invariant(this.#arrow)\n\n this.#middleware = [\n offset({\n ...this.offsetOptions,\n mainAxis: this.#mainAxisDistance,\n }),\n !this.noFlip &&\n flip({\n crossAxis: this.noShift,\n ...this.flipOptions,\n }),\n !this.noShift &&\n shift({\n limiter: limitShift(),\n ...this.shiftOptions,\n }),\n arrow({\n element: this.#arrow,\n padding: this.#arrowPadding,\n }),\n ]\n }\n\n @Watch('target')\n private async updateReferenceElement(): Promise<void> {\n this.disconnectedCallback()\n\n this.#referenceElement = resolveTarget(this.target, 'qds-tooltip')\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.updateEventListeners()\n this.host.id ||= `qds-tooltip-${autoIncrementingId}`\n this.#referenceElement.setAttribute('aria-describedby', this.host.id)\n if (this.host.role === 'dialog')\n this.#referenceElement.ariaHasPopup = 'dialog'\n }\n\n @Watch('trigger')\n private updateEventListeners(): void {\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n const triggers = Array.isArray(this.trigger)\n ? this.trigger\n : ((this.trigger?.split(' ') as Split<TriggerEvent, ' '> | undefined) ??\n [])\n\n this.#removeEventListeners()\n\n if (this.#isTouchDevice)\n this.#on(this.#referenceElement, 'click', this.#boundReferenceClick)\n this.#on(document.documentElement, 'pointerdown', this.#boundPointerdown)\n this.#on(this.#referenceElement, 'keydown', this.#boundKeyDown)\n\n for (const trigger of triggers) {\n switch (trigger) {\n case 'click': {\n this.#on(this.#referenceElement, 'click', this.#boundReferenceClick)\n break\n }\n case 'focus':\n case 'focusin': {\n this.#on(this.#referenceElement, trigger, this.#boundFocus)\n this.#on(this.#referenceElement, 'focusout', this.#boundFocusout)\n this.#on(this.host, 'focusout', this.#boundFocusout)\n break\n }\n case 'pointerenter': {\n this.#on(\n this.#referenceElement,\n 'pointerenter',\n this.#boundPointerenter,\n )\n this.#on(\n this.#referenceElement,\n 'pointerleave',\n this.#boundPointerleave,\n )\n this.#on(this.host, 'pointerleave', this.#boundPointerleave)\n break\n }\n default:\n }\n }\n }\n\n @Watch('middleware')\n @Watch('placement')\n @Watch('strategy')\n private async updatePosition(): Promise<void> {\n invariant(this.#referenceElement)\n\n const { x, y, middlewareData, placement, strategy } = await computePosition(\n this.#referenceElement,\n this.host,\n {\n middleware: this.#middleware,\n placement: this.placement,\n strategy: this.strategy,\n },\n )\n const [side] = placement.split('-') as Split<Placement, '-'>\n\n this.host.dataset.side = side\n Object.assign(this.host.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n })\n\n if (middlewareData.arrow === undefined) return\n\n invariant(this.#arrow)\n\n const { x: aX, y: aY, centerOffset } = middlewareData.arrow\n this.#arrow.dataset.side = side\n Object.assign(this.#arrow.style, {\n display: centerOffset === 0 ? '' : 'none',\n left: aX === undefined ? '' : `${aX}px`,\n top: aY === undefined ? '' : `${aY}px`,\n })\n }\n\n @Watch('autoUpdateOptions')\n private startAutoUpdate(): void {\n invariant(this.#referenceElement)\n\n if (this.#cleanup) this.#cleanup()\n this.#cleanup = autoUpdate(\n this.#referenceElement,\n this.host,\n () => {\n ignorePromise(this.updatePosition())\n },\n this.autoUpdateOptions,\n )\n }\n\n public async componentWillLoad(): Promise<void> {\n this.#isTouchDevice = isTouchDevice()\n this.host.hidden = true\n this.host.popover = 'manual'\n this.internals.role = 'tooltip'\n await this.updateReferenceElement()\n autoIncrementingId += 1\n }\n\n public disconnectedCallback(): void {\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.#removeEventListeners()\n this.#referenceElement.removeAttribute('aria-describedby')\n }\n\n public render() {\n return (\n <Host\n onKeyDown={this.#boundKeyDown}\n onPointerDown={this.#boundTooltipPointerDown}\n >\n <div class=\"qds-tooltip\">\n <slot />\n </div>\n\n <div class=\"qds-arrow\" ref={this.#arrowRef} />\n </Host>\n )\n }\n\n readonly #arrowRef = (div?: HTMLElement): void => {\n this.#arrow = div\n }\n\n readonly #boundTooltipPointerDown = (): void => {\n this.#clickedTooltip = true\n }\n\n async #handleFocus(): Promise<void> {\n if (!this.disabled) await this.show()\n }\n\n readonly #boundFocus = (): void => {\n ignorePromise(this.#handleFocus())\n }\n\n async #handleKeyDown(event: Event): Promise<void> {\n if (event instanceof KeyboardEvent && event.key === 'Escape')\n await this.close()\n }\n\n readonly #boundKeyDown = (event: Event): void => {\n ignorePromise(this.#handleKeyDown(event))\n }\n\n async #handlePointerenter(): Promise<void> {\n if (!this.disabled) await this.show()\n }\n\n readonly #boundPointerenter = (): void => {\n ignorePromise(this.#handlePointerenter())\n }\n\n async #handlePointerleave(event: Event): Promise<void> {\n if (\n !this.#clickedTooltip &&\n document.activeElement !== this.#referenceElement &&\n document.activeElement?.closest('qds-tooltip') !== this.host &&\n event instanceof PointerEvent &&\n event.relatedTarget !== this.#referenceElement &&\n event.relatedTarget !== this.host\n )\n await this.close()\n }\n\n readonly #boundPointerleave = (event: Event): void => {\n ignorePromise(this.#handlePointerleave(event))\n }\n\n async #handleFocusOut(event: Event): Promise<void> {\n if (!(event instanceof FocusEvent)) return\n const { relatedTarget } = event\n\n if (\n relatedTarget instanceof globalThis.Element &&\n !this.host.contains(relatedTarget) &&\n this.#referenceElement !== relatedTarget\n )\n await this.close()\n }\n\n readonly #boundFocusout = (event: Event): void => {\n ignorePromise(this.#handleFocusOut(event))\n }\n\n async #handlePointerdown(event: Event): Promise<void> {\n const composedPath = event.composedPath()\n const withinBounds =\n composedPath.includes(this.host) ||\n (this.#referenceElement instanceof globalThis.Element &&\n composedPath.includes(this.#referenceElement))\n if (!withinBounds) await this.close()\n }\n\n readonly #boundPointerdown = (event: Event): void => {\n ignorePromise(this.#handlePointerdown(event))\n }\n\n async #handleReferenceClick(): Promise<void> {\n if (!this.disabled) await (this.#open ? this.close() : this.show())\n }\n\n readonly #boundReferenceClick = (): void => {\n ignorePromise(this.#handleReferenceClick())\n }\n\n #on(\n element: Element,\n event: keyof GlobalEventHandlersEventMap,\n listener: EventListenerOrEventListenerObject,\n ): void {\n const hasListener = this.#listeners.some(\n (value) => value.element === element && value.event === event,\n )\n if (hasListener) return\n\n element.addEventListener(event, listener)\n this.#listeners.push({ element, event, listener })\n }\n\n #removeEventListeners(): void {\n for (const { element, event, listener } of this.#listeners)\n element.removeEventListener(event, listener)\n this.#listeners = []\n }\n\n #setAriaExpanded(): void {\n this.host.hidden = !this.#open\n if (this.#open) this.host.showPopover()\n else this.host.hidePopover()\n\n if (\n this.#referenceElement instanceof globalThis.Element &&\n this.host.role === 'dialog'\n )\n this.#referenceElement.ariaExpanded = String(this.#open)\n }\n}\n"],"version":3}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { p as proxyCustomElement, H, c as createEvent, h, e as Host } from './p-D2489VzR.js';
|
|
7
7
|
import { o as offset, f as flip, s as shift, c as computePosition, a as autoUpdate, l as limitShift } from './p-Bv2vPjgL.js';
|
|
8
|
-
import {
|
|
8
|
+
import { m as closestElement, n as getSubmenuCloseKey, V as VERTICAL_MOVE_KEYS, j as ignorePromise, o as propertyToPx, r as resolveTarget } from './p-BoqB4ddF.js';
|
|
9
9
|
|
|
10
10
|
const dropdownCss = ":host([hidden]){display:none!important}:host{background-color:var(--qds-theme-popup-background);border:none;border-radius:var(--qds-popup-border-radius);box-shadow:var(--qds-popup-elevation);box-sizing:border-box;display:inline-block;inset:unset;margin:0;overflow:initial;padding:0}";
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) ||
|
|
|
28
28
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
29
29
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
30
30
|
};
|
|
31
|
-
var _Dropdown_instances, _Dropdown_cleanup, _Dropdown_Items, _Dropdown_gap, _Dropdown_middleware, _Dropdown_referenceElement, _Dropdown_open, _Dropdown_opened, _Dropdown_onFocusout, _Dropdown_focusOnTrigger, _Dropdown_onKeydown, _Dropdown_onReferenceClick, _Dropdown_focusFirstItem, _Dropdown_initializeFirstItem, _Dropdown_setFirstItemTabindex, _Dropdown_disconnectReferenceElement, _Dropdown_boundOnFocusout, _Dropdown_boundOnKeydown, _Dropdown_boundOnReferenceClick, _Dropdown_onSlotchange;
|
|
31
|
+
var _Dropdown_instances, _Dropdown_cleanup, _Dropdown_Items, _Dropdown_gap, _Dropdown_middleware, _Dropdown_referenceElement, _Dropdown_open, _Dropdown_opened, _Dropdown_onFocusout, _Dropdown_focusOnTrigger, _Dropdown_onKeydown, _Dropdown_onReferenceClick, _Dropdown_focusFirstItem, _Dropdown_initializeFirstItem, _Dropdown_setFirstItemTabindex, _Dropdown_findFirstFocusableDescendant, _Dropdown_focusWithin, _Dropdown_disconnectReferenceElement, _Dropdown_boundOnFocusout, _Dropdown_boundOnKeydown, _Dropdown_boundOnReferenceClick, _Dropdown_onSlotchange;
|
|
32
32
|
let autoIncrementingId = 1;
|
|
33
33
|
const isQdsButton = (element) => element.tagName.toLowerCase() === 'qds-button';
|
|
34
34
|
const ALLOWED_TAGS = new Set([
|
|
@@ -39,7 +39,8 @@ const ALLOWED_TAGS = new Set([
|
|
|
39
39
|
const isEnabledItem = (element) => element instanceof H &&
|
|
40
40
|
ALLOWED_TAGS.has(element.tagName.toLowerCase()) &&
|
|
41
41
|
!element.hasAttribute('disabled') &&
|
|
42
|
-
!element.inert
|
|
42
|
+
!element.inert &&
|
|
43
|
+
element.getAttribute('list-action') !== 'none';
|
|
43
44
|
const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
44
45
|
constructor(registerHost) {
|
|
45
46
|
super();
|
|
@@ -106,7 +107,6 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
106
107
|
const dropdownItem = __classPrivateFieldGet(this, _Dropdown_Items, "f").find((item) => item === relatedTarget);
|
|
107
108
|
if (relatedTarget instanceof globalThis.Element &&
|
|
108
109
|
!this.host.contains(relatedTarget) &&
|
|
109
|
-
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") !== relatedTarget &&
|
|
110
110
|
!dropdownItem)
|
|
111
111
|
await this.close();
|
|
112
112
|
});
|
|
@@ -141,17 +141,16 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
141
141
|
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusOnTrigger).call(this);
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
|
-
if (keydownOnReference &&
|
|
145
|
-
(
|
|
144
|
+
if (keydownOnReference && (key === 'ArrowDown' || key === 'ArrowUp')) {
|
|
145
|
+
event.preventDefault();
|
|
146
|
+
event.stopPropagation();
|
|
146
147
|
if (!__classPrivateFieldGet(this, _Dropdown_open, "f"))
|
|
147
148
|
await this.show();
|
|
148
149
|
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusFirstItem).call(this);
|
|
149
|
-
event.preventDefault();
|
|
150
|
-
event.stopPropagation();
|
|
151
150
|
return;
|
|
152
151
|
}
|
|
153
152
|
// Prevent space key from scrolling the page when focused on an item
|
|
154
|
-
if (key === ' ') {
|
|
153
|
+
if (key === ' ' || key === 'Enter') {
|
|
155
154
|
event.preventDefault();
|
|
156
155
|
event.stopPropagation();
|
|
157
156
|
return;
|
|
@@ -210,6 +209,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
210
209
|
}
|
|
211
210
|
await this.show();
|
|
212
211
|
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_initializeFirstItem).call(this);
|
|
212
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusFirstItem).call(this);
|
|
213
213
|
});
|
|
214
214
|
_Dropdown_boundOnFocusout.set(this, (event) => {
|
|
215
215
|
ignorePromise(__classPrivateFieldGet(this, _Dropdown_onFocusout, "f").call(this, event));
|
|
@@ -243,10 +243,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
243
243
|
const { host } = this;
|
|
244
244
|
if (reference instanceof globalThis.Element) {
|
|
245
245
|
reference.setAttribute('aria-expanded', 'true');
|
|
246
|
-
reference.setAttribute('aria-controls', host.id);
|
|
247
246
|
host.setAttribute('aria-labelledby', reference.id);
|
|
248
|
-
if (!reference.hasAttribute('aria-haspopup'))
|
|
249
|
-
reference.setAttribute('aria-haspopup', 'true');
|
|
250
247
|
if (isQdsButton(reference) && reference.action === 'dropdown')
|
|
251
248
|
reference.action = 'dropdown-close';
|
|
252
249
|
}
|
|
@@ -267,7 +264,6 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
267
264
|
return;
|
|
268
265
|
if (__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element) {
|
|
269
266
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-expanded', 'false');
|
|
270
|
-
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeAttribute('aria-controls');
|
|
271
267
|
if (isQdsButton(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f")) &&
|
|
272
268
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").action === 'dropdown-close')
|
|
273
269
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").action = 'dropdown';
|
|
@@ -300,14 +296,16 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
300
296
|
async updateReferenceElement() {
|
|
301
297
|
var _a;
|
|
302
298
|
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_disconnectReferenceElement).call(this);
|
|
303
|
-
__classPrivateFieldSet(this, _Dropdown_referenceElement, resolveTarget(this.target), "f");
|
|
299
|
+
__classPrivateFieldSet(this, _Dropdown_referenceElement, resolveTarget(this.target, 'qds-dropdown'), "f");
|
|
304
300
|
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element))
|
|
305
301
|
return;
|
|
306
302
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-expanded', 'false');
|
|
303
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-haspopup', 'true');
|
|
304
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-controls', this.host.id);
|
|
307
305
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('click', __classPrivateFieldGet(this, _Dropdown_boundOnReferenceClick, "f"));
|
|
308
306
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('focusout', __classPrivateFieldGet(this, _Dropdown_boundOnFocusout, "f"));
|
|
309
307
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('keydown', __classPrivateFieldGet(this, _Dropdown_boundOnKeydown, "f"));
|
|
310
|
-
if (this.
|
|
308
|
+
if (this.internals.role === 'menu') {
|
|
311
309
|
(_a = __classPrivateFieldGet(this, _Dropdown_referenceElement, "f")).id || (_a.id = `qds-dropdown-trigger-${autoIncrementingId}`);
|
|
312
310
|
this.host.setAttribute('aria-labelledby', __classPrivateFieldGet(this, _Dropdown_referenceElement, "f").id);
|
|
313
311
|
}
|
|
@@ -366,7 +364,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
|
366
364
|
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_disconnectReferenceElement).call(this);
|
|
367
365
|
}
|
|
368
366
|
render() {
|
|
369
|
-
return (h(Host, { key: '
|
|
367
|
+
return (h(Host, { key: '0e08f6bea6c7daaf5663fde8a64e4b57986fa9b3', onKeyDown: __classPrivateFieldGet(this, _Dropdown_onKeydown, "f"), onFocusout: __classPrivateFieldGet(this, _Dropdown_onFocusout, "f") }, h("slot", { key: '20c10767c9c7d03c7097d7112e8ee489dd72a194', onSlotchange: __classPrivateFieldGet(this, _Dropdown_onSlotchange, "f") })));
|
|
370
368
|
}
|
|
371
369
|
static get delegatesFocus() { return true; }
|
|
372
370
|
get host() { return this; }
|
|
@@ -423,9 +421,13 @@ _Dropdown_cleanup = new WeakMap(), _Dropdown_Items = new WeakMap(), _Dropdown_ga
|
|
|
423
421
|
}, _Dropdown_focusFirstItem = function _Dropdown_focusFirstItem() {
|
|
424
422
|
requestAnimationFrame(() => {
|
|
425
423
|
const firstItem = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_setFirstItemTabindex).call(this);
|
|
426
|
-
if (
|
|
424
|
+
if (firstItem) {
|
|
425
|
+
firstItem.focus();
|
|
427
426
|
return;
|
|
428
|
-
|
|
427
|
+
}
|
|
428
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_findFirstFocusableDescendant).call(this);
|
|
429
|
+
if (focusable)
|
|
430
|
+
focusable.focus();
|
|
429
431
|
});
|
|
430
432
|
}, _Dropdown_initializeFirstItem = function _Dropdown_initializeFirstItem() {
|
|
431
433
|
requestAnimationFrame(() => {
|
|
@@ -441,10 +443,34 @@ _Dropdown_cleanup = new WeakMap(), _Dropdown_Items = new WeakMap(), _Dropdown_ga
|
|
|
441
443
|
item.setAttribute('tabindex', '-1');
|
|
442
444
|
firstItem.setAttribute('tabindex', '0');
|
|
443
445
|
return firstItem;
|
|
446
|
+
}, _Dropdown_findFirstFocusableDescendant = function _Dropdown_findFirstFocusableDescendant() {
|
|
447
|
+
for (const child of this.host.children) {
|
|
448
|
+
if (child instanceof H && !child.inert) {
|
|
449
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusWithin).call(this, child);
|
|
450
|
+
if (focusable)
|
|
451
|
+
return focusable;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return undefined;
|
|
455
|
+
}, _Dropdown_focusWithin = function _Dropdown_focusWithin(target) {
|
|
456
|
+
target.focus();
|
|
457
|
+
if (target.matches(':focus'))
|
|
458
|
+
return target;
|
|
459
|
+
if (target.shadowRoot) {
|
|
460
|
+
for (const child of target.shadowRoot.querySelectorAll('*')) {
|
|
461
|
+
if (child instanceof H && !child.inert) {
|
|
462
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusWithin).call(this, child);
|
|
463
|
+
if (focusable)
|
|
464
|
+
return focusable;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
return undefined;
|
|
444
469
|
}, _Dropdown_disconnectReferenceElement = function _Dropdown_disconnectReferenceElement() {
|
|
445
470
|
this.host.removeAttribute('aria-labelledby');
|
|
446
471
|
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element))
|
|
447
472
|
return;
|
|
473
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('click', __classPrivateFieldGet(this, _Dropdown_boundOnReferenceClick, "f"));
|
|
448
474
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('focusout', __classPrivateFieldGet(this, _Dropdown_boundOnFocusout, "f"));
|
|
449
475
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('keydown', __classPrivateFieldGet(this, _Dropdown_boundOnKeydown, "f"));
|
|
450
476
|
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeAttribute('aria-expanded');
|
|
@@ -465,6 +491,6 @@ function defineCustomElement() {
|
|
|
465
491
|
}
|
|
466
492
|
|
|
467
493
|
export { Dropdown as D, defineCustomElement as d };
|
|
468
|
-
//# sourceMappingURL=p-
|
|
494
|
+
//# sourceMappingURL=p-Cevyg51v.js.map
|
|
469
495
|
|
|
470
|
-
//# sourceMappingURL=p-
|
|
496
|
+
//# sourceMappingURL=p-Cevyg51v.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-Cevyg51v.js","mappings":"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","names":["HTMLElement","__stencil_proxyCustomElement"],"sources":["src/components/dropdown/dropdown.css?tag=qds-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n background-color: var(--qds-theme-popup-background);\n border-radius: var(--qds-popup-border-radius);\n border: none;\n box-shadow: var(--qds-popup-elevation);\n box-sizing: border-box;\n display: inline-block;\n inset: unset;\n margin: 0;\n overflow: initial;\n padding: 0;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n AutoUpdateOptions,\n DetectOverflowOptions,\n FlipOptions,\n Middleware,\n Placement,\n ReferenceElement,\n ShiftOptions,\n Strategy,\n} from '@floating-ui/dom'\nimport {\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n shift,\n} from '@floating-ui/dom'\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Host,\n Listen,\n Method,\n Prop,\n Watch,\n} from '@stencil/core'\n\nimport type { OffsetOptions } from '../../helpers'\nimport {\n closestElement,\n getSubmenuCloseKey,\n ignorePromise,\n propertyToPx,\n resolveTarget,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\n\nlet autoIncrementingId = 1\n\nconst isQdsButton = (\n element: globalThis.Element,\n): element is HTMLQdsButtonElement =>\n element.tagName.toLowerCase() === 'qds-button'\n\nconst ALLOWED_TAGS: ReadonlySet<string> = new Set([\n 'qds-action-item',\n 'qds-menu-item',\n 'qds-list-item',\n])\n\nconst isEnabledItem = (element: unknown): element is HTMLElement =>\n element instanceof HTMLElement &&\n ALLOWED_TAGS.has(element.tagName.toLowerCase()) &&\n !element.hasAttribute('disabled') &&\n !element.inert &&\n element.getAttribute('list-action') !== 'none'\n\n/**\n * @slot Content to display in the dropdown.\n * @see https://quartz.se.com/build/components/dropdown\n */\n@Component({\n tag: 'qds-dropdown',\n shadow: { delegatesFocus: true },\n styleUrl: 'dropdown.css',\n})\nexport class Dropdown implements ComponentInterface {\n /**\n * Options to pass to Floating UI's\n * [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).\n *\n * @see https://floating-ui.com/docs/autoupdate#options\n */\n @Prop() public readonly autoUpdateOptions?: AutoUpdateOptions\n\n /**\n * Prevents the dropdown from being shown by user interaction. The dropdown\n * can still be displayed by calling the `show()` method.\n */\n @Prop() public readonly disabled: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n *\n * The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is\n * set to the value of the `noShift` property by default for interoperability\n * with the [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/flip#options\n */\n @Prop() public readonly flipOptions?: Partial<\n DetectOverflowOptions & FlipOptions\n >\n\n /**\n * Disable Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n */\n @Prop() public readonly noFlip: boolean = false\n\n /**\n * Disable Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n */\n @Prop() public readonly noShift: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`offset` middleware](https://floating-ui.com/docs/offset).\n *\n * The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is\n * not supported.\n *\n * @see https://floating-ui.com/docs/offset#options\n */\n @Prop() public readonly offsetOptions?: OffsetOptions\n\n /**\n * Where to place the dropdown relative to the `target`.\n *\n * @see https://floating-ui.com/docs/tutorial#placements\n */\n @Prop() public readonly placement: Placement = 'bottom-start'\n\n /**\n * Options to pass to Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/shift#options\n */\n @Prop() public readonly shiftOptions?: Partial<\n DetectOverflowOptions & ShiftOptions\n >\n\n /**\n * The CSS position strategy to use.\n *\n * @see https://floating-ui.com/docs/computeposition#strategy\n */\n @Prop() public readonly strategy?: Strategy\n\n /**\n * The trigger element that will trigger the dropdown. The target specified\n * can be any of the following:\n *\n * - A CSS selector string\n * - A reference to an [`Element`][] or [Virtual Element][]\n * - A function returning a reference to an [`Element`][],\n * [Virtual Element][], or a CSS selector string\n *\n * [`Element`]: https://developer.mozilla.org/docs/Web/API/Element\n * [Virtual Element]: https://floating-ui.com/docs/virtual-elements\n */\n @Prop() public readonly target!:\n | ReferenceElement\n | string\n | (() => ReferenceElement | string)\n\n /**\n * By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\n * dropdowns that allow for multiple interactions.\n */\n @Prop() public readonly keepOpenOnSelect: boolean = false\n\n /**\n * Emitted when the user instructs the browser that they wish to dismiss the\n * current open dropdown by pressing the `Esc` key.\n *\n * When a dropdown is dismissed with the `Esc` key, both the `qdsCancel` and\n * `qdsClose` events are emitted.\n */\n @Event({ eventName: 'qdsCancel', bubbles: false })\n private readonly cancelEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the dropdown is closed.\n */\n @Event({ eventName: 'qdsClose', bubbles: false, cancelable: false })\n private readonly closeEmitter!: EventEmitter<void>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #cleanup?: () => void\n\n #Items: HTMLElement[] = []\n\n #gap = 0\n\n #middleware?: (Middleware | false)[]\n\n #referenceElement?: ReferenceElement\n\n #open = false\n\n /**\n * Whether the dropdown has been opened at least once.\n * This is used to determine whether the dropdown should update its position, gap\n * and middleware when it is opened.\n */\n #opened = false\n\n /**\n * Updates the gap between the dropdown and its target element.\n */\n @Method()\n public async updateGap(): Promise<void> {\n this.#gap = propertyToPx(this.host, '--qds-accessory-gap-floating') ?? 0\n\n await this.updateMiddleware()\n }\n\n /**\n * Shows the dropdown.\n */\n @Method()\n public async show(): Promise<void> {\n if (this.#open) return\n\n const reference = this.#referenceElement\n const { host } = this\n\n if (reference instanceof globalThis.Element) {\n reference.setAttribute('aria-expanded', 'true')\n host.setAttribute('aria-labelledby', reference.id)\n\n if (isQdsButton(reference) && reference.action === 'dropdown')\n reference.action = 'dropdown-close'\n }\n\n if (!this.#opened) {\n await this.updateGap()\n this.#opened = true\n }\n this.startAutoUpdate()\n this.#open = true\n host.hidden = false\n host.showPopover()\n }\n\n /**\n * Closes the dropdown.\n */\n @Method()\n public async close(): Promise<void> {\n if (!this.#open) return\n\n if (this.#referenceElement instanceof globalThis.Element) {\n this.#referenceElement.setAttribute('aria-expanded', 'false')\n\n if (\n isQdsButton(this.#referenceElement) &&\n this.#referenceElement.action === 'dropdown-close'\n )\n this.#referenceElement.action = 'dropdown'\n }\n\n if (this.#cleanup) this.#cleanup()\n this.#open = false\n this.host.hidden = true\n this.host.hidePopover()\n\n this.closeEmitter.emit()\n }\n\n @Method()\n public async focusFirstItem(): Promise<void> {\n this.#focusFirstItem()\n }\n\n @Listen('click', { target: 'document' })\n protected async handleMouseDown(event: MouseEvent): Promise<void> {\n if (!this.#open) return\n\n const composedPath = event.composedPath()\n const withinBounds =\n composedPath.includes(this.host) ||\n (this.#referenceElement instanceof globalThis.Element &&\n composedPath.includes(this.#referenceElement))\n if (!withinBounds) await this.close()\n }\n\n @Listen('click')\n protected async onItemClick(event: MouseEvent): Promise<void> {\n if (!this.keepOpenOnSelect && isEnabledItem(event.target)) {\n await this.close()\n }\n }\n\n @Watch('target')\n private async updateReferenceElement(): Promise<void> {\n this.#disconnectReferenceElement()\n\n this.#referenceElement = resolveTarget(this.target, 'qds-dropdown')\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.#referenceElement.setAttribute('aria-expanded', 'false')\n this.#referenceElement.setAttribute('aria-haspopup', 'true')\n this.#referenceElement.setAttribute('aria-controls', this.host.id)\n this.#referenceElement.addEventListener(\n 'click',\n this.#boundOnReferenceClick,\n )\n this.#referenceElement.addEventListener('focusout', this.#boundOnFocusout)\n this.#referenceElement.addEventListener('keydown', this.#boundOnKeydown)\n\n if (this.internals.role === 'menu') {\n this.#referenceElement.id ||= `qds-dropdown-trigger-${autoIncrementingId}`\n this.host.setAttribute('aria-labelledby', this.#referenceElement.id)\n }\n }\n\n @Watch('flipOptions')\n @Watch('noFlip')\n @Watch('noShift')\n @Watch('offsetOptions')\n @Watch('shiftOptions')\n private async updateMiddleware(): Promise<void> {\n this.#middleware = [\n offset({\n ...this.offsetOptions,\n mainAxis: this.#gap,\n }),\n !this.noFlip &&\n flip({\n crossAxis: this.noShift,\n ...this.flipOptions,\n }),\n !this.noShift &&\n shift({\n limiter: limitShift(),\n ...this.shiftOptions,\n }),\n ]\n }\n\n @Watch('middleware')\n @Watch('placement')\n @Watch('strategy')\n private async updatePosition(): Promise<void> {\n if (!this.#referenceElement) return\n\n const { x, y, strategy } = await computePosition(\n this.#referenceElement,\n this.host,\n {\n middleware: this.#middleware,\n placement: this.placement,\n strategy: this.strategy,\n },\n )\n Object.assign(this.host.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n })\n }\n\n @Watch('autoUpdateOptions')\n private startAutoUpdate(): void {\n if (!this.#referenceElement) return\n\n if (this.#cleanup) this.#cleanup()\n this.#cleanup = autoUpdate(\n this.#referenceElement,\n this.host,\n () => {\n ignorePromise(this.updatePosition())\n },\n this.autoUpdateOptions,\n )\n }\n\n public async componentWillLoad(): Promise<void> {\n this.host.hidden = true\n this.host.popover = 'manual'\n this.internals.role = 'menu'\n this.host.id ||= `qds-dropdown-${autoIncrementingId}`\n await this.updateReferenceElement()\n autoIncrementingId += 1\n }\n\n public disconnectedCallback(): void {\n this.#disconnectReferenceElement()\n }\n\n public render() {\n return (\n <Host onKeyDown={this.#onKeydown} onFocusout={this.#onFocusout}>\n <slot onSlotchange={this.#onSlotchange} />\n </Host>\n )\n }\n\n readonly #onFocusout = async (event: Event): Promise<void> => {\n if (!(event instanceof FocusEvent)) return\n const { relatedTarget } = event\n\n const dropdownItem = this.#Items.find((item) => item === relatedTarget)\n if (\n relatedTarget instanceof globalThis.Element &&\n !this.host.contains(relatedTarget) &&\n !dropdownItem\n )\n await this.close()\n }\n\n #focusOnTrigger(): void {\n if (\n !(this.#referenceElement instanceof globalThis.HTMLElement) &&\n !(this.#referenceElement instanceof globalThis.SVGElement)\n )\n return\n\n const root = this.#referenceElement.getRootNode()\n const target =\n root instanceof globalThis.ShadowRoot\n ? (root.host as HTMLElement)\n : this.#referenceElement\n\n target.focus()\n }\n\n readonly #onKeydown = async (event: Event): Promise<void> => {\n if (!(event instanceof KeyboardEvent)) return\n\n const { key, target } = event\n const targetRootNode =\n target instanceof globalThis.Node ? target.getRootNode() : undefined\n const keydownOnReference =\n target === this.#referenceElement ||\n (targetRootNode instanceof globalThis.ShadowRoot &&\n targetRootNode.host === this.#referenceElement) ||\n (target instanceof globalThis.Element &&\n this.#referenceElement instanceof globalThis.Element &&\n this.#referenceElement.contains(target))\n\n if (key === 'Enter' && !this.keepOpenOnSelect && isEnabledItem(target)) {\n // Keep parent open when Enter is used on an item with a nested submenu.\n if (\n target instanceof HTMLElement &&\n target.shadowRoot?.querySelector('qds-dropdown')\n )\n return\n\n await this.close()\n this.#focusOnTrigger()\n return\n }\n\n if (\n key === 'Escape' &&\n (target === this.#referenceElement ||\n (target instanceof globalThis.Element &&\n closestElement('qds-dropdown', target) === this.host))\n ) {\n const cancelEvent = this.cancelEmitter.emit()\n if (cancelEvent.defaultPrevented) return\n\n await this.close()\n this.#focusOnTrigger()\n\n return\n }\n\n if (keydownOnReference && (key === 'ArrowDown' || key === 'ArrowUp')) {\n event.preventDefault()\n event.stopPropagation()\n if (!this.#open) await this.show()\n this.#focusFirstItem()\n return\n }\n // Prevent space key from scrolling the page when focused on an item\n if (key === ' ' || key === 'Enter') {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n if (key === getSubmenuCloseKey(this.host) && this.#open) {\n event.preventDefault()\n event.stopPropagation()\n await this.close()\n this.#focusOnTrigger()\n return\n }\n\n if (!VERTICAL_MOVE_KEYS.has(key)) return\n\n const Items = this.#Items.filter(\n (item: HTMLElement) =>\n isEnabledItem(item) &&\n closestElement('qds-dropdown', item) === this.host,\n )\n\n if (Items.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const currentIndex = Items.findIndex(\n (item: HTMLElement) => item.getAttribute('tabindex') === '0',\n )\n\n let nextIndex = currentIndex\n\n switch (key) {\n case 'ArrowUp': {\n nextIndex = currentIndex > 0 ? currentIndex - 1 : Items.length - 1\n break\n }\n case 'ArrowDown': {\n nextIndex = currentIndex < Items.length - 1 ? currentIndex + 1 : 0\n break\n }\n case 'Home': {\n nextIndex = 0\n break\n }\n case 'End': {\n nextIndex = Items.length - 1\n break\n }\n default: {\n return\n }\n }\n const nextItem = Items[nextIndex]\n for (const [index, item] of Items.entries()) {\n ;(item as HTMLElement).setAttribute(\n 'tabindex',\n index === nextIndex ? '0' : '-1',\n )\n }\n\n nextItem.focus()\n event.preventDefault()\n }\n\n readonly #onReferenceClick = async (): Promise<void> => {\n if (this.disabled) return\n\n if (this.#open) {\n await this.close()\n return\n }\n\n await this.show()\n this.#initializeFirstItem()\n this.#focusFirstItem()\n }\n\n #focusFirstItem(): void {\n requestAnimationFrame(() => {\n const firstItem = this.#setFirstItemTabindex()\n if (firstItem) {\n firstItem.focus()\n return\n }\n\n const focusable = this.#findFirstFocusableDescendant()\n if (focusable) focusable.focus()\n })\n }\n\n #initializeFirstItem(): void {\n requestAnimationFrame(() => {\n this.#setFirstItemTabindex()\n })\n }\n\n #setFirstItemTabindex(): HTMLElement | undefined {\n const firstItem = this.#Items.find(\n (item) =>\n item instanceof HTMLElement &&\n isEnabledItem(item) &&\n closestElement('qds-dropdown', item) === this.host,\n )\n if (!firstItem) return undefined\n for (const item of this.#Items) item.setAttribute('tabindex', '-1')\n firstItem.setAttribute('tabindex', '0')\n return firstItem\n }\n\n #findFirstFocusableDescendant(): HTMLElement | undefined {\n for (const child of this.host.children) {\n if (child instanceof HTMLElement && !child.inert) {\n const focusable = this.#focusWithin(child)\n if (focusable) return focusable\n }\n }\n\n return undefined\n }\n\n #focusWithin(target: HTMLElement): HTMLElement | undefined {\n target.focus()\n if (target.matches(':focus')) return target\n\n if (target.shadowRoot) {\n for (const child of target.shadowRoot.querySelectorAll('*')) {\n if (child instanceof HTMLElement && !child.inert) {\n const focusable = this.#focusWithin(child)\n if (focusable) return focusable\n }\n }\n }\n\n return undefined\n }\n\n #disconnectReferenceElement(): void {\n this.host.removeAttribute('aria-labelledby')\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.#referenceElement.removeEventListener(\n 'click',\n this.#boundOnReferenceClick,\n )\n this.#referenceElement.removeEventListener(\n 'focusout',\n this.#boundOnFocusout,\n )\n this.#referenceElement.removeEventListener('keydown', this.#boundOnKeydown)\n this.#referenceElement.removeAttribute('aria-expanded')\n this.#referenceElement.removeAttribute('aria-controls')\n }\n\n readonly #boundOnFocusout = (event: Event): void => {\n ignorePromise(this.#onFocusout(event))\n }\n\n readonly #boundOnKeydown = (event: Event): void => {\n ignorePromise(this.#onKeydown(event))\n }\n\n readonly #boundOnReferenceClick = (): void => {\n ignorePromise(this.#onReferenceClick())\n }\n\n readonly #onSlotchange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement\n const assignedElements = slot.assignedElements({ flatten: true })\n\n this.#Items = assignedElements.filter((element): element is HTMLElement =>\n isEnabledItem(element),\n )\n }\n}\n"],"version":3}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { p as proxyCustomElement, H, c as createEvent, h } from './p-D2489VzR.js';
|
|
7
|
-
import { p as pickFocusEventAttributes } from './p-
|
|
7
|
+
import { p as pickFocusEventAttributes, c as isIndicator, d as isCounter, e as computeBadgeValue } from './p-BoqB4ddF.js';
|
|
8
8
|
import { d as defineCustomElement$4 } from './p-XP2CY_fo.js';
|
|
9
|
-
import { d as defineCustomElement$3 } from './p-
|
|
10
|
-
import { d as defineCustomElement$2 } from './p-
|
|
11
|
-
import { d as defineCustomElement$1 } from './p-
|
|
9
|
+
import { d as defineCustomElement$3 } from './p-DOqfdgQA.js';
|
|
10
|
+
import { d as defineCustomElement$2 } from './p-fKK7EmM2.js';
|
|
11
|
+
import { d as defineCustomElement$1 } from './p-CQ-Ilm5d.js';
|
|
12
12
|
|
|
13
|
-
const iconButtonCss = ":host{display:block;outline:none}.qds-focus-ring{border-radius:max(1px,var(\n --qds-form-input-border-radius-top-left,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-top-right,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-right,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-left,var(--qds-control-border-radius)\n ));box-shadow:0 0 0 var(--qds-focus-heavy-border-width) var(--qds-theme-focus-border);grid-area:
|
|
13
|
+
const iconButtonCss = ":host{display:block;outline:none}.qds-focus-ring{border-radius:max(1px,var(\n --qds-form-input-border-radius-top-left,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-top-right,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-right,var(--qds-control-border-radius)\n )) max(1px,var(\n --qds-form-input-border-radius-bottom-left,var(--qds-control-border-radius)\n ));box-shadow:0 0 0 var(--qds-focus-heavy-border-width) var(--qds-theme-focus-border);grid-area:d;height:calc(100% + var(--qds-control-border-width) - var(--qds-control-border-width));isolation:isolate;outline:var(--qds-theme-focus-border-contrast) solid var(--qds-focus-light-border-width);outline-offset:0;pointer-events:none;visibility:hidden;width:calc(100% + var(--qds-control-border-width) - var(\n --qds-form-input-border-width-inline-end,\n var(--qds-control-border-width)\n ))}:host(:focus-visible) .qds-focus-ring{visibility:visible}.qds-container{display:grid;grid-template-areas:\"d\"}.qds-icon-button{align-items:center;-webkit-appearance:none;appearance:none;background-color:initial;border:none;border-radius:var(\n --qds-form-input-border-radius-top-left,var(--qds-control-border-radius)\n ) var(\n --qds-form-input-border-radius-top-right,var(--qds-control-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-right,var(--qds-control-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-left,var(--qds-control-border-radius)\n );box-sizing:border-box;color:var(--qds-theme-control-text-standard);cursor:pointer;display:flex;grid-area:d;justify-content:center;line-height:normal;min-width:0;outline:none;padding-inline:0;position:relative;-webkit-user-select:none;user-select:none}.qds-icon-button:hover{background-color:var(--qds-theme-interactive-background-hover)}.qds-icon-button:active{background-color:var(--qds-theme-interactive-background-pressed)}.qds-disabled{opacity:var(--qds-theme-disabled);pointer-events:none}.qds-icon{flex-shrink:0}.qds-indicator{transform:translate(50%,-50%)}.qds-counter,.qds-indicator{position:absolute}[data-size=small]{min-height:var(--qds-control-small-height);width:var(--qds-control-small-height)}.qds-icon[data-size=small]{min-height:var(--qds-control-small-icon-size);width:var(--qds-control-small-icon-size)}[data-size=small] .qds-indicator{inset-block-start:var(\n --qds-control-icon-button-small-badge-indicator-padding-top\n );inset-inline-end:var(\n --qds-control-icon-button-small-badge-indicator-padding-end\n )}[data-size=small] .qds-counter{inset-block-start:calc(var(--qds-control-icon-button-small-badge-counter-padding-top) - var(--qds-feedback-badge-border-width));inset-inline-end:calc(var(--qds-control-icon-button-small-badge-counter-padding-end) - var(--qds-feedback-badge-border-width))}[data-size=standard]{min-height:var(--qds-control-standard-height);width:var(--qds-control-standard-height)}.qds-icon[data-size=standard]{min-height:var(--qds-control-standard-icon-size);width:var(--qds-control-standard-icon-size)}[data-size=standard] .qds-indicator{inset-block-start:var(\n --qds-control-icon-button-standard-badge-indicator-padding-top\n );inset-inline-end:var(\n --qds-control-icon-button-standard-badge-indicator-padding-end\n )}[data-size=standard] .qds-counter{inset-block-start:calc(var(--qds-control-icon-button-standard-badge-counter-padding-top) - var(--qds-feedback-badge-border-width));inset-inline-end:calc(var(--qds-control-icon-button-standard-badge-counter-padding-end) - var(--qds-feedback-badge-border-width))}[data-size=large]{min-height:var(--qds-control-large-height);width:var(--qds-control-large-height)}.qds-icon[data-size=large]{min-height:var(--qds-control-large-icon-size);width:var(--qds-control-large-icon-size)}[data-size=large] .qds-indicator{inset-block-start:var(\n --qds-control-icon-button-large-badge-indicator-padding-top\n );inset-inline-end:var(\n --qds-control-icon-button-large-badge-indicator-padding-end\n )}[data-size=large] .qds-counter{inset-block-start:calc(var(--qds-control-icon-button-large-badge-counter-padding-top) - var(--qds-feedback-badge-border-width));inset-inline-end:calc(var(--qds-control-icon-button-large-badge-counter-padding-end) - var(--qds-feedback-badge-border-width))}[data-size=hero]{border-radius:var(\n --qds-form-input-border-radius-top-left,var(--qds-control-hero-border-radius)\n ) var(\n --qds-form-input-border-radius-top-right,var(--qds-control-hero-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-right,var(--qds-control-hero-border-radius)\n ) var(\n --qds-form-input-border-radius-bottom-left,var(--qds-control-hero-border-radius)\n );min-height:var(--qds-control-hero-height);width:var(--qds-control-hero-height)}.qds-icon[data-size=hero]{min-height:var(--qds-control-hero-icon-size);width:var(--qds-control-hero-icon-size)}[data-size=hero] .qds-indicator{inset-block-start:var(\n --qds-control-icon-button-hero-badge-indicator-padding-top\n );inset-inline-end:var(\n --qds-control-icon-button-hero-badge-indicator-padding-end\n )}[data-size=hero] .qds-counter{inset-block-start:var(\n --qds-control-icon-button-hero-badge-counter-padding-top\n );inset-inline-end:var(\n --qds-control-icon-button-hero-badge-counter-padding-end\n )}[data-importance=subdued]{color:var(--qds-theme-control-text-standard)}[data-importance=subdued]:hover{background-color:var(--qds-theme-interactive-background-hover)}[data-importance=subdued]:active{background-color:var(--qds-theme-interactive-background-pressed)}[data-importance=standard]{border:var(--qds-control-border-width) solid var(--qds-theme-control-border-default);color:var(--qds-theme-control-text-standard)}[data-importance=standard]:hover{background-color:var(--qds-theme-interactive-background-hover)}[data-importance=standard]:active{background-color:var(--qds-theme-interactive-background-pressed)}[data-importance=emphasized]{background-color:var(--qds-theme-signature-color-default);color:var(--qds-theme-signature-color-contrast)}[data-importance=emphasized]:hover{background-color:var(--qds-theme-signature-color-hover)}[data-importance=emphasized]:active{background-color:var(--qds-theme-signature-color-pressed)}[data-importance=destructive]{background-color:var(--qds-theme-feedback-action-destructive-default);color:var(--qds-theme-feedback-action-destructive-contrast)}[data-importance=destructive]:hover{background-color:var(--qds-theme-feedback-action-destructive-hover)}[data-importance=destructive]:active{background-color:var(--qds-theme-feedback-action-destructive-pressed)}[data-importance=subdued-destructive]{border:none;color:var(--qds-theme-feedback-action-destructive-default)}[data-importance=subdued-destructive]:hover{background-color:var(--qds-theme-interactive-background-hover);color:var(--qds-theme-feedback-action-destructive-default)}[data-importance=subdued-destructive]:active{background-color:var(--qds-theme-interactive-background-pressed);color:var(--qds-theme-feedback-action-destructive-default)}";
|
|
14
14
|
|
|
15
15
|
// SPDX-FileCopyrightText: © 2025 Schneider Electric
|
|
16
16
|
//
|
|
@@ -32,10 +32,6 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
32
32
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
33
33
|
};
|
|
34
34
|
var _IconButton_instances, _IconButton_savedTabIndex, _IconButton_button, _IconButton_tooltip, _IconButton_rawAriaLabel, _IconButton_computedSize_get, _IconButton_computedImportance_get, _IconButton_computedDisabled_get, _IconButton_hasText_get, _IconButton_updateAriaLabel, _IconButton_ref, _IconButton_tooltipRef;
|
|
35
|
-
const isCounter = (value) => typeof value === 'string'
|
|
36
|
-
? !Number.isNaN(Number.parseFloat(value))
|
|
37
|
-
: typeof value === 'number';
|
|
38
|
-
const isIndicator = (value) => value === '' || value === true;
|
|
39
35
|
const preventDefault = (event) => {
|
|
40
36
|
event.preventDefault();
|
|
41
37
|
};
|
|
@@ -89,7 +85,7 @@ const IconButton = /*@__PURE__*/ proxyCustomElement(class IconButton extends H {
|
|
|
89
85
|
_IconButton_tooltipRef.set(this, (tooltip) => {
|
|
90
86
|
if (tooltip) {
|
|
91
87
|
// eslint-disable-next-line no-param-reassign
|
|
92
|
-
tooltip.target =
|
|
88
|
+
tooltip.target = this.host;
|
|
93
89
|
__classPrivateFieldSet(this, _IconButton_tooltip, tooltip, "f");
|
|
94
90
|
}
|
|
95
91
|
});
|
|
@@ -168,10 +164,10 @@ const IconButton = /*@__PURE__*/ proxyCustomElement(class IconButton extends H {
|
|
|
168
164
|
}
|
|
169
165
|
render() {
|
|
170
166
|
const Tag = this.href === undefined ? 'button' : 'a';
|
|
171
|
-
return (h("div", { key: '
|
|
167
|
+
return (h("div", { key: 'a2803cbdd9bc5e5e8b4c633b6b897f658171c47b', class: "qds-container", "aria-hidden": "true" }, h(Tag, { key: '3aec5e2fbee2cac9985a268cb6f29ecd423a3500', type: Tag === 'a' ? undefined : 'button', class: {
|
|
172
168
|
'qds-icon-button': true,
|
|
173
169
|
'qds-disabled': __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedDisabled_get),
|
|
174
|
-
}, href: Tag === 'a' ? this.href : undefined, target: Tag === 'a' ? this.target : undefined, rel: Tag === 'a' ? this.rel : undefined, ref: __classPrivateFieldGet(this, _IconButton_ref, "f"), disabled: Tag === 'a' ? undefined : __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedDisabled_get), download: Tag === 'a' ? this.download : undefined, "data-size": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get), "data-importance": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedImportance_get), onKeyDown: preventDefault, onKeyUp: preventDefault, onKeyPress: preventDefault, tabIndex: -1 }, h("qds-icon", { key: '
|
|
170
|
+
}, href: Tag === 'a' ? this.href : undefined, target: Tag === 'a' ? this.target : undefined, rel: Tag === 'a' ? this.rel : undefined, ref: __classPrivateFieldGet(this, _IconButton_ref, "f"), disabled: Tag === 'a' ? undefined : __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedDisabled_get), download: Tag === 'a' ? this.download : undefined, "data-size": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get), "data-importance": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedImportance_get), onKeyDown: preventDefault, onKeyUp: preventDefault, onKeyPress: preventDefault, tabIndex: -1 }, h("qds-icon", { key: '9d93634f3b86517b1b440a17f2295be29cd9dda7', class: "qds-icon", "data-size": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get), library: this.iconLibrary, name: this.iconName }), isIndicator(this.badge) && (h("qds-badge-indicator", { key: '7969d5bedaa444a0bb73f81a9b6d42ac1ea78727', class: "qds-indicator", status: this.badgeIndicatorStatus, description: this.badgeDescription, size: __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get), strokeRing: true })), isCounter(this.badge) && (h("qds-badge-counter", { key: '11d3a61a6c06abc8f4bbabee349898826d6880c3', class: "qds-counter", description: this.badgeDescription, importance: __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedImportance_get), size: __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get), strokeRing: true, value: this.badge }))), h("div", { key: '4ec792cd970d1664aa92e243cd4008049a26ee0e', class: "qds-focus-ring", "data-size": __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_computedSize_get) }), __classPrivateFieldGet(this, _IconButton_instances, "a", _IconButton_hasText_get) && (h("qds-tooltip", { key: 'd8091fce4390e61261f00e584589788d7ef153f7', ref: __classPrivateFieldGet(this, _IconButton_tooltipRef, "f") }, this.text))));
|
|
175
171
|
}
|
|
176
172
|
static get formAssociated() { return true; }
|
|
177
173
|
get host() { return this; }
|
|
@@ -234,14 +230,8 @@ _IconButton_savedTabIndex = new WeakMap(), _IconButton_button = new WeakMap(), _
|
|
|
234
230
|
}, _IconButton_updateAriaLabel = function _IconButton_updateAriaLabel() {
|
|
235
231
|
const label = this.text ?? __classPrivateFieldGet(this, _IconButton_rawAriaLabel, "f") ?? '';
|
|
236
232
|
const hasBadge = this.badge !== undefined;
|
|
237
|
-
if (hasBadge
|
|
238
|
-
this.internals.ariaLabel =
|
|
239
|
-
? `${label} ${this.badgeDescription}`
|
|
240
|
-
: `${label} ${this.badge} ${this.badgeDescription}`;
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
if (hasBadge && !isIndicator(this.badge)) {
|
|
244
|
-
this.internals.ariaLabel = `${label} ${this.badge}`;
|
|
233
|
+
if (hasBadge) {
|
|
234
|
+
this.internals.ariaLabel = computeBadgeValue(label, this.badge, this.badgeDescription);
|
|
245
235
|
return;
|
|
246
236
|
}
|
|
247
237
|
this.internals.ariaLabel =
|
|
@@ -284,6 +274,6 @@ function defineCustomElement() {
|
|
|
284
274
|
}
|
|
285
275
|
|
|
286
276
|
export { IconButton as I, defineCustomElement as d };
|
|
287
|
-
//# sourceMappingURL=p-
|
|
277
|
+
//# sourceMappingURL=p-CnWdHgve.js.map
|
|
288
278
|
|
|
289
|
-
//# sourceMappingURL=p-
|
|
279
|
+
//# sourceMappingURL=p-CnWdHgve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-CnWdHgve.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/icon-button/icon-button.css?tag=qds-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2025 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n:host {\n display: block;\n outline: none;\n}\n\n.qds-focus-ring {\n /* Support control groups where each corner needs to be individually adjusted depending on where these components are placed in the control group (start, middle, end) */\n border-radius: max(\n 1px,\n var(\n --qds-form-input-border-radius-top-left,\n var(--qds-control-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-control-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-control-border-radius)\n )\n )\n max(\n 1px,\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-control-border-radius)\n )\n );\n grid-area: icon-button;\n isolation: isolate;\n\n /* inner ring */\n outline: var(--qds-theme-focus-border-contrast) solid\n var(--qds-focus-light-border-width);\n outline-offset: 0;\n\n /* outer ring */\n box-shadow: 0 0 0 var(--qds-focus-heavy-border-width)\n var(--qds-theme-focus-border);\n pointer-events: none;\n visibility: hidden;\n width: calc(\n 100% + var(--qds-control-border-width) -\n var(\n --qds-form-input-border-width-inline-end,\n var(--qds-control-border-width)\n )\n );\n height: calc(\n 100% + var(--qds-control-border-width) - var(--qds-control-border-width)\n );\n}\n\n:host(:focus-visible) .qds-focus-ring {\n visibility: visible;\n}\n\n.qds-container {\n display: grid;\n grid-template-areas: 'icon-button';\n}\n\n.qds-icon-button {\n display: flex;\n position: relative;\n\n /* Avoid automatic minimum size on flex element: https://www.w3.org/TR/css-flexbox-1/#min-size-auto */\n min-width: 0;\n align-items: center;\n justify-content: center;\n border-radius: var(\n --qds-form-input-border-radius-top-left,\n var(--qds-control-border-radius)\n )\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-control-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-control-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-control-border-radius)\n );\n grid-area: icon-button;\n outline: none;\n border: none;\n appearance: none;\n user-select: none;\n cursor: pointer;\n box-sizing: border-box;\n background-color: initial;\n color: var(--qds-theme-control-text-standard);\n padding-inline: 0;\n line-height: normal;\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n}\n\n.qds-disabled {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n.qds-icon {\n flex-shrink: 0;\n}\n\n.qds-indicator {\n transform: translate(50%, -50%);\n}\n\n.qds-indicator,\n.qds-counter {\n position: absolute;\n}\n\n[data-size='small'] {\n min-height: var(--qds-control-small-height);\n width: var(--qds-control-small-height);\n\n &.qds-icon {\n min-height: var(--qds-control-small-icon-size);\n width: var(--qds-control-small-icon-size);\n }\n\n .qds-indicator {\n inset-block-start: var(\n --qds-control-icon-button-small-badge-indicator-padding-top\n );\n inset-inline-end: var(\n --qds-control-icon-button-small-badge-indicator-padding-end\n );\n }\n\n .qds-counter {\n inset-block-start: calc(\n var(--qds-control-icon-button-small-badge-counter-padding-top) -\n var(--qds-feedback-badge-border-width)\n );\n inset-inline-end: calc(\n var(--qds-control-icon-button-small-badge-counter-padding-end) -\n var(--qds-feedback-badge-border-width)\n );\n }\n}\n\n[data-size='standard'] {\n min-height: var(--qds-control-standard-height);\n width: var(--qds-control-standard-height);\n\n &.qds-icon {\n min-height: var(--qds-control-standard-icon-size);\n width: var(--qds-control-standard-icon-size);\n }\n\n .qds-indicator {\n inset-block-start: var(\n --qds-control-icon-button-standard-badge-indicator-padding-top\n );\n inset-inline-end: var(\n --qds-control-icon-button-standard-badge-indicator-padding-end\n );\n }\n\n .qds-counter {\n inset-block-start: calc(\n var(--qds-control-icon-button-standard-badge-counter-padding-top) -\n var(--qds-feedback-badge-border-width)\n );\n inset-inline-end: calc(\n var(--qds-control-icon-button-standard-badge-counter-padding-end) -\n var(--qds-feedback-badge-border-width)\n );\n }\n}\n\n[data-size='large'] {\n min-height: var(--qds-control-large-height);\n width: var(--qds-control-large-height);\n\n &.qds-icon {\n min-height: var(--qds-control-large-icon-size);\n width: var(--qds-control-large-icon-size);\n }\n\n .qds-indicator {\n inset-block-start: var(\n --qds-control-icon-button-large-badge-indicator-padding-top\n );\n inset-inline-end: var(\n --qds-control-icon-button-large-badge-indicator-padding-end\n );\n }\n\n .qds-counter {\n inset-block-start: calc(\n var(--qds-control-icon-button-large-badge-counter-padding-top) -\n var(--qds-feedback-badge-border-width)\n );\n inset-inline-end: calc(\n var(--qds-control-icon-button-large-badge-counter-padding-end) -\n var(--qds-feedback-badge-border-width)\n );\n }\n}\n\n[data-size='hero'] {\n min-height: var(--qds-control-hero-height);\n width: var(--qds-control-hero-height);\n border-radius: var(\n --qds-form-input-border-radius-top-left,\n var(--qds-control-hero-border-radius)\n )\n var(\n --qds-form-input-border-radius-top-right,\n var(--qds-control-hero-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-right,\n var(--qds-control-hero-border-radius)\n )\n var(\n --qds-form-input-border-radius-bottom-left,\n var(--qds-control-hero-border-radius)\n );\n\n &.qds-icon {\n min-height: var(--qds-control-hero-icon-size);\n width: var(--qds-control-hero-icon-size);\n }\n\n .qds-indicator {\n inset-block-start: var(\n --qds-control-icon-button-hero-badge-indicator-padding-top\n );\n inset-inline-end: var(\n --qds-control-icon-button-hero-badge-indicator-padding-end\n );\n }\n\n .qds-counter {\n inset-block-start: var(\n --qds-control-icon-button-hero-badge-counter-padding-top\n );\n inset-inline-end: var(\n --qds-control-icon-button-hero-badge-counter-padding-end\n );\n }\n}\n\n[data-importance='subdued'] {\n color: var(--qds-theme-control-text-standard);\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n}\n\n[data-importance='standard'] {\n color: var(--qds-theme-control-text-standard);\n border: var(--qds-control-border-width) solid\n var(--qds-theme-control-border-default);\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n}\n\n[data-importance='emphasized'] {\n background-color: var(--qds-theme-signature-color-default);\n color: var(--qds-theme-signature-color-contrast);\n\n &:hover {\n background-color: var(--qds-theme-signature-color-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n}\n\n[data-importance='destructive'] {\n background-color: var(--qds-theme-feedback-action-destructive-default);\n color: var(--qds-theme-feedback-action-destructive-contrast);\n\n &:hover {\n background-color: var(--qds-theme-feedback-action-destructive-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-feedback-action-destructive-pressed);\n }\n}\n\n[data-importance='subdued-destructive'] {\n color: var(--qds-theme-feedback-action-destructive-default);\n border: none;\n\n &:hover {\n background-color: var(--qds-theme-interactive-background-hover);\n color: var(--qds-theme-feedback-action-destructive-default);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-pressed);\n color: var(--qds-theme-feedback-action-destructive-default);\n }\n}\n","// SPDX-FileCopyrightText: © 2025 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n Watch,\n} from '@stencil/core'\nimport type { LiteralUnion } from 'type-fest'\n\nimport type { QdsFocusEventDetail } from '../../helpers'\nimport {\n computeBadgeValue,\n isCounter,\n isIndicator,\n pickFocusEventAttributes,\n} from '../../helpers'\nimport type { Importance, Size, Target } from '../shared'\n\nexport type IconButtonSize = Size | 'hero'\nexport type IconButtonImportance =\n | Importance\n | 'destructive'\n | 'subdued-destructive'\n\nconst preventDefault = (event: KeyboardEvent | MouseEvent): void => {\n event.preventDefault()\n}\n/**\n * The `<qds-icon-button>` is an interactive element activated by a user\n * with a mouse, keyboard, finger, voice command, or other assistive technology.\n * Once activated, it performs a programmable action, such as submitting a\n * [form](https://developer.mozilla.org/docs/Learn/Forms)\n * or opening a dialog.\n *\n * @see https://quartz.se.com/build/components/icon-button\n */\n@Component({\n tag: 'qds-icon-button',\n formAssociated: true,\n styleUrl: 'icon-button.css',\n shadow: true,\n})\nexport class IconButton implements ComponentInterface {\n /**\n * Prevents the icon button from being interacted with: it cannot be pressed or\n * focused.\n *\n * @webnative\n */\n @Prop()\n public readonly disabled: boolean = false\n\n /**\n * The name of the icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly iconName!: string\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly iconLibrary: string = 'default'\n\n /**\n * The icon button's size.\n */\n @Prop() public readonly size?: Size | 'hero' = 'standard'\n\n /**\n * The icon button's importance.\n */\n @Prop() public readonly importance?: IconButtonImportance = 'standard'\n\n /**\n * Displays an indicator if `true` or the empty string. Otherwise, displays a\n * counter badge if a number or string representing a number is used.\n *\n * @webnative\n */\n @Prop() public readonly badge?: number | string | true\n\n /**\n * The indicator or counter badge's accessible text that will be used by\n * screen readers.\n */\n @Prop() public readonly badgeDescription?: string\n\n /**\n * The indicator's status.\n */\n @Prop()\n public readonly badgeIndicatorStatus?: HTMLQdsBadgeIndicatorElement['status'] =\n 'neutral'\n\n /**\n * Where to display the linked URL, as the name for a browsing context (a\n * tab, window, or\n * [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe).\n * The following keywords have special meanings for where to load the URL:\n *\n * - `_blank`: usually a new tab, but users can configure browsers to open a new\n * window instead.\n * - `_parent`: the parent browsing context of the current one. If no parent,\n * behaves as `_self`.\n * - `_self`: the current browsing context.\n * - `_top`: the topmost browsing context (the \"highest\" context that's an\n * ancestor of the current one). If no ancestors, behaves as `_self`.\n *\n * @webnative\n */\n @Prop() public readonly target?: LiteralUnion<Target, string>\n\n /**\n * When set, the underlying button will be rendered as an `<a>` with this\n * `href` instead of a `<button>`.\n *\n * @webnative\n */\n @Prop() public readonly href?: string\n\n /**\n * When href is define and the button act as a link (`<a>`), the `rel` will be added to the element.\n *\n * @webnative\n */\n @Prop() public readonly rel?: string = 'noopener'\n\n /**\n * Tells the browser to download the linked file as this filename. Only used\n * when `href` is set.\n *\n * @webnative\n */\n @Prop() public readonly download?: string\n\n /**\n * The icon button's accessible name.\n */\n @Prop() public readonly text?: string\n\n /**\n * Emitted when the icon button loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the icon button gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #savedTabIndex = 0\n\n #button?: HTMLAnchorElement | HTMLButtonElement\n\n #tooltip?: HTMLQdsTooltipElement\n\n #rawAriaLabel?: string\n\n get #computedSize(): IconButtonSize {\n switch (this.size) {\n case 'small':\n case 'large':\n case 'hero': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedImportance(): IconButtonImportance {\n switch (this.importance) {\n case 'emphasized':\n case 'subdued':\n case 'destructive':\n case 'subdued-destructive': {\n return this.importance\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedDisabled(): boolean {\n return this.disabled\n }\n\n get #hasText(): boolean {\n return this.text !== undefined && this.text !== ''\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n this.internals.ariaDisabled = this.#computedDisabled.toString()\n if (this.#computedDisabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('href')\n protected hrefChanged(): void {\n this.internals.role = this.href === undefined ? 'button' : 'link'\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string | null): void {\n if (newValue !== null) {\n const parsedValue = Number.parseInt(newValue, 10)\n this.#savedTabIndex =\n Number.isNaN(parsedValue) || !Number.isFinite(parsedValue)\n ? 0\n : parsedValue\n }\n if (this.#computedDisabled) this.host.removeAttribute('tabindex')\n else this.host.tabIndex = this.#savedTabIndex\n }\n\n @Watch('text')\n protected textChanged(): void {\n this.#updateAriaLabel()\n }\n\n @Watch('aria-label')\n protected ariaLabelChanged(newValue: string | null): void {\n if (newValue !== null) {\n this.#rawAriaLabel = newValue\n this.host.removeAttribute('aria-label')\n this.#updateAriaLabel()\n }\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.#computedDisabled) event.stopImmediatePropagation()\n }\n\n @Listen('blur')\n protected async onBlur(event: FocusEvent): Promise<void> {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n if (this.#tooltip) {\n await this.#tooltip.close()\n }\n }\n\n @Listen('focus')\n protected async onFocus(event: FocusEvent): Promise<void> {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n if (this.#tooltip) {\n await this.#tooltip.show()\n }\n }\n\n @Listen('keydown')\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n if (this.#button instanceof HTMLAnchorElement) {\n this.#button.click()\n } else this.host.click()\n }\n }\n\n @Listen('keyup')\n protected onKeyup(event: KeyboardEvent): void {\n if (event.key === ' ') this.host.click()\n }\n\n public componentWillLoad(): void {\n this.hrefChanged()\n const { ariaLabel } = this.host\n if (ariaLabel !== null) {\n this.#rawAriaLabel = ariaLabel\n this.host.removeAttribute('aria-label')\n }\n this.textChanged()\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n this.disabledChanged()\n }\n\n public render() {\n const Tag = this.href === undefined ? 'button' : 'a'\n return (\n <div class=\"qds-container\" aria-hidden=\"true\">\n <Tag\n type={Tag === 'a' ? undefined : 'button'}\n class={{\n 'qds-icon-button': true,\n 'qds-disabled': this.#computedDisabled,\n }}\n href={Tag === 'a' ? this.href : undefined}\n target={Tag === 'a' ? this.target : undefined}\n rel={Tag === 'a' ? this.rel : undefined}\n ref={this.#ref}\n disabled={Tag === 'a' ? undefined : this.#computedDisabled}\n download={Tag === 'a' ? this.download : undefined}\n data-size={this.#computedSize}\n data-importance={this.#computedImportance}\n onKeyDown={preventDefault}\n onKeyUp={preventDefault}\n onKeyPress={preventDefault}\n tabIndex={-1}\n >\n <qds-icon\n class=\"qds-icon\"\n data-size={this.#computedSize}\n library={this.iconLibrary}\n name={this.iconName}\n />\n {isIndicator(this.badge) && (\n <qds-badge-indicator\n class=\"qds-indicator\"\n status={this.badgeIndicatorStatus}\n description={this.badgeDescription}\n size={this.#computedSize}\n strokeRing\n />\n )}\n {isCounter(this.badge) && (\n <qds-badge-counter\n class=\"qds-counter\"\n description={this.badgeDescription}\n importance={this.#computedImportance}\n size={this.#computedSize}\n strokeRing\n value={this.badge}\n />\n )}\n </Tag>\n <div class=\"qds-focus-ring\" data-size={this.#computedSize} />\n {this.#hasText && (\n <qds-tooltip ref={this.#tooltipRef}>{this.text}</qds-tooltip>\n )}\n </div>\n )\n }\n\n #updateAriaLabel(): void {\n const label = this.text ?? this.#rawAriaLabel ?? ''\n const hasBadge = this.badge !== undefined\n\n if (hasBadge) {\n this.internals.ariaLabel = computeBadgeValue(\n label,\n this.badge,\n this.badgeDescription,\n )\n return\n }\n\n this.internals.ariaLabel =\n this.target === '_blank' && this.href !== undefined\n ? `${label} opens in a new tab`\n : label\n }\n\n readonly #ref = (button?: HTMLAnchorElement | HTMLButtonElement): void => {\n this.#button = button\n }\n\n readonly #tooltipRef = (tooltip?: HTMLQdsTooltipElement): void => {\n if (tooltip) {\n // eslint-disable-next-line no-param-reassign\n tooltip.target = this.host\n this.#tooltip = tooltip\n }\n }\n}\n"],"version":3}
|