@sbb-esta/lyne-elements 1.7.0 → 1.9.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/calendar/calendar.d.ts +5 -2
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +73 -66
- package/clock.js +5 -5
- package/container/container.js +18 -18
- package/core/base-elements/open-close-base-element.d.ts +10 -0
- package/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/core/base-elements.js +4 -0
- package/core/controllers/inert-controller.d.ts +18 -0
- package/core/controllers/inert-controller.d.ts.map +1 -0
- package/core/controllers.d.ts +1 -0
- package/core/controllers.d.ts.map +1 -1
- package/core/controllers.js +67 -23
- package/core/dom/platform.d.ts +2 -3
- package/core/dom/platform.d.ts.map +1 -1
- package/core/dom.js +38 -40
- package/core/overlay/overlay.d.ts +0 -13
- package/core/overlay/overlay.d.ts.map +1 -1
- package/core/overlay.js +36 -86
- package/core/styles/core.scss +6 -0
- package/core/styles/mixins/lists.scss +11 -1
- package/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/core/testing.js +61 -54
- package/core.css +5 -0
- package/custom-elements.json +492 -66
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +52 -42
- package/development/calendar/calendar.d.ts +5 -2
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +35 -19
- package/development/clock.js +1 -1
- package/development/container/container.js +9 -5
- package/development/core/base-elements/open-close-base-element.d.ts +10 -0
- package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +5 -1
- package/development/core/controllers/inert-controller.d.ts +18 -0
- package/development/core/controllers/inert-controller.d.ts.map +1 -0
- package/development/core/controllers.d.ts +1 -0
- package/development/core/controllers.d.ts.map +1 -1
- package/development/core/controllers.js +90 -1
- package/development/core/dom/platform.d.ts +2 -3
- package/development/core/dom/platform.d.ts.map +1 -1
- package/development/core/dom.js +4 -5
- package/development/core/overlay/overlay.d.ts +0 -13
- package/development/core/overlay/overlay.d.ts.map +1 -1
- package/development/core/overlay.js +1 -87
- package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/development/core/testing.js +16 -2
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +19 -4
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog.js +3 -4
- package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +28 -9
- package/development/flip-card/flip-card-summary.js +6 -1
- package/development/flip-card/flip-card.js +43 -12
- package/development/form-field/form-field.js +4 -2
- package/development/lead-container.js +5 -1
- package/development/menu/menu/menu.d.ts +1 -0
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +6 -9
- package/development/navigation/navigation/navigation.d.ts +1 -0
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation.js +6 -9
- package/development/overlay/overlay-base-element.d.ts +2 -1
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +6 -17
- package/development/popover/popover.js +2 -2
- package/development/select/select.d.ts +3 -1
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +20 -6
- package/development/stepper/step-label.js +20 -2
- package/development/stepper/stepper/stepper.d.ts +3 -0
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +16 -1
- package/development/toggle/toggle/toggle.d.ts +2 -1
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +4 -2
- package/development/toggle/toggle.js +7 -7
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog.js +11 -12
- package/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +19 -17
- package/flip-card/flip-card-summary.js +13 -13
- package/flip-card/flip-card.js +26 -24
- package/form-field/form-field.js +1 -1
- package/lead-container.js +1 -1
- package/lists.css +9 -1
- package/menu/menu/menu.d.ts +1 -0
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +30 -30
- package/navigation/navigation/navigation.d.ts +1 -0
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation.js +37 -37
- package/overlay/overlay-base-element.d.ts +2 -1
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +44 -45
- package/package.json +1 -1
- package/popover/popover.js +1 -1
- package/select/select.d.ts +3 -1
- package/select/select.d.ts.map +1 -1
- package/select.js +61 -50
- package/standard-theme.css +14 -1
- package/stepper/step-label.js +10 -10
- package/stepper/stepper/stepper.d.ts +3 -0
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +34 -25
- package/toggle/toggle/toggle.d.ts +2 -1
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +9 -8
- package/toggle/toggle.js +20 -21
package/lead-container.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css as t, LitElement as d, html as l } from "lit";
|
|
2
2
|
import { customElement as c } from "lit/decorators.js";
|
|
3
|
-
const m = t`*,:before,:after{box-sizing:border-box}:host{display:block;--sbb-lead-container-background-color: var(--sbb-color-white);--sbb-lead-container-image-ratio: 2 / 1;--sbb-lead-container-image-overlap: var(--sbb-spacing-fixed-24x);--sbb-lead-container-padding-block: var(--sbb-spacing-responsive-l);--sbb-lead-container-padding-inline: var(--sbb-layout-base-offset-responsive);--sbb-lead-container-border-radius: var(--sbb-border-radius-6x);--sbb-lead-container-image-border-radius: 0}@media (min-width: 80rem){:host{--sbb-lead-container-image-ratio: 21 / 9}}@media (min-width: 90rem){:host{--sbb-lead-container-image-border-radius: var(--sbb-lead-container-border-radius)}}.sbb-lead-container{padding-block-end:var(--sbb-spacing-responsive-l)}::slotted(sbb-image[slot=image]){--sbb-image-aspect-ratio: var(--sbb-lead-container-image-ratio);--sbb-image-border-radius: var(--sbb-lead-container-image-border-radius)}::slotted(:is(img[slot=image],picture[slot=image])){display:block;width:100%;object-fit:cover;aspect-ratio:var(--sbb-lead-container-image-ratio);border-radius:var(--sbb-lead-container-image-border-radius)}::slotted(:is(sbb-breadcrumb-group,sbb-block-link).sbb-lead-container-spacing){margin-block-end:var(--sbb-spacing-fixed-4x)}::slotted(:is(sbb-alert,sbb-alert-group).sbb-lead-container-spacing){margin-block-end:var(--sbb-spacing-responsive-m)}::slotted(sbb-title.sbb-lead-container-spacing){margin-block-start:0}::slotted(.sbb-lead-container-lead-text){margin-block:0 var(--sbb-spacing-responsive-s)}@media (min-width: 90rem){.sbb-lead-container-image{max-width:calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive));margin-inline:auto}}.sbb-lead-container-content-wrapper{background-color:var(--sbb-lead-container-background-color);display:grid;gap:var(--sbb-grid-base-gutter-responsive);grid-template-columns:repeat(var(--sbb-grid-base-columns),1fr);padding-inline:var(--sbb-layout-base-offset-responsive);margin-inline:auto;width:100%}@media (min-width: 90rem){.sbb-lead-container-content-wrapper{max-width:calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive))}}@media (min-width: 64rem){.sbb-lead-container-content-wrapper{background-color:transparent}}.sbb-lead-container-content{z-index:1;border-radius:var(--sbb-lead-container-border-radius);padding-block:var(--sbb-lead-container-padding-block);background-color:var(--sbb-lead-container-background-color);grid-column:1/-1}@media (min-width: 52.5rem){.sbb-lead-container-content{grid-column:2/-2}}@media (min-width: 64rem){.sbb-lead-container-content{margin-block-start:calc(-1 * var(--sbb-lead-container-image-overlap));padding-inline:var(--sbb-lead-container-padding-inline);margin-inline:calc(-1 * var(--sbb-lead-container-padding-inline))}}@media (min-width: 80rem){.sbb-lead-container-content{grid-column:3/-3}}@media (min-width: 90rem){.sbb-lead-container-content{grid-column:4/-4}}`;
|
|
3
|
+
const m = t`*,:before,:after{box-sizing:border-box}:host{display:block;--sbb-lead-container-background-color: var(--sbb-color-white);--sbb-lead-container-image-ratio: 2 / 1;--sbb-lead-container-image-overlap: var(--sbb-spacing-fixed-24x);--sbb-lead-container-padding-block: var(--sbb-spacing-responsive-l);--sbb-lead-container-padding-inline: var(--sbb-layout-base-offset-responsive);--sbb-lead-container-border-radius: var(--sbb-border-radius-6x);--sbb-lead-container-image-border-radius: 0}@media (min-width: 80rem){:host{--sbb-lead-container-image-ratio: 21 / 9}}@media (min-width: 90rem){:host{--sbb-lead-container-image-border-radius: var(--sbb-lead-container-border-radius)}}.sbb-lead-container{padding-block-end:var(--sbb-spacing-responsive-l)}::slotted(sbb-image[slot=image]){--sbb-image-aspect-ratio: var(--sbb-lead-container-image-ratio);--sbb-image-border-radius: var(--sbb-lead-container-image-border-radius)}::slotted(:is(img[slot=image],picture[slot=image])){display:block;width:100%;object-fit:cover;aspect-ratio:var(--sbb-lead-container-image-ratio);border-radius:var(--sbb-lead-container-image-border-radius)}::slotted(:is(sbb-breadcrumb-group,sbb-block-link).sbb-lead-container-spacing){margin-block-end:var(--sbb-spacing-fixed-4x)}::slotted(:is(sbb-alert,sbb-alert-group).sbb-lead-container-spacing){margin-block-end:var(--sbb-spacing-responsive-m)}::slotted(sbb-title.sbb-lead-container-spacing){margin-block-start:0}::slotted(sbb-notification.sbb-lead-container-spacing){margin-block-end:var(--sbb-spacing-responsive-xxxs)}::slotted(.sbb-lead-container-lead-text){margin-block:0 var(--sbb-spacing-responsive-s)}@media (min-width: 90rem){.sbb-lead-container-image{max-width:calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive));margin-inline:auto}}.sbb-lead-container-content-wrapper{background-color:var(--sbb-lead-container-background-color);display:grid;gap:var(--sbb-grid-base-gutter-responsive);grid-template-columns:repeat(var(--sbb-grid-base-columns),1fr);padding-inline:var(--sbb-layout-base-offset-responsive);margin-inline:auto;width:100%}@media (min-width: 90rem){.sbb-lead-container-content-wrapper{max-width:calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive))}}@media (min-width: 64rem){.sbb-lead-container-content-wrapper{background-color:transparent}}.sbb-lead-container-content{z-index:1;border-radius:var(--sbb-lead-container-border-radius);padding-block:var(--sbb-lead-container-padding-block);background-color:var(--sbb-lead-container-background-color);grid-column:1/-1}@media (min-width: 52.5rem){.sbb-lead-container-content{grid-column:2/-2}}@media (min-width: 64rem){.sbb-lead-container-content{margin-block-start:calc(-1 * var(--sbb-lead-container-image-overlap));padding-inline:var(--sbb-lead-container-padding-inline);margin-inline:calc(-1 * var(--sbb-lead-container-padding-inline))}}@media (min-width: 80rem){.sbb-lead-container-content{grid-column:3/-3}}@media (min-width: 90rem){.sbb-lead-container-content{grid-column:4/-4}}`;
|
|
4
4
|
var g = Object.defineProperty, p = Object.getOwnPropertyDescriptor, v = (o, a, i, r) => {
|
|
5
5
|
for (var e = r > 1 ? void 0 : r ? p(a, i) : a, n = o.length - 1, b; n >= 0; n--)
|
|
6
6
|
(b = o[n]) && (e = (r ? b(a, i, e) : b(e)) || e);
|
package/lists.css
CHANGED
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
--sbb-step-list-padding-block: var(--sbb-spacing-fixed-3x);
|
|
84
84
|
--sbb-step-list-padding-inline: var(--sbb-spacing-responsive-xxs);
|
|
85
85
|
--sbb-step-list-marker-to-text-gap: var(--sbb-spacing-responsive-xxxs);
|
|
86
|
+
--sbb-step-list-border-radius: var(--sbb-border-radius-4x);
|
|
86
87
|
--sbb-step-list-text-to-marker-block-offset: calc(
|
|
87
88
|
0.5 *
|
|
88
89
|
(
|
|
@@ -112,11 +113,18 @@
|
|
|
112
113
|
position: relative;
|
|
113
114
|
counter-increment: steps;
|
|
114
115
|
background-color: var(--sbb-color-milk);
|
|
115
|
-
border-radius: var(--sbb-border-radius-4x);
|
|
116
116
|
padding-block: calc(var(--sbb-step-list-padding-block) + var(--sbb-step-list-text-to-marker-block-offset)) var(--sbb-step-list-padding-block);
|
|
117
117
|
padding-inline: calc(var(--sbb-step-list-padding-inline) + var(--sbb-step-list-marker-dimensions) + var(--sbb-step-list-marker-to-text-gap)) var(--sbb-step-list-padding-inline);
|
|
118
118
|
min-height: calc(var(--sbb-step-list-marker-dimensions) + 2 * var(--sbb-step-list-padding-block));
|
|
119
119
|
}
|
|
120
|
+
.sbb-step-list > li:first-of-type {
|
|
121
|
+
border-start-start-radius: var(--sbb-step-list-border-radius);
|
|
122
|
+
border-start-end-radius: var(--sbb-step-list-border-radius);
|
|
123
|
+
}
|
|
124
|
+
.sbb-step-list > li:last-of-type {
|
|
125
|
+
border-end-start-radius: var(--sbb-step-list-border-radius);
|
|
126
|
+
border-end-end-radius: var(--sbb-step-list-border-radius);
|
|
127
|
+
}
|
|
120
128
|
.sbb-step-list > li::before {
|
|
121
129
|
--sbb-text-font-size: var(--sbb-font-size-text-xxs);
|
|
122
130
|
font-family: var(--sbb-typo-font-family);
|
package/menu/menu/menu.d.ts
CHANGED
package/menu/menu/menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../../src/elements/menu/menu/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAYrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../../src/elements/menu/menu/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAYrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAUtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAkB1D;;;;;;;;;;;GAWG;AACH,qBACa,cAAe,SAAQ,mBAGV;IACxB,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAwC;IAEvF;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;;OAGG;IACyD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAE5F,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAgC;IAExD;;OAEG;IACI,IAAI,IAAI,IAAI;IAmBnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;YAsBR,eAAe;IAY7B,OAAO,CAAC,2BAA2B;IAWnB,iBAAiB,IAAI,IAAI;IAgBzB,oBAAoB,IAAI,IAAI;IAQ5C,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,oBAAoB,CAE1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAMF,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;cAyBL,MAAM,IAAI,cAAc;CAqB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
|
package/menu/menu.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
3
|
-
import { ref as
|
|
4
|
-
import { SbbFocusHandler as
|
|
5
|
-
import { SbbOpenCloseBaseElement as
|
|
6
|
-
import { SbbConnectedAbortController as
|
|
7
|
-
import { SbbScrollHandler as
|
|
8
|
-
import { SbbNamedSlotListMixin as
|
|
9
|
-
import { isEventOnElement as h,
|
|
10
|
-
const
|
|
11
|
-
var
|
|
1
|
+
import { css as u, html as l } from "lit";
|
|
2
|
+
import { property as m, customElement as g } from "lit/decorators.js";
|
|
3
|
+
import { ref as v } from "lit/directives/ref.js";
|
|
4
|
+
import { SbbFocusHandler as _, isArrowKeyPressed as p, interactivityChecker as f, getNextElementIndex as w, setModalityOnNextFocus as c, IS_FOCUSABLE_QUERY as E } from "../core/a11y.js";
|
|
5
|
+
import { SbbOpenCloseBaseElement as x } from "../core/base-elements.js";
|
|
6
|
+
import { SbbConnectedAbortController as y, SbbInertController as k } from "../core/controllers.js";
|
|
7
|
+
import { SbbScrollHandler as C, isBreakpoint as d, findReferencedElement as L } from "../core/dom.js";
|
|
8
|
+
import { SbbNamedSlotListMixin as O } from "../core/mixins.js";
|
|
9
|
+
import { isEventOnElement as h, removeAriaOverlayTriggerAttributes as S, setAriaOverlayTriggerAttributes as N, getElementPosition as B } from "../core/overlay.js";
|
|
10
|
+
const A = u`*,:before,:after{box-sizing:border-box}:host{display:contents;--sbb-menu-position-x: 0;--sbb-menu-position-y: 0;--sbb-menu-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-menu-animation-easing: ease;--sbb-menu-transform: translateY(100%);--sbb-menu-max-width: 100%;--sbb-menu-min-width: 100%;--sbb-menu-inset: 0 auto auto 0;--sbb-menu-container-height: 100vh;--sbb-menu-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-menu-min-height: 3.03125rem;--sbb-menu-border-radius: var(--sbb-border-radius-4x);--sbb-menu-visibility: hidden;--sbb-menu-backdrop-color: transparent}@supports (height: 100dvh){:host{--sbb-menu-container-height: 100dvh}}@media (min-width: 52.5rem){:host{--sbb-menu-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-menu-max-width: 20rem;--sbb-menu-min-width: 11.25rem}}:host(:is([data-state=opened],[data-state=opening])){--sbb-menu-visibility: visible;--sbb-menu-backdrop-color: var(--sbb-color-black-alpha-20)}@media (min-width: 52.5rem){:host(:is([data-state=opened],[data-state=opening])){--sbb-menu-backdrop-color: transparent}}:host(:not([data-state=closed])){--sbb-menu-inset: 0}::slotted(:not(sbb-menu-button,sbb-menu-link,sbb-divider)){display:block;padding-inline:var(--sbb-spacing-fixed-5x)}::slotted(sbb-divider){--sbb-divider-color: var(--sbb-color-iron);margin-block:var(--sbb-spacing-fixed-2x)}.sbb-menu__container{position:fixed;pointer-events:none;inset:var(--sbb-menu-inset);height:var(--sbb-menu-container-height);z-index:var(--sbb-menu-z-index, var(--sbb-overlay-default-z-index))}.sbb-menu__container:before{content:"";visibility:var(--sbb-menu-visibility);pointer-events:all;position:fixed;inset:var(--sbb-menu-inset);height:var(--sbb-menu-container-height);background-color:var(--sbb-menu-backdrop-color);transition-duration:var(--sbb-menu-animation-duration);transition-timing-function:var(--sbb-menu-animation-easing);transition-property:background-color,visibility}.sbb-menu{display:none;opacity:0;pointer-events:none;max-width:var(--sbb-menu-max-width);min-width:var(--sbb-menu-min-width);text-align:start;position:absolute;inset-inline-start:0;inset-block-start:unset;inset-block-end:0;inset-inline-end:unset;color:var(--sbb-color-white);border:none;border-radius:var(--sbb-menu-border-radius) var(--sbb-menu-border-radius) 0 0;background-color:var(--sbb-color-black);padding:0;overflow:hidden}:host([data-state]:not([data-state=closed])) .sbb-menu{display:block;opacity:1;pointer-events:all;animation-name:open;animation-duration:var(--sbb-menu-animation-duration);animation-timing-function:var(--sbb-menu-animation-easing)}:host([data-state][data-state=closing]) .sbb-menu{pointer-events:none;animation-name:close}@media (forced-colors: active){.sbb-menu{outline:var(--sbb-border-width-1x) solid CanvasText}}@media (min-width: 52.5rem){.sbb-menu{top:0;bottom:unset;left:0;right:unset;max-height:fit-content;border-radius:var(--sbb-menu-border-radius)}:host(:not([data-state=closed])) .sbb-menu{top:var(--sbb-menu-position-y);left:var(--sbb-menu-position-x);max-height:var(--sbb-menu-max-height);min-height:var(--sbb-menu-min-height)}}.sbb-menu__content{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-menu__content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-menu__content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-menu__content::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-menu__content::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-menu__content::-webkit-scrollbar-button,.sbb-menu__content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-menu__content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-menu__content{max-height:var(--sbb-menu-max-height);padding-block:var(--sbb-spacing-fixed-1x);overflow:auto;outline:none}.sbb-menu__content:after{content:"";display:block;height:var(--sbb-spacing-fixed-8x)}@media (min-width: 52.5rem){.sbb-menu__content{max-height:fit-content}:host(:not([data-state=closed])) .sbb-menu__content{max-height:var(--sbb-menu-max-height);min-height:var(--sbb-menu-min-height)}.sbb-menu__content:after{display:none}}.sbb-menu-list{list-style:none;margin:0;padding:0;font-size:inherit}@keyframes open{0%{opacity:0;transform:var(--sbb-menu-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-menu-transform)}}`;
|
|
11
|
+
var T = Object.defineProperty, P = Object.getOwnPropertyDescriptor, b = (e, t, n, s) => {
|
|
12
12
|
for (var i = s > 1 ? void 0 : s ? P(t, n) : t, o = e.length - 1, a; o >= 0; o--)
|
|
13
13
|
(a = e[o]) && (i = (s ? a(t, n, i) : a(i)) || i);
|
|
14
|
-
return s && i &&
|
|
14
|
+
return s && i && T(t, n, i), i;
|
|
15
15
|
};
|
|
16
|
-
const I = 8,
|
|
16
|
+
const I = 8, M = [
|
|
17
17
|
"A",
|
|
18
18
|
"BUTTON",
|
|
19
19
|
"SBB-BUTTON",
|
|
@@ -23,9 +23,9 @@ const I = 8, K = [
|
|
|
23
23
|
"SBB-LINK-BUTTON",
|
|
24
24
|
"SBB-BLOCK-LINK-BUTTON"
|
|
25
25
|
];
|
|
26
|
-
let
|
|
26
|
+
let K = 0, r = class extends O(x) {
|
|
27
27
|
constructor() {
|
|
28
|
-
super(...arguments), this.listChildLocalNames = ["sbb-menu-button", "sbb-menu-link"], this._trigger = null, this._triggerElement = null, this._isPointerDownEventOnMenu = !1, this._abort = new
|
|
28
|
+
super(...arguments), this.listChildLocalNames = ["sbb-menu-button", "sbb-menu-link"], this._trigger = null, this._triggerElement = null, this._isPointerDownEventOnMenu = !1, this._abort = new y(this), this._focusHandler = new _(), this._scrollHandler = new C(), this._inertController = new k(this), this._pointerDownListener = (e) => {
|
|
29
29
|
this._isPointerDownEventOnMenu = h(this._menu, e);
|
|
30
30
|
}, this._closeOnBackdropClick = (e) => {
|
|
31
31
|
!this._isPointerDownEventOnMenu && !h(this._menu, e) && this.close();
|
|
@@ -60,7 +60,7 @@ let H = 0, r = class extends N(k) {
|
|
|
60
60
|
((t == null ? void 0 : t.localName) === "sbb-menu-button" || (t == null ? void 0 : t.localName) === "sbb-menu-link") && this.close();
|
|
61
61
|
}
|
|
62
62
|
_handleKeyDown(e) {
|
|
63
|
-
if (!
|
|
63
|
+
if (!p(e))
|
|
64
64
|
return;
|
|
65
65
|
e.preventDefault();
|
|
66
66
|
const t = Array.from(
|
|
@@ -68,8 +68,8 @@ let H = 0, r = class extends N(k) {
|
|
|
68
68
|
"sbb-menu-button, sbb-menu-link"
|
|
69
69
|
)
|
|
70
70
|
).filter(
|
|
71
|
-
(i) => !i.disabled &&
|
|
72
|
-
), n = t.findIndex((i) => i === e.target), s =
|
|
71
|
+
(i) => !i.disabled && f.isVisible(i)
|
|
72
|
+
), n = t.findIndex((i) => i === e.target), s = w(e, n, t.length);
|
|
73
73
|
t[s].focus();
|
|
74
74
|
}
|
|
75
75
|
// Closes the menu on "Esc" key pressed and traps focus within the menu.
|
|
@@ -91,11 +91,11 @@ let H = 0, r = class extends N(k) {
|
|
|
91
91
|
this.addEventListener("click", (n) => this._onClick(n), { signal: e }), this.addEventListener("keydown", (n) => this._handleKeyDown(n), { signal: e }), (t = this.shadowRoot) == null || t.addEventListener("slotchange", (n) => this._checkListCase(n), {
|
|
92
92
|
signal: e,
|
|
93
93
|
capture: !0
|
|
94
|
-
}), this._configure(this.trigger)
|
|
94
|
+
}), this._configure(this.trigger);
|
|
95
95
|
}
|
|
96
96
|
disconnectedCallback() {
|
|
97
97
|
var e, t;
|
|
98
|
-
super.disconnectedCallback(), (e = this._menuController) == null || e.abort(), (t = this._windowEventsController) == null || t.abort(), this._focusHandler.disconnect(),
|
|
98
|
+
super.disconnectedCallback(), (e = this._menuController) == null || e.abort(), (t = this._windowEventsController) == null || t.abort(), this._focusHandler.disconnect(), this._scrollHandler.enableScroll();
|
|
99
99
|
}
|
|
100
100
|
_checkListCase(e) {
|
|
101
101
|
var t;
|
|
@@ -106,7 +106,7 @@ let H = 0, r = class extends N(k) {
|
|
|
106
106
|
// Check if the trigger is valid and attach click event listeners.
|
|
107
107
|
_configure(e) {
|
|
108
108
|
var t;
|
|
109
|
-
S(this._triggerElement), e && (this._triggerElement =
|
|
109
|
+
S(this._triggerElement), e && (this._triggerElement = L(e), this._triggerElement && (this.id = this.id || `sbb-menu-${K++}`, N(this._triggerElement, "menu", this.id, this.state), (t = this._menuController) == null || t.abort(), this._menuController = new AbortController(), this._triggerElement.addEventListener("click", () => this.open(), {
|
|
110
110
|
signal: this._menuController.signal
|
|
111
111
|
})));
|
|
112
112
|
}
|
|
@@ -128,7 +128,7 @@ let H = 0, r = class extends N(k) {
|
|
|
128
128
|
// Close menu at any click on an interactive element inside the <sbb-menu> that bubbles to the container.
|
|
129
129
|
_closeOnInteractiveElementClick(e) {
|
|
130
130
|
const t = e.target;
|
|
131
|
-
|
|
131
|
+
M.includes(t.nodeName) && !t.hasAttribute("disabled") && this.close();
|
|
132
132
|
}
|
|
133
133
|
// Set menu position (x, y) to '0' once the menu is closed and the transition ended to prevent the
|
|
134
134
|
// viewport from overflowing. And set the focus to the first focusable element once the menu is open.
|
|
@@ -136,21 +136,21 @@ let H = 0, r = class extends N(k) {
|
|
|
136
136
|
// To avoid entering a corrupt state, exit when state is not expected.
|
|
137
137
|
_onMenuAnimationEnd(e) {
|
|
138
138
|
var t, n, s, i;
|
|
139
|
-
e.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(),
|
|
139
|
+
e.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(), this._inertController.activate(), this._setMenuFocus(), this._focusHandler.trap(this), this._attachWindowEvents()) : e.animationName === "close" && this.state === "closing" && (this.state = "closed", (n = (t = this._menu) == null ? void 0 : t.firstElementChild) == null || n.scrollTo(0, 0), this._inertController.deactivate(), c(this._triggerElement), (s = this._triggerElement) == null || s.focus({
|
|
140
140
|
// When inside the sbb-header, we prevent the scroll to avoid the snapping to the top of the page
|
|
141
141
|
preventScroll: this._triggerElement.localName === "sbb-header-button" || this._triggerElement.localName === "sbb-header-link"
|
|
142
142
|
}), this.didClose.emit(), (i = this._windowEventsController) == null || i.abort(), this._focusHandler.disconnect(), this._scrollHandler.enableScroll());
|
|
143
143
|
}
|
|
144
144
|
// Set focus on the first focusable element.
|
|
145
145
|
_setMenuFocus() {
|
|
146
|
-
const e = this.querySelector(
|
|
146
|
+
const e = this.querySelector(E);
|
|
147
147
|
c(e), e.focus();
|
|
148
148
|
}
|
|
149
149
|
// Set menu position and max height if the breakpoint is medium-ultra.
|
|
150
150
|
_setMenuPosition() {
|
|
151
151
|
if (!d("medium") || !this._menu || !this._triggerElement || this.state === "closing")
|
|
152
152
|
return;
|
|
153
|
-
const e =
|
|
153
|
+
const e = B(
|
|
154
154
|
this.shadowRoot.querySelector(".sbb-menu__content"),
|
|
155
155
|
this._triggerElement,
|
|
156
156
|
this.shadowRoot.querySelector(".sbb-menu__container"),
|
|
@@ -166,7 +166,7 @@ let H = 0, r = class extends N(k) {
|
|
|
166
166
|
<div
|
|
167
167
|
@animationend=${(e) => this._onMenuAnimationEnd(e)}
|
|
168
168
|
class="sbb-menu"
|
|
169
|
-
${
|
|
169
|
+
${v((e) => this._menu = e)}
|
|
170
170
|
>
|
|
171
171
|
<div
|
|
172
172
|
@click=${(e) => this._closeOnInteractiveElementClick(e)}
|
|
@@ -179,15 +179,15 @@ let H = 0, r = class extends N(k) {
|
|
|
179
179
|
`;
|
|
180
180
|
}
|
|
181
181
|
};
|
|
182
|
-
r.styles =
|
|
182
|
+
r.styles = A;
|
|
183
183
|
b([
|
|
184
|
-
|
|
184
|
+
m()
|
|
185
185
|
], r.prototype, "trigger", 1);
|
|
186
186
|
b([
|
|
187
|
-
|
|
187
|
+
m({ attribute: "list-accessibility-label" })
|
|
188
188
|
], r.prototype, "listAccessibilityLabel", 2);
|
|
189
189
|
r = b([
|
|
190
|
-
|
|
190
|
+
g("sbb-menu")
|
|
191
191
|
], r);
|
|
192
192
|
export {
|
|
193
193
|
r as SbbMenuElement
|
|
@@ -38,6 +38,7 @@ export declare class SbbNavigationElement extends SbbNavigationElement_base {
|
|
|
38
38
|
private _windowEventsController;
|
|
39
39
|
private _abort;
|
|
40
40
|
private _language;
|
|
41
|
+
private _inertController;
|
|
41
42
|
private _focusHandler;
|
|
42
43
|
private _scrollHandler;
|
|
43
44
|
private _isPointerDownEventOnNavigation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAqBtE,OAAO,oCAAoC,CAAC;;AAW5C;;;;;;;;;;;GAWG;AACH,qBAIa,oBAAqB,SAAQ,yBAAgD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;OAEG;IAC0D,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd;;OAEG;IACM,OAAO,CAAC,wBAAwB,CAA4B;IAErE,IAAW,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAEvD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,yBAAyB,CAAe;IAChD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,yBAAyB,CAAgE;IAEjG;;OAEG;IACI,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACI,KAAK,IAAI,IAAI;IAcpB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB,CAEtB;IAIF,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAGF,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;cAUzB,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
|
package/navigation/navigation.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
1
|
+
import { css as h, html as v } from "lit";
|
|
2
|
+
import { property as d, state as m, customElement as p } from "lit/decorators.js";
|
|
3
3
|
import { ref as c } from "lit/directives/ref.js";
|
|
4
|
-
import { SbbFocusHandler as
|
|
5
|
-
import { SbbOpenCloseBaseElement as
|
|
6
|
-
import { SbbConnectedAbortController as
|
|
7
|
-
import { hostAttributes as
|
|
8
|
-
import { SbbScrollHandler as
|
|
9
|
-
import { i18nCloseNavigation as
|
|
10
|
-
import { SbbUpdateSchedulerMixin as
|
|
11
|
-
import { AgnosticMutationObserver as
|
|
12
|
-
import { isEventOnElement as l, removeAriaOverlayTriggerAttributes as
|
|
4
|
+
import { SbbFocusHandler as u, setModalityOnNextFocus as g } from "../core/a11y.js";
|
|
5
|
+
import { SbbOpenCloseBaseElement as _ } from "../core/base-elements.js";
|
|
6
|
+
import { SbbConnectedAbortController as f, SbbLanguageController as w, SbbInertController as k } from "../core/controllers.js";
|
|
7
|
+
import { hostAttributes as y } from "../core/decorators.js";
|
|
8
|
+
import { SbbScrollHandler as E, findReferencedElement as x } from "../core/dom.js";
|
|
9
|
+
import { i18nCloseNavigation as C } from "../core/i18n.js";
|
|
10
|
+
import { SbbUpdateSchedulerMixin as O } from "../core/mixins.js";
|
|
11
|
+
import { AgnosticMutationObserver as S, AgnosticResizeObserver as A } from "../core/observers.js";
|
|
12
|
+
import { isEventOnElement as l, removeAriaOverlayTriggerAttributes as N, setAriaOverlayTriggerAttributes as z } from "../core/overlay.js";
|
|
13
13
|
import "../button/transparent-button.js";
|
|
14
|
-
const
|
|
15
|
-
var
|
|
16
|
-
for (var
|
|
17
|
-
(b = t[r]) && (
|
|
18
|
-
return a &&
|
|
14
|
+
const T = h`*,:before,:after{box-sizing:border-box}:host{--sbb-navigation-grid-column: 1 / 5;--sbb-navigation-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-3x) );--sbb-navigation-animation-easing: ease-in;--sbb-navigation-padding-inline: var(--sbb-layout-base-offset-responsive);--sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-l);--sbb-navigation-padding-block-end: var(--sbb-spacing-responsive-xl);--sbb-navigation-backdrop-visibility: hidden;--sbb-navigation-backdrop-pointer-events: none;--sbb-navigation-backdrop-color: transparent;--sbb-navigation-list-margin-block-start: var(--sbb-spacing-responsive-xxl);--sbb-navigation-inline-start: 0;--sbb-navigation-expanded-width: 100%;--sbb-navigation-inset: 0 auto auto 0;--sbb-navigation-transform: translateX(-100%);--sbb-navigation-content-transform: translateX(0);--sbb-navigation-width: 100%;--sbb-navigation-height: 100vh;--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);display:block;position:fixed;inset:var(--sbb-navigation-inset);z-index:var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index));overflow:hidden}@supports (height: 100dvh){:host{--sbb-navigation-height: 100dvh}}@media (min-width: 52.5rem){:host{--sbb-navigation-grid-column: 1 / 9}}@media (min-width: 64rem){:host{--sbb-navigation-grid-column: 1 / 5;--sbb-navigation-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-xl);--sbb-navigation-padding-inline: var(--sbb-layout-base-offset-responsive) 0;--sbb-navigation-list-margin-block-start: var(--sbb-spacing-fixed-1x);--sbb-navigation-inline-start: calc(var(--sbb-layout-base-offset-responsive) * -1);--sbb-navigation-width: calc(100% + var(--sbb-layout-base-offset-responsive))}}@media (min-width: 90rem){:host{--sbb-navigation-grid-column: 1 / 6;--sbb-navigation-padding-block-start: var(--sbb-spacing-responsive-xxl)}}:host([data-state=opened]){--sbb-navigation-animation-easing: ease-out}:host(:is([data-state=opened],[data-state=opening])){--sbb-navigation-backdrop-visibility: visible;--sbb-navigation-backdrop-pointer-events: all;--sbb-navigation-backdrop-color: var(--sbb-color-black-alpha-70)}:host(:not([data-state=closed])){--sbb-navigation-inset: 0;--sbb-navigation-transform: translateX(0)}:host([data-has-navigation-section]){--sbb-navigation-content-transform: translateX(-100%)}@media (min-width: 64rem){:host([data-has-navigation-section]){--sbb-navigation-expanded-width: 100vw;--sbb-navigation-content-transform: translateX(0%)}@supports (height: 100dvw){:host([data-has-navigation-section]){--sbb-navigation-expanded-width: 100dvw}}}:host([data-resize-disable-animation]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}.sbb-navigation__container{display:grid;gap:var(--sbb-grid-base-gutter-responsive);grid-template-columns:repeat(var(--sbb-grid-base-columns),1fr);padding-inline:0;pointer-events:none;transform:var(--sbb-navigation-transform)}@media (min-width: 64rem){.sbb-navigation__container{padding-inline:var(--sbb-layout-base-offset-responsive)}.sbb-navigation__container:before{transition-duration:var(--sbb-navigation-animation-duration);transition-timing-function:var(--sbb-navigation-animation-easing);transition-property:background-color,visibility;content:"";visibility:var(--sbb-navigation-backdrop-visibility);pointer-events:var(--sbb-navigation-backdrop-pointer-events);position:fixed;inset:var(--sbb-navigation-inset);background-color:var(--sbb-navigation-backdrop-color)}}.sbb-navigation{transition-duration:var(--sbb-navigation-animation-duration);transition-timing-function:var(--sbb-navigation-animation-easing);transition-property:width;display:none;width:var(--sbb-navigation-width);grid-column:var(--sbb-navigation-grid-column);padding:0;margin:0;position:relative;inset-inline-start:var(--sbb-navigation-inline-start);inset-block-start:0;border:none;pointer-events:none;height:var(--sbb-navigation-height);color:var(--sbb-color-white);background-color:var(--sbb-color-midnight)}.sbb-navigation:before{transition-duration:var(--sbb-navigation-animation-duration);transition-timing-function:var(--sbb-navigation-animation-easing);transition-property:width;content:"";position:absolute;width:var(--sbb-navigation-expanded-width);height:var(--sbb-navigation-height);background:var(--sbb-color-midnight)}:host([data-state]:not([data-state=closed])) .sbb-navigation{display:block;pointer-events:all;animation-name:open;animation-duration:var(--sbb-navigation-animation-duration);animation-timing-function:var(--sbb-navigation-animation-easing)}:host([data-state][data-state=closing]) .sbb-navigation{pointer-events:none;animation-name:close}@media (forced-colors: active){.sbb-navigation{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-navigation__wrapper{outline:none}.sbb-navigation__header{transition-duration:var(--sbb-navigation-animation-duration);transition-timing-function:var(--sbb-navigation-animation-easing);transition-property:width;display:flex;justify-content:flex-end;position:absolute;width:var(--sbb-navigation-expanded-width);pointer-events:none;padding:var(--sbb-spacing-responsive-xs);z-index:calc(var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index)) + 1)}.sbb-navigation__close{pointer-events:all}.sbb-navigation__content{transition-duration:var(--sbb-navigation-animation-duration);transition-timing-function:var(--sbb-navigation-animation-easing);transition-property:transform;--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-navigation__content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation__content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation__content::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-navigation__content::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-navigation__content::-webkit-scrollbar-button,.sbb-navigation__content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-navigation__content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-navigation__content{display:flex;flex-direction:column;gap:var(--sbb-spacing-responsive-xxl);position:relative;height:var(--sbb-navigation-height);padding-inline:var(--sbb-navigation-padding-inline);padding-block:var(--sbb-navigation-padding-block-start) var(--sbb-navigation-padding-block-end);overflow-y:auto;transform:var(--sbb-navigation-content-transform)}::slotted(:first-child){margin-block-start:var(--sbb-navigation-list-margin-block-start)}@keyframes open{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes close{0%{transform:translate(0)}to{transform:translate(-100%)}}`;
|
|
15
|
+
var L = Object.defineProperty, H = Object.getOwnPropertyDescriptor, s = (t, i, n, a) => {
|
|
16
|
+
for (var o = a > 1 ? void 0 : a ? H(i, n) : i, r = t.length - 1, b; r >= 0; r--)
|
|
17
|
+
(b = t[r]) && (o = (a ? b(i, n, o) : b(o)) || o);
|
|
18
|
+
return a && o && L(i, n, o), o;
|
|
19
19
|
};
|
|
20
|
-
const
|
|
20
|
+
const B = {
|
|
21
21
|
subtree: !0,
|
|
22
22
|
attributeFilter: ["data-state"]
|
|
23
23
|
};
|
|
24
24
|
let P = 0;
|
|
25
25
|
const R = 150;
|
|
26
|
-
let
|
|
26
|
+
let e = class extends O(_) {
|
|
27
27
|
constructor() {
|
|
28
|
-
super(...arguments), this._trigger = null, this._activeNavigationSection = null, this._triggerElement = null, this._abort = new
|
|
28
|
+
super(...arguments), this._trigger = null, this._activeNavigationSection = null, this._triggerElement = null, this._abort = new f(this), this._language = new w(this), this._inertController = new k(this), this._focusHandler = new u(), this._scrollHandler = new E(), this._isPointerDownEventOnNavigation = !1, this._resizeObserverTimeout = null, this._navigationObserver = new S(
|
|
29
29
|
(t) => this._onNavigationSectionChange(t)
|
|
30
|
-
), this._navigationResizeObserver = new
|
|
30
|
+
), this._navigationResizeObserver = new A(() => this._onNavigationResize()), this._trapFocusFilter = (t) => t.nodeName !== "SBB-NAVIGATION-SECTION" || t.getAttribute("data-state") === "opened", this._pointerDownListener = (t) => {
|
|
31
31
|
var i, n;
|
|
32
32
|
this._isPointerDownEventOnNavigation = l(this._navigation, t) || l(
|
|
33
33
|
(n = (i = this.querySelector(
|
|
@@ -87,7 +87,7 @@ let o = class extends S(w) {
|
|
|
87
87
|
// Check if the trigger is valid and attach click event listeners.
|
|
88
88
|
_configure(t) {
|
|
89
89
|
var i;
|
|
90
|
-
|
|
90
|
+
N(this._triggerElement), t && (this._triggerElement = x(t), this._triggerElement && (z(this._triggerElement, "menu", this.id, this.state), (i = this._navigationController) == null || i.abort(), this._navigationController = new AbortController(), this._triggerElement.addEventListener("click", () => this.open(), {
|
|
91
91
|
signal: this._navigationController.signal
|
|
92
92
|
})));
|
|
93
93
|
}
|
|
@@ -95,7 +95,7 @@ let o = class extends S(w) {
|
|
|
95
95
|
// To avoid entering a corrupt state, exit when state is not expected.
|
|
96
96
|
_onAnimationEnd(t) {
|
|
97
97
|
var i, n;
|
|
98
|
-
t.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(), this._navigationResizeObserver.observe(this),
|
|
98
|
+
t.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(), this._navigationResizeObserver.observe(this), this._inertController.activate(), this._focusHandler.trap(this, { filter: this._trapFocusFilter }), this._attachWindowEvents(), this._setNavigationFocus()) : t.animationName === "close" && this.state === "closing" && (this.state = "closed", this._navigationContentElement.scrollTo(0, 0), g(this._triggerElement), this._inertController.deactivate(), (i = this._triggerElement) == null || i.focus(), this.didClose.emit(), this._navigationResizeObserver.unobserve(this), this._resetMarkers(), (n = this._windowEventsController) == null || n.abort(), this._focusHandler.disconnect(), this._scrollHandler.enableScroll()), this.completeUpdate();
|
|
99
99
|
}
|
|
100
100
|
_resetMarkers() {
|
|
101
101
|
const t = Array.from(
|
|
@@ -146,18 +146,18 @@ let o = class extends S(w) {
|
|
|
146
146
|
connectedCallback() {
|
|
147
147
|
super.connectedCallback(), this.id || (this.id = `sbb-navigation-${P++}`);
|
|
148
148
|
const t = this._abort.signal;
|
|
149
|
-
this.addEventListener("click", (i) => this._handleNavigationClose(i), { signal: t }), this._configure(this.trigger), this._navigationObserver.observe(this,
|
|
149
|
+
this.addEventListener("click", (i) => this._handleNavigationClose(i), { signal: t }), this._configure(this.trigger), this._navigationObserver.observe(this, B), this.addEventListener("pointerup", (i) => this._closeOnBackdropClick(i), { signal: t }), this.addEventListener("pointerdown", (i) => this._pointerDownListener(i), { signal: t });
|
|
150
150
|
}
|
|
151
151
|
disconnectedCallback() {
|
|
152
152
|
var t, i;
|
|
153
|
-
super.disconnectedCallback(), (t = this._navigationController) == null || t.abort(), (i = this._windowEventsController) == null || i.abort(), this._focusHandler.disconnect(), this._navigationObserver.disconnect(), this._navigationResizeObserver.disconnect(),
|
|
153
|
+
super.disconnectedCallback(), (t = this._navigationController) == null || t.abort(), (i = this._windowEventsController) == null || i.abort(), this._focusHandler.disconnect(), this._navigationObserver.disconnect(), this._navigationResizeObserver.disconnect(), this._scrollHandler.enableScroll();
|
|
154
154
|
}
|
|
155
155
|
render() {
|
|
156
156
|
const t = v`
|
|
157
157
|
<sbb-transparent-button
|
|
158
158
|
id="sbb-navigation-close-button"
|
|
159
159
|
class="sbb-navigation__close"
|
|
160
|
-
aria-label=${this.accessibilityCloseLabel ||
|
|
160
|
+
aria-label=${this.accessibilityCloseLabel || C[this._language.current]}
|
|
161
161
|
aria-controls="sbb-navigation-overlay"
|
|
162
162
|
negative
|
|
163
163
|
size="m"
|
|
@@ -189,22 +189,22 @@ let o = class extends S(w) {
|
|
|
189
189
|
`;
|
|
190
190
|
}
|
|
191
191
|
};
|
|
192
|
-
|
|
192
|
+
e.styles = T;
|
|
193
193
|
s([
|
|
194
|
-
|
|
195
|
-
],
|
|
194
|
+
d()
|
|
195
|
+
], e.prototype, "trigger", 1);
|
|
196
196
|
s([
|
|
197
|
-
|
|
198
|
-
],
|
|
197
|
+
d({ attribute: "accessibility-close-label" })
|
|
198
|
+
], e.prototype, "accessibilityCloseLabel", 2);
|
|
199
199
|
s([
|
|
200
|
-
|
|
201
|
-
],
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
200
|
+
m()
|
|
201
|
+
], e.prototype, "_activeNavigationSection", 2);
|
|
202
|
+
e = s([
|
|
203
|
+
p("sbb-navigation"),
|
|
204
|
+
y({
|
|
205
205
|
role: "navigation"
|
|
206
206
|
})
|
|
207
|
-
],
|
|
207
|
+
], e);
|
|
208
208
|
export {
|
|
209
|
-
|
|
209
|
+
e as SbbNavigationElement
|
|
210
210
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PropertyValues } from 'lit';
|
|
2
2
|
import { SbbFocusHandler } from '../core/a11y.js';
|
|
3
3
|
import { SbbOpenCloseBaseElement } from '../core/base-elements.js';
|
|
4
|
-
import { SbbLanguageController } from '../core/controllers.js';
|
|
4
|
+
import { SbbInertController, SbbLanguageController } from '../core/controllers.js';
|
|
5
5
|
import { SbbScrollHandler } from '../core/dom.js';
|
|
6
6
|
import { EventEmitter } from '../core/eventing.js';
|
|
7
7
|
import { SbbOverlayCloseEventDetails } from '../core/interfaces.js';
|
|
@@ -23,6 +23,7 @@ export declare abstract class SbbOverlayBaseElement extends SbbOverlayBaseElemen
|
|
|
23
23
|
protected ariaLiveRefToggle: boolean;
|
|
24
24
|
protected ariaLiveRef: SbbScreenReaderOnlyElement;
|
|
25
25
|
protected language: SbbLanguageController;
|
|
26
|
+
protected inertController: SbbInertController;
|
|
26
27
|
protected abstract onOverlayAnimationEnd(event: AnimationEvent): void;
|
|
27
28
|
protected abstract setOverlayFocus(): void;
|
|
28
29
|
protected abstract closeAttribute: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAAsB,qBAAsB,SAAQ,0BAAyC;IAC3F,kHAAkH;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,eAAe,qBAAgC;IAEzD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAE1C,4BAA4B;IACrB,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG;IAmBrC,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAS5C,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAkBzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWpD,SAAS,CAAC,kCAAkC,IAAI,IAAI;IAKpD,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoBzD,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAI1C,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAStD"}
|
package/overlay/overlay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAS1D,OAAO,EAAe,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAC1D,OAAuB,MAAM,EAAE,cAAc,CAAS;IAGtD,gBAAgC,MAAM;;;;;;MAM3B;IAEX;;;OAGG;IACgD,QAAQ,UAAS;IAEpE,4DAA4D;IACE,UAAU,UAAS;IAEjF,wEAAwE;IACX,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd,uEAAuE;IACX,sBAAsB,EAC9E,MAAM,GACN,SAAS,CAAC;IAEd,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuB;IAEvD,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,sBAAsB,CAA4B;IAE1D,2BAA2B;IACpB,IAAI,IAAI,IAAI;IAyBnB,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAgC5D,SAAS,CAAC,eAAe,IAAI,IAAI;cAUd,MAAM,IAAI,cAAc;CAyD5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
|