@lmvz-ds/components 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/cjs/{aria-loader-BRo2FTGh.js → aria-loader-DWUVcapD.js} +1 -1
- package/cjs/{aria-validation-controller-Z4TtOp2l.js → aria-validation-controller-BC0Eaiv4.js} +1 -1
- package/cjs/async.util-BQ60l-WC.js +20 -0
- package/cjs/{ds.constants-CKeXfK-s.js → ds.constants-C6eKRAEu.js} +5 -1
- package/cjs/{element.util-Cq4y-_iX.js → element.util-Dbyc8yUG.js} +35 -0
- package/cjs/{icons-BQASWgk-.js → icons-snv0hyf1.js} +1 -1
- package/cjs/{index-3g9Z9sfF.js → index-Bn3k5SiE.js} +1044 -508
- package/cjs/index.cjs.js +7 -5
- package/cjs/{list-keyboard-controller-StN6Yn8W.js → list-keyboard-controller-Dm5S_l0D.js} +1 -1
- package/cjs/lmvz-action-list.cjs.entry.js +13 -6
- package/cjs/lmvz-button-group.cjs.entry.js +4 -4
- package/cjs/lmvz-button_2.cjs.entry.js +7 -7
- package/cjs/lmvz-card.cjs.entry.js +1 -1
- package/cjs/lmvz-checkbox.cjs.entry.js +5 -5
- package/cjs/lmvz-chip.cjs.entry.js +3 -3
- package/cjs/lmvz-components.cjs.js +1 -1
- package/cjs/lmvz-header_2.cjs.entry.js +4 -4
- package/cjs/lmvz-input.cjs.entry.js +4 -3
- package/cjs/lmvz-link.cjs.entry.js +4 -4
- package/cjs/lmvz-menuitem.cjs.entry.js +3 -3
- package/cjs/lmvz-message.cjs.entry.js +3 -3
- package/cjs/lmvz-modal.cjs.entry.js +6 -6
- package/cjs/lmvz-popover.cjs.entry.js +1570 -0
- package/cjs/lmvz-radio.cjs.entry.js +4 -4
- package/cjs/lmvz-select.cjs.entry.js +3 -3
- package/cjs/lmvz-snackbar.cjs.entry.js +1 -1
- package/cjs/lmvz-spinner.cjs.entry.js +1 -1
- package/cjs/lmvz-tab.cjs.entry.js +1 -1
- package/cjs/lmvz-tabs.cjs.entry.js +3 -3
- package/cjs/lmvz-toggle.cjs.entry.js +6 -5
- package/cjs/loader.cjs.js +1 -1
- package/cjs/{logger-DsM6xg6V.js → logger-NBdKPSou.js} +1 -1
- package/cjs/{stencil.util-DzvzXSwk.js → stencil.util-DxdYjVoH.js} +2 -10
- package/cjs/{svg-BMBduILB.js → svg-CysxzZw7.js} +1 -1
- package/collection/api/ds.constants.js +3 -1
- package/collection/collection-manifest.json +1 -0
- package/collection/components/lmvz-action-list/lmvz-action-list.css +150 -38
- package/collection/components/lmvz-action-list/lmvz-action-list.js +9 -1
- package/collection/components/lmvz-button/lmvz-button.css +14 -18
- package/collection/components/lmvz-button/lmvz-button.js +1 -1
- package/collection/components/lmvz-button-group/lmvz-button-group.css +1 -2
- package/collection/components/lmvz-card/lmvz-card.css +16 -19
- package/collection/components/lmvz-checkbox/lmvz-checkbox.css +3 -6
- package/collection/components/lmvz-link/lmvz-link.css +1 -1
- package/collection/components/lmvz-menuitem/lmvz-menuitem.css +1 -2
- package/collection/components/lmvz-modal/lmvz-modal.css +1 -2
- package/collection/components/lmvz-popover/lmvz-popover.css +46 -0
- package/collection/components/lmvz-popover/lmvz-popover.js +470 -0
- package/collection/components/lmvz-radio/lmvz-radio.css +2 -4
- package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
- package/collection/components/lmvz-select/lmvz-select.js +1 -1
- package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
- package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
- package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
- package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
- package/collection/components/lmvz-toggle/lmvz-toggle.css +1 -2
- package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
- package/collection/integration/header-integration/header-integration.js +1 -1
- package/collection/utils/async/async.util.js +6 -0
- package/collection/utils/element/element.util.js +33 -0
- package/components/index.d.ts +2 -0
- package/components/index.d.ts.bak +2 -0
- package/components/index.js +1 -1
- package/components/lmvz-action-list.js +1 -1
- package/components/lmvz-button-group.js +1 -1
- package/components/lmvz-button.js +1 -1
- package/components/lmvz-card.js +1 -1
- package/components/lmvz-checkbox.js +1 -1
- package/components/lmvz-chip.js +1 -1
- package/components/lmvz-header.js +1 -1
- package/components/lmvz-icon.js +1 -1
- package/components/lmvz-input.js +1 -1
- package/components/lmvz-link.js +1 -1
- package/components/lmvz-menuitem.js +1 -1
- package/components/lmvz-message.js +1 -1
- package/components/lmvz-modal.js +1 -1
- package/components/lmvz-popover.d.ts +11 -0
- package/components/lmvz-popover.d.ts.bak +11 -0
- package/components/lmvz-popover.js +1 -0
- package/components/lmvz-radio.js +1 -1
- package/components/lmvz-select.js +1 -1
- package/components/lmvz-snackbar.js +1 -1
- package/components/lmvz-spinner.js +1 -1
- package/components/lmvz-tab.js +1 -1
- package/components/lmvz-tabs.js +1 -1
- package/components/lmvz-toggle.js +1 -1
- package/components/p-0ctLESas.js +1 -0
- package/components/{p-CdDO7mQa.js → p-BDonpCG8.js} +1 -1
- package/components/p-BhSTYZC6.js +1 -0
- package/components/p-CE-QR3Tp.js +1 -0
- package/components/{p-C8znmF2h.js → p-CFTmV4XZ.js} +1 -1
- package/components/{p-CxfT9IA1.js → p-CK3Ixl1K.js} +1 -1
- package/components/p-Cghfdblf.js +12 -0
- package/components/{p-B4m1n4et.js → p-D-2gj6LP.js} +1 -1
- package/components/{p-CGmJG63p.js → p-D06Ds9Dh.js} +1 -1
- package/components/{p-DeO5Vbxh.js → p-D7S1WiEC.js} +1 -1
- package/components/p-D9nUtvTm.js +1 -0
- package/components/{p-DJ90327O.js → p-De-xQqdU.js} +1 -1
- package/components/{p-CcxjkCOx.js → p-DjvtQE7c.js} +1 -1
- package/esm/{aria-loader-GfsGHZHY.js → aria-loader-BfH06m7H.js} +1 -1
- package/esm/{aria-validation-controller-BnyUKeJ6.js → aria-validation-controller-BvOU1BO8.js} +1 -1
- package/esm/async.util-D9nUtvTm.js +17 -0
- package/esm/{ds.constants-DuEtnKRj.js → ds.constants-0ctLESas.js} +4 -2
- package/esm/{element.util-CxfT9IA1.js → element.util-B0eCxdyI.js} +34 -1
- package/esm/{icons-CmuFKDRz.js → icons-DQOFaux5.js} +1 -1
- package/esm/{index-Dh_9sN0q.js → index-7ULiPTL_.js} +1044 -508
- package/esm/index.js +5 -5
- package/esm/{list-keyboard-controller-BKa9Kd2t.js → list-keyboard-controller-tle6IRkv.js} +1 -1
- package/esm/lmvz-action-list.entry.js +13 -6
- package/esm/lmvz-button-group.entry.js +4 -4
- package/esm/lmvz-button_2.entry.js +7 -7
- package/esm/lmvz-card.entry.js +1 -1
- package/esm/lmvz-checkbox.entry.js +5 -5
- package/esm/lmvz-chip.entry.js +3 -3
- package/esm/lmvz-components.js +1 -1
- package/esm/lmvz-header_2.entry.js +4 -4
- package/esm/lmvz-input.entry.js +4 -3
- package/esm/lmvz-link.entry.js +4 -4
- package/esm/lmvz-menuitem.entry.js +3 -3
- package/esm/lmvz-message.entry.js +3 -3
- package/esm/lmvz-modal.entry.js +6 -6
- package/esm/lmvz-popover.entry.js +1568 -0
- package/esm/lmvz-radio.entry.js +4 -4
- package/esm/lmvz-select.entry.js +3 -3
- package/esm/lmvz-snackbar.entry.js +1 -1
- package/esm/lmvz-spinner.entry.js +1 -1
- package/esm/lmvz-tab.entry.js +1 -1
- package/esm/lmvz-tabs.entry.js +3 -3
- package/esm/lmvz-toggle.entry.js +6 -5
- package/esm/loader.js +1 -1
- package/esm/{logger-CGmJG63p.js → logger-D06Ds9Dh.js} +1 -1
- package/esm/{stencil.util-CJRqhXjK.js → stencil.util-wGFRYLwZ.js} +1 -9
- package/esm/{svg-B2YoIRuh.js → svg-Dz3GD0LB.js} +1 -1
- package/hydrate/index.js +1652 -25
- package/hydrate/index.mjs +1652 -25
- package/lmvz-components/index.esm.js +1 -1
- package/lmvz-components/lmvz-components.esm.js +1 -1
- package/lmvz-components/p-03c38ff2.entry.js +1 -0
- package/lmvz-components/{p-582f44ff.entry.js → p-08613ba2.entry.js} +1 -1
- package/lmvz-components/p-0ctLESas.js +1 -0
- package/lmvz-components/{p-ed3c2b13.entry.js → p-11de5905.entry.js} +1 -1
- package/lmvz-components/{p-b79af711.entry.js → p-2036044c.entry.js} +1 -1
- package/lmvz-components/{p-c0d05a97.entry.js → p-4254aa38.entry.js} +1 -1
- package/lmvz-components/{p-8e1f66dd.entry.js → p-49e98627.entry.js} +1 -1
- package/lmvz-components/p-4f005b23.entry.js +1 -0
- package/lmvz-components/p-50063516.entry.js +1 -0
- package/lmvz-components/{p-48109e1d.entry.js → p-585470ef.entry.js} +1 -1
- package/lmvz-components/{p-24125bcf.entry.js → p-5bbbcfc0.entry.js} +1 -1
- package/lmvz-components/{p-c3e8092e.entry.js → p-6140866f.entry.js} +1 -1
- package/lmvz-components/p-9b7ce515.entry.js +1 -0
- package/lmvz-components/p-9f8fd077.entry.js +1 -0
- package/lmvz-components/{p-CxfT9IA1.js → p-B0eCxdyI.js} +1 -1
- package/lmvz-components/{p-CdDO7mQa.js → p-BDonpCG8.js} +1 -1
- package/lmvz-components/p-BhSTYZC6.js +1 -0
- package/lmvz-components/p-Cghfdblf.js +12 -0
- package/lmvz-components/p-CyDgnpOB.js +1 -0
- package/lmvz-components/{p-CGmJG63p.js → p-D06Ds9Dh.js} +1 -1
- package/lmvz-components/{p-CPOia2kT.js → p-D9PQIBzA.js} +1 -1
- package/lmvz-components/p-D9nUtvTm.js +1 -0
- package/lmvz-components/{p-CcxjkCOx.js → p-DjvtQE7c.js} +1 -1
- package/lmvz-components/{p-B4m1n4et.js → p-DuLiExhX.js} +1 -1
- package/lmvz-components/{p-1ce90ea7.entry.js → p-b0626234.entry.js} +1 -1
- package/lmvz-components/{p-fa2cd315.entry.js → p-b67ff2d1.entry.js} +1 -1
- package/lmvz-components/p-bfde444e.entry.js +1 -0
- package/lmvz-components/{p-703b10b5.entry.js → p-cc2734e9.entry.js} +1 -1
- package/lmvz-components/{p-25a78ead.entry.js → p-ce1a9f39.entry.js} +1 -1
- package/lmvz-components/{p-80a26307.entry.js → p-ddc28256.entry.js} +1 -1
- package/lmvz-components/p-fd455288.entry.js +1 -0
- package/manifest.json +386 -3
- package/package.json +7 -3
- package/types/api/ds.constants.d.ts +3 -1
- package/types/api/ds.types.d.ts +7 -0
- package/types/components/lmvz-popover/lmvz-popover.d.ts +37 -0
- package/types/components.d.ts +108 -1
- package/types/utils/async/async.util.d.ts +3 -0
- package/types/utils/element/element.util.d.ts +2 -0
- package/components/p-0s99QfRy.js +0 -12
- package/components/p-B0H9qIwE.js +0 -1
- package/components/p-CJRqhXjK.js +0 -1
- package/components/p-DuEtnKRj.js +0 -1
- package/lmvz-components/p-0s99QfRy.js +0 -12
- package/lmvz-components/p-4072b2fb.entry.js +0 -1
- package/lmvz-components/p-592d509b.entry.js +0 -1
- package/lmvz-components/p-6f61c24d.entry.js +0 -1
- package/lmvz-components/p-74c7521c.entry.js +0 -1
- package/lmvz-components/p-947e1fe6.entry.js +0 -1
- package/lmvz-components/p-CFsC37ww.js +0 -1
- package/lmvz-components/p-CJRqhXjK.js +0 -1
- package/lmvz-components/p-DuEtnKRj.js +0 -1
- package/lmvz-components/p-c00f0d96.entry.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,g as a,h as t,H as r}from"./p-BPeerEwm.js";const o=class{constructor(a){e(this,a)}get el(){return a(this)}mediaSlotEl;value;disabled=!1;selected=!1;vertical=!1;handleMediaSlotChange=()=>{this.el.toggleAttribute("has-media",(this.mediaSlotEl?.assignedElements()??[]).length>0)};componentDidLoad(){this.handleMediaSlotChange(),this.el.dispatchEvent(new CustomEvent("lmvzTabReady",{bubbles:!0,composed:!1}))}render(){return t(r,{key:"
|
|
1
|
+
import{r as e,g as a,h as t,H as r}from"./p-BPeerEwm.js";const o=class{constructor(a){e(this,a)}get el(){return a(this)}mediaSlotEl;value;disabled=!1;selected=!1;vertical=!1;handleMediaSlotChange=()=>{this.el.toggleAttribute("has-media",(this.mediaSlotEl?.assignedElements()??[]).length>0)};componentDidLoad(){this.handleMediaSlotChange(),this.el.dispatchEvent(new CustomEvent("lmvzTabReady",{bubbles:!0,composed:!1}))}render(){return t(r,{key:"6bb908c4956e84cd344fc8e81b400d33bb2dce98"},t("button",{key:"fbc5b650c9bfb5653d17f9a66a14ffbf0fe87f83",part:"button",role:"tab",disabled:this.disabled,"aria-selected":String(this.selected),"aria-disabled":this.disabled?"true":void 0,tabIndex:0},t("slot",{key:"a16da4d11ecca9db3d03da3b0076b698295ead1f",name:"media",ref:e=>this.mediaSlotEl=e,onSlotchange:this.handleMediaSlotChange}),t("span",{key:"e9e83fd4aa556716af3c7b7e52e1e1d8a5a33061",class:"label"},t("slot",{key:"a4c0378e62d67d7bcc772ff6a77ae1a86f41208c"})),t("span",{key:"de03b763d99f55b8773334df3d18c2d3855de4de","aria-hidden":"true",part:"indicator",class:"indicator"})))}static get delegatesFocus(){return!0}};o.style=" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } } :host { display: inline-block; flex: none; } :host([disabled]) { cursor: not-allowed; pointer-events: none; } button { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-tab-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--lmvz-component-component-spacing-0-default, 4px); padding-top: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); padding-bottom: var(--lmvz-dimension-8-14, clamp(0.5rem, 0.41rem + 0.39vw, 0.88rem)); padding-inline: var(--lmvz-dimension-16-24, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)); border: none; border-radius: var(--lmvz-semantic-border-radius-round, 999px); background: var(--lmvz-tab-background); color: var(--lmvz-tab-color); font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); cursor: pointer; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease; } button:focus-visible { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); z-index: 1; } button:disabled { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; cursor: not-allowed; } button:hover { --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary-hover, #000000); } button:active { --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary-active, #000000); } :host([has-media]) { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary, #000000); --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); } :host([has-media]) button { padding-top: var(--lmvz-dimension-16-18, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); padding-bottom: var(--lmvz-dimension-12-14, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); padding-inline: var(--lmvz-dimension-40-48, clamp(2.5rem, 2.38rem + 0.52vw, 3rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); } :host([has-media]) button:hover { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary-hover, #000000); } :host([has-media]) button:active { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary-active, #000000); } :host([selected]) button { --lmvz-tab-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --lmvz-tab-background: var(--lmvz-semantic-color-status-active, #f6fbfe); } :host([selected][has-media]) button:hover, :host([selected][has-media]) button:active { --lmvz-tab-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); } .indicator { --lmvz-tab-indicator-size: 4px; position: absolute; background: linear-gradient(to right, var(--lmvz-semantic-color-gradient-main-1, #0e7ab4), var(--lmvz-semantic-color-gradient-main-2, #0e7ab4)); opacity: 0; transition: opacity 0.15s ease; inset-block-end: 0; inset-inline: 0; block-size: var(--lmvz-tab-indicator-size); border-start-start-radius: 0; border-start-end-radius: 0; border-end-start-radius: var(--lmvz-tab-indicator-size); border-end-end-radius: var(--lmvz-tab-indicator-size); } :host([selected][has-media]) .indicator { opacity: 1; } :host([vertical]) button { border-radius: var(--lmvz-semantic-border-radius-round, 999px); } :host([vertical]) .indicator { inset-block: 0; inset-inline: 0 auto; inline-size: var(--lmvz-tab-indicator-size); block-size: auto; border-radius: 0 var(--lmvz-tab-indicator-size) var(--lmvz-tab-indicator-size) 0; background: linear-gradient(to bottom, var(--lmvz-semantic-color-gradient-main-1, #0e7ab4), var(--lmvz-semantic-color-gradient-main-2, #0e7ab4)); } ::slotted(*) { --lmvz-component-color: var(--lmvz-tab-color); } ::slotted(lmvz-icon) { --lmvz-component-size: var(--lmvz-dimension-16-18, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); } :host([has-media]) ::slotted(lmvz-icon) { --lmvz-component-size: var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem)); } .label { display: contents; } ";export{o as lmvz_tab}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as e,r as t,c as o,h as i,H as s}from"./p-BPeerEwm.js";import{c as a}from"./p-BSV3KDWl.js";import{t as r}from"./p-
|
|
1
|
+
import{g as e,r as t,c as o,h as i,H as s}from"./p-BPeerEwm.js";import{c as a}from"./p-BSV3KDWl.js";import{t as r}from"./p-DjvtQE7c.js";import{A as l}from"./p-D9PQIBzA.js";import{a as n,g as d}from"./p-B0eCxdyI.js";import{R as c}from"./p-FBuCCcFC.js";import"./p-D06Ds9Dh.js";import"./p-BDonpCG8.js";const h=r(a);let f=0;const m=class extends c{get el(){return e(this)}inheritedAriaAttributes={};dialogEl;dialogStateObserver;headerSlot;buttonGroupEl;closeButtonEl;previouslyFocusedElement=null;wrappedDialogShowModal;pendingCloseReturnValue;dialogTitleId="lmvz-modal-title-"+f++;hasHeader=!1;open=!1;closeLabel="Schliessen";dialogClose;dialogCancel;get dialog(){return this.dialogEl}get validationEl(){return this.dialogEl??this.el}constructor(e){super(),t(this,e),this.dialogClose=o(this,"close",6),this.dialogCancel=o(this,"cancel",1),this.addController(new l(this,{validationTiming:"slot"}))}handleFormDialogSubmit(e){const t=e.submitter;("dialog"===e.target.method||"dialog"===t?.getAttribute("formmethod"))&&(e.preventDefault(),this.dialogEl?.close(t?.value??""))}connectedCallback(){this.inheritedAriaAttributes=n(this.el,["role"]),Object.defineProperty(this.el,"dialog",{configurable:!0,enumerable:!0,get:()=>(this.ensureDialogShowModalCapture(),this.dialogEl)}),super.connectedCallback()}componentDidLoad(){this.handleHeaderSlotChange(),this.observeDialogState(),this.syncDialogVisibility(),super.componentDidLoad()}disconnectedCallback(){this.dialogStateObserver?.disconnect(),super.disconnectedCallback()}componentDidRender(){this.open&&this.focusPrimaryAction(),super.componentDidRender()}handleOpenChange(){this.syncDialogVisibility()}get dialogAccessibilityAttributes(){const e={...this.inheritedAriaAttributes};if(delete e["aria-label"],delete e["aria-labelledby"],this.hasHeader)return e["aria-labelledby"]=this.dialogTitleId,e;const t=this.inheritedAriaAttributes["aria-labelledby"];if("string"==typeof t)return e["aria-labelledby"]=t,e;const o=this.inheritedAriaAttributes["aria-label"];return"string"==typeof o&&(e["aria-label"]=o),e}hasAssignedContent(e){return Boolean(e?.assignedNodes({flatten:!0}).some((e=>e.nodeType===Node.TEXT_NODE?Boolean(e.textContent?.trim()):e.nodeType===Node.ELEMENT_NODE)))}observeDialogState(){this.dialogEl&&"undefined"!=typeof MutationObserver&&(this.dialogStateObserver?.disconnect(),this.dialogStateObserver=new MutationObserver((()=>{this.dialogEl&&this.dialogEl.open!==this.open&&(this.open=!!this.dialogEl.open)})),this.dialogStateObserver.observe(this.dialogEl,{attributes:!0,attributeFilter:["open"]}))}capturePreviouslyFocusedElement(){const e=this.dialogEl,t=d(document);e&&t&&!e.contains(t)&&(this.previouslyFocusedElement=t)}ensureDialogShowModalCapture(){const e=this.dialogEl;if(!e||"function"!=typeof e.showModal)return;const t=e.showModal;if(t===this.wrappedDialogShowModal)return;const o=()=>(this.capturePreviouslyFocusedElement(),t.call(e));Object.defineProperty(e,"showModal",{configurable:!0,value:o}),this.wrappedDialogShowModal=o}syncDialogVisibility(){const e=this.dialogEl;if(e)return this.open?(e.open||(this.capturePreviouslyFocusedElement(),"function"==typeof e.showModal?e.showModal():e.setAttribute("open","")),void this.focusPrimaryAction()):void(e.open&&("function"==typeof e.close?e.close():(e.removeAttribute("open"),this.handleDialogClose())))}focusPrimaryAction(){const e=this.buttonGroupEl?.primaryEnabledAction??this.closeButtonEl;e&&"undefined"!=typeof window&&window.requestAnimationFrame((()=>{this.open&&e.focus()}))}restoreFocus(){this.previouslyFocusedElement?.isConnected&&(this.previouslyFocusedElement.focus(),this.previouslyFocusedElement=null)}handleCloseButtonClick=()=>{if(!this.dialogEl)return;const e=this.dialogEl;if("function"==typeof e.requestClose)return this.pendingCloseReturnValue="close",void e.requestClose("close");"function"!=typeof this.dialogEl.close?this.handleDialogClose():this.dialogEl.close("close")};handleDialogCancel=e=>{if(e.preventDefault(),this.dialogCancel.emit().defaultPrevented)return void(this.pendingCloseReturnValue=void 0);const t=this.pendingCloseReturnValue;this.pendingCloseReturnValue=void 0,this.dialogEl?.close(t)};handleDialogClose=()=>{console.log("Dialog close handler called"),this.open&&(this.open=!1),this.restoreFocus(),this.dialogClose.emit()};handleHeaderSlotChange=()=>{this.hasHeader=this.hasAssignedContent(this.headerSlot)};render(){return i(s,{key:"8b5f506cdac223a440309d472639fe965b94f8c2"},i("dialog",{key:"0b70ac4d9590266271052c4d7fdef03c684d9b72",ref:e=>this.dialogEl=e,onCancel:this.handleDialogCancel,onClose:this.handleDialogClose,...this.dialogAccessibilityAttributes},i("div",{key:"25b529bec1905408c2041b7370ab37586eade47d",class:"modal-shell"},i("header",{key:"d86ae4a6f4ac7f6efd38385f1407d1f6bfbb1abb",class:{header:!0,"has-title":this.hasHeader}},i("div",{key:"7fd7059bfb0b90834895a87c2f2598e2e8c2ba80",class:"title",id:this.dialogTitleId,hidden:!this.hasHeader},i("slot",{key:"b6eb7885e220e5def4c3c8420d5b83f4a7e30907",name:"header",ref:e=>this.headerSlot=e,onSlotchange:this.handleHeaderSlotChange})),i("lmvz-button",{key:"dcebb06482cdef7423c6b62ef877ca9aaabf55a4",ref:e=>this.closeButtonEl=e,type:"button",class:"close-button","aria-label":this.closeLabel,onClick:this.handleCloseButtonClick,variant:"tertiary"},i("lmvz-icon",{key:"0db22c68fe164ed2a33bfaeacf9eac619424f464",icon:h}))),i("div",{key:"ef402c343f2c68210351f7556eec08f2e9be851b",class:"body"},i("slot",{key:"3fe86dc88c88c2cf7bfe3429c62cb2047b64611a"})),i("footer",{key:"92b7bdab1ffe700749fc029723f70913f436397d",class:"actions",hidden:!this.buttonGroupEl?.hasActions},i("lmvz-button-group",{key:"7e1b310fb1b20449ead14d0702af4977c74198dd",ref:e=>this.buttonGroupEl=e},i("slot",{key:"cb2187ab2758c61e80b65f9fc55c6be5f9fd0458",name:"actions"}))))))}static get watchers(){return{open:[{handleOpenChange:0}]}}};m.style=" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } } :host { display: contents; --lmvz-modal-shell-gap: var(--lmvz-dimension-16-20, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)); } dialog { border: none; padding: 0; background: transparent; height: 100vh; width: 100vw; contain: layout size; } dialog::backdrop { background: rgba(0, 0, 0, 0.19); background: rgb(from var(--lmvz-semantic-color-int-primary, #000000) r g b / 0.29); } .modal-shell { margin-inline: auto; top: 50%; transform: translateY(-50%); box-sizing: border-box; width: fit-content; max-height: 100%; max-width: clamp(20rem, 100%, 90vw); display: flex; flex-direction: column; gap: var(--lmvz-modal-shell-gap); padding: var(--lmvz-component-wrapper-lg-padding-y, clamp(2.25rem, 2.19rem + 0.26vw, 2.5rem)) var(--lmvz-component-wrapper-lg-padding-x, clamp(1.5rem, 1.14rem + 1.55vw, 3rem)); border-radius: var(--lmvz-component-wrapper-lg-border-radius, 18px); background: var(--lmvz-semantic-color-surface-primary, #ffffff); position: relative; .close-button { position: absolute; top: var(--lmvz-dimension-10-12, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)); right: var(--lmvz-dimension-10-12, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)); } } .header { display: flex; align-items: flex-start; justify-content: flex-end; gap: var(--lmvz-modal-shell-gap); } .title { min-inline-size: 0; font: var(--lmvz-typography-heading-lg, 500 clamp(1.25rem, 1.19rem + 0.26vw, 1.5rem) / 1.5 Router); } .has-title .title { flex: 1 1 auto; } .body { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); flex: 1; overflow: scroll; } ";export{m as lmvz_modal}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as t,r as o,c as r,h as e,H as n}from"./p-BPeerEwm.js";import{c as i}from"./p-BfTCfPZ1.js";import{A as a}from"./p-D9PQIBzA.js";import{E as l}from"./p-CN0JX9-m.js";import{a as m,j as v}from"./p-B0eCxdyI.js";import{R as s}from"./p-FBuCCcFC.js";import{p as d}from"./p-DjvtQE7c.js";import{a as c}from"./p-CyDgnpOB.js";import"./p-BDonpCG8.js";import"./p-D06Ds9Dh.js";const u=class extends s{get el(){return t(this)}validationEl;inheritedAttributes={};formEl=null;formButtonEl=null;lmvzActivation;ti=0;resolveFocusableElement(){return this.validationEl}scale="default";variant;disabled=!1;type="button";form;formMethod;name;value;buttonRole;constructor(t){super(),o(this,t),this.lmvzActivation=r(this,"lmvzActivation",7),this.addController(new a(this)),this.addController(new l(this,{localHandler:this.handleClick.bind(this),keys:["Enter"]}))}connectedCallback(){this.inheritedAttributes=m(this.el,["role"]),super.connectedCallback()}disconnectedCallback(){this.formButtonEl?.remove(),this.formButtonEl=null,this.formEl=null,super.disconnectedCallback()}renderHiddenButton(){if("submit"!==this.type)return this.formButtonEl?.remove(),this.formButtonEl=null,void(this.formEl=null);const t=v(this.form,this.el);if(!t)return this.formButtonEl?.remove(),this.formButtonEl=null,void(this.formEl=null);this.formEl=t;const o=this.formButtonEl??document.createElement("button");o.type="submit",o.style.display="none",o.disabled=this.disabled,o.name=this.name??"",o.value=this.value??"",this.formMethod?o.setAttribute("formmethod",this.formMethod):o.removeAttribute("formmethod"),this.formButtonEl!==o&&(this.formButtonEl=o),o.parentElement!==t&&(o.remove(),t.appendChild(o))}submitForm(t){this.formEl&&this.formButtonEl&&(t.preventDefault(),this.formButtonEl.click())}handleClick=t=>{"submit"===this.type&&this.submitForm(t)};render(){return this.renderHiddenButton(),e(n,{key:"f3e619dca398c3a8a78e9d2f8c3df4178b2531b2",role:"presentation"},e("button",{key:"eb1aac6756a70968d3a72cb40c1d52d96340423e",ref:t=>this.validationEl=t,part:"button",role:this.buttonRole,disabled:this.disabled,type:this.type,class:i(this.variant??"secondary",{[this.scale??""]:!!this.scale,disabled:this.disabled}),...this.inheritedAttributes},e("slot",{key:"786ff1c10ae05eda646c77ac8779813be6e51949"})))}static get delegatesFocus(){return!0}};u.style=" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } } :host { button { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary, #000000)); --lmvz-button-radius: var(--lmvz-button-radius-override, var(--lmvz-component-input-radius-default, 999px)); --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-md-strong, normal 700 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); display: inline-flex; align-items: center; justify-content: var(--lmvz-button-content-justification-override, center); gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); min-height: var(--lmvz-button-min-height); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); position: relative; z-index: 1; } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0)); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-active, #d4d4d4)); } button.primary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary, #000000)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); } button.primary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-hover, #2e2e2e)); } button.primary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-active, #545454)); } button.danger { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #e52a31)); } button.danger:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-danger, #fdf1f2)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #e52a31)); } button.danger:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-on-danger-subtle, #f7bfc2)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #e52a31)); } button.tertiary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary, #000000)); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-hover, #000000)); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-active, #000000)); } button.small { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-sm-strong, normal 700 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.5 Router)); } button.large { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-lg-strong, normal 700 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.5 Router)); } display: inline-block; button { width: 100%; } } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } ";const b=class extends s{intersectionObserver;ariaValidationController=new a(this);get el(){return t(this)}validationEl;icon;weight="medium";size="md";iconset;iconData;visible=!1;ariaLabel;get ariaHidden(){return!this.ariaLabel}constructor(t){super(),o(this,t),this.addController(this.ariaValidationController)}connectedCallback(){this.waitUntilVisible((()=>{this.visible=!0,this.loadIconPathData()})),super.connectedCallback()}disconnectedCallback(){this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,super.disconnectedCallback()}async loadIconPathData(){const{icon:t,iconset:o,visible:r}=this;if(!t||!r)return;const e=d(t);this.iconData=e||await c({icon:t,iconset:o})}componentDidRender(){this.validationEl=this.el.querySelector("svg"),this.ariaValidationController.revalidateAria(),super.componentDidRender()}render(){return e(n,{key:"4fba217d573d968951819f12af24d775c8ac62dc",role:"img","aria-hidden":`${this.ariaHidden}`,innerHTML:this.iconData})}waitUntilVisible(t,o=50){"undefined"!=typeof window&&window.IntersectionObserver?(this.intersectionObserver=new IntersectionObserver((o=>{o.some((o=>!!o.isIntersecting&&(this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,t(),!0)))}),{rootMargin:`${o}px`}),this.intersectionObserver.observe(this.el)):t()}static get watchers(){return{icon:[{loadIconPathData:0}],iconset:[{loadIconPathData:0}]}}};b.style=".sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));--lmvz-icon-size:var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));display:inline-block;line-height:0;svg{display:block;height:var(--lmvz-icon-size);width:auto}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{height:var(--lmvz-component-size, inherit)}}[weight='light'].sc-lmvz-icon-h{svg path{stroke-width:1}}[weight='medium'].sc-lmvz-icon-h{svg path{stroke-width:1.5}}[weight='bold'].sc-lmvz-icon-h{svg path{stroke-width:2}}[weight='filled'].sc-lmvz-icon-h{svg path{stroke-width:2;fill:var(--lmvz-icon-color)}}";export{u as lmvz_button,b as lmvz_icon}
|
package/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-06-
|
|
2
|
+
"timestamp": "2026-06-25T13:11:11",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.43.5",
|
|
@@ -456,10 +456,10 @@
|
|
|
456
456
|
},
|
|
457
457
|
{
|
|
458
458
|
"name": "variant",
|
|
459
|
-
"type": "\"primary\" | \"secondary\" | \"tertiary\" | undefined",
|
|
459
|
+
"type": "\"danger\" | \"primary\" | \"secondary\" | \"tertiary\" | undefined",
|
|
460
460
|
"complexType": {
|
|
461
461
|
"original": "Button.Variant",
|
|
462
|
-
"resolved": "\"primary\" | \"secondary\" | \"tertiary\" | undefined",
|
|
462
|
+
"resolved": "\"danger\" | \"primary\" | \"secondary\" | \"tertiary\" | undefined",
|
|
463
463
|
"references": {
|
|
464
464
|
"Button": {
|
|
465
465
|
"location": "import",
|
|
@@ -480,6 +480,10 @@
|
|
|
480
480
|
}
|
|
481
481
|
],
|
|
482
482
|
"values": [
|
|
483
|
+
{
|
|
484
|
+
"value": "danger",
|
|
485
|
+
"type": "string"
|
|
486
|
+
},
|
|
483
487
|
{
|
|
484
488
|
"value": "primary",
|
|
485
489
|
"type": "string"
|
|
@@ -6502,6 +6506,380 @@
|
|
|
6502
6506
|
]
|
|
6503
6507
|
}
|
|
6504
6508
|
},
|
|
6509
|
+
{
|
|
6510
|
+
"filePath": "src/components/lmvz-popover/lmvz-popover.tsx",
|
|
6511
|
+
"encapsulation": "shadow",
|
|
6512
|
+
"tag": "lmvz-popover",
|
|
6513
|
+
"readme": "# lmvz-popover\n\nA non-modal floating dialog anchored to a trigger element. Positions automatically via `@floating-ui/dom` with collision avoidance (flip and shift middleware). Content-agnostic: accepts any slotted elements.\n\n## Usage\n\nAnchor the popover to a trigger element by setting the `anchor` prop to the trigger's `id` or element reference.\n\nIf no `id` is set on the popover host, one is auto-assigned at load time.\n\n```html\n<button\n id=\"trigger\"\n onclick=\"document.getElementById('my-popover').toggle()\"\n>\n Open menu\n</button>\n<lmvz-popover id=\"my-popover\" anchor=\"trigger\" label=\"Menu options\">\n <p>Popover content goes here</p>\n</lmvz-popover>\n```\n\n## Props\n\n| Prop | Type | Default | Description |\n|---|---|---|---|\n| `open` | `boolean` | `false` | Opens or closes the popover. |\n| `anchor` | `string \\| HTMLElement` | – | Anchor element id or reference for positioning. |\n| `placement` | `'top' \\| 'bottom' \\| 'start' \\| 'end' \\| 'top-start' \\| 'top-end' \\| 'bottom-start' \\| 'bottom-end'` | `'bottom-start'` | Preferred placement relative to the anchor. |\n| `size` | `'sm' \\| 'md' \\| 'lg'` | `'sm'` | Size variant of the card surface. |\n| `autoFocus` | `boolean` | `true` | Moves focus to the first focusable element when opened. |\n| `label` | `string` | – | Accessible label for the popover container (reflected on dialog role). |\n\n## Slots\n\n| Slot | Description |\n|---|---|\n| `default` | Popover content. Any elements may be slotted. |\n\n## Events\n\n| Event | Cancelable | Description |\n|---|---|---|\n| `lmvzOpen` | No | Fired after the popover opens. |\n| `lmvzClose` | No | Fired after the popover closes. |\n| `lmvzCancel` | **Yes** | Fired before light-dismiss (click outside) or Escape close. Call `event.preventDefault()` to veto the close and keep the popover open. |\n\n## Methods\n\n| Method | Returns | Description |\n|---|---|---|\n| `show()` | `Promise<void>` | Opens the popover. |\n| `hide()` | `Promise<void>` | Closes the popover after firing `lmvzCancel`. If `lmvzCancel` is prevented, the popover remains open. |\n| `toggle()` | `Promise<void>` | Toggles the open state. |\n\n## CSS Customization\n\n### Shadow Parts\n\n| Part | Description |\n|---|---|\n| `container` | The popover's dialog container. Target to customize positioning, overflow, or appearance. |\n\n### Custom Properties\n\n| Property | Description | Default |\n|---|---|---|\n| `--lmvz-popover-max-width` | Maximum width of the popover surface. | `none` |\n| `--lmvz-popover-max-height` | Maximum height of the popover surface. | `none` |\n| `--lmvz-popover-z-index` | Z-index of the popover surface. | `1` |\n\n## Accessibility\n\n### Trigger Requirements\n\nWhen you set the `anchor` prop, the popover automatically writes three ARIA attributes to the resolved anchor element for screen reader and assistive technology support:\n\n- **`aria-haspopup=\"dialog\"`** — Announces that the trigger opens a dialog.\n- **`aria-expanded`** — Reflects the popover's open state (`\"true\"` when open, `\"false\"` when closed).\n- **`aria-controls`** — Points to the popover's `id` to establish the relationship between trigger and content.\n\nDo not set these attributes manually. Exception: if you pre-set `aria-haspopup` to a different value (e.g. `\"menu\"` for an action-list popover), the component preserves your value.\n\n### Content Semantics\n\nThe component renders a `role=\"dialog\"` container. Provide a `label` prop or set `aria-labelledby` on the host element to satisfy dialog labeling requirements.\n\n### AriaValidation\n\nWhen `@lmvz-ds/aria-validation` is enabled (development only), the component validates:\n\n- **Host element:** Must have an accessible label via the `label` prop or `aria-labelledby` attribute.\n- **Anchor element:** Must be interactive and focusable (e.g., `<button>`, `<a href>`, elements with `tabindex`, or elements with an interactive ARIA role). Non-interactive anchors produce a dev-time warning.\n\nValidation is disabled in production builds and test runtimes.\n\n## Notes\n\n- The popover is non-modal: focus is not trapped, and interaction outside does not require acknowledgment.\n- Positioning is automatic with collision avoidance. Use `placement` to express preference, but the component will flip or shift as needed to keep content visible.\n- Light-dismiss (clicking outside the popover or pressing Escape) fires `lmvzCancel` first, allowing consumers to intercept and prevent close (e.g., to warn unsaved changes).\n\n## Out of Scope\n\nIntegration with sibling components (e.g., action-list, select, date-picker) is intentionally not implemented in the popover itself. These components integrate via the trigger element and slot content, and remain the responsibility of the consuming application.\n",
|
|
6514
|
+
"docs": "A non-modal floating dialog anchored to a trigger element. Positions automatically via `@floating-ui/dom` with collision avoidance (flip and shift middleware). Content-agnostic: accepts any slotted elements.",
|
|
6515
|
+
"docsTags": [
|
|
6516
|
+
{
|
|
6517
|
+
"name": "slot",
|
|
6518
|
+
"text": "default - Popover content. Any element may be slotted here."
|
|
6519
|
+
}
|
|
6520
|
+
],
|
|
6521
|
+
"usage": {},
|
|
6522
|
+
"props": [
|
|
6523
|
+
{
|
|
6524
|
+
"name": "anchor",
|
|
6525
|
+
"type": "HTMLElement | string | undefined",
|
|
6526
|
+
"complexType": {
|
|
6527
|
+
"original": "string | HTMLElement",
|
|
6528
|
+
"resolved": "HTMLElement | string | undefined",
|
|
6529
|
+
"references": {
|
|
6530
|
+
"HTMLElement": {
|
|
6531
|
+
"location": "global",
|
|
6532
|
+
"id": "global::HTMLElement"
|
|
6533
|
+
}
|
|
6534
|
+
}
|
|
6535
|
+
},
|
|
6536
|
+
"mutable": false,
|
|
6537
|
+
"attr": "anchor",
|
|
6538
|
+
"reflectToAttr": false,
|
|
6539
|
+
"docs": "The anchor element or its id. Used for positioning.",
|
|
6540
|
+
"docsTags": [],
|
|
6541
|
+
"values": [
|
|
6542
|
+
{
|
|
6543
|
+
"type": "HTMLElement"
|
|
6544
|
+
},
|
|
6545
|
+
{
|
|
6546
|
+
"type": "string"
|
|
6547
|
+
},
|
|
6548
|
+
{
|
|
6549
|
+
"type": "undefined"
|
|
6550
|
+
}
|
|
6551
|
+
],
|
|
6552
|
+
"optional": true,
|
|
6553
|
+
"required": false,
|
|
6554
|
+
"getter": false,
|
|
6555
|
+
"setter": false
|
|
6556
|
+
},
|
|
6557
|
+
{
|
|
6558
|
+
"name": "autoFocus",
|
|
6559
|
+
"type": "boolean",
|
|
6560
|
+
"complexType": {
|
|
6561
|
+
"original": "boolean",
|
|
6562
|
+
"resolved": "boolean",
|
|
6563
|
+
"references": {}
|
|
6564
|
+
},
|
|
6565
|
+
"mutable": false,
|
|
6566
|
+
"attr": "auto-focus",
|
|
6567
|
+
"reflectToAttr": false,
|
|
6568
|
+
"docs": "Whether to move focus to the first focusable element on open.",
|
|
6569
|
+
"docsTags": [
|
|
6570
|
+
{
|
|
6571
|
+
"name": "default",
|
|
6572
|
+
"text": "true"
|
|
6573
|
+
}
|
|
6574
|
+
],
|
|
6575
|
+
"default": "true",
|
|
6576
|
+
"values": [
|
|
6577
|
+
{
|
|
6578
|
+
"type": "boolean"
|
|
6579
|
+
}
|
|
6580
|
+
],
|
|
6581
|
+
"optional": false,
|
|
6582
|
+
"required": false,
|
|
6583
|
+
"getter": false,
|
|
6584
|
+
"setter": false
|
|
6585
|
+
},
|
|
6586
|
+
{
|
|
6587
|
+
"name": "label",
|
|
6588
|
+
"type": "string | undefined",
|
|
6589
|
+
"complexType": {
|
|
6590
|
+
"original": "string",
|
|
6591
|
+
"resolved": "string | undefined",
|
|
6592
|
+
"references": {}
|
|
6593
|
+
},
|
|
6594
|
+
"mutable": false,
|
|
6595
|
+
"attr": "label",
|
|
6596
|
+
"reflectToAttr": false,
|
|
6597
|
+
"docs": "Accessible label for the popover container.",
|
|
6598
|
+
"docsTags": [],
|
|
6599
|
+
"values": [
|
|
6600
|
+
{
|
|
6601
|
+
"type": "string"
|
|
6602
|
+
},
|
|
6603
|
+
{
|
|
6604
|
+
"type": "undefined"
|
|
6605
|
+
}
|
|
6606
|
+
],
|
|
6607
|
+
"optional": true,
|
|
6608
|
+
"required": false,
|
|
6609
|
+
"getter": false,
|
|
6610
|
+
"setter": false
|
|
6611
|
+
},
|
|
6612
|
+
{
|
|
6613
|
+
"name": "open",
|
|
6614
|
+
"type": "boolean",
|
|
6615
|
+
"complexType": {
|
|
6616
|
+
"original": "boolean",
|
|
6617
|
+
"resolved": "boolean",
|
|
6618
|
+
"references": {}
|
|
6619
|
+
},
|
|
6620
|
+
"mutable": true,
|
|
6621
|
+
"attr": "open",
|
|
6622
|
+
"reflectToAttr": true,
|
|
6623
|
+
"docs": "Whether the popover is open.",
|
|
6624
|
+
"docsTags": [
|
|
6625
|
+
{
|
|
6626
|
+
"name": "default",
|
|
6627
|
+
"text": "false"
|
|
6628
|
+
}
|
|
6629
|
+
],
|
|
6630
|
+
"default": "false",
|
|
6631
|
+
"values": [
|
|
6632
|
+
{
|
|
6633
|
+
"type": "boolean"
|
|
6634
|
+
}
|
|
6635
|
+
],
|
|
6636
|
+
"optional": false,
|
|
6637
|
+
"required": false,
|
|
6638
|
+
"getter": false,
|
|
6639
|
+
"setter": false
|
|
6640
|
+
},
|
|
6641
|
+
{
|
|
6642
|
+
"name": "placement",
|
|
6643
|
+
"type": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"end\" | \"start\" | \"top\" | \"top-end\" | \"top-start\"",
|
|
6644
|
+
"complexType": {
|
|
6645
|
+
"original": "Popover.Placement",
|
|
6646
|
+
"resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"end\" | \"start\" | \"top\" | \"top-end\" | \"top-start\"",
|
|
6647
|
+
"references": {
|
|
6648
|
+
"Popover": {
|
|
6649
|
+
"location": "import",
|
|
6650
|
+
"path": "../../api",
|
|
6651
|
+
"id": "src/api/index.d.ts::Popover",
|
|
6652
|
+
"referenceLocation": "Popover"
|
|
6653
|
+
}
|
|
6654
|
+
}
|
|
6655
|
+
},
|
|
6656
|
+
"mutable": false,
|
|
6657
|
+
"attr": "placement",
|
|
6658
|
+
"reflectToAttr": false,
|
|
6659
|
+
"docs": "Preferred placement relative to the anchor.",
|
|
6660
|
+
"docsTags": [
|
|
6661
|
+
{
|
|
6662
|
+
"name": "default",
|
|
6663
|
+
"text": "'bottom-start'"
|
|
6664
|
+
}
|
|
6665
|
+
],
|
|
6666
|
+
"default": "'bottom-start'",
|
|
6667
|
+
"values": [
|
|
6668
|
+
{
|
|
6669
|
+
"value": "bottom",
|
|
6670
|
+
"type": "string"
|
|
6671
|
+
},
|
|
6672
|
+
{
|
|
6673
|
+
"value": "bottom-end",
|
|
6674
|
+
"type": "string"
|
|
6675
|
+
},
|
|
6676
|
+
{
|
|
6677
|
+
"value": "bottom-start",
|
|
6678
|
+
"type": "string"
|
|
6679
|
+
},
|
|
6680
|
+
{
|
|
6681
|
+
"value": "end",
|
|
6682
|
+
"type": "string"
|
|
6683
|
+
},
|
|
6684
|
+
{
|
|
6685
|
+
"value": "start",
|
|
6686
|
+
"type": "string"
|
|
6687
|
+
},
|
|
6688
|
+
{
|
|
6689
|
+
"value": "top",
|
|
6690
|
+
"type": "string"
|
|
6691
|
+
},
|
|
6692
|
+
{
|
|
6693
|
+
"value": "top-end",
|
|
6694
|
+
"type": "string"
|
|
6695
|
+
},
|
|
6696
|
+
{
|
|
6697
|
+
"value": "top-start",
|
|
6698
|
+
"type": "string"
|
|
6699
|
+
}
|
|
6700
|
+
],
|
|
6701
|
+
"optional": false,
|
|
6702
|
+
"required": false,
|
|
6703
|
+
"getter": false,
|
|
6704
|
+
"setter": false
|
|
6705
|
+
},
|
|
6706
|
+
{
|
|
6707
|
+
"name": "size",
|
|
6708
|
+
"type": "\"lg\" | \"md\" | \"sm\"",
|
|
6709
|
+
"complexType": {
|
|
6710
|
+
"original": "Popover.Size",
|
|
6711
|
+
"resolved": "\"lg\" | \"md\" | \"sm\"",
|
|
6712
|
+
"references": {
|
|
6713
|
+
"Popover": {
|
|
6714
|
+
"location": "import",
|
|
6715
|
+
"path": "../../api",
|
|
6716
|
+
"id": "src/api/index.d.ts::Popover",
|
|
6717
|
+
"referenceLocation": "Popover"
|
|
6718
|
+
}
|
|
6719
|
+
}
|
|
6720
|
+
},
|
|
6721
|
+
"mutable": false,
|
|
6722
|
+
"attr": "size",
|
|
6723
|
+
"reflectToAttr": false,
|
|
6724
|
+
"docs": "Controls the size variant of the card surface.",
|
|
6725
|
+
"docsTags": [
|
|
6726
|
+
{
|
|
6727
|
+
"name": "default",
|
|
6728
|
+
"text": "'sm'"
|
|
6729
|
+
}
|
|
6730
|
+
],
|
|
6731
|
+
"default": "'sm'",
|
|
6732
|
+
"values": [
|
|
6733
|
+
{
|
|
6734
|
+
"value": "lg",
|
|
6735
|
+
"type": "string"
|
|
6736
|
+
},
|
|
6737
|
+
{
|
|
6738
|
+
"value": "md",
|
|
6739
|
+
"type": "string"
|
|
6740
|
+
},
|
|
6741
|
+
{
|
|
6742
|
+
"value": "sm",
|
|
6743
|
+
"type": "string"
|
|
6744
|
+
}
|
|
6745
|
+
],
|
|
6746
|
+
"optional": false,
|
|
6747
|
+
"required": false,
|
|
6748
|
+
"getter": false,
|
|
6749
|
+
"setter": false
|
|
6750
|
+
}
|
|
6751
|
+
],
|
|
6752
|
+
"methods": [
|
|
6753
|
+
{
|
|
6754
|
+
"name": "hide",
|
|
6755
|
+
"returns": {
|
|
6756
|
+
"type": "Promise<void>",
|
|
6757
|
+
"docs": ""
|
|
6758
|
+
},
|
|
6759
|
+
"complexType": {
|
|
6760
|
+
"signature": "() => Promise<void>",
|
|
6761
|
+
"parameters": [],
|
|
6762
|
+
"references": {
|
|
6763
|
+
"Promise": {
|
|
6764
|
+
"location": "global",
|
|
6765
|
+
"id": "global::Promise"
|
|
6766
|
+
}
|
|
6767
|
+
},
|
|
6768
|
+
"return": "Promise<void>"
|
|
6769
|
+
},
|
|
6770
|
+
"signature": "hide() => Promise<void>",
|
|
6771
|
+
"parameters": [],
|
|
6772
|
+
"docs": "Closes the popover, firing lmvzCancel first. If cancelled, the popover stays open.",
|
|
6773
|
+
"docsTags": []
|
|
6774
|
+
},
|
|
6775
|
+
{
|
|
6776
|
+
"name": "show",
|
|
6777
|
+
"returns": {
|
|
6778
|
+
"type": "Promise<void>",
|
|
6779
|
+
"docs": ""
|
|
6780
|
+
},
|
|
6781
|
+
"complexType": {
|
|
6782
|
+
"signature": "() => Promise<void>",
|
|
6783
|
+
"parameters": [],
|
|
6784
|
+
"references": {
|
|
6785
|
+
"Promise": {
|
|
6786
|
+
"location": "global",
|
|
6787
|
+
"id": "global::Promise"
|
|
6788
|
+
}
|
|
6789
|
+
},
|
|
6790
|
+
"return": "Promise<void>"
|
|
6791
|
+
},
|
|
6792
|
+
"signature": "show() => Promise<void>",
|
|
6793
|
+
"parameters": [],
|
|
6794
|
+
"docs": "Opens the popover.",
|
|
6795
|
+
"docsTags": []
|
|
6796
|
+
},
|
|
6797
|
+
{
|
|
6798
|
+
"name": "toggle",
|
|
6799
|
+
"returns": {
|
|
6800
|
+
"type": "Promise<void>",
|
|
6801
|
+
"docs": ""
|
|
6802
|
+
},
|
|
6803
|
+
"complexType": {
|
|
6804
|
+
"signature": "() => Promise<void>",
|
|
6805
|
+
"parameters": [],
|
|
6806
|
+
"references": {
|
|
6807
|
+
"Promise": {
|
|
6808
|
+
"location": "global",
|
|
6809
|
+
"id": "global::Promise"
|
|
6810
|
+
}
|
|
6811
|
+
},
|
|
6812
|
+
"return": "Promise<void>"
|
|
6813
|
+
},
|
|
6814
|
+
"signature": "toggle() => Promise<void>",
|
|
6815
|
+
"parameters": [],
|
|
6816
|
+
"docs": "Toggles the popover open state.",
|
|
6817
|
+
"docsTags": []
|
|
6818
|
+
}
|
|
6819
|
+
],
|
|
6820
|
+
"events": [
|
|
6821
|
+
{
|
|
6822
|
+
"event": "lmvzCancel",
|
|
6823
|
+
"detail": "void",
|
|
6824
|
+
"bubbles": true,
|
|
6825
|
+
"complexType": {
|
|
6826
|
+
"original": "void",
|
|
6827
|
+
"resolved": "void",
|
|
6828
|
+
"references": {}
|
|
6829
|
+
},
|
|
6830
|
+
"cancelable": true,
|
|
6831
|
+
"composed": true,
|
|
6832
|
+
"docs": "Fired before light-dismiss or Escape close.\nCall `event.preventDefault()` to veto the close.",
|
|
6833
|
+
"docsTags": []
|
|
6834
|
+
},
|
|
6835
|
+
{
|
|
6836
|
+
"event": "lmvzClose",
|
|
6837
|
+
"detail": "void",
|
|
6838
|
+
"bubbles": true,
|
|
6839
|
+
"complexType": {
|
|
6840
|
+
"original": "void",
|
|
6841
|
+
"resolved": "void",
|
|
6842
|
+
"references": {}
|
|
6843
|
+
},
|
|
6844
|
+
"cancelable": true,
|
|
6845
|
+
"composed": true,
|
|
6846
|
+
"docs": "Fired after the popover closes.",
|
|
6847
|
+
"docsTags": []
|
|
6848
|
+
},
|
|
6849
|
+
{
|
|
6850
|
+
"event": "lmvzOpen",
|
|
6851
|
+
"detail": "void",
|
|
6852
|
+
"bubbles": true,
|
|
6853
|
+
"complexType": {
|
|
6854
|
+
"original": "void",
|
|
6855
|
+
"resolved": "void",
|
|
6856
|
+
"references": {}
|
|
6857
|
+
},
|
|
6858
|
+
"cancelable": true,
|
|
6859
|
+
"composed": true,
|
|
6860
|
+
"docs": "Fired after the popover opens.",
|
|
6861
|
+
"docsTags": []
|
|
6862
|
+
}
|
|
6863
|
+
],
|
|
6864
|
+
"listeners": [],
|
|
6865
|
+
"styles": [],
|
|
6866
|
+
"slots": [
|
|
6867
|
+
{
|
|
6868
|
+
"name": "default",
|
|
6869
|
+
"docs": "Popover content. Any element may be slotted here."
|
|
6870
|
+
}
|
|
6871
|
+
],
|
|
6872
|
+
"parts": [
|
|
6873
|
+
{
|
|
6874
|
+
"name": "container",
|
|
6875
|
+
"docs": ""
|
|
6876
|
+
}
|
|
6877
|
+
],
|
|
6878
|
+
"states": [],
|
|
6879
|
+
"dependents": [],
|
|
6880
|
+
"dependencies": [],
|
|
6881
|
+
"dependencyGraph": {}
|
|
6882
|
+
},
|
|
6505
6883
|
{
|
|
6506
6884
|
"filePath": "src/components/lmvz-radio/lmvz-radio.tsx",
|
|
6507
6885
|
"encapsulation": "scoped",
|
|
@@ -8335,6 +8713,11 @@
|
|
|
8335
8713
|
"docstring": "",
|
|
8336
8714
|
"path": "src/api/index.d.ts"
|
|
8337
8715
|
},
|
|
8716
|
+
"src/api/index.d.ts::Popover": {
|
|
8717
|
+
"declaration": "any",
|
|
8718
|
+
"docstring": "",
|
|
8719
|
+
"path": "src/api/index.d.ts"
|
|
8720
|
+
},
|
|
8338
8721
|
"src/api/index.d.ts::Select": {
|
|
8339
8722
|
"declaration": "any",
|
|
8340
8723
|
"docstring": "",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmvz-ds/components",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.34.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "The components of the design system",
|
|
7
7
|
"author": "Patrick Nemenz <patrick.nemenz@adesso.at>",
|
|
@@ -115,6 +115,10 @@
|
|
|
115
115
|
"./lmvz-action-list": {
|
|
116
116
|
"import": "./components/lmvz-action-list.js",
|
|
117
117
|
"types": "./components/lmvz-action-list.d.ts"
|
|
118
|
+
},
|
|
119
|
+
"./lmvz-popover": {
|
|
120
|
+
"import": "./components/lmvz-popover.js",
|
|
121
|
+
"types": "./components/lmvz-popover.d.ts"
|
|
118
122
|
}
|
|
119
123
|
},
|
|
120
124
|
"main": "./index.cjs.js",
|
|
@@ -129,10 +133,10 @@
|
|
|
129
133
|
},
|
|
130
134
|
"dependencies": {
|
|
131
135
|
"classnames": "^2.5.1",
|
|
132
|
-
"effect": "^3.21.
|
|
136
|
+
"effect": "^3.21.4"
|
|
133
137
|
},
|
|
134
138
|
"optionalDependencies": {
|
|
135
|
-
"@lmvz-ds/aria-validation": "~0.
|
|
139
|
+
"@lmvz-ds/aria-validation": "~0.17.0"
|
|
136
140
|
},
|
|
137
141
|
"files": [
|
|
138
142
|
"**/*"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const variants: readonly ["primary", "secondary", "tertiary"];
|
|
1
|
+
export declare const variants: readonly ["primary", "secondary", "tertiary", "danger"];
|
|
2
2
|
export declare const scaleValues: readonly ["small", "default", "large"];
|
|
3
3
|
export declare const sizes: readonly ["xs", "sm", "md", "lg"];
|
|
4
4
|
export declare const textSizes: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
@@ -14,3 +14,5 @@ export declare const messageTypes: readonly ["neutral", "warning"];
|
|
|
14
14
|
export declare const snackbarStatuses: readonly ["success", "warning", "error"];
|
|
15
15
|
export declare const snackbarPriorities: readonly ["low", "normal", "high"];
|
|
16
16
|
export declare const snackbarDismissReasons: readonly ["timeout", "manual", "action", "overridden", "swallowed"];
|
|
17
|
+
export declare const popoverPlacements: readonly ["top", "bottom", "start", "end", "top-start", "top-end", "bottom-start", "bottom-end"];
|
|
18
|
+
export declare const popoverSizes: readonly ["sm", "md", "lg"];
|
package/types/api/ds.types.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type {
|
|
|
7
7
|
inputTypes,
|
|
8
8
|
linkTypes,
|
|
9
9
|
messageTypes,
|
|
10
|
+
popoverPlacements,
|
|
11
|
+
popoverSizes,
|
|
10
12
|
scaleValues,
|
|
11
13
|
selectSizes,
|
|
12
14
|
sizes,
|
|
@@ -67,5 +69,10 @@ export namespace Snackbar {
|
|
|
67
69
|
export type DismissReason = (typeof snackbarDismissReasons)[number];
|
|
68
70
|
}
|
|
69
71
|
|
|
72
|
+
export namespace Popover {
|
|
73
|
+
export type Placement = (typeof popoverPlacements)[number];
|
|
74
|
+
export type Size = (typeof popoverSizes)[number];
|
|
75
|
+
}
|
|
76
|
+
|
|
70
77
|
export type Attributes = { [key: string]: unknown };
|
|
71
78
|
export type FormRef = string | HTMLFormElement | undefined;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import type { Popover } from '../../api';
|
|
3
|
+
export declare class LmvzPopover {
|
|
4
|
+
readonly el: HTMLElement;
|
|
5
|
+
private readonly closureController;
|
|
6
|
+
private containerEl?;
|
|
7
|
+
private slotEl?;
|
|
8
|
+
private previouslyFocusedElement;
|
|
9
|
+
open: boolean;
|
|
10
|
+
anchor?: string | HTMLElement;
|
|
11
|
+
placement: Popover.Placement;
|
|
12
|
+
size: Popover.Size;
|
|
13
|
+
autoFocus: boolean;
|
|
14
|
+
label?: string;
|
|
15
|
+
lmvzOpen: EventEmitter<void>;
|
|
16
|
+
lmvzClose: EventEmitter<void>;
|
|
17
|
+
lmvzCancel: EventEmitter<void>;
|
|
18
|
+
show(): Promise<void>;
|
|
19
|
+
hide(): Promise<void>;
|
|
20
|
+
toggle(): Promise<void>;
|
|
21
|
+
componentDidLoad(): void;
|
|
22
|
+
protected handleOpenChange(isOpen: boolean): void;
|
|
23
|
+
protected handleAnchorChange(): void;
|
|
24
|
+
disconnectedCallback(): void;
|
|
25
|
+
private resolveAnchor;
|
|
26
|
+
private updatePosition;
|
|
27
|
+
private onOpen;
|
|
28
|
+
private onClose;
|
|
29
|
+
private applyAnchorAriaOpen;
|
|
30
|
+
private applyAnchorAriaClose;
|
|
31
|
+
private focusFirst;
|
|
32
|
+
private restoreFocus;
|
|
33
|
+
private triggerClose;
|
|
34
|
+
private setupCloseHandlers;
|
|
35
|
+
private removeCloseHandlers;
|
|
36
|
+
render(): any;
|
|
37
|
+
}
|