@sbb-esta/lyne-elements 0.52.1 → 0.52.2
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.js +54 -54
- package/action-group.js +3 -3
- package/alert/alert-group.js +22 -22
- package/alert/alert.js +22 -22
- package/autocomplete.js +126 -126
- package/breadcrumb/breadcrumb-group.js +60 -60
- package/breadcrumb/breadcrumb.js +17 -17
- package/calendar.js +423 -423
- package/card/card-badge.js +17 -17
- package/card/card.js +2 -2
- package/card/common.js +30 -30
- package/checkbox/checkbox-group.js +17 -17
- package/checkbox/checkbox.js +34 -34
- package/clock.js +83 -83
- package/container/sticky-bar.js +16 -16
- package/core/a11y.js +91 -91
- package/core/base-elements.js +86 -86
- package/core/controllers.js +40 -40
- package/core/datetime.js +32 -32
- package/core/dom.js +26 -26
- package/core/eventing.js +33 -33
- package/core/mixins.js +122 -122
- package/core/testing.js +29 -29
- package/datepicker/common.js +55 -55
- package/datepicker/datepicker-toggle.js +94 -94
- package/datepicker/datepicker.js +144 -144
- package/dialog/dialog-title.js +20 -20
- package/dialog/dialog.js +66 -66
- package/expansion-panel/expansion-panel-header.js +20 -20
- package/expansion-panel/expansion-panel.js +60 -60
- package/file-selector.js +91 -91
- package/form-field/form-field-clear.js +12 -12
- package/form-field/form-field.js +111 -111
- package/header/header.js +53 -53
- package/icon.js +107 -107
- package/image.js +87 -87
- package/journey-header.js +29 -29
- package/map-container.js +23 -23
- package/menu/menu.js +91 -91
- package/navigation/common.js +16 -16
- package/navigation/navigation-marker.js +34 -34
- package/navigation/navigation-section.js +83 -83
- package/navigation/navigation.js +87 -87
- package/notification.js +52 -52
- package/option/optgroup.js +45 -45
- package/option/option.js +108 -108
- package/overlay.js +5 -5
- package/package.json +1 -1
- package/popover/popover.js +110 -110
- package/radio-button/radio-button-group.js +93 -93
- package/radio-button/radio-button.js +84 -84
- package/select.js +178 -178
- package/selection-panel.js +44 -44
- package/slider.js +58 -58
- package/status.js +6 -6
- package/stepper/step-label.js +19 -19
- package/stepper/step.js +31 -31
- package/stepper/stepper.js +46 -46
- package/tabs/tab-group.js +67 -67
- package/tag/tag-group.js +8 -8
- package/tag/tag.js +27 -27
- package/teaser-paid.js +12 -12
- package/time-input.js +73 -73
- package/timetable-occupancy-icon.js +26 -26
- package/timetable-occupancy.js +9 -9
- package/toast.js +38 -38
- package/toggle/toggle-option.js +33 -33
- package/toggle/toggle.js +46 -46
- package/train/train-formation.js +36 -36
- package/train/train-wagon.js +30 -30
- package/train/train.js +13 -13
package/selection-panel.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as d, state as
|
|
3
|
-
import { SbbConnectedAbortController as
|
|
4
|
-
import { EventEmitter as
|
|
1
|
+
import { css as p, LitElement as c, html as h } from "lit";
|
|
2
|
+
import { property as d, state as u, customElement as v } from "lit/decorators.js";
|
|
3
|
+
import { SbbConnectedAbortController as m, SbbSlotStateController as _ } from "./core/controllers.js";
|
|
4
|
+
import { EventEmitter as o } from "./core/eventing.js";
|
|
5
5
|
import "./divider.js";
|
|
6
|
-
const
|
|
7
|
-
var
|
|
8
|
-
for (var i =
|
|
9
|
-
(b = e[l]) && (i = (
|
|
10
|
-
return
|
|
6
|
+
const g = p`*,:before,:after{box-sizing:border-box}:host{--sbb-selection-panel-cursor: pointer;--sbb-selection-panel-background: var(--sbb-color-white);--sbb-selection-panel-border-color: var(--sbb-color-cloud);--sbb-selection-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-panel-border-width: var(--sbb-border-width-1x);--sbb-selection-panel-input-pointer-events: all;--sbb-selection-panel-input-padding: var(--sbb-spacing-responsive-xs) var(--sbb-spacing-responsive-xxs);--sbb-selection-panel-content-visibility: hidden;--sbb-selection-panel-content-padding-inline: var(--sbb-spacing-responsive-xxs);--sbb-selection-panel-border-radius: var(--sbb-border-radius-4x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:contents}:host([color=milk]){--sbb-selection-panel-background: var(--sbb-color-milk)}:host([data-checked]:not([data-disabled])){--sbb-selection-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-panel-border-width: var(--sbb-border-width-2x)}:host([data-slot-names~=content][data-disabled]){--sbb-selection-panel-input-pointer-events: none;--sbb-selection-panel-border-color: var(--sbb-color-cloud)}:host([data-disabled]){--sbb-selection-panel-cursor: default}:host([borderless]:not([data-checked])){--sbb-selection-panel-border-color: transparent}:host([data-resize-disable-animation]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}:host([data-slot-names~=content]:where([data-state=opening],[data-state=opened])){--sbb-selection-panel-input-padding: var(--sbb-spacing-responsive-xs) var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xxs);--sbb-selection-panel-content-visibility: visible;--sbb-selection-panel-content-grid-template-rows: 1fr;--sbb-selection-panel-content-opacity: 1;--sbb-selection-panel-content-padding-block-end: var(--sbb-spacing-responsive-xs);--sbb-selection-panel-content-transition: grid-template-rows var(--sbb-selection-panel-animation-duration) var(--sbb-animation-easing), opacity var(--sbb-selection-panel-animation-duration) var(--sbb-selection-panel-animation-duration) var(--sbb-animation-easing)}.sbb-selection-panel{flex:auto;position:relative;width:100%;background-color:var(--sbb-selection-panel-background);border-radius:var(--sbb-selection-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-panel-border-width) var(--sbb-selection-panel-border-color);transition-duration:var(--sbb-selection-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-panel-border-width) solid var(--sbb-selection-panel-border-color);border-radius:var(--sbb-selection-panel-border-radius)}}.sbb-selection-panel__badge{-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--sbb-selection-panel-border-radius);overflow:hidden}.sbb-selection-panel__content--wrapper{display:grid;visibility:var(--sbb-selection-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-selection-panel__content--wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-selection-panel__content--wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-selection-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-selection-panel-animation-duration)}:host([data-state=closing]) .sbb-selection-panel__content--wrapper{animation-name:close;animation-duration:var(--sbb-selection-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}:host(:not([data-slot-names~=content])) .sbb-selection-panel__content--wrapper{display:none}.sbb-selection-panel__content{overflow:hidden;padding-inline:var(--sbb-selection-panel-content-padding-inline);padding-block-end:var(--sbb-selection-panel-content-padding-block-end);transition:padding var(--sbb-selection-panel-animation-duration) var(--sbb-animation-easing)}sbb-divider{margin-block-end:var(--sbb-spacing-responsive-xxs)}::slotted(sbb-radio-button),::slotted(sbb-checkbox){cursor:var(--sbb-selection-panel-cursor);pointer-events:var(--sbb-selection-panel-input-pointer-events);display:block;padding:var(--sbb-selection-panel-input-padding);transition-duration:var(--sbb-selection-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:padding}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
|
|
7
|
+
var f = Object.defineProperty, w = Object.getOwnPropertyDescriptor, s = (e, n, r, a) => {
|
|
8
|
+
for (var i = a > 1 ? void 0 : a ? w(n, r) : n, l = e.length - 1, b; l >= 0; l--)
|
|
9
|
+
(b = e[l]) && (i = (a ? b(n, r, i) : b(i)) || i);
|
|
10
|
+
return a && i && f(n, r, i), i;
|
|
11
11
|
};
|
|
12
|
-
let t = class extends
|
|
12
|
+
let t = class extends c {
|
|
13
13
|
constructor() {
|
|
14
|
-
super(), this.color = "white", this.forceOpen = !1, this.borderless = !1, this.
|
|
14
|
+
super(), this.color = "white", this.forceOpen = !1, this.borderless = !1, this._willOpen = new o(
|
|
15
15
|
this,
|
|
16
16
|
t.events.willOpen
|
|
17
|
-
), this.
|
|
17
|
+
), this._didOpen = new o(
|
|
18
18
|
this,
|
|
19
19
|
t.events.didOpen
|
|
20
|
-
), this.
|
|
20
|
+
), this._willClose = new o(
|
|
21
21
|
this,
|
|
22
22
|
t.events.willClose
|
|
23
|
-
), this.
|
|
23
|
+
), this._didClose = new o(
|
|
24
24
|
this,
|
|
25
25
|
t.events.didClose
|
|
26
|
-
), this.
|
|
26
|
+
), this._abort = new m(this), this._initialized = !1, new _(this);
|
|
27
27
|
}
|
|
28
|
-
set
|
|
28
|
+
set _state(e) {
|
|
29
29
|
this.setAttribute("data-state", e);
|
|
30
30
|
}
|
|
31
|
-
get
|
|
31
|
+
get _state() {
|
|
32
32
|
return this.getAttribute("data-state");
|
|
33
33
|
}
|
|
34
34
|
/** Whether the selection panel is checked. */
|
|
35
|
-
set
|
|
35
|
+
set _checked(e) {
|
|
36
36
|
this.toggleAttribute("data-checked", e);
|
|
37
37
|
}
|
|
38
|
-
get
|
|
38
|
+
get _checked() {
|
|
39
39
|
return this.hasAttribute("data-checked");
|
|
40
40
|
}
|
|
41
41
|
/** Whether the selection panel is disabled. */
|
|
42
|
-
set
|
|
42
|
+
set _disabled(e) {
|
|
43
43
|
this.toggleAttribute("data-disabled", e);
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -51,41 +51,41 @@ let t = class extends p {
|
|
|
51
51
|
return ((e = this.querySelectorAll) == null ? void 0 : e.call(this, '[slot="content"]').length) > 0;
|
|
52
52
|
}
|
|
53
53
|
connectedCallback() {
|
|
54
|
-
super.connectedCallback(), this.
|
|
55
|
-
const e = this.
|
|
56
|
-
this.addEventListener("stateChange", this.
|
|
54
|
+
super.connectedCallback(), this._state || (this._state = "closed");
|
|
55
|
+
const e = this._abort.signal;
|
|
56
|
+
this.addEventListener("stateChange", this._onInputStateChange.bind(this), { signal: e }), this.addEventListener("checkboxLoaded", this._initFromInput.bind(this), { signal: e }), this.addEventListener("radioButtonLoaded", this._initFromInput.bind(this), { signal: e });
|
|
57
57
|
}
|
|
58
58
|
willUpdate(e) {
|
|
59
|
-
super.willUpdate(e), e.has("forceOpen") && this.
|
|
59
|
+
super.willUpdate(e), e.has("forceOpen") && this._updateState();
|
|
60
60
|
}
|
|
61
61
|
firstUpdated(e) {
|
|
62
|
-
super.firstUpdated(e), this.
|
|
62
|
+
super.firstUpdated(e), this._initialized = !0;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
this.hasContent && (this.forceOpen || this.
|
|
64
|
+
_updateState() {
|
|
65
|
+
this.hasContent && (this.forceOpen || this._checked ? this._open(!this._initialized) : this._close());
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
this.
|
|
67
|
+
_open(e = !1) {
|
|
68
|
+
this._state !== "closed" && this._state !== "closing" || (this._state = "opening", this._willOpen.emit(), e && (this._state = "opened", this._didOpen.emit()));
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
this.
|
|
70
|
+
_close() {
|
|
71
|
+
this._state !== "opened" && this._state !== "opening" || (this._state = "closing", this._willClose.emit());
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
_initFromInput(e) {
|
|
74
74
|
const n = e.target;
|
|
75
|
-
n.isSelectionPanelInput && (this.
|
|
75
|
+
n.isSelectionPanelInput && (this._checked = n.checked, this._disabled = n.disabled, this._updateState());
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
_onInputStateChange(e) {
|
|
78
78
|
if (e.target.isSelectionPanelInput) {
|
|
79
79
|
if (e.detail.type === "disabled") {
|
|
80
|
-
this.
|
|
80
|
+
this._disabled = e.detail.disabled;
|
|
81
81
|
return;
|
|
82
82
|
} else if (e.detail.type !== "checked")
|
|
83
83
|
return;
|
|
84
|
-
this.
|
|
84
|
+
this._checked = e.detail.checked, this._updateState();
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
e.animationName === "open-opacity" && this.
|
|
87
|
+
_onAnimationEnd(e) {
|
|
88
|
+
e.animationName === "open-opacity" && this._state === "opening" ? (this._state = "opened", this._didOpen.emit()) : e.animationName === "close" && this._state === "closing" && (this._state = "closed", this._didClose.emit());
|
|
89
89
|
}
|
|
90
90
|
render() {
|
|
91
91
|
return h`
|
|
@@ -99,8 +99,8 @@ let t = class extends p {
|
|
|
99
99
|
</div>
|
|
100
100
|
<div
|
|
101
101
|
class="sbb-selection-panel__content--wrapper"
|
|
102
|
-
.inert=${this.
|
|
103
|
-
@animationend=${(e) => this.
|
|
102
|
+
.inert=${this._state !== "opened"}
|
|
103
|
+
@animationend=${(e) => this._onAnimationEnd(e)}
|
|
104
104
|
>
|
|
105
105
|
<div class="sbb-selection-panel__content">
|
|
106
106
|
<sbb-divider></sbb-divider>
|
|
@@ -111,7 +111,7 @@ let t = class extends p {
|
|
|
111
111
|
`;
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
|
-
t.styles =
|
|
114
|
+
t.styles = g;
|
|
115
115
|
t.events = {
|
|
116
116
|
willOpen: "willOpen",
|
|
117
117
|
didOpen: "didOpen",
|
|
@@ -128,10 +128,10 @@ s([
|
|
|
128
128
|
d({ reflect: !0, type: Boolean })
|
|
129
129
|
], t.prototype, "borderless", 2);
|
|
130
130
|
s([
|
|
131
|
-
|
|
132
|
-
], t.prototype, "
|
|
131
|
+
u()
|
|
132
|
+
], t.prototype, "_state", 1);
|
|
133
133
|
t = s([
|
|
134
|
-
|
|
134
|
+
v("sbb-selection-panel")
|
|
135
135
|
], t);
|
|
136
136
|
export {
|
|
137
137
|
t as SbbSelectionPanelElement
|
package/slider.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
1
|
+
import { css as u, LitElement as v, html as c, nothing as b } from "lit";
|
|
2
|
+
import { property as t, state as m, customElement as p } from "lit/decorators.js";
|
|
3
3
|
import { ref as f } from "lit/directives/ref.js";
|
|
4
|
-
import { styleMap as
|
|
5
|
-
import { SbbConnectedAbortController as
|
|
6
|
-
import { hostAttributes as
|
|
4
|
+
import { styleMap as _ } from "lit/directives/style-map.js";
|
|
5
|
+
import { SbbConnectedAbortController as g } from "./core/controllers.js";
|
|
6
|
+
import { hostAttributes as y } from "./core/decorators.js";
|
|
7
7
|
import { setOrRemoveAttribute as n } from "./core/dom.js";
|
|
8
|
-
import { EventEmitter as
|
|
8
|
+
import { EventEmitter as w, forwardEventToHost as k } from "./core/eventing.js";
|
|
9
9
|
import { SbbDisabledTabIndexActionMixin as x } from "./core/mixins.js";
|
|
10
10
|
import "./icon.js";
|
|
11
|
-
const
|
|
12
|
-
var
|
|
13
|
-
for (var i =
|
|
14
|
-
(h = e[d]) && (i = (
|
|
15
|
-
return
|
|
11
|
+
const I = u`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{--sbb-slider-line-height: .25rem;--sbb-slider-value-fraction: 0;--sbb-slider-knob-size: 1.75rem;--sbb-slider-knob-size-active: 1.9375rem;--sbb-slider-knob-border-size: .1875rem;--sbb-slider-knob-border-style: solid;--sbb-slider-knob-color: var(--sbb-color-white);--sbb-slider-knob-border-color: var(--sbb-color-red);--sbb-slider-icon-color: var(--sbb-color-black);--sbb-slider-selected-line-color: var(--sbb-color-red);--sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);--sbb-slider-line-color: var(--sbb-color-smoke);--sbb-slider-line-disabled-color: var(--sbb-color-graphite);outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%)}@media (forced-colors: active){:host{--sbb-slider-selected-line-color: Highlight;--sbb-slider-line-color: CanvasText}}:host([disabled]){--sbb-slider-icon-color: var(--sbb-color-graphite);--sbb-slider-knob-border-color: var(--sbb-color-smoke);--sbb-slider-knob-border-size: var(--sbb-border-width-2x);--sbb-slider-knob-border-style: dashed}:host([readonly]){--sbb-slider-icon-color: var(--sbb-color-smoke);--sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color)}:host([disabled]),:host([readonly]){--sbb-slider-line-color: var(--sbb-slider-line-disabled-color);--sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color)}@media (forced-colors: active){:host([disabled]),:host([readonly]){--sbb-slider-icon-color: GrayText;--sbb-slider-selected-line-disabled-color: GrayText;--sbb-slider-line-disabled-color: GrayText}}.sbb-slider__height-container{display:flex;flex-direction:column}.sbb-slider__height-container:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-slider__wrapper{display:flex;gap:var(--sbb-spacing-fixed-2x);padding-block:calc(var(--sbb-spacing-fixed-1x) / 2);color:var(--sbb-slider-icon-color)}.sbb-slider__container{position:relative;min-height:var(--sbb-size-icon-ui-small);flex-grow:1}.sbb-slider__range-input{position:absolute;width:100%;top:0;right:0;bottom:0;left:0;opacity:0;margin:0}.sbb-slider__line{position:absolute;top:50%;transform:translateY(-50%);height:var(--sbb-slider-line-height);width:100%;background-color:var(--sbb-slider-line-color);border-radius:var(--sbb-slider-line-height);overflow:hidden;pointer-events:none}.sbb-slider__selected-line{position:relative;height:100%;background-color:var(--sbb-slider-selected-line-color);width:calc(var(--sbb-slider-value-fraction) * 100%)}.sbb-slider__knob{position:absolute;top:50%;transform:translateY(-50%);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);width:var(--sbb-slider-knob-size);height:var(--sbb-slider-knob-size);inset-inline-start:calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));transition-property:width,height;transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-1x));transition-timing-function:ease-in;background-color:var(--sbb-slider-knob-color);border:var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);border-radius:50%;pointer-events:none}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-slider__knob{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}:host(:not(:is([disabled],[readonly]))) .sbb-slider__range-input:active~.sbb-slider__knob{--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}`;
|
|
12
|
+
var C = Object.defineProperty, A = Object.getOwnPropertyDescriptor, r = (e, o, l, a) => {
|
|
13
|
+
for (var i = a > 1 ? void 0 : a ? A(o, l) : o, d = e.length - 1, h; d >= 0; d--)
|
|
14
|
+
(h = e[d]) && (i = (a ? h(o, l, i) : h(i)) || i);
|
|
15
|
+
return a && i && C(o, l, i), i;
|
|
16
16
|
};
|
|
17
|
-
let s = class extends x(
|
|
17
|
+
let s = class extends x(v) {
|
|
18
18
|
constructor() {
|
|
19
|
-
super(...arguments), this.value = "", this.name = "", this.min = "0", this.max = "100", this.readonly = !1, this.
|
|
19
|
+
super(...arguments), this.value = "", this.name = "", this.min = "0", this.max = "100", this.readonly = !1, this._valueFraction = 0, this._didChange = new w(this, s.events.didChange, {
|
|
20
20
|
bubbles: !0,
|
|
21
21
|
cancelable: !0
|
|
22
|
-
}), this.
|
|
22
|
+
}), this._abort = new g(this);
|
|
23
23
|
}
|
|
24
24
|
connectedCallback() {
|
|
25
25
|
super.connectedCallback();
|
|
26
|
-
const e = this.
|
|
27
|
-
this.addEventListener("keydown", (
|
|
26
|
+
const e = this._abort.signal;
|
|
27
|
+
this.addEventListener("keydown", (o) => this._handleKeydown(o), { signal: e }), this._handleChange();
|
|
28
28
|
}
|
|
29
29
|
willUpdate(e) {
|
|
30
|
-
super.willUpdate(e), e.has("value") ? this.
|
|
30
|
+
super.willUpdate(e), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null);
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
_syncValues(e) {
|
|
33
33
|
e != null && (e && typeof e != "number" && (e = +e), this.value = e.toString(), this.valueAsNumber = e, n(this, "aria-valuenow", this.value || null));
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
@@ -38,61 +38,61 @@ let s = class extends x(u) {
|
|
|
38
38
|
* the `min` and `max` values are used; if `value` is not provided, the default value is halfway between min and max
|
|
39
39
|
* (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value).
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
let l,
|
|
43
|
-
this.
|
|
44
|
-
const i = (e - l) / (
|
|
45
|
-
this.
|
|
41
|
+
_handleChange(e = ((o) => (o = this._rangeInput) == null ? void 0 : o.valueAsNumber)()) {
|
|
42
|
+
let l, a;
|
|
43
|
+
this._rangeInput ? (l = +this._rangeInput.min, a = +this._rangeInput.max) : (l = +this.min, a = +this.max, e = this.value && this.value !== "" ? +this.value : this.valueAsNumber ? this.valueAsNumber : +this.min + (+this.max - +this.min) / 2);
|
|
44
|
+
const i = (e - l) / (a - l);
|
|
45
|
+
this._valueFraction = isNaN(i) || i < 0 ? 0 : i > 1 ? 1 : i, this._syncValues(e);
|
|
46
46
|
}
|
|
47
|
-
async
|
|
47
|
+
async _handleKeydown(e) {
|
|
48
48
|
if (e.key !== "Tab" && e.preventDefault(), !(this.disabled || this.readonly)) {
|
|
49
49
|
if (e.key === "Home")
|
|
50
|
-
this.
|
|
50
|
+
this._rangeInput.value = this._rangeInput.min;
|
|
51
51
|
else if (e.key === "End")
|
|
52
|
-
this.
|
|
52
|
+
this._rangeInput.value = this._rangeInput.max;
|
|
53
53
|
else if (e.key === "ArrowLeft" || e.key === "ArrowDown")
|
|
54
|
-
this.
|
|
54
|
+
this._rangeInput.stepDown();
|
|
55
55
|
else if (e.key === "ArrowRight" || e.key === "ArrowUp")
|
|
56
|
-
this.
|
|
56
|
+
this._rangeInput.stepUp();
|
|
57
57
|
else if (e.key === "PageDown")
|
|
58
|
-
this.
|
|
58
|
+
this._rangeInput.stepDown((+this._rangeInput.max - +this._rangeInput.min) / 10);
|
|
59
59
|
else if (e.key === "PageUp")
|
|
60
|
-
this.
|
|
60
|
+
this._rangeInput.stepUp((+this._rangeInput.max - +this._rangeInput.min) / 10);
|
|
61
61
|
else
|
|
62
62
|
return;
|
|
63
|
-
this.
|
|
63
|
+
this._handleChange(), this.dispatchEvent(
|
|
64
64
|
new InputEvent("input", { bubbles: !0, cancelable: !0, composed: !0 })
|
|
65
|
-
), this.
|
|
65
|
+
), this._emitChange(new Event("change", { bubbles: !0, cancelable: !0, composed: !0 }));
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
/** Emits the change event. */
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
_emitChange(e) {
|
|
70
|
+
k(e, this), this._didChange.emit();
|
|
71
71
|
}
|
|
72
72
|
render() {
|
|
73
73
|
return c`
|
|
74
74
|
<div class="sbb-slider__height-container">
|
|
75
75
|
<div class="sbb-slider__wrapper">
|
|
76
76
|
<slot name="prefix">
|
|
77
|
-
${this.startIcon ? c`<sbb-icon name="${this.startIcon}"></sbb-icon>` :
|
|
77
|
+
${this.startIcon ? c`<sbb-icon name="${this.startIcon}"></sbb-icon>` : b}
|
|
78
78
|
</slot>
|
|
79
79
|
<div
|
|
80
80
|
class="sbb-slider__container"
|
|
81
|
-
style=${
|
|
81
|
+
style=${_({ "--sbb-slider-value-fraction": this._valueFraction.toString() })}
|
|
82
82
|
>
|
|
83
83
|
<input
|
|
84
84
|
tabindex="-1"
|
|
85
|
-
name=${this.name ||
|
|
86
|
-
min=${this.min ||
|
|
87
|
-
max=${this.max ||
|
|
88
|
-
?disabled=${this.disabled || this.readonly ||
|
|
89
|
-
.valueAsNumber=${this.valueAsNumber ||
|
|
90
|
-
value=${this.value ||
|
|
85
|
+
name=${this.name || b}
|
|
86
|
+
min=${this.min || b}
|
|
87
|
+
max=${this.max || b}
|
|
88
|
+
?disabled=${this.disabled || this.readonly || b}
|
|
89
|
+
.valueAsNumber=${this.valueAsNumber || b}
|
|
90
|
+
value=${this.value || b}
|
|
91
91
|
class="sbb-slider__range-input"
|
|
92
92
|
type="range"
|
|
93
|
-
@change=${(e) => this.
|
|
94
|
-
@input=${() => this.
|
|
95
|
-
${f((e) => this.
|
|
93
|
+
@change=${(e) => this._emitChange(e)}
|
|
94
|
+
@input=${() => this._handleChange()}
|
|
95
|
+
${f((e) => this._rangeInput = e)}
|
|
96
96
|
/>
|
|
97
97
|
<div class="sbb-slider__line">
|
|
98
98
|
<div class="sbb-slider__selected-line"></div>
|
|
@@ -100,50 +100,50 @@ let s = class extends x(u) {
|
|
|
100
100
|
<div class="sbb-slider__knob"></div>
|
|
101
101
|
</div>
|
|
102
102
|
<slot name="suffix">
|
|
103
|
-
${this.endIcon ? c`<sbb-icon name="${this.endIcon}"></sbb-icon>` :
|
|
103
|
+
${this.endIcon ? c`<sbb-icon name="${this.endIcon}"></sbb-icon>` : b}
|
|
104
104
|
</slot>
|
|
105
105
|
</div>
|
|
106
106
|
</div>
|
|
107
107
|
`;
|
|
108
108
|
}
|
|
109
109
|
};
|
|
110
|
-
s.styles =
|
|
110
|
+
s.styles = I;
|
|
111
111
|
s.events = {
|
|
112
112
|
didChange: "didChange"
|
|
113
113
|
};
|
|
114
114
|
r([
|
|
115
|
-
|
|
115
|
+
t()
|
|
116
116
|
], s.prototype, "value", 2);
|
|
117
117
|
r([
|
|
118
|
-
|
|
118
|
+
t({ attribute: "value-as-number", type: Number })
|
|
119
119
|
], s.prototype, "valueAsNumber", 2);
|
|
120
120
|
r([
|
|
121
|
-
|
|
121
|
+
t({ reflect: !0 })
|
|
122
122
|
], s.prototype, "name", 2);
|
|
123
123
|
r([
|
|
124
|
-
|
|
124
|
+
t()
|
|
125
125
|
], s.prototype, "form", 2);
|
|
126
126
|
r([
|
|
127
|
-
|
|
127
|
+
t()
|
|
128
128
|
], s.prototype, "min", 2);
|
|
129
129
|
r([
|
|
130
|
-
|
|
130
|
+
t()
|
|
131
131
|
], s.prototype, "max", 2);
|
|
132
132
|
r([
|
|
133
|
-
|
|
133
|
+
t({ type: Boolean })
|
|
134
134
|
], s.prototype, "readonly", 2);
|
|
135
135
|
r([
|
|
136
|
-
|
|
136
|
+
t({ attribute: "start-icon" })
|
|
137
137
|
], s.prototype, "startIcon", 2);
|
|
138
138
|
r([
|
|
139
|
-
|
|
139
|
+
t({ attribute: "end-icon" })
|
|
140
140
|
], s.prototype, "endIcon", 2);
|
|
141
141
|
r([
|
|
142
142
|
m()
|
|
143
|
-
], s.prototype, "
|
|
143
|
+
], s.prototype, "_valueFraction", 2);
|
|
144
144
|
s = r([
|
|
145
145
|
p("sbb-slider"),
|
|
146
|
-
|
|
146
|
+
y({
|
|
147
147
|
role: "slider"
|
|
148
148
|
})
|
|
149
149
|
], s);
|
package/status.js
CHANGED
|
@@ -3,15 +3,15 @@ import { property as i, customElement as v } from "lit/decorators.js";
|
|
|
3
3
|
import { SbbSlotStateController as m } from "./core/controllers.js";
|
|
4
4
|
import { SbbIconNameMixin as f } from "./icon.js";
|
|
5
5
|
import "./title.js";
|
|
6
|
-
const
|
|
7
|
-
var
|
|
6
|
+
const y = p`*,:before,:after{box-sizing:border-box}:host{--sbb-status-gap: var(--sbb-spacing-fixed-1x);--sbb-status-icon-color: var(--sbb-color-iron);--sbb-status-text-color: var(--sbb-color-iron);--_sbb-status-icon-font-size: var(--sbb-font-size-text-s);display:block}:host([type=error]){--sbb-status-text-color: var(--sbb-color-red125)}:host(:is([type=error],[type=error]:is([data-slot-names~=title],[title-content]))){--sbb-status-icon-color: var(--sbb-color-red125)}:host([type=success]){--sbb-status-text-color: var(--sbb-color-green)}:host(:is([type=success],[type=success]:is([data-slot-names~=title],[title-content]))){--sbb-status-icon-color: var(--sbb-color-green)}:host([type=warning]){--sbb-status-icon-color: var(--sbb-color-charcoal);--sbb-status-text-color: var(--sbb-color-charcoal)}:host(:is([data-slot-names~=title],[title-content])){--sbb-status-text-color: var(--sbb-color-granite);--sbb-status-icon-color: var(--sbb-color-charcoal);--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);--_sbb-status-icon-font-size: var(--sbb-font-size-title-5)}.sbb-status{--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);display:flex;gap:var(--sbb-status-gap);color:var(--sbb-status-text-color)}.sbb-status__icon{display:flex;flex-shrink:0;color:var(--sbb-status-icon-color);margin-block-start:calc((var(--_sbb-status-icon-font-size) * var(--sbb-typo-line-height-body-text) - var(--sbb-size-icon-ui-small)) / 2)}.sbb-status__title{margin-block:0}:host(:not(:is([data-slot-names~=title],[title-content]))) .sbb-status__title{display:none}.sbb-status__content-slot{display:inline;margin:0;padding:0}`;
|
|
7
|
+
var h = Object.defineProperty, x = Object.getOwnPropertyDescriptor, r = (n, e, b, o) => {
|
|
8
8
|
for (var t = o > 1 ? void 0 : o ? x(e, b) : e, a = n.length - 1, l; a >= 0; a--)
|
|
9
9
|
(l = n[a]) && (t = (o ? l(e, b, t) : l(t)) || t);
|
|
10
|
-
return o && t &&
|
|
10
|
+
return o && t && h(e, b, t), t;
|
|
11
11
|
};
|
|
12
12
|
let s = class extends f(u) {
|
|
13
13
|
constructor() {
|
|
14
|
-
super(), this.
|
|
14
|
+
super(), this._statusTypes = /* @__PURE__ */ new Map([
|
|
15
15
|
["info", "circle-information-small"],
|
|
16
16
|
["success", "circle-tick-small"],
|
|
17
17
|
["warning", "circle-exclamation-point-small"],
|
|
@@ -21,7 +21,7 @@ let s = class extends f(u) {
|
|
|
21
21
|
renderIconSlot() {
|
|
22
22
|
return c`
|
|
23
23
|
<slot name="icon">
|
|
24
|
-
<sbb-icon name=${this.iconName ?? this.
|
|
24
|
+
<sbb-icon name=${this.iconName ?? this._statusTypes.get(this.type)}></sbb-icon>
|
|
25
25
|
</slot>
|
|
26
26
|
`;
|
|
27
27
|
}
|
|
@@ -41,7 +41,7 @@ let s = class extends f(u) {
|
|
|
41
41
|
`;
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
-
s.styles =
|
|
44
|
+
s.styles = y;
|
|
45
45
|
r([
|
|
46
46
|
i({ reflect: !0 })
|
|
47
47
|
], s.prototype, "type", 2);
|
package/stepper/step-label.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
import { css as l, html as n } from "lit";
|
|
2
|
-
import { customElement as
|
|
3
|
-
import { SbbButtonBaseElement as
|
|
2
|
+
import { customElement as p } from "lit/decorators.js";
|
|
3
|
+
import { SbbButtonBaseElement as c } from "../core/base-elements.js";
|
|
4
4
|
import { SbbConnectedAbortController as d } from "../core/controllers.js";
|
|
5
5
|
import { hostAttributes as f } from "../core/decorators.js";
|
|
6
6
|
import { SbbDisabledMixin as h } from "../core/mixins.js";
|
|
7
7
|
import { SbbIconNameMixin as v } from "../icon.js";
|
|
8
8
|
const x = l`*,:before,:after{box-sizing:border-box}:host{--sbb-step-label-color: var(--sbb-color-iron);--sbb-step-label-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-step-label-prefix-size: var(--sbb-size-element-xxs);--sbb-step-label-prefix-border-style: solid;--sbb-step-label-prefix-border-color: var(--sbb-color-cloud);--sbb-step-label-prefix-background-color: var(--sbb-color-white);position:relative;min-width:0;max-width:fit-content}:host:before{--sbb-text-font-size: var(--sbb-font-size-text-xxs);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);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);cursor:var(--sbb-step-label-cursor);color:var(--sbb-step-label-color);inset-block-start:calc(var(--sbb-font-size-text-l) * var(--sbb-typo-line-height-body-text) / 2 + var(--sbb-border-width-1x) / 2);inset-inline-start:calc(var(--sbb-step-label-prefix-size) / 2);line-height:1;z-index:1;transform:translate(-50%,calc(-50% + var(--sbb-step-label-translate-y-content-hover, 0rem)));transition:transform var(--sbb-step-label-animation-duration) var(--sbb-animation-easing)}@media (forced-colors: active){:host{--sbb-step-label-color: ButtonText;--sbb-step-label-prefix-border-color: ButtonText}}:host([data-selected]){--sbb-text-font-size: var(--sbb-font-size-text-xxs);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);font-weight:700;--sbb-step-label-color: var(--sbb-color-charcoal)}@media (forced-colors: active){:host([data-selected]){--sbb-step-label-color: Highlight !important}}:host([disabled]){--sbb-step-label-color: var(--sbb-color-granite);--sbb-step-label-prefix-border-style: dashed}@media (forced-colors: active){:host([disabled]){--sbb-step-label-color: GrayText !important}}@media (any-hover: hover){:host(:hover:not([disabled])){--sbb-step-label-cursor: pointer;--sbb-step-label-prefix-background-color: var(--sbb-color-milk);--sbb-step-label-translate-y-content-hover: -.0625rem;--sbb-step-label-prefix-size-grow-hover: calc(var(--sbb-border-width-2x) * -1)}}:host(: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);border-radius:var(--sbb-border-radius-1x)}:host([data-orientation=vertical]){transition:margin var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}:host([data-orientation=vertical]:not(:first-of-type)){margin-block-start:var(--sbb-spacing-fixed-6x)}:host([data-selected][data-orientation=vertical]){margin-block-end:var(--sbb-spacing-fixed-8x)}.sbb-step-label{--sbb-text-font-size: var(--sbb-font-size-text-l);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);font-weight:700;cursor:var(--sbb-step-label-cursor);position:relative;display:flex;gap:var(--sbb-spacing-fixed-4x);color:var(--sbb-step-label-color)}.sbb-step-label__prefix{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--sbb-step-label-prefix-size);height:var(--sbb-step-label-prefix-size);inset-block-start:calc(1em * var(--sbb-typo-line-height-body-text) / 2 + var(--sbb-border-width-1x) / 2 - var(--sbb-step-label-prefix-size) / 2)}.sbb-step-label__prefix:before{content:"";position:absolute;inset:calc(var(--sbb-step-label-prefix-size-grow-hover, 0rem));border-radius:var(--sbb-border-radius-infinity);border:var(--sbb-border-width-1x) var(--sbb-step-label-prefix-border-style) var(--sbb-step-label-prefix-border-color);background-color:var(--sbb-step-label-prefix-background-color);transition-duration:var(--sbb-step-label-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:background-color,inset}:host([data-orientation=horizontal]) .sbb-step-label__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::slotted(sbb-icon),sbb-icon{z-index:1;background-color:var(--sbb-step-label-prefix-background-color);border-radius:var(--sbb-border-radius-infinity);transform:translateY(var(--sbb-step-label-translate-y-content-hover, 0rem));transition-duration:var(--sbb-step-label-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:background-color,transform}`;
|
|
9
9
|
var u = Object.defineProperty, m = Object.getOwnPropertyDescriptor, g = (t, s, r, i) => {
|
|
10
|
-
for (var e = i > 1 ? void 0 : i ? m(s, r) : s, a = t.length - 1,
|
|
11
|
-
(
|
|
10
|
+
for (var e = i > 1 ? void 0 : i ? m(s, r) : s, a = t.length - 1, o; a >= 0; a--)
|
|
11
|
+
(o = t[a]) && (e = (i ? o(s, r, e) : o(e)) || e);
|
|
12
12
|
return i && e && u(s, r, e), e;
|
|
13
13
|
};
|
|
14
|
-
let y = 0,
|
|
14
|
+
let y = 0, b = class extends v(h(c)) {
|
|
15
15
|
constructor() {
|
|
16
|
-
super(...arguments), this.
|
|
16
|
+
super(...arguments), this._internals = this.attachInternals(), this._abort = new d(this), this._stepper = null, this._step = null;
|
|
17
17
|
}
|
|
18
18
|
/** The step controlled by the label. */
|
|
19
19
|
get step() {
|
|
20
|
-
return this.
|
|
20
|
+
return this._step;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Selects and configures the step label.
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
26
|
select() {
|
|
27
|
-
this.tabIndex = 0, this.
|
|
27
|
+
this.tabIndex = 0, this._internals.ariaSelected = "true", this.toggleAttribute("data-selected", !0);
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Deselects and configures the step label.
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
33
|
deselect() {
|
|
34
|
-
this.tabIndex = -1, this.
|
|
34
|
+
this.tabIndex = -1, this._internals.ariaSelected = "false", this.toggleAttribute("data-selected", !1);
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Configures the step label.
|
|
38
38
|
* @internal
|
|
39
39
|
*/
|
|
40
40
|
configure(t, s, r) {
|
|
41
|
-
r && (this.
|
|
41
|
+
r && (this._step = this._getStep()), this._internals.ariaPosInSet = `${t}`, this._internals.ariaSetSize = `${s}`;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
_getStep() {
|
|
44
44
|
let t = this.nextElementSibling;
|
|
45
45
|
for (; t && t.localName !== "sbb-step"; )
|
|
46
46
|
t = t.nextElementSibling;
|
|
@@ -48,11 +48,11 @@ let y = 0, o = class extends v(h(p)) {
|
|
|
48
48
|
}
|
|
49
49
|
connectedCallback() {
|
|
50
50
|
super.connectedCallback();
|
|
51
|
-
const t = this.
|
|
52
|
-
this.id = this.id || `sbb-step-label-${y++}`, this.
|
|
51
|
+
const t = this._abort.signal;
|
|
52
|
+
this.id = this.id || `sbb-step-label-${y++}`, this._internals.ariaSelected = "false", this._stepper = this.closest("sbb-stepper"), this._step = this._getStep(), this.toggleAttribute("data-disabled", this.hasAttribute("disabled")), this.addEventListener(
|
|
53
53
|
"click",
|
|
54
54
|
() => {
|
|
55
|
-
this.
|
|
55
|
+
this._stepper && this._step && (this._stepper.selected = this._step);
|
|
56
56
|
},
|
|
57
57
|
{ signal: t }
|
|
58
58
|
);
|
|
@@ -69,15 +69,15 @@ let y = 0, o = class extends v(h(p)) {
|
|
|
69
69
|
`;
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
b.styles = x;
|
|
73
|
+
b = g([
|
|
74
|
+
p("sbb-step-label"),
|
|
75
75
|
f({
|
|
76
76
|
slot: "step-label",
|
|
77
77
|
tabindex: "-1",
|
|
78
78
|
role: "tab"
|
|
79
79
|
})
|
|
80
|
-
],
|
|
80
|
+
], b);
|
|
81
81
|
export {
|
|
82
|
-
|
|
82
|
+
b as SbbStepLabelElement
|
|
83
83
|
};
|