@sbb-esta/lyne-elements 1.11.2 → 1.12.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/_index.scss +1 -1
- package/core/a11y/focus.d.ts.map +1 -1
- package/core/a11y.js +1 -1
- package/core/i18n/i18n.d.ts +5 -0
- package/core/i18n/i18n.d.ts.map +1 -1
- package/core/i18n.js +85 -55
- package/core/styles/lists.scss +4 -0
- package/core/styles/mixins/lists.scss +128 -76
- package/custom-elements.json +774 -76
- package/development/core/a11y/focus.d.ts.map +1 -1
- package/development/core/a11y.js +2 -2
- package/development/core/i18n/i18n.d.ts +5 -0
- package/development/core/i18n/i18n.d.ts.map +1 -1
- package/development/core/i18n.js +36 -1
- package/development/paginator/index.d.ts +2 -0
- package/development/paginator/index.d.ts.map +1 -0
- package/development/paginator/paginator.d.ts +91 -0
- package/development/paginator/paginator.d.ts.map +1 -0
- package/development/paginator.d.ts +2 -0
- package/development/paginator.d.ts.map +1 -0
- package/development/paginator.js +526 -0
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +16 -12
- package/development/select/select.d.ts +6 -0
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +22 -2
- package/development/slider/slider.d.ts +35 -16
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +102 -81
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/lists.css +102 -36
- package/package.json +6 -1
- package/paginator/index.d.ts +2 -0
- package/paginator/index.d.ts.map +1 -0
- package/paginator/paginator.d.ts +91 -0
- package/paginator/paginator.d.ts.map +1 -0
- package/paginator.d.ts +2 -0
- package/paginator.d.ts.map +1 -0
- package/paginator.js +263 -0
- package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +11 -7
- package/select/select.d.ts +6 -0
- package/select/select.d.ts.map +1 -1
- package/select.js +40 -24
- package/slider/slider.d.ts +35 -16
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +111 -78
- package/standard-theme.css +102 -36
package/slider/slider.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
|
|
2
|
-
|
|
2
|
+
import { FormRestoreReason, FormRestoreState } from '../core/mixins.js';
|
|
3
|
+
declare const SbbSliderElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & import('../core/mixins.js').Constructor<import('../core/mixins.js').SbbFormAssociatedMixinType> & typeof LitElement;
|
|
3
4
|
/**
|
|
4
5
|
* It displays an input knob that can be moved in a range.
|
|
5
6
|
*
|
|
@@ -12,18 +13,23 @@ export declare class SbbSliderElement extends SbbSliderElement_base {
|
|
|
12
13
|
static readonly events: {
|
|
13
14
|
readonly didChange: "didChange";
|
|
14
15
|
};
|
|
15
|
-
/**
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Value of the form element.
|
|
18
|
+
* If no value is provided, default is the middle point between min and max.
|
|
19
|
+
*/
|
|
20
|
+
set value(value: string | null);
|
|
21
|
+
get value(): string;
|
|
17
22
|
/** Numeric value for the inner HTMLInputElement. */
|
|
18
|
-
valueAsNumber
|
|
19
|
-
|
|
20
|
-
name?: string;
|
|
21
|
-
/** The <form> element to associate the inner HTMLInputElement with. */
|
|
22
|
-
form?: string;
|
|
23
|
+
set valueAsNumber(value: number);
|
|
24
|
+
get valueAsNumber(): number | null;
|
|
23
25
|
/** Minimum acceptable value for the inner HTMLInputElement. */
|
|
24
|
-
min
|
|
26
|
+
set min(value: string);
|
|
27
|
+
get min(): string;
|
|
28
|
+
private _min;
|
|
25
29
|
/** Maximum acceptable value for the inner HTMLInputElement. */
|
|
26
|
-
max
|
|
30
|
+
set max(value: string);
|
|
31
|
+
get max(): string;
|
|
32
|
+
private _max;
|
|
27
33
|
/**
|
|
28
34
|
* Readonly state for the inner HTMLInputElement.
|
|
29
35
|
* Since the input range does not allow this attribute, it will be merged with the `disabled` one.
|
|
@@ -45,16 +51,29 @@ export declare class SbbSliderElement extends SbbSliderElement_base {
|
|
|
45
51
|
/** Reference to the inner HTMLInputElement with type='range'. */
|
|
46
52
|
private _rangeInput;
|
|
47
53
|
private _abort;
|
|
54
|
+
constructor();
|
|
48
55
|
connectedCallback(): void;
|
|
49
56
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
50
|
-
private _syncValues;
|
|
51
57
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
* The reset value is the attribute value (the setup value). If not present, calculates the default.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
formResetCallback(): void;
|
|
62
|
+
/**
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
formStateRestoreCallback(state: FormRestoreState | null, _reason: FormRestoreReason): void;
|
|
66
|
+
/**
|
|
67
|
+
* If no value is provided, default is the middle point between min and max
|
|
68
|
+
* (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value)
|
|
69
|
+
*/
|
|
70
|
+
private _getDefaultValue;
|
|
71
|
+
private _isValidNumber;
|
|
72
|
+
/**
|
|
73
|
+
* Restrains the value between the min and max
|
|
56
74
|
*/
|
|
57
|
-
private
|
|
75
|
+
private _boundBetweenMinMax;
|
|
76
|
+
private _calculateValueFraction;
|
|
58
77
|
private _handleKeydown;
|
|
59
78
|
/** Emits the change event. */
|
|
60
79
|
private _emitChange;
|
package/slider/slider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAQhD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,qBAAoD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAQ7C;IACD,IAAoB,KAAK,IAAI,MAAM,CAElC;IAED,oDAAoD;IACpD,IACW,aAAa,CAAC,KAAK,EAAE,MAAM,EAErC;IACD,IAAW,aAAa,IAAI,MAAM,GAAG,IAAI,CAExC;IAED,+DAA+D;IAC/D,IACW,GAAG,CAAC,KAAK,EAAE,MAAM,EAO3B;IACD,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,OAAO,CAAC,IAAI,CAAe;IAE3B,+DAA+D;IAC/D,IACW,GAAG,CAAC,KAAK,EAAE,MAAM,EAO3B;IACD,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,OAAO,CAAC,IAAI,CAAiB;IAE7B;;;OAGG;IACiC,QAAQ,CAAC,EAAE,OAAO,CAAS;IAE/D,6FAA6F;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEjE,2FAA2F;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IAE7D;;;OAGG;IACM,OAAO,CAAC,cAAc,CAAK;IAEpC;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,MAAM,CAAyC;;IAQvC,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAc5E;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;IACI,wBAAwB,CAC7B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,EAAE,iBAAiB,GACzB,IAAI;IAIP;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,uBAAuB;YASjB,cAAc;IAgC5B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;cAKA,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
package/slider.js
CHANGED
|
@@ -1,80 +1,121 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
3
|
-
import { ref as
|
|
1
|
+
import { css as c, LitElement as u, html as d, nothing as h } from "lit";
|
|
2
|
+
import { property as a, state as v, customElement as m } from "lit/decorators.js";
|
|
3
|
+
import { ref as p } from "lit/directives/ref.js";
|
|
4
4
|
import { styleMap as _ } from "lit/directives/style-map.js";
|
|
5
|
-
import { SbbConnectedAbortController as
|
|
6
|
-
import { hostAttributes as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { SbbDisabledMixin as x } from "./core/mixins.js";
|
|
5
|
+
import { SbbConnectedAbortController as f } from "./core/controllers.js";
|
|
6
|
+
import { hostAttributes as g } from "./core/decorators.js";
|
|
7
|
+
import { EventEmitter as w, forwardEventToHost as y } from "./core/eventing.js";
|
|
8
|
+
import { SbbDisabledMixin as x, SbbFormAssociatedMixin as k } from "./core/mixins.js";
|
|
10
9
|
import "./icon.js";
|
|
11
|
-
const I =
|
|
12
|
-
var
|
|
13
|
-
for (var
|
|
14
|
-
(
|
|
15
|
-
return
|
|
10
|
+
const I = c`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%);--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)}@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)}`;
|
|
11
|
+
var M = Object.defineProperty, N = Object.getOwnPropertyDescriptor, t = (e, i, l, r) => {
|
|
12
|
+
for (var o = r > 1 ? void 0 : r ? N(i, l) : i, n = e.length - 1, b; n >= 0; n--)
|
|
13
|
+
(b = e[n]) && (o = (r ? b(i, l, o) : b(o)) || o);
|
|
14
|
+
return r && o && M(i, l, o), o;
|
|
16
15
|
};
|
|
17
|
-
let s = class extends x(
|
|
16
|
+
let s = class extends x(k(u)) {
|
|
18
17
|
constructor() {
|
|
19
|
-
super(
|
|
18
|
+
super(), this._min = "0", this._max = "100", this.readonly = !1, this._valueFraction = 0, this._didChange = new w(this, s.events.didChange, {
|
|
20
19
|
bubbles: !0,
|
|
21
20
|
cancelable: !0
|
|
22
|
-
}), this._abort = new
|
|
21
|
+
}), this._abort = new f(this), this.internals.role = "slider";
|
|
22
|
+
}
|
|
23
|
+
set value(e) {
|
|
24
|
+
this._isValidNumber(e) ? super.value = this._boundBetweenMinMax(e) : super.value = this._getDefaultValue(), this.internals.ariaValueNow = this.value, this._calculateValueFraction();
|
|
25
|
+
}
|
|
26
|
+
get value() {
|
|
27
|
+
return super.value;
|
|
28
|
+
}
|
|
29
|
+
set valueAsNumber(e) {
|
|
30
|
+
this.value = e == null ? void 0 : e.toString();
|
|
31
|
+
}
|
|
32
|
+
get valueAsNumber() {
|
|
33
|
+
return Number(this.value);
|
|
34
|
+
}
|
|
35
|
+
set min(e) {
|
|
36
|
+
this._isValidNumber(e) && (this._min = e, this.value = this._boundBetweenMinMax(this.value));
|
|
37
|
+
}
|
|
38
|
+
get min() {
|
|
39
|
+
return this._min;
|
|
40
|
+
}
|
|
41
|
+
set max(e) {
|
|
42
|
+
this._isValidNumber(e) && (this._max = e, this.value = this._boundBetweenMinMax(this.value));
|
|
43
|
+
}
|
|
44
|
+
get max() {
|
|
45
|
+
return this._max;
|
|
23
46
|
}
|
|
24
47
|
connectedCallback() {
|
|
25
48
|
super.connectedCallback();
|
|
26
49
|
const e = this._abort.signal;
|
|
27
|
-
this.addEventListener("keydown", (
|
|
50
|
+
this.addEventListener("keydown", (i) => this._handleKeydown(i), { signal: e }), this.value || (this.value = this._getDefaultValue());
|
|
28
51
|
}
|
|
29
52
|
willUpdate(e) {
|
|
30
|
-
super.willUpdate(e), e.has("
|
|
53
|
+
super.willUpdate(e), e.has("min") && (this.internals.ariaValueMin = this.min), e.has("max") && (this.internals.ariaValueMax = this.max), e.has("readonly") && (this.internals.ariaReadOnly = (!!this.readonly).toString());
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The reset value is the attribute value (the setup value). If not present, calculates the default.
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
formResetCallback() {
|
|
60
|
+
this.value = this.getAttribute("value") ?? this._getDefaultValue();
|
|
31
61
|
}
|
|
32
|
-
|
|
33
|
-
|
|
62
|
+
/**
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
formStateRestoreCallback(e, i) {
|
|
66
|
+
this.value = e;
|
|
34
67
|
}
|
|
35
68
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* the `min` and `max` values are used; if `value` is not provided, the default value is halfway between min and max
|
|
39
|
-
* (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value).
|
|
69
|
+
* If no value is provided, default is the middle point between min and max
|
|
70
|
+
* (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value)
|
|
40
71
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
72
|
+
_getDefaultValue() {
|
|
73
|
+
return (+this.min + (+this.max - +this.min) / 2).toString();
|
|
74
|
+
}
|
|
75
|
+
_isValidNumber(e) {
|
|
76
|
+
return !!e && !isNaN(Number(e));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Restrains the value between the min and max
|
|
80
|
+
*/
|
|
81
|
+
_boundBetweenMinMax(e) {
|
|
82
|
+
return Math.max(+this.min, Math.min(+this.max, +e)).toString();
|
|
83
|
+
}
|
|
84
|
+
_calculateValueFraction() {
|
|
85
|
+
const e = this.valueAsNumber, i = +this.min, l = +this.max, r = (e - i) / (l - i);
|
|
86
|
+
this._valueFraction = isNaN(r) ? 0 : Math.max(0, Math.min(1, r));
|
|
46
87
|
}
|
|
47
88
|
async _handleKeydown(e) {
|
|
48
|
-
if (e.key !== "Tab" && e.preventDefault(), !
|
|
89
|
+
if (e.key !== "Tab" && e.preventDefault(), !this.readonly) {
|
|
49
90
|
if (e.key === "Home")
|
|
50
|
-
this._rangeInput.value = this.
|
|
91
|
+
this._rangeInput.value = this.min;
|
|
51
92
|
else if (e.key === "End")
|
|
52
|
-
this._rangeInput.value = this.
|
|
93
|
+
this._rangeInput.value = this.max;
|
|
53
94
|
else if (e.key === "ArrowLeft" || e.key === "ArrowDown")
|
|
54
95
|
this._rangeInput.stepDown();
|
|
55
96
|
else if (e.key === "ArrowRight" || e.key === "ArrowUp")
|
|
56
97
|
this._rangeInput.stepUp();
|
|
57
98
|
else if (e.key === "PageDown")
|
|
58
|
-
this._rangeInput.stepDown((+this.
|
|
99
|
+
this._rangeInput.stepDown((+this.max - +this.min) / 10);
|
|
59
100
|
else if (e.key === "PageUp")
|
|
60
|
-
this._rangeInput.stepUp((+this.
|
|
101
|
+
this._rangeInput.stepUp((+this.max - +this.min) / 10);
|
|
61
102
|
else
|
|
62
103
|
return;
|
|
63
|
-
this.
|
|
104
|
+
this._rangeInput.dispatchEvent(
|
|
64
105
|
new InputEvent("input", { bubbles: !0, cancelable: !0, composed: !0 })
|
|
65
|
-
), this.
|
|
106
|
+
), this._rangeInput.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
66
107
|
}
|
|
67
108
|
}
|
|
68
109
|
/** Emits the change event. */
|
|
69
110
|
_emitChange(e) {
|
|
70
|
-
|
|
111
|
+
y(e, this), this._didChange.emit();
|
|
71
112
|
}
|
|
72
113
|
render() {
|
|
73
|
-
return
|
|
114
|
+
return d`
|
|
74
115
|
<div class="sbb-slider__height-container">
|
|
75
116
|
<div class="sbb-slider__wrapper">
|
|
76
117
|
<slot name="prefix">
|
|
77
|
-
${this.startIcon ?
|
|
118
|
+
${this.startIcon ? d`<sbb-icon name="${this.startIcon}"></sbb-icon>` : h}
|
|
78
119
|
</slot>
|
|
79
120
|
<div
|
|
80
121
|
class="sbb-slider__container"
|
|
@@ -82,17 +123,15 @@ let s = class extends x(v) {
|
|
|
82
123
|
>
|
|
83
124
|
<input
|
|
84
125
|
tabindex="-1"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
.valueAsNumber=${this.valueAsNumber || b}
|
|
90
|
-
value=${this.value || b}
|
|
126
|
+
min=${this.min}
|
|
127
|
+
max=${this.max}
|
|
128
|
+
?disabled=${this.disabled || this.formDisabled || this.readonly}
|
|
129
|
+
value=${this.value || h}
|
|
91
130
|
class="sbb-slider__range-input"
|
|
92
131
|
type="range"
|
|
93
132
|
@change=${(e) => this._emitChange(e)}
|
|
94
|
-
@input=${() => this.
|
|
95
|
-
${
|
|
133
|
+
@input=${() => this.value = this._rangeInput.value}
|
|
134
|
+
${p((e) => this._rangeInput = e)}
|
|
96
135
|
/>
|
|
97
136
|
<div class="sbb-slider__line">
|
|
98
137
|
<div class="sbb-slider__selected-line"></div>
|
|
@@ -100,7 +139,7 @@ let s = class extends x(v) {
|
|
|
100
139
|
<div class="sbb-slider__knob"></div>
|
|
101
140
|
</div>
|
|
102
141
|
<slot name="suffix">
|
|
103
|
-
${this.endIcon ?
|
|
142
|
+
${this.endIcon ? d`<sbb-icon name="${this.endIcon}"></sbb-icon>` : h}
|
|
104
143
|
</slot>
|
|
105
144
|
</div>
|
|
106
145
|
</div>
|
|
@@ -111,40 +150,34 @@ s.styles = I;
|
|
|
111
150
|
s.events = {
|
|
112
151
|
didChange: "didChange"
|
|
113
152
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
], s.prototype, "value",
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
], s.prototype, "valueAsNumber",
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
], s.prototype, "
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
], s.prototype, "
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
], s.prototype, "min", 2);
|
|
129
|
-
r([
|
|
130
|
-
t()
|
|
131
|
-
], s.prototype, "max", 2);
|
|
132
|
-
r([
|
|
133
|
-
t({ type: Boolean })
|
|
153
|
+
t([
|
|
154
|
+
a()
|
|
155
|
+
], s.prototype, "value", 1);
|
|
156
|
+
t([
|
|
157
|
+
a({ attribute: "value-as-number", type: Number })
|
|
158
|
+
], s.prototype, "valueAsNumber", 1);
|
|
159
|
+
t([
|
|
160
|
+
a()
|
|
161
|
+
], s.prototype, "min", 1);
|
|
162
|
+
t([
|
|
163
|
+
a()
|
|
164
|
+
], s.prototype, "max", 1);
|
|
165
|
+
t([
|
|
166
|
+
a({ type: Boolean })
|
|
134
167
|
], s.prototype, "readonly", 2);
|
|
135
|
-
|
|
136
|
-
|
|
168
|
+
t([
|
|
169
|
+
a({ attribute: "start-icon" })
|
|
137
170
|
], s.prototype, "startIcon", 2);
|
|
138
|
-
|
|
139
|
-
|
|
171
|
+
t([
|
|
172
|
+
a({ attribute: "end-icon" })
|
|
140
173
|
], s.prototype, "endIcon", 2);
|
|
141
|
-
|
|
142
|
-
|
|
174
|
+
t([
|
|
175
|
+
v()
|
|
143
176
|
], s.prototype, "_valueFraction", 2);
|
|
144
|
-
s =
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
177
|
+
s = t([
|
|
178
|
+
m("sbb-slider"),
|
|
179
|
+
g({
|
|
180
|
+
tabindex: "0"
|
|
148
181
|
})
|
|
149
182
|
], s);
|
|
150
183
|
export {
|
package/standard-theme.css
CHANGED
|
@@ -1697,24 +1697,56 @@ sup {
|
|
|
1697
1697
|
}
|
|
1698
1698
|
|
|
1699
1699
|
.sbb-step-list {
|
|
1700
|
-
|
|
1701
|
-
|
|
1700
|
+
/* stylelint-disable-next-line no-descending-specificity */
|
|
1701
|
+
}
|
|
1702
|
+
.sbb-step-list {
|
|
1703
|
+
--sbb-step-list-dimensions: 2.125rem;
|
|
1702
1704
|
--sbb-step-list-padding-inline: var(--sbb-spacing-responsive-xxs);
|
|
1703
|
-
--sbb-step-list-
|
|
1704
|
-
--sbb-step-list-
|
|
1705
|
-
--sbb-step-list-text-to-marker-block-offset: calc(
|
|
1706
|
-
0.5 *
|
|
1707
|
-
(
|
|
1708
|
-
var(--sbb-step-list-marker-dimensions) - var(--sbb-typo-line-height-body-text) *
|
|
1709
|
-
var(--sbb-text-font-size)
|
|
1710
|
-
)
|
|
1711
|
-
);
|
|
1712
|
-
--sbb-step-list-vertical-gap: var(--sbb-spacing-fixed-1x);
|
|
1705
|
+
--sbb-step-list-to-text-gap: var(--sbb-spacing-responsive-xxxs);
|
|
1706
|
+
--sbb-step-list-text-to-marker-block-offset: calc(0.5 * (var(--sbb-step-list-dimensions) - var(--sbb-typo-line-height-body-text) * var(--sbb-text-font-size)));
|
|
1713
1707
|
list-style: none;
|
|
1714
1708
|
margin: 0;
|
|
1715
1709
|
padding: 0;
|
|
1710
|
+
}
|
|
1711
|
+
@media (min-width: calc(52.5rem)) {
|
|
1712
|
+
.sbb-step-list:where(.sbb-text-xl) {
|
|
1713
|
+
--sbb-step-list-dimensions: 2.5625rem;
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
.sbb-step-list > li {
|
|
1717
|
+
position: relative;
|
|
1718
|
+
padding-inline: calc(var(--sbb-step-list-padding-inline) + var(--sbb-step-list-dimensions) + var(--sbb-step-list-to-text-gap)) var(--sbb-step-list-padding-inline);
|
|
1719
|
+
min-height: var(--sbb-step-list-dimensions);
|
|
1720
|
+
}
|
|
1721
|
+
.sbb-step-list > li::before {
|
|
1722
|
+
--sbb-text-font-size: var(--sbb-font-size-text-xxs);
|
|
1723
|
+
font-family: var(--sbb-typo-font-family);
|
|
1724
|
+
font-weight: normal;
|
|
1725
|
+
line-height: var(--sbb-typo-line-height-body-text);
|
|
1726
|
+
letter-spacing: var(--sbb-typo-letter-spacing-body-text);
|
|
1727
|
+
font-size: var(--sbb-text-font-size);
|
|
1728
|
+
font-weight: bold;
|
|
1729
|
+
position: absolute;
|
|
1730
|
+
height: var(--sbb-step-list-dimensions);
|
|
1731
|
+
width: var(--sbb-step-list-dimensions);
|
|
1732
|
+
margin-block-start: calc(-1 * var(--sbb-step-list-text-to-marker-block-offset));
|
|
1733
|
+
inset-inline-start: var(--sbb-step-list-padding-inline);
|
|
1734
|
+
border-radius: 50%;
|
|
1735
|
+
}
|
|
1736
|
+
.sbb-step-list > li + li {
|
|
1737
|
+
margin-block-start: var(--sbb-step-list-vertical-gap);
|
|
1738
|
+
}
|
|
1739
|
+
.sbb-step-list > li p {
|
|
1740
|
+
margin-block: 0;
|
|
1741
|
+
}
|
|
1742
|
+
.sbb-step-list > li > * + p {
|
|
1743
|
+
margin-block-start: var(--sbb-spacing-responsive-xxxs);
|
|
1744
|
+
}
|
|
1745
|
+
.sbb-step-list {
|
|
1746
|
+
--sbb-step-list-padding-block: var(--sbb-spacing-fixed-3x);
|
|
1747
|
+
--sbb-step-list-vertical-gap: var(--sbb-spacing-fixed-1x);
|
|
1748
|
+
--sbb-step-list-border-radius: var(--sbb-border-radius-4x);
|
|
1716
1749
|
counter-reset: steps;
|
|
1717
|
-
/* stylelint-disable-next-line no-descending-specificity */
|
|
1718
1750
|
}
|
|
1719
1751
|
.sbb-step-list:where(.sbb-text-s) {
|
|
1720
1752
|
--sbb-step-list-padding-block: var(--sbb-spacing-fixed-4x);
|
|
@@ -1722,18 +1754,20 @@ sup {
|
|
|
1722
1754
|
.sbb-step-list:where(.sbb-text-m, .sbb-text-l, .sbb-text-xl) {
|
|
1723
1755
|
--sbb-step-list-padding-block: var(--sbb-spacing-fixed-5x);
|
|
1724
1756
|
}
|
|
1725
|
-
@media (min-width: calc(52.5rem)) {
|
|
1726
|
-
.sbb-step-list:where(.sbb-text-xl) {
|
|
1727
|
-
--sbb-step-list-marker-dimensions: 2.5625rem;
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
1757
|
.sbb-step-list > li {
|
|
1731
|
-
position: relative;
|
|
1732
1758
|
counter-increment: steps;
|
|
1733
1759
|
background-color: var(--sbb-color-milk);
|
|
1734
1760
|
padding-block: calc(var(--sbb-step-list-padding-block) + var(--sbb-step-list-text-to-marker-block-offset)) var(--sbb-step-list-padding-block);
|
|
1735
|
-
padding-inline: calc(var(--sbb-step-list-padding-inline) + var(--sbb-step-list-
|
|
1736
|
-
min-height: calc(var(--sbb-step-list-
|
|
1761
|
+
padding-inline: calc(var(--sbb-step-list-padding-inline) + var(--sbb-step-list-dimensions) + var(--sbb-step-list-to-text-gap)) var(--sbb-step-list-padding-inline);
|
|
1762
|
+
min-height: calc(var(--sbb-step-list-dimensions) + 2 * var(--sbb-step-list-padding-block));
|
|
1763
|
+
}
|
|
1764
|
+
.sbb-step-list > li::before {
|
|
1765
|
+
content: counter(steps);
|
|
1766
|
+
display: flex;
|
|
1767
|
+
align-items: center;
|
|
1768
|
+
justify-content: center;
|
|
1769
|
+
border: var(--sbb-border-width-1x) solid var(--sbb-color-cement);
|
|
1770
|
+
color: var(--sbb-color-charcoal);
|
|
1737
1771
|
}
|
|
1738
1772
|
.sbb-step-list > li:first-of-type {
|
|
1739
1773
|
border-start-start-radius: var(--sbb-step-list-border-radius);
|
|
@@ -1743,7 +1777,30 @@ sup {
|
|
|
1743
1777
|
border-end-start-radius: var(--sbb-step-list-border-radius);
|
|
1744
1778
|
border-end-end-radius: var(--sbb-step-list-border-radius);
|
|
1745
1779
|
}
|
|
1746
|
-
|
|
1780
|
+
|
|
1781
|
+
.sbb-icon-list {
|
|
1782
|
+
/* stylelint-disable-next-line no-descending-specificity */
|
|
1783
|
+
}
|
|
1784
|
+
.sbb-icon-list {
|
|
1785
|
+
--sbb-icon-list-dimensions: 2.125rem;
|
|
1786
|
+
--sbb-icon-list-padding-inline: var(--sbb-spacing-responsive-xxs);
|
|
1787
|
+
--sbb-icon-list-to-text-gap: var(--sbb-spacing-responsive-xxxs);
|
|
1788
|
+
--sbb-icon-list-text-to-marker-block-offset: calc(0.5 * (var(--sbb-icon-list-dimensions) - var(--sbb-typo-line-height-body-text) * var(--sbb-text-font-size)));
|
|
1789
|
+
list-style: none;
|
|
1790
|
+
margin: 0;
|
|
1791
|
+
padding: 0;
|
|
1792
|
+
}
|
|
1793
|
+
@media (min-width: calc(52.5rem)) {
|
|
1794
|
+
.sbb-icon-list:where(.sbb-text-xl) {
|
|
1795
|
+
--sbb-icon-list-dimensions: 2.5625rem;
|
|
1796
|
+
}
|
|
1797
|
+
}
|
|
1798
|
+
.sbb-icon-list > li {
|
|
1799
|
+
position: relative;
|
|
1800
|
+
padding-inline: calc(var(--sbb-icon-list-padding-inline) + var(--sbb-icon-list-dimensions) + var(--sbb-icon-list-to-text-gap)) var(--sbb-icon-list-padding-inline);
|
|
1801
|
+
min-height: var(--sbb-icon-list-dimensions);
|
|
1802
|
+
}
|
|
1803
|
+
.sbb-icon-list > li::before {
|
|
1747
1804
|
--sbb-text-font-size: var(--sbb-font-size-text-xxs);
|
|
1748
1805
|
font-family: var(--sbb-typo-font-family);
|
|
1749
1806
|
font-weight: normal;
|
|
@@ -1751,28 +1808,37 @@ sup {
|
|
|
1751
1808
|
letter-spacing: var(--sbb-typo-letter-spacing-body-text);
|
|
1752
1809
|
font-size: var(--sbb-text-font-size);
|
|
1753
1810
|
font-weight: bold;
|
|
1754
|
-
content: counter(steps);
|
|
1755
1811
|
position: absolute;
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
width: var(--sbb-step-list-marker-dimensions);
|
|
1761
|
-
margin-block-start: calc(-1 * var(--sbb-step-list-text-to-marker-block-offset));
|
|
1762
|
-
inset-inline-start: var(--sbb-step-list-padding-inline);
|
|
1763
|
-
border: var(--sbb-border-width-1x) solid var(--sbb-color-cement);
|
|
1812
|
+
height: var(--sbb-icon-list-dimensions);
|
|
1813
|
+
width: var(--sbb-icon-list-dimensions);
|
|
1814
|
+
margin-block-start: calc(-1 * var(--sbb-icon-list-text-to-marker-block-offset));
|
|
1815
|
+
inset-inline-start: var(--sbb-icon-list-padding-inline);
|
|
1764
1816
|
border-radius: 50%;
|
|
1765
|
-
color: var(--sbb-color-charcoal);
|
|
1766
1817
|
}
|
|
1767
|
-
.sbb-
|
|
1768
|
-
margin-block-start: var(--sbb-
|
|
1818
|
+
.sbb-icon-list > li + li {
|
|
1819
|
+
margin-block-start: var(--sbb-icon-list-vertical-gap);
|
|
1769
1820
|
}
|
|
1770
|
-
.sbb-
|
|
1821
|
+
.sbb-icon-list > li p {
|
|
1771
1822
|
margin-block: 0;
|
|
1772
1823
|
}
|
|
1773
|
-
.sbb-
|
|
1824
|
+
.sbb-icon-list > li > * + p {
|
|
1774
1825
|
margin-block-start: var(--sbb-spacing-responsive-xxxs);
|
|
1775
1826
|
}
|
|
1827
|
+
.sbb-icon-list {
|
|
1828
|
+
--sbb-icon-list-marker-icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="%23000" fill-rule="evenodd" d="M3 12a9 9 0 0 1 9-9 9 9 0 0 1 9 9 9 9 0 0 1-9 9 9 9 0 0 1-9-9m9-10C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-1.104 13.305 5-6.5-.792-.61-4.69 6.096-2.102-1.681-.624.78 2.5 2 .398.319z" clip-rule="evenodd"></path></svg>');
|
|
1829
|
+
--sbb-icon-list-marker-icon-color: currentcolor;
|
|
1830
|
+
--sbb-icon-list-vertical-gap: var(--sbb-spacing-fixed-2x);
|
|
1831
|
+
--sbb-icon-list-dimensions: var(--sbb-size-icon-ui-small);
|
|
1832
|
+
--sbb-icon-list-to-text-gap: var(--sbb-spacing-fixed-2x);
|
|
1833
|
+
}
|
|
1834
|
+
.sbb-icon-list > li::before {
|
|
1835
|
+
content: "";
|
|
1836
|
+
background-color: var(--sbb-icon-list-marker-icon-color);
|
|
1837
|
+
mask-image: var(--sbb-icon-list-marker-icon);
|
|
1838
|
+
mask-repeat: no-repeat;
|
|
1839
|
+
mask-position: center;
|
|
1840
|
+
mask-size: 100%;
|
|
1841
|
+
}
|
|
1776
1842
|
|
|
1777
1843
|
.sbb-table,
|
|
1778
1844
|
.sbb-table-m,
|