@sbb-esta/lyne-elements 2.0.2 → 2.1.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/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +6 -6
- package/alert/alert.js +8 -8
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button.js +4 -4
- package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +10 -10
- package/autocomplete-grid/autocomplete-grid-row.js +4 -4
- package/autocomplete.js +92 -89
- package/breadcrumb/breadcrumb-group.js +4 -4
- package/button/accent-button-link.js +9 -9
- package/button/accent-button-static.js +6 -6
- package/button/accent-button.js +6 -6
- package/button/button-link.js +7 -7
- package/button/button-static.js +7 -7
- package/button/button.js +8 -8
- package/button/common.js +1 -1
- package/button/mini-button-group.js +8 -8
- package/button/secondary-button-link.js +7 -7
- package/button/secondary-button-static.js +7 -7
- package/button/secondary-button.js +3 -3
- package/button/transparent-button-link.js +6 -6
- package/button/transparent-button-static.js +5 -5
- package/button/transparent-button.js +6 -6
- package/card/card-badge.js +9 -9
- package/card/card-button.js +5 -5
- package/card/card-link.js +7 -7
- package/checkbox/checkbox-panel.js +16 -16
- package/checkbox/checkbox.js +15 -15
- package/checkbox/common.js +3 -3
- package/clock.js +8 -8
- package/container/container/container.d.ts +1 -1
- package/container/container/container.d.ts.map +1 -1
- package/container/container.js +21 -21
- package/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +4 -4
- package/core/base-elements.js +8 -8
- package/core/controllers.js +4 -4
- package/core/datetime/date-adapter.d.ts +1 -1
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime.js +6 -6
- package/core/dom/scroll.d.ts +1 -1
- package/core/dom/scroll.d.ts.map +1 -1
- package/core/dom.js +39 -39
- package/core/eventing.js +4 -4
- package/core/mixins/form-associated-mixin.d.ts +2 -4
- package/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
- package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/core/mixins.js +276 -276
- package/core/styles/core.scss +21 -2
- package/core/testing.js +14 -14
- package/core.css +18 -2
- package/custom-elements.json +528 -554
- package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
- package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
- package/datepicker/common/datepicker-button.d.ts +17 -9
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.d.ts +1 -0
- package/datepicker/common.d.ts.map +1 -1
- package/datepicker/common.js +130 -92
- package/datepicker/datepicker/datepicker.d.ts +19 -4
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +108 -112
- package/datepicker/datepicker.js +95 -80
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
- package/development/autocomplete.js +24 -8
- package/development/button/common.js +4 -2
- package/development/calendar.js +1 -1
- package/development/container/container/container.d.ts +1 -1
- package/development/container/container/container.d.ts.map +1 -1
- package/development/container/container.js +17 -1
- package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
- package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +9 -1
- package/development/core/datetime/date-adapter.d.ts +1 -1
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/native-date-adapter.d.ts +1 -1
- package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/development/core/datetime.js +1 -1
- package/development/core/dom/scroll.d.ts +1 -1
- package/development/core/dom/scroll.d.ts.map +1 -1
- package/development/core/dom.js +4 -4
- package/development/core/mixins/form-associated-mixin.d.ts +2 -4
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +45 -49
- package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
- package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
- package/development/datepicker/common/datepicker-button.d.ts +17 -9
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.d.ts +1 -0
- package/development/datepicker/common.d.ts.map +1 -1
- package/development/datepicker/common.js +139 -90
- package/development/datepicker/datepicker/datepicker.d.ts +19 -4
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +65 -69
- package/development/datepicker/datepicker.js +54 -36
- package/development/dialog/dialog/dialog.d.ts +2 -0
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog.js +37 -11
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +35 -12
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation.js +15 -8
- package/development/option/option/option-base-element.d.ts +3 -2
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +15 -8
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +29 -13
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +16 -13
- package/development/radio-button/common/radio-button-common.d.ts +0 -2
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common.js +2 -18
- package/development/radio-button/radio-button-group.js +2 -2
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +17 -7
- package/development/select/select.d.ts +11 -0
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +60 -9
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +14 -8
- package/development/toggle/toggle.js +1 -1
- package/development/train/train-wagon.js +1 -1
- package/dialog/dialog/dialog.d.ts +2 -0
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-content.js +3 -3
- package/dialog/dialog-title.js +8 -8
- package/dialog/dialog.js +59 -49
- package/divider.js +12 -12
- package/file-selector/file-selector-dropzone.js +5 -5
- package/file-selector/file-selector.js +6 -6
- package/flip-card/flip-card-details.js +4 -4
- package/flip-card/flip-card-summary.js +9 -9
- package/header/header-button.js +5 -5
- package/header/header-link.js +5 -5
- package/icon.js +36 -36
- package/link/block-link-button.js +4 -4
- package/link/block-link-static.js +9 -9
- package/link/block-link.js +4 -4
- package/link/common.js +16 -16
- package/link/link-button.js +7 -7
- package/link/link-static.js +7 -7
- package/link/link.js +4 -4
- package/link-list/common.js +12 -12
- package/loading-indicator-circle.js +11 -11
- package/map-container.js +4 -4
- package/menu/common.js +7 -7
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button.js +8 -8
- package/menu/menu-link.js +6 -6
- package/menu/menu.js +64 -42
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-button.js +4 -4
- package/navigation/navigation-link.js +7 -7
- package/navigation/navigation-list.js +4 -4
- package/navigation/navigation-marker.js +3 -3
- package/navigation/navigation.js +21 -20
- package/notification.js +17 -17
- package/option/optgroup.js +11 -11
- package/option/option/option-base-element.d.ts +3 -2
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +113 -101
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +87 -84
- package/package.json +1 -1
- package/paginator/common.js +6 -6
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +73 -73
- package/radio-button/common/radio-button-common.d.ts +0 -2
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common.js +13 -18
- package/radio-button/radio-button-group.js +1 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +40 -38
- package/screen-reader-only.js +5 -5
- package/select/select.d.ts +11 -0
- package/select/select.d.ts.map +1 -1
- package/select.js +111 -83
- package/slider.js +8 -8
- package/standard-theme.css +18 -2
- package/status.js +3 -3
- package/stepper/step-label.js +4 -4
- package/table/table-wrapper.js +4 -4
- package/tabs/tab-group.js +24 -24
- package/tabs/tab.js +3 -3
- package/tag/tag-group.js +7 -7
- package/teaser-product/common.js +5 -5
- package/teaser-product/teaser-product-static.js +2 -2
- package/timetable-occupancy-icon.js +3 -3
- package/timetable-occupancy.js +6 -6
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +58 -54
- package/toggle/toggle-option.js +11 -11
- package/toggle-check.js +5 -5
- package/train/train.js +28 -28
package/popover/popover.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
var
|
|
1
|
+
var W = (s) => {
|
|
2
2
|
throw TypeError(s);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var p = (s, i, r) => (
|
|
6
|
-
import { __runInitializers as l, __esDecorate as
|
|
7
|
-
import { css as
|
|
8
|
-
import { customElement as
|
|
9
|
-
import { ref as
|
|
10
|
-
import { SbbFocusHandler as
|
|
11
|
-
import { SbbOpenCloseBaseElement as
|
|
12
|
-
import { SbbMediaQueryPointerCoarse as
|
|
13
|
-
import { forceType as
|
|
14
|
-
import { isZeroAnimationDuration as
|
|
15
|
-
import { EventEmitter as
|
|
16
|
-
import { i18nClosePopover as
|
|
17
|
-
import { SbbHydrationMixin as
|
|
18
|
-
import { isEventOnElement as
|
|
4
|
+
var j = (s, i, r) => i.has(s) || W("Cannot " + r);
|
|
5
|
+
var p = (s, i, r) => (j(s, i, "read from private field"), r ? r.call(s) : i.get(s)), h = (s, i, r) => i.has(s) ? W("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(s) : i.set(s, r), n = (s, i, r, b) => (j(s, i, "write to private field"), b ? b.call(s, r) : i.set(s, r), r);
|
|
6
|
+
import { __runInitializers as l, __esDecorate as c } from "tslib";
|
|
7
|
+
import { css as G, isServer as X, html as K, nothing as J } from "lit";
|
|
8
|
+
import { customElement as ee, property as y } from "lit/decorators.js";
|
|
9
|
+
import { ref as te } from "lit/directives/ref.js";
|
|
10
|
+
import { SbbFocusHandler as oe, IS_FOCUSABLE_QUERY as se, setModalityOnNextFocus as E, getFirstFocusableElement as ie } from "../core/a11y.js";
|
|
11
|
+
import { SbbOpenCloseBaseElement as re } from "../core/base-elements.js";
|
|
12
|
+
import { SbbMediaQueryPointerCoarse as ae, SbbLanguageController as ne } from "../core/controllers.js";
|
|
13
|
+
import { hostAttributes as le, forceType as w } from "../core/decorators.js";
|
|
14
|
+
import { isZeroAnimationDuration as be, findReferencedElement as pe } from "../core/dom.js";
|
|
15
|
+
import { EventEmitter as Q, composedPathHasAttribute as he } from "../core/eventing.js";
|
|
16
|
+
import { i18nClosePopover as ce } from "../core/i18n.js";
|
|
17
|
+
import { SbbHydrationMixin as de } from "../core/mixins.js";
|
|
18
|
+
import { isEventOnElement as V, removeAriaOverlayTriggerAttributes as ve, setAriaOverlayTriggerAttributes as ue, getElementPosition as ge } from "../core/overlay.js";
|
|
19
19
|
import "../button/secondary-button.js";
|
|
20
|
-
const
|
|
21
|
-
let
|
|
22
|
-
const
|
|
23
|
-
let
|
|
24
|
-
var d, v, u, g, _,
|
|
25
|
-
let s = [
|
|
26
|
-
var
|
|
20
|
+
const _e = G`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-position: absolute;--sbb-popover-position-x: 0;--sbb-popover-position-y: 0;--sbb-popover-arrow-size: var(--sbb-spacing-fixed-4x);--sbb-popover-arrow-position-x: 0;--sbb-popover-max-width: calc(100% - var(--sbb-spacing-fixed-2x));--sbb-popover-inset: 0 auto auto 0;--sbb-popover-border-radius: var(--sbb-border-radius-8x);--sbb-popover-padding: var(--sbb-spacing-fixed-4x);--sbb-popover-background: var(--sbb-color-white);--sbb-popover-color: var(--sbb-color-charcoal);--sbb-popover-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-popover-animation-easing: ease-out;--sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:none}:host([data-state]:not([data-state=closed])){display:block;--sbb-popover-inset: 0}:host([data-position=above]){--sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}.sbb-popover:after,.sbb-popover__content:before{content:"";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--sbb-popover-arrow-position-x);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index));color:var(--sbb-popover-color)}.sbb-popover{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);display:none;position:var(--sbb-popover-position);pointer-events:all;top:var(--sbb-popover-position-y);bottom:unset;left:var(--sbb-popover-position-x);right:unset;border:none;border-radius:var(--sbb-popover-border-radius);padding:0;max-width:var(--sbb-popover-max-width);width:max-content;background-color:var(--sbb-popover-background);outline:none}.sbb-popover:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}:host([data-state]:not([data-state=closed])) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host([data-state][data-state=closing]) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{z-index:-1;box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}@media (forced-colors: active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host([data-position=above]) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media (forced-colors: active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:transparent}:host([data-position=below]) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host([data-position=above]) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);overflow:hidden;flex-direction:row-reverse}:host([data-position=above]) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@keyframes open{0%{opacity:0;transform:var(--sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-popover-transform)}}`, fe = 16, me = 32;
|
|
21
|
+
let ye = 0;
|
|
22
|
+
const T = /* @__PURE__ */ new Set(), we = X ? !1 : matchMedia(ae).matches;
|
|
23
|
+
let He = (() => {
|
|
24
|
+
var d, v, u, g, _, f, a;
|
|
25
|
+
let s = [ee("sbb-popover"), le({ popover: "manual" })], i, r = [], b, k = de(re), L, D = [], S = [], P, z = [], O = [], A, B = [], F = [], M, I = [], H = [], R, $ = [], N = [], U, Y = [], Z = [];
|
|
26
|
+
var C = (a = class extends k {
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
n(this, d, l(this,
|
|
36
|
-
this._isPointerDownEventOnPopover =
|
|
29
|
+
h(this, d);
|
|
30
|
+
h(this, v);
|
|
31
|
+
h(this, u);
|
|
32
|
+
h(this, g);
|
|
33
|
+
h(this, _);
|
|
34
|
+
h(this, f);
|
|
35
|
+
n(this, d, l(this, D, null)), n(this, v, (l(this, S), l(this, z, !1))), n(this, u, (l(this, O), l(this, B, !1))), n(this, g, (l(this, F), l(this, I, 0))), n(this, _, (l(this, H), l(this, $, 0))), n(this, f, (l(this, N), l(this, Y, ""))), this.willClose = (l(this, Z), new Q(this, C.events.willClose, { cancelable: !0 })), this.didClose = new Q(this, C.events.didClose, { cancelable: !0 }), this._skipCloseFocus = !1, this._focusHandler = new oe(), this._hoverTrigger = !1, this._language = new ne(this), this._pointerDownListener = (e) => {
|
|
36
|
+
this._isPointerDownEventOnPopover = V(this._overlay, e);
|
|
37
37
|
}, this._closeOnBackdropClick = (e) => {
|
|
38
|
-
!this._isPointerDownEventOnPopover && !
|
|
38
|
+
!this._isPointerDownEventOnPopover && !V(this._overlay, e) && (this._nextFocusedElement = e.composedPath().filter((t) => t instanceof window.HTMLElement).find((t) => t.matches(se)), clearTimeout(this._closeTimeout), this.close());
|
|
39
39
|
}, this._onTriggerMouseEnter = () => {
|
|
40
40
|
this.state === "closed" || this.state === "closing" ? this._openTimeout = setTimeout(() => this.open(), this.openDelay) : clearTimeout(this._closeTimeout);
|
|
41
41
|
}, this._onTriggerMouseLeave = () => {
|
|
@@ -86,20 +86,20 @@ let Me = (() => {
|
|
|
86
86
|
}
|
|
87
87
|
/** This will be forwarded as aria-label to the close button element. */
|
|
88
88
|
get accessibilityCloseLabel() {
|
|
89
|
-
return p(this,
|
|
89
|
+
return p(this, f);
|
|
90
90
|
}
|
|
91
91
|
set accessibilityCloseLabel(e) {
|
|
92
|
-
n(this,
|
|
92
|
+
n(this, f, e);
|
|
93
93
|
}
|
|
94
94
|
/** Opens the popover on trigger click. */
|
|
95
95
|
open() {
|
|
96
|
-
var e;
|
|
96
|
+
var e, t;
|
|
97
97
|
if (!(this.state !== "closed" && this.state !== "closing" || !this._overlay) && this.willOpen.emit()) {
|
|
98
|
-
for (const
|
|
99
|
-
const
|
|
100
|
-
|
|
98
|
+
for (const o of Array.from(T)) {
|
|
99
|
+
const m = o.getAttribute("data-state");
|
|
100
|
+
m && (m === "opened" || m === "opening") && o.close();
|
|
101
101
|
}
|
|
102
|
-
this.state = "opening", this.inert = !0, this._setPopoverPosition(), (
|
|
102
|
+
(e = this.showPopover) == null || e.call(this), this.state = "opening", this.inert = !0, this._setPopoverPosition(), (t = this._triggerElement) == null || t.setAttribute("aria-expanded", "true"), this._nextFocusedElement = void 0, this._skipCloseFocus = !1, this._isZeroAnimationDuration() && this._handleOpening();
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
/** Closes the popover. */
|
|
@@ -108,15 +108,15 @@ let Me = (() => {
|
|
|
108
108
|
this.state !== "opened" && this.state !== "opening" || (this._popoverCloseElement = e, this.willClose.emit({ closeTarget: e }) && (this.state = "closing", this.inert = !0, (t = this._triggerElement) == null || t.setAttribute("aria-expanded", "false"), this._isZeroAnimationDuration() && this._handleClosing()));
|
|
109
109
|
}
|
|
110
110
|
_isZeroAnimationDuration() {
|
|
111
|
-
return
|
|
111
|
+
return be(this, "--sbb-popover-animation-duration");
|
|
112
112
|
}
|
|
113
113
|
_handleClosing() {
|
|
114
|
-
var e, t, o,
|
|
115
|
-
if (this.state = "closed", (
|
|
116
|
-
const
|
|
117
|
-
x
|
|
114
|
+
var e, t, o, m, q;
|
|
115
|
+
if (this.state = "closed", (e = this.hidePopover) == null || e.call(this), (o = (t = this._overlay) == null ? void 0 : t.firstElementChild) == null || o.scrollTo(0, 0), (m = this._overlay) == null || m.removeAttribute("tabindex"), !this._skipCloseFocus) {
|
|
116
|
+
const x = this._nextFocusedElement || this._triggerElement;
|
|
117
|
+
E(x), x == null || x.focus();
|
|
118
118
|
}
|
|
119
|
-
this.didClose.emit({ closeTarget: this._popoverCloseElement }), (
|
|
119
|
+
this.didClose.emit({ closeTarget: this._popoverCloseElement }), (q = this._openStateController) == null || q.abort(), this._focusHandler.disconnect();
|
|
120
120
|
}
|
|
121
121
|
_handleOpening() {
|
|
122
122
|
this.state = "opened", this.inert = !1, this._attachWindowEvents(), this._setPopoverFocus(), this._focusHandler.trap(this, {
|
|
@@ -131,7 +131,7 @@ let Me = (() => {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
connectedCallback() {
|
|
134
|
-
super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++
|
|
134
|
+
super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++ye}`), this._configure(), this.state = "closed", T.add(this);
|
|
135
135
|
}
|
|
136
136
|
willUpdate(e) {
|
|
137
137
|
var t, o;
|
|
@@ -142,20 +142,20 @@ let Me = (() => {
|
|
|
142
142
|
}
|
|
143
143
|
disconnectedCallback() {
|
|
144
144
|
var e, t;
|
|
145
|
-
super.disconnectedCallback(), (e = this._popoverController) == null || e.abort(), (t = this._openStateController) == null || t.abort(), this._focusHandler.disconnect(),
|
|
145
|
+
super.disconnectedCallback(), (e = this._popoverController) == null || e.abort(), (t = this._openStateController) == null || t.abort(), this._focusHandler.disconnect(), T.delete(this);
|
|
146
146
|
}
|
|
147
147
|
// Check if the trigger is valid and attach click event listeners.
|
|
148
148
|
_configure() {
|
|
149
149
|
var t;
|
|
150
|
-
if (
|
|
150
|
+
if (X)
|
|
151
151
|
return;
|
|
152
152
|
if (this.hydrationRequired) {
|
|
153
153
|
this.hydrationComplete.then(() => this._configure());
|
|
154
154
|
return;
|
|
155
155
|
}
|
|
156
|
-
if (
|
|
156
|
+
if (ve(this._triggerElement), !this.trigger || (this._triggerElement = pe(this.trigger), !this._triggerElement))
|
|
157
157
|
return;
|
|
158
|
-
|
|
158
|
+
ue(this._triggerElement, "dialog", this.id, this.state), this._hoverTrigger = this.hoverTrigger && !we, (t = this._popoverController) == null || t.abort();
|
|
159
159
|
const { signal: e } = this._popoverController = new AbortController();
|
|
160
160
|
this._hoverTrigger ? (this._triggerElement.addEventListener("mouseenter", this._onTriggerMouseEnter, { signal: e }), this._triggerElement.addEventListener("mouseleave", this._onTriggerMouseLeave, { signal: e }), this._triggerElement.addEventListener("keydown", (o) => {
|
|
161
161
|
(o.code === "Space" || o.code === "Enter") && this.open();
|
|
@@ -183,7 +183,7 @@ let Me = (() => {
|
|
|
183
183
|
}
|
|
184
184
|
// Close the popover on click of any element that has the 'sbb-popover-close' attribute.
|
|
185
185
|
_closeOnSbbPopoverCloseClick(e) {
|
|
186
|
-
const t =
|
|
186
|
+
const t = he(e, "sbb-popover-close", this);
|
|
187
187
|
t && !t.hasAttribute("disabled") && (clearTimeout(this._closeTimeout), this.close(t));
|
|
188
188
|
}
|
|
189
189
|
// Set popover position (x, y) to '0' once the popover is closed and the transition ended to prevent the
|
|
@@ -195,8 +195,8 @@ let Me = (() => {
|
|
|
195
195
|
}
|
|
196
196
|
// Set focus on the first focusable element.
|
|
197
197
|
_setPopoverFocus() {
|
|
198
|
-
const e = this.shadowRoot.querySelector("[sbb-popover-close]") ||
|
|
199
|
-
e ? (
|
|
198
|
+
const e = this.shadowRoot.querySelector("[sbb-popover-close]") || ie(Array.from(this.children).filter((t) => t instanceof window.HTMLElement));
|
|
199
|
+
e ? (E(e), e.focus()) : (this._overlay.setAttribute("tabindex", "0"), E(this._overlay), this._overlay.focus(), this._overlay.addEventListener("blur", () => {
|
|
200
200
|
setTimeout(() => {
|
|
201
201
|
var t;
|
|
202
202
|
document.visibilityState !== "hidden" && ((t = this._overlay) == null || t.removeAttribute("tabindex"), (this.state === "opened" || this.state === "opening") && (this._skipCloseFocus = !0), this.close());
|
|
@@ -208,9 +208,9 @@ let Me = (() => {
|
|
|
208
208
|
_setPopoverPosition() {
|
|
209
209
|
if (!this._overlay || !this._triggerElement)
|
|
210
210
|
return;
|
|
211
|
-
const e =
|
|
212
|
-
verticalOffset:
|
|
213
|
-
horizontalOffset:
|
|
211
|
+
const e = ge(this._overlay, this._triggerElement, this.shadowRoot.querySelector(".sbb-popover__container"), {
|
|
212
|
+
verticalOffset: fe,
|
|
213
|
+
horizontalOffset: me,
|
|
214
214
|
centered: !0,
|
|
215
215
|
responsiveHeight: !0
|
|
216
216
|
});
|
|
@@ -219,10 +219,10 @@ let Me = (() => {
|
|
|
219
219
|
this.style.setProperty("--sbb-popover-position-x", `${e.left}px`), this.style.setProperty("--sbb-popover-position-y", `${e.top}px`), this.style.setProperty("--sbb-popover-arrow-position-x", `${t}px`);
|
|
220
220
|
}
|
|
221
221
|
render() {
|
|
222
|
-
const e =
|
|
222
|
+
const e = K`
|
|
223
223
|
<span class="sbb-popover__close">
|
|
224
224
|
<sbb-secondary-button
|
|
225
|
-
aria-label=${this.accessibilityCloseLabel ||
|
|
225
|
+
aria-label=${this.accessibilityCloseLabel || ce[this._language.current]}
|
|
226
226
|
size="s"
|
|
227
227
|
type="button"
|
|
228
228
|
icon-name="cross-small"
|
|
@@ -230,19 +230,19 @@ let Me = (() => {
|
|
|
230
230
|
></sbb-secondary-button>
|
|
231
231
|
</span>
|
|
232
232
|
`;
|
|
233
|
-
return
|
|
233
|
+
return K`
|
|
234
234
|
<div class="sbb-popover__container">
|
|
235
235
|
<div
|
|
236
236
|
@animationend=${this._onPopoverAnimationEnd}
|
|
237
237
|
class="sbb-popover"
|
|
238
238
|
role="tooltip"
|
|
239
|
-
${
|
|
239
|
+
${te((t) => this._overlay = t)}
|
|
240
240
|
>
|
|
241
241
|
<div
|
|
242
242
|
@click=${(t) => this._closeOnSbbPopoverCloseClick(t)}
|
|
243
243
|
class="sbb-popover__content"
|
|
244
244
|
>
|
|
245
|
-
${!this.hideCloseButton && !this._hoverTrigger ? e :
|
|
245
|
+
${!this.hideCloseButton && !this._hoverTrigger ? e : J}
|
|
246
246
|
<span>
|
|
247
247
|
<slot>No content</slot>
|
|
248
248
|
</span>
|
|
@@ -251,24 +251,24 @@ let Me = (() => {
|
|
|
251
251
|
</div>
|
|
252
252
|
`;
|
|
253
253
|
}
|
|
254
|
-
}, d = new WeakMap(), v = new WeakMap(), u = new WeakMap(), g = new WeakMap(), _ = new WeakMap(),
|
|
255
|
-
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(
|
|
256
|
-
|
|
254
|
+
}, d = new WeakMap(), v = new WeakMap(), u = new WeakMap(), g = new WeakMap(), _ = new WeakMap(), f = new WeakMap(), b = a, (() => {
|
|
255
|
+
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(k[Symbol.metadata] ?? null) : void 0;
|
|
256
|
+
L = [y()], P = [w(), y({ attribute: "hide-close-button", type: Boolean })], A = [w(), y({ attribute: "hover-trigger", type: Boolean })], M = [w(), y({ attribute: "open-delay", type: Number })], R = [w(), y({ attribute: "close-delay", type: Number })], U = [w(), y({ attribute: "accessibility-close-label" })], c(a, null, L, { kind: "accessor", name: "trigger", static: !1, private: !1, access: { has: (t) => "trigger" in t, get: (t) => t.trigger, set: (t, o) => {
|
|
257
257
|
t.trigger = o;
|
|
258
|
-
} }, metadata: e },
|
|
258
|
+
} }, metadata: e }, D, S), c(a, null, P, { kind: "accessor", name: "hideCloseButton", static: !1, private: !1, access: { has: (t) => "hideCloseButton" in t, get: (t) => t.hideCloseButton, set: (t, o) => {
|
|
259
259
|
t.hideCloseButton = o;
|
|
260
|
-
} }, metadata: e }, z, O),
|
|
260
|
+
} }, metadata: e }, z, O), c(a, null, A, { kind: "accessor", name: "hoverTrigger", static: !1, private: !1, access: { has: (t) => "hoverTrigger" in t, get: (t) => t.hoverTrigger, set: (t, o) => {
|
|
261
261
|
t.hoverTrigger = o;
|
|
262
|
-
} }, metadata: e },
|
|
262
|
+
} }, metadata: e }, B, F), c(a, null, M, { kind: "accessor", name: "openDelay", static: !1, private: !1, access: { has: (t) => "openDelay" in t, get: (t) => t.openDelay, set: (t, o) => {
|
|
263
263
|
t.openDelay = o;
|
|
264
|
-
} }, metadata: e },
|
|
264
|
+
} }, metadata: e }, I, H), c(a, null, R, { kind: "accessor", name: "closeDelay", static: !1, private: !1, access: { has: (t) => "closeDelay" in t, get: (t) => t.closeDelay, set: (t, o) => {
|
|
265
265
|
t.closeDelay = o;
|
|
266
|
-
} }, metadata: e },
|
|
266
|
+
} }, metadata: e }, $, N), c(a, null, U, { kind: "accessor", name: "accessibilityCloseLabel", static: !1, private: !1, access: { has: (t) => "accessibilityCloseLabel" in t, get: (t) => t.accessibilityCloseLabel, set: (t, o) => {
|
|
267
267
|
t.accessibilityCloseLabel = o;
|
|
268
|
-
} }, metadata: e },
|
|
269
|
-
})(), a.styles =
|
|
270
|
-
return
|
|
268
|
+
} }, metadata: e }, Y, Z), c(null, i = { value: b }, s, { kind: "class", name: b.name, metadata: e }, null, r), C = b = i.value, e && Object.defineProperty(b, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
|
|
269
|
+
})(), a.styles = _e, l(b, r), a);
|
|
270
|
+
return C = b;
|
|
271
271
|
})();
|
|
272
272
|
export {
|
|
273
|
-
|
|
273
|
+
He as SbbPopoverElement
|
|
274
274
|
};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
import { SbbCheckedStateChange, SbbDisabledStateChange, SbbStateChange } from '../../core/interfaces.js';
|
|
3
2
|
import { AbstractConstructor, Constructor, SbbFormAssociatedRadioButtonMixinType } from '../../core/mixins.js';
|
|
4
3
|
import { SbbRadioButtonGroupElement } from '../radio-button-group.js';
|
|
5
4
|
export type SbbRadioButtonSize = 'xs' | 's' | 'm';
|
|
6
|
-
export type SbbRadioButtonStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
|
|
7
5
|
export declare class SbbRadioButtonCommonElementMixinType extends SbbFormAssociatedRadioButtonMixinType {
|
|
8
6
|
get allowEmptySelection(): boolean;
|
|
9
7
|
set allowEmptySelection(boolean: boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAItC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,KAAK,qCAAqC,EAC3C,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,qCAAqC;IACrG,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACxC,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IAC/C,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cACpE,CAAC,KACZ,mBAAmB,CAAC,oCAAoC,CAAC,GAAG,CA6F9D,CAAC"}
|
package/radio-button/common.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { __esDecorate as n, __runInitializers as l } from "tslib";
|
|
2
2
|
import { property as d } from "lit/decorators.js";
|
|
3
3
|
import { setModalityOnNextFocus as c } from "../core/a11y.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
const k = (s) => (() => {
|
|
4
|
+
import { SbbFormAssociatedRadioButtonMixin as u } from "../core/mixins.js";
|
|
5
|
+
import { css as h } from "lit";
|
|
6
|
+
const x = (s) => (() => {
|
|
8
7
|
var o;
|
|
9
|
-
let
|
|
10
|
-
return o = class extends
|
|
8
|
+
let i = u(s), b = [], a;
|
|
9
|
+
return o = class extends i {
|
|
11
10
|
/**
|
|
12
11
|
* Whether the radio can be deselected.
|
|
13
12
|
*/
|
|
@@ -26,7 +25,7 @@ const k = (s) => (() => {
|
|
|
26
25
|
}
|
|
27
26
|
constructor() {
|
|
28
27
|
var t, e;
|
|
29
|
-
super(), this._allowEmptySelection = (l(this, b), !1), this._group = null,
|
|
28
|
+
super(), this._allowEmptySelection = (l(this, b), !1), this._group = null, (t = this.addEventListener) == null || t.call(this, "click", (r) => this._handleClick(r)), (e = this.addEventListener) == null || e.call(this, "keydown", (r) => this._handleKeyDown(r));
|
|
30
29
|
}
|
|
31
30
|
connectedCallback() {
|
|
32
31
|
super.connectedCallback(), this._group = this.closest("sbb-radio-button-group"), ["disabled", "required", "size"].forEach((t) => this.requestUpdate(t));
|
|
@@ -38,9 +37,6 @@ const k = (s) => (() => {
|
|
|
38
37
|
select() {
|
|
39
38
|
this.disabled || this.formDisabled || (this.allowEmptySelection ? (this.checked = !this.checked, this.emitChangeEvents()) : this.checked || (this.checked = !0, this.emitChangeEvents()));
|
|
40
39
|
}
|
|
41
|
-
willUpdate(t) {
|
|
42
|
-
super.willUpdate(t), t.has("checked") && this.checked !== t.get("checked") && this._stateChange.emit({ type: "checked", checked: this.checked }), t.has("disabled") && this.disabled !== t.get("disabled") && this._stateChange.emit({ type: "disabled", disabled: this.disabled });
|
|
43
|
-
}
|
|
44
40
|
isDisabledExternally() {
|
|
45
41
|
var t;
|
|
46
42
|
return ((t = this.group) == null ? void 0 : t.disabled) ?? !1;
|
|
@@ -56,17 +52,16 @@ const k = (s) => (() => {
|
|
|
56
52
|
t.code === "Space" && (t.preventDefault(), this.select());
|
|
57
53
|
}
|
|
58
54
|
}, (() => {
|
|
59
|
-
const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(
|
|
60
|
-
a = [d({ attribute: "allow-empty-selection", type: Boolean })], n(o, null, a, { kind: "setter", name: "allowEmptySelection", static: !1, private: !1, access: { has: (e) => "allowEmptySelection" in e, set: (e,
|
|
61
|
-
e.allowEmptySelection =
|
|
55
|
+
const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(i[Symbol.metadata] ?? null) : void 0;
|
|
56
|
+
a = [d({ attribute: "allow-empty-selection", type: Boolean })], n(o, null, a, { kind: "setter", name: "allowEmptySelection", static: !1, private: !1, access: { has: (e) => "allowEmptySelection" in e, set: (e, r) => {
|
|
57
|
+
e.allowEmptySelection = r;
|
|
62
58
|
} }, metadata: t }, null, b), t && Object.defineProperty(o, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
|
|
63
59
|
})(), o.events = {
|
|
64
60
|
change: "change",
|
|
65
|
-
input: "input"
|
|
66
|
-
stateChange: "stateChange"
|
|
61
|
+
input: "input"
|
|
67
62
|
}, o;
|
|
68
|
-
})(),
|
|
63
|
+
})(), w = h`*,:before,:after{box-sizing:border-box}:host{--sbb-radio-button-label-color: var(--sbb-color-charcoal);--sbb-radio-button-background-color: var(--sbb-color-white);--sbb-radio-button-inner-circle-color: var(--sbb-color-white);--sbb-radio-button-border-width: var(--sbb-border-width-1x);--sbb-radio-button-border-style: solid;--sbb-radio-button-border-color: var(--sbb-color-smoke);--sbb-radio-button-dimension: var(--sbb-size-icon-ui-small);--sbb-radio-button-inner-circle-dimension: .625rem;--sbb-radio-button-cursor: pointer;--sbb-radio-button-background-fake-border-width: calc(var(--sbb-radio-button-dimension) / 2);--sbb-radio-button-icon-align: calc( (1em * var(--sbb-typo-line-height-body-text) - var(--sbb-radio-button-dimension)) / 2 )}@media (forced-colors: active){:host{--sbb-radio-button-background-color: Canvas !important;--sbb-radio-button-border-width: var(--sbb-border-width-2x);--sbb-radio-button-border-color: ButtonBorder}}:host([data-checked]){--sbb-radio-button-inner-circle-color: var(--sbb-color-red);--sbb-radio-button-background-fake-border-width: calc( (var(--sbb-radio-button-dimension) - var(--sbb-radio-button-inner-circle-dimension)) / 2 )}@media (forced-colors: active){:host([data-checked]){--sbb-radio-button-inner-circle-color: Highlight;--sbb-radio-button-border-color: Highlight}}:host(:disabled){--sbb-radio-button-label-color: var(--sbb-color-granite);--sbb-radio-button-background-color: var(--sbb-color-milk);--sbb-radio-button-border-style: dashed;--sbb-radio-button-inner-circle-color: var(--sbb-color-charcoal);--sbb-radio-button-cursor: default}@media (forced-colors: active){:host(:disabled){--sbb-radio-button-inner-circle-color: GrayText;--sbb-radio-button-border-color: GrayText;--sbb-radio-button-border-style: solid}}:host([size=xs]){--sbb-radio-button-dimension: 1.25rem}.sbb-screen-reader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-radio-button{display:block;cursor:var(--sbb-radio-button-cursor);-webkit-user-select:none;user-select:none;position:relative;color:var(--sbb-radio-button-label-color);-webkit-tap-highlight-color:transparent;--sbb-text-font-size: var(--sbb-font-size-text-m);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}:host([size=s]) .sbb-radio-button{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}:host([size=xs]) .sbb-radio-button{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}.sbb-radio-button__label-slot{display:flex;align-items:flex-start;overflow:hidden}.sbb-radio-button__label-slot:before,.sbb-radio-button__label-slot:after{content:"";flex-shrink:0;width:var(--sbb-radio-button-dimension);height:var(--sbb-radio-button-dimension);border-radius:50%;margin-block-start:var(--sbb-radio-button-icon-align);transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-4x));transition-timing-function:ease;transition-property:background-color,border}@media (forced-colors: active){.sbb-radio-button__label-slot:before,.sbb-radio-button__label-slot:after{transition:none}}.sbb-radio-button__label-slot:before{background:var(--sbb-radio-button-inner-circle-color);border:var(--sbb-radio-button-background-fake-border-width) solid var(--sbb-radio-button-background-color);margin-inline-end:var(--sbb-spacing-fixed-2x)}.sbb-radio-button__label-slot:after{position:absolute;border:var(--sbb-radio-button-border-width) var(--sbb-radio-button-border-style) var(--sbb-radio-button-border-color)}`;
|
|
69
64
|
export {
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
x as SbbRadioButtonCommonElementMixin,
|
|
66
|
+
w as radioButtonCommonStyle
|
|
72
67
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
import { SbbCheckedStateChange, SbbDisabledStateChange, SbbStateChange } from '../../core/interfaces.js';
|
|
2
3
|
import { SbbPanelSize } from '../../core/mixins.js';
|
|
4
|
+
export type SbbRadioButtonStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
|
|
3
5
|
declare const SbbRadioButtonPanelElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbPanelMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbRadioButtonCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof LitElement;
|
|
4
6
|
/**
|
|
5
7
|
/**
|
|
@@ -16,10 +18,10 @@ declare const SbbRadioButtonPanelElement_base: import('../../core/mixins.js').Ab
|
|
|
16
18
|
export declare class SbbRadioButtonPanelElement extends SbbRadioButtonPanelElement_base {
|
|
17
19
|
static styles: CSSResultGroup;
|
|
18
20
|
static readonly events: {
|
|
19
|
-
readonly stateChange: "stateChange";
|
|
20
21
|
readonly change: "change";
|
|
21
22
|
readonly input: "input";
|
|
22
23
|
readonly panelConnected: "panelConnected";
|
|
24
|
+
readonly stateChange: "stateChange";
|
|
23
25
|
};
|
|
24
26
|
/**
|
|
25
27
|
* Size variant, either s or m.
|
|
@@ -27,6 +29,12 @@ export declare class SbbRadioButtonPanelElement extends SbbRadioButtonPanelEleme
|
|
|
27
29
|
*/
|
|
28
30
|
accessor size: SbbPanelSize;
|
|
29
31
|
private _hasSelectionExpansionPanelElement;
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
* Internal event that emits whenever the state of the radio option
|
|
35
|
+
* in relation to the parent selection panel changes.
|
|
36
|
+
*/
|
|
37
|
+
private _stateChange;
|
|
30
38
|
connectedCallback(): void;
|
|
31
39
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
32
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-panel/radio-button-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-panel/radio-button-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAMb,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,6BAA6B,CAAC;AAErC,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;;AAEF;;;;;;;;;;;GAWG;AACH,qBAGM,0BAA2B,SAAQ,+BAExC;IACC,OAAuB,MAAM,EAAE,cAAc,CAA8C;IAG3F,gBAAuB,MAAM;;;;;MAKlB;IAEX;;;OAGG;IACH,SAEgB,IAAI,EAAE,YAAY,CAAwB;IAE1D,OAAO,CAAC,kCAAkC,CAAkB;IAE5D;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAIlB;IAEc,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAkB5E;;OAEG;cACgB,qBAAqB,IAAI,IAAI;IAShD;;OAEG;cACsB,kBAAkB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;cAQzE,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
|
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
var _ = (
|
|
2
|
-
throw TypeError(
|
|
1
|
+
var _ = (t) => {
|
|
2
|
+
throw TypeError(t);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
import { __runInitializers as b, __esDecorate as
|
|
7
|
-
import { LitElement as
|
|
8
|
-
import { customElement as
|
|
9
|
-
import { slotState as
|
|
10
|
-
import { isLean as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
var g = (t, s, i) => s.has(t) || _("Cannot " + i);
|
|
5
|
+
var y = (t, s, i) => (g(t, s, "read from private field"), i ? i.call(t) : s.get(t)), S = (t, s, i) => s.has(t) ? _("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(t) : s.set(t, i), d = (t, s, i, n) => (g(t, s, "write to private field"), n ? n.call(t, i) : s.set(t, i), i);
|
|
6
|
+
import { __runInitializers as b, __esDecorate as x } from "tslib";
|
|
7
|
+
import { LitElement as E, html as z, nothing as v } from "lit";
|
|
8
|
+
import { customElement as C, property as k } from "lit/decorators.js";
|
|
9
|
+
import { slotState as B, getOverride as R } from "../core/decorators.js";
|
|
10
|
+
import { isLean as w } from "../core/dom.js";
|
|
11
|
+
import { EventEmitter as I } from "../core/eventing.js";
|
|
12
|
+
import { SbbPanelMixin as P, SbbUpdateSchedulerMixin as D, panelCommonStyle as M } from "../core/mixins.js";
|
|
13
|
+
import { SbbRadioButtonCommonElementMixin as O, radioButtonCommonStyle as U } from "./common.js";
|
|
13
14
|
import "../screen-reader-only.js";
|
|
14
|
-
let
|
|
15
|
+
let N = (() => {
|
|
15
16
|
var o, l;
|
|
16
|
-
let
|
|
17
|
-
|
|
17
|
+
let t = [C("sbb-radio-button-panel"), B()], s, i = [], n, m = P(O(D(E))), u, h = [], p = [];
|
|
18
|
+
var r = (l = class extends m {
|
|
18
19
|
constructor() {
|
|
19
20
|
super(...arguments);
|
|
20
21
|
S(this, o);
|
|
21
|
-
|
|
22
|
+
d(this, o, b(this, h, w() ? "s" : "m")), this._hasSelectionExpansionPanelElement = (b(this, p), !1), this._stateChange = new I(this, r.events.stateChange, { bubbles: !0 });
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Size variant, either s or m.
|
|
25
26
|
* @default 'm' / 's' (lean)
|
|
26
27
|
*/
|
|
27
28
|
get size() {
|
|
28
|
-
return
|
|
29
|
+
return y(this, o);
|
|
29
30
|
}
|
|
30
|
-
set size(
|
|
31
|
-
|
|
31
|
+
set size(e) {
|
|
32
|
+
d(this, o, e);
|
|
32
33
|
}
|
|
33
34
|
connectedCallback() {
|
|
34
|
-
var
|
|
35
|
-
super.connectedCallback(), this._hasSelectionExpansionPanelElement = !!((
|
|
35
|
+
var e;
|
|
36
|
+
super.connectedCallback(), this._hasSelectionExpansionPanelElement = !!((e = this.closest) != null && e.call(this, "sbb-selection-expansion-panel"));
|
|
36
37
|
}
|
|
37
|
-
willUpdate(
|
|
38
|
-
super.willUpdate(
|
|
38
|
+
willUpdate(e) {
|
|
39
|
+
super.willUpdate(e), e.has("checked") && (this.toggleAttribute("data-checked", this.checked), this.checked !== e.get("checked") && this._stateChange.emit({ type: "checked", checked: this.checked })), e.has("disabled") && this.disabled !== e.get("disabled") && this._stateChange.emit({ type: "disabled", disabled: this.disabled });
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* As an exception, panels with an expansion-panel attached are always focusable
|
|
@@ -46,11 +47,11 @@ let G = (() => {
|
|
|
46
47
|
/**
|
|
47
48
|
* As an exception, radio-panels with an expansion-panel attached are not checked automatically when navigating by keyboard
|
|
48
49
|
*/
|
|
49
|
-
async navigateByKeyboard(
|
|
50
|
-
this._hasSelectionExpansionPanelElement ?
|
|
50
|
+
async navigateByKeyboard(e) {
|
|
51
|
+
this._hasSelectionExpansionPanelElement ? e.focus() : await super.navigateByKeyboard(e);
|
|
51
52
|
}
|
|
52
53
|
render() {
|
|
53
|
-
return
|
|
54
|
+
return z`
|
|
54
55
|
<label class="sbb-selection-panel">
|
|
55
56
|
<div class="sbb-selection-panel__badge">
|
|
56
57
|
<slot name="badge"></slot>
|
|
@@ -61,26 +62,27 @@ let G = (() => {
|
|
|
61
62
|
<slot name="suffix"></slot>
|
|
62
63
|
</span>
|
|
63
64
|
<slot name="subtext"></slot>
|
|
64
|
-
${this.expansionState ?
|
|
65
|
+
${this.expansionState ? z`<sbb-screen-reader-only>${this.expansionState}</sbb-screen-reader-only>` : v}
|
|
65
66
|
</span>
|
|
66
67
|
</label>
|
|
67
68
|
`;
|
|
68
69
|
}
|
|
69
70
|
}, o = new WeakMap(), n = l, (() => {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
var
|
|
73
|
-
return (
|
|
74
|
-
})],
|
|
75
|
-
a.size =
|
|
76
|
-
} }, metadata:
|
|
77
|
-
})(), l.styles = [
|
|
78
|
-
stateChange: "stateChange",
|
|
71
|
+
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(m[Symbol.metadata] ?? null) : void 0;
|
|
72
|
+
u = [k({ reflect: !0 }), R((a, c) => {
|
|
73
|
+
var f;
|
|
74
|
+
return (f = a.group) != null && f.size ? a.group.size === "xs" ? "s" : a.group.size : c;
|
|
75
|
+
})], x(l, null, u, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (a) => "size" in a, get: (a) => a.size, set: (a, c) => {
|
|
76
|
+
a.size = c;
|
|
77
|
+
} }, metadata: e }, h, p), x(null, s = { value: n }, t, { kind: "class", name: n.name, metadata: e }, null, i), r = n = s.value, e && Object.defineProperty(n, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
|
|
78
|
+
})(), l.styles = [U, M], l.events = {
|
|
79
79
|
change: "change",
|
|
80
80
|
input: "input",
|
|
81
|
-
panelConnected: "panelConnected"
|
|
82
|
-
|
|
81
|
+
panelConnected: "panelConnected",
|
|
82
|
+
stateChange: "stateChange"
|
|
83
|
+
}, b(n, i), l);
|
|
84
|
+
return r = n;
|
|
83
85
|
})();
|
|
84
86
|
export {
|
|
85
|
-
|
|
87
|
+
N as SbbRadioButtonPanelElement
|
|
86
88
|
};
|
package/screen-reader-only.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { __esDecorate as
|
|
1
|
+
import { __esDecorate as n, __runInitializers as o } from "tslib";
|
|
2
2
|
import { css as c, html as m, LitElement as d } from "lit";
|
|
3
3
|
import { customElement as u } from "lit/decorators.js";
|
|
4
4
|
const p = c`:host{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
|
|
5
|
-
let
|
|
5
|
+
let y = (() => {
|
|
6
6
|
var t;
|
|
7
7
|
let i = [u("sbb-screen-reader-only")], l, r = [], e, s = d;
|
|
8
8
|
return t = class extends s {
|
|
@@ -11,9 +11,9 @@ let _ = (() => {
|
|
|
11
11
|
}
|
|
12
12
|
}, e = t, (() => {
|
|
13
13
|
const a = typeof Symbol == "function" && Symbol.metadata ? Object.create(s[Symbol.metadata] ?? null) : void 0;
|
|
14
|
-
|
|
15
|
-
})(), t.styles = p,
|
|
14
|
+
n(null, l = { value: e }, i, { kind: "class", name: e.name, metadata: a }, null, r), e = l.value, a && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: a });
|
|
15
|
+
})(), t.styles = p, o(e, r), e;
|
|
16
16
|
})();
|
|
17
17
|
export {
|
|
18
|
-
|
|
18
|
+
y as SbbScreenReaderOnlyElement
|
|
19
19
|
};
|