@sbb-esta/lyne-elements 5.1.0 → 5.2.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/action-group.pure.js +1 -1
- package/alert.pure.js +14 -14
- package/breadcrumb.pure.js +3 -3
- package/calendar.pure.js +67 -67
- package/carousel/_carousel.global.scss +6 -0
- package/carousel.pure.js +1 -1
- package/clock.pure.js +1 -1
- package/core/styles/_theme.scss +1 -0
- package/core.js +2 -2
- package/custom-elements.json +99 -67
- package/date-input.pure.js +1 -1
- package/development/action-group.pure.js +1 -1
- package/development/alert.pure.js +14 -14
- package/development/breadcrumb.pure.js +3 -3
- package/development/calendar.pure.js +67 -67
- package/development/carousel.pure.js +1 -1
- package/development/clock.pure.js +15 -17
- package/development/core.js +2 -2
- package/development/date-input.pure.js +15 -7
- package/development/expansion-panel.pure.js +6 -6
- package/development/file-selector.pure.js +7 -3
- package/development/image.pure.js +8 -8
- package/development/map-container.pure.js +8 -8
- package/development/mini-calendar.pure.js +1 -1
- package/development/notification.pure.js +12 -9
- package/development/option.pure.js +11 -11
- package/development/paginator.pure.js +18 -18
- package/development/signet.pure.js +17 -17
- package/development/stepper/step/step.component.d.ts +0 -2
- package/development/stepper/stepper/stepper.component.d.ts +2 -2
- package/development/stepper.pure.js +24 -17
- package/development/tabs.pure.js +4 -4
- package/development/teaser.pure.js +1 -1
- package/development/time-input.pure.js +10 -6
- package/development/timetable-form.pure.js +3 -3
- package/development/timetable-occupancy.pure.js +22 -22
- package/development/toast.pure.js +6 -6
- package/development/tooltip.pure.js +4 -2
- package/development/train.pure.js +29 -29
- package/development/visual-checkbox.pure.js +13 -13
- package/expansion-panel.pure.js +6 -6
- package/file-selector.pure.js +2 -2
- package/image.pure.js +8 -8
- package/lean-off-brand-theme.css +39 -1
- package/lean-safety-theme.css +39 -1
- package/lean-theme.css +39 -1
- package/map-container.pure.js +8 -8
- package/mini-calendar.pure.js +1 -1
- package/notification.pure.js +12 -9
- package/off-brand-theme.css +39 -1
- package/option.pure.js +11 -11
- package/package.json +1 -1
- package/paginator.pure.js +18 -18
- package/safety-theme.css +39 -1
- package/signet.pure.js +17 -17
- package/standard-theme.css +39 -1
- package/stepper.pure.js +3 -3
- package/table/_table.global.scss +46 -1
- package/tabs.pure.js +4 -4
- package/teaser/_teaser.global.scss +4 -0
- package/teaser.pure.js +1 -1
- package/time-input.pure.js +1 -1
- package/timetable-form.pure.js +3 -3
- package/timetable-occupancy.pure.js +22 -22
- package/toast.pure.js +6 -6
- package/tooltip.pure.js +3 -3
- package/train.pure.js +29 -29
- package/visual-checkbox.pure.js +13 -13
|
@@ -47,7 +47,7 @@ var SbbStepLabelElement = class extends SbbIconNameMixin(SbbDisabledMixin(SbbBut
|
|
|
47
47
|
this._previousSize = null;
|
|
48
48
|
this.addEventListener?.("click", () => {
|
|
49
49
|
const stepper = this.stepper;
|
|
50
|
-
if (stepper && this.step && this._isNotDeactivatedByLinearMode(this.step)) stepper.selected = this.step;
|
|
50
|
+
if (stepper && this.step && this._isNotDeactivatedByLinearMode(this.step) && !this.disabled) stepper.selected = this.step;
|
|
51
51
|
});
|
|
52
52
|
this.addController(new SbbPropertyWatcherController(this, () => this.stepper, {
|
|
53
53
|
orientation: (s) => {
|
|
@@ -246,14 +246,8 @@ var SbbStepElement = class extends SbbElement {
|
|
|
246
246
|
/** Watches for clicked elements with `sbb-stepper-next` or `sbb-stepper-previous` attributes. */
|
|
247
247
|
_handleClick(event) {
|
|
248
248
|
const composedPathElements = event.composedPath().filter((el) => el instanceof window.HTMLElement);
|
|
249
|
-
if (composedPathElements.some((el) =>
|
|
250
|
-
else if (composedPathElements.some((el) =>
|
|
251
|
-
}
|
|
252
|
-
_isGoNextElement(element) {
|
|
253
|
-
return element.hasAttribute("sbb-stepper-next") && !element.hasAttribute("disabled");
|
|
254
|
-
}
|
|
255
|
-
_isGoPreviousElement(element) {
|
|
256
|
-
return element.hasAttribute("sbb-stepper-previous") && !element.hasAttribute("disabled");
|
|
249
|
+
if (composedPathElements.some((el) => el.hasAttribute("sbb-stepper-next"))) this.stepper?.next();
|
|
250
|
+
else if (composedPathElements.some((el) => el.hasAttribute("sbb-stepper-previous"))) this.stepper?.previous();
|
|
257
251
|
}
|
|
258
252
|
_onStepElementResize() {
|
|
259
253
|
if (!this.matches(":is(:state(selected),[state--selected])")) return;
|
|
@@ -572,13 +566,25 @@ let SbbStepperElement = (() => {
|
|
|
572
566
|
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
573
567
|
this.addEventListener?.("resizechange", (e) => this._onSelectedStepResize(e));
|
|
574
568
|
}
|
|
575
|
-
/** Selects the next step. */
|
|
569
|
+
/** Selects the next enabled step. If no available step is found, it simply exits. */
|
|
576
570
|
next() {
|
|
577
|
-
if (this.selectedIndex !== null)
|
|
571
|
+
if (this.selectedIndex !== null) for (let i = this.selectedIndex + 1; i < this.steps.length; i++) {
|
|
572
|
+
const step = this.steps[i];
|
|
573
|
+
if (this._isSelectable(step)) {
|
|
574
|
+
this._select(step);
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
578
|
}
|
|
579
|
-
/** Selects the previous step. */
|
|
579
|
+
/** Selects the previous enabled step. If no available step is found, it simply exits. */
|
|
580
580
|
previous() {
|
|
581
|
-
if (this.selectedIndex !== null)
|
|
581
|
+
if (this.selectedIndex !== null) for (let i = this.selectedIndex - 1; i >= 0; i--) {
|
|
582
|
+
const step = this.steps[i];
|
|
583
|
+
if (this._isSelectable(step)) {
|
|
584
|
+
this._select(step);
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
582
588
|
}
|
|
583
589
|
/** Resets the form in which the stepper is nested or every form of each step, if any. */
|
|
584
590
|
reset() {
|
|
@@ -599,17 +605,18 @@ let SbbStepperElement = (() => {
|
|
|
599
605
|
} else return false;
|
|
600
606
|
}
|
|
601
607
|
_select(step) {
|
|
602
|
-
if (!
|
|
608
|
+
if (!step || step === this.selected) return;
|
|
603
609
|
const currentIndex = this.selectedIndex;
|
|
604
610
|
const currentStep = this.selected;
|
|
611
|
+
const stepIndex = this.steps.indexOf(step);
|
|
605
612
|
const validatePayload = {
|
|
606
613
|
currentIndex,
|
|
607
614
|
currentStep,
|
|
608
|
-
nextIndex:
|
|
609
|
-
nextStep:
|
|
615
|
+
nextIndex: stepIndex >= 0 ? stepIndex : null,
|
|
616
|
+
nextStep: step
|
|
610
617
|
};
|
|
611
618
|
if (this.selected && !this.selected["validate"](validatePayload)) return;
|
|
612
|
-
|
|
619
|
+
currentStep?.["deselect"]();
|
|
613
620
|
step["select"]();
|
|
614
621
|
/** @internal only to provide double entry in docs. It is a public event! */
|
|
615
622
|
this.dispatchEvent(new SbbStepChangeEvent({
|
package/development/tabs.pure.js
CHANGED
|
@@ -299,10 +299,10 @@ let SbbTabGroupElement = (() => {
|
|
|
299
299
|
<slot name="tab-bar" @slotchange=${this._onLabelSlotChange}></slot>
|
|
300
300
|
</div>
|
|
301
301
|
${!this.fixedHeight ? html`
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
302
|
+
<div class="sbb-tab-group-content">
|
|
303
|
+
<slot @slotchange=${this._onContentSlotChange}></slot>
|
|
304
|
+
</div>
|
|
305
|
+
` : html`<slot @slotchange=${this._onContentSlotChange}></slot>`}
|
|
306
306
|
`;
|
|
307
307
|
}
|
|
308
308
|
};
|
|
@@ -5,7 +5,7 @@ import { html } from "lit/static-html.js";
|
|
|
5
5
|
import { SbbLinkBaseElement, screenReaderOnlyStyles } from "./core.js";
|
|
6
6
|
|
|
7
7
|
//#region src/elements/teaser/teaser.scss?inline
|
|
8
|
-
var teaser_default = "@charset \"UTF-8\";\n:host {\n --_sbb-teaser-forced-colors-inset: calc(-1 * var(--sbb-focus-outline-offset));\n --_sbb-teaser-forced-colors-outline-offset: calc(2 * var(--sbb-focus-outline-offset));\n --_sbb-teaser-forced-colors-border-radius: calc(\n var(--sbb-teaser-border-radius) + var(--sbb-focus-outline-offset)\n );\n display: inline-block;\n outline: none !important;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-teaser-description-color: LinkText;\n --sbb-title-color: LinkText !important;\n }\n}\n\n:host([alignment=after]) {\n --sbb-teaser-align-items: start;\n}\n\n:host([alignment=below]) {\n --sbb-teaser-flex-direction: column;\n --sbb-teaser-align-items: baseline;\n --sbb-teaser-gap: var(--sbb-spacing-fixed-3x);\n}\n\n@media (any-hover: hover) {\n :host(:hover) {\n --sbb-teaser-scale: var(--sbb-teaser-scale-hover);\n }\n}\n.sbb-teaser__wrapper {\n display: flex;\n position: relative;\n cursor: var(--sbb-cursor-pointer);\n}\n.sbb-teaser__wrapper::before {\n content: \"\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-teaser {\n text-decoration: none;\n position: absolute;\n inset: 0;\n}\n.sbb-teaser:focus-visible {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n border-radius: var(--sbb-teaser-border-radius);\n}\n@media (forced-colors: active) {\n .sbb-teaser:focus-visible {\n outline-offset: var(--_sbb-teaser-forced-colors-outline-offset);\n }\n}\n@media (forced-colors: active) {\n .sbb-teaser::before {\n content: \"\";\n position: absolute;\n inset: var(--_sbb-teaser-forced-colors-inset);\n pointer-events: none;\n border-radius: var(--_sbb-teaser-forced-colors-border-radius);\n border: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n.sbb-teaser__container {\n display: flex;\n flex-flow: var(--sbb-teaser-flex-direction) nowrap;\n align-items: var(--sbb-teaser-align-items);\n gap: var(--sbb-teaser-gap);\n max-width: 100%;\n width: 100%;\n pointer-events: none;\n}\n\n.sbb-teaser__text {\n color: var(--sbb-teaser-description-color);\n font-size: var(--sbb-teaser-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n overflow: hidden;\n max-width: 100%;\n}\n\n::slotted([slot=image]) {\n display: block;\n width: var(--sbb-teaser-image-width);\n}\n\n.sbb-teaser__image-wrapper {\n flex-shrink: 0;\n overflow: hidden;\n border-radius: var(--sbb-teaser-border-radius);\n transition: box-shadow var(--sbb-teaser-image-animation-duration) var(--sbb-animation-easing);\n}\n:host(:not(:is(:state(slotted-image),[state--slotted-image]))) .sbb-teaser__image-wrapper {\n display: none;\n}\n@media (any-hover: hover) {\n :host(:hover) .sbb-teaser__image-wrapper {\n box-shadow: var(--sbb-box-shadow-level-9-hard);\n }\n}\n\n.sbb-teaser__description {\n display: inline-block;\n margin: 0;\n padding: 0;\n}\n\n::slotted(sbb-chip-label) {\n display: flex;\n width: fit-content;\n max-width: 100%;\n margin-block-end: var(--sbb-spacing-fixed-1x);\n}\n\n::slotted(sbb-title) {\n margin-block: 0;\n}\n";
|
|
8
|
+
var teaser_default = "@charset \"UTF-8\";\n:host {\n --_sbb-teaser-forced-colors-inset: calc(-1 * var(--sbb-focus-outline-offset));\n --_sbb-teaser-forced-colors-outline-offset: calc(2 * var(--sbb-focus-outline-offset));\n --_sbb-teaser-forced-colors-border-radius: calc(\n var(--sbb-teaser-border-radius) + var(--sbb-focus-outline-offset)\n );\n display: inline-block;\n outline: none !important;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-teaser-description-color: LinkText;\n --sbb-title-color: LinkText !important;\n }\n}\n\n:host([alignment=after]) {\n --sbb-teaser-align-items: start;\n}\n\n:host([alignment=below]) {\n --sbb-teaser-flex-direction: column;\n --sbb-teaser-align-items: baseline;\n --sbb-teaser-gap: var(--sbb-spacing-fixed-3x);\n}\n\n@media (any-hover: hover) {\n :host(:hover) {\n --sbb-teaser-scale: var(--sbb-teaser-scale-hover);\n }\n}\n.sbb-teaser__wrapper {\n display: flex;\n position: relative;\n cursor: var(--sbb-cursor-pointer);\n}\n.sbb-teaser__wrapper::before {\n content: \"\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-teaser {\n text-decoration: none;\n position: absolute;\n inset: 0;\n}\n.sbb-teaser:focus-visible {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n border-radius: var(--sbb-teaser-border-radius);\n}\n@media (forced-colors: active) {\n .sbb-teaser:focus-visible {\n outline-offset: var(--_sbb-teaser-forced-colors-outline-offset);\n }\n}\n@media (forced-colors: active) {\n .sbb-teaser::before {\n content: \"\";\n position: absolute;\n inset: var(--_sbb-teaser-forced-colors-inset);\n pointer-events: none;\n border-radius: var(--_sbb-teaser-forced-colors-border-radius);\n border: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n.sbb-teaser__container {\n display: flex;\n flex-flow: var(--sbb-teaser-flex-direction) nowrap;\n align-items: var(--sbb-teaser-align-items);\n gap: var(--sbb-teaser-gap);\n max-width: 100%;\n width: 100%;\n pointer-events: none;\n}\n\n.sbb-teaser__text {\n color: var(--sbb-teaser-description-color);\n font-size: var(--sbb-teaser-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n overflow: hidden;\n max-width: 100%;\n}\n\n::slotted([slot=image]) {\n display: block;\n width: var(--sbb-teaser-image-width);\n}\n\n.sbb-teaser__image-wrapper {\n flex-shrink: 0;\n overflow: hidden;\n border-radius: var(--sbb-teaser-border-radius);\n transition: box-shadow var(--sbb-teaser-image-animation-duration) var(--sbb-animation-easing);\n max-width: 100%;\n}\n:host(:not(:is(:state(slotted-image),[state--slotted-image]))) .sbb-teaser__image-wrapper {\n display: none;\n}\n@media (any-hover: hover) {\n :host(:hover) .sbb-teaser__image-wrapper {\n box-shadow: var(--sbb-box-shadow-level-9-hard);\n }\n}\n\n.sbb-teaser__description {\n display: inline-block;\n margin: 0;\n padding: 0;\n}\n\n::slotted(sbb-chip-label) {\n display: flex;\n width: fit-content;\n max-width: 100%;\n margin-block-end: var(--sbb-spacing-fixed-1x);\n}\n\n::slotted(sbb-title) {\n margin-block: 0;\n}\n";
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/elements/teaser/teaser.component.ts
|
|
@@ -154,12 +154,16 @@ let SbbTimeInputElement = (() => {
|
|
|
154
154
|
validate() {
|
|
155
155
|
super.validate();
|
|
156
156
|
if (!this.value) this._removeValidityErrors();
|
|
157
|
-
else if (!this._valueAsTime)
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
else if (!this._valueAsTime) {
|
|
158
|
+
this._removeValidityErrors("badInput");
|
|
159
|
+
this.setValidityFlag("badInput", i18nTimeInvalid[this.language.current]);
|
|
160
|
+
} else if (!this._isTimeValid(this._valueAsTime)) {
|
|
161
|
+
this._removeValidityErrors("rangeOverflow");
|
|
162
|
+
this.setValidityFlag("rangeOverflow", i18nTimeMax[this.language.current]);
|
|
163
|
+
} else this._removeValidityErrors();
|
|
164
|
+
}
|
|
165
|
+
_removeValidityErrors(except) {
|
|
166
|
+
["badInput", "rangeOverflow"].filter((v) => v !== except).forEach((f) => this.removeValidityFlag(f));
|
|
163
167
|
}
|
|
164
168
|
/** Checks if values of hours and minutes are possible, to avoid non-existent times. */
|
|
165
169
|
_isTimeValid(time) {
|
|
@@ -60,9 +60,9 @@ var SbbTimetableFormFieldElement = class extends SbbFormFieldElement {
|
|
|
60
60
|
render() {
|
|
61
61
|
return html`
|
|
62
62
|
${this._routeIcon ? html` <sbb-icon
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
name="route-circle-start-small"
|
|
64
|
+
class="sbb-timetable-form-field__start-route-icon"
|
|
65
|
+
></sbb-icon>` : html` <span class="sbb-timetable-form-field__via-route-icon"></span> `}
|
|
66
66
|
${super.render()}
|
|
67
67
|
`;
|
|
68
68
|
}
|
|
@@ -97,28 +97,28 @@ let SbbTimetableOccupancyElement = (() => {
|
|
|
97
97
|
}
|
|
98
98
|
render() {
|
|
99
99
|
return html` ${(this.firstClassOccupancy || this.secondClassOccupancy) && html`
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
100
|
+
<ul
|
|
101
|
+
class="sbb-timetable-occupancy__list"
|
|
102
|
+
role=${!this.firstClassOccupancy || !this.secondClassOccupancy ? "presentation" : nothing}
|
|
103
|
+
>
|
|
104
|
+
${[this.firstClassOccupancy, this.secondClassOccupancy].map((occupancy, index) => occupancy && html`
|
|
105
|
+
<li class="sbb-timetable-occupancy__list-item">
|
|
106
|
+
<span class="sbb-timetable-occupancy__list-item-class" aria-hidden="true">
|
|
107
|
+
${this.firstClassOccupancy && index === 0 ? "1" : "2"}.
|
|
108
|
+
</span>
|
|
109
|
+
<span class="sbb-screen-reader-only">
|
|
110
|
+
${`${i18nClass[this.firstClassOccupancy && index === 0 ? "first" : "second"][this._language.current]}.`}
|
|
111
|
+
</span>
|
|
112
|
+
<sbb-timetable-occupancy-icon
|
|
113
|
+
class="sbb-timetable-occupancy__list-item-icon"
|
|
114
|
+
?negative=${this.negative}
|
|
115
|
+
.occupancy=${occupancy}
|
|
116
|
+
>
|
|
117
|
+
</sbb-timetable-occupancy-icon>
|
|
118
|
+
</li>
|
|
119
|
+
`)}
|
|
120
|
+
</ul>
|
|
121
|
+
`}`;
|
|
122
122
|
}
|
|
123
123
|
};
|
|
124
124
|
})();
|
|
@@ -250,12 +250,12 @@ let SbbToastElement = (() => {
|
|
|
250
250
|
?negative=${this._isLightMode()}
|
|
251
251
|
></sbb-divider>
|
|
252
252
|
${!this.readOnly ? html`<sbb-transparent-button
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
253
|
+
class="sbb-toast__close-button"
|
|
254
|
+
icon-name="cross-small"
|
|
255
|
+
?negative=${this._isLightMode()}
|
|
256
|
+
aria-label=${i18nCloseAlert[this._language.current]}
|
|
257
|
+
sbb-toast-close
|
|
258
|
+
></sbb-transparent-button>` : nothing}
|
|
259
259
|
</div>
|
|
260
260
|
</div>
|
|
261
261
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { html, isServer, unsafeCSS } from "lit";
|
|
3
3
|
import { property } from "lit/decorators.js";
|
|
4
|
-
import { SbbDisabledMixin, SbbEscapableOverlayController, SbbOpenCloseBaseElement, SbbOverlayPositionController, appendAriaElements, idReference, isAndroid, isIOS, isZeroAnimationDuration, popoverResetStyles, queueDomContentLoaded, readConfig, removeAriaElements, sbbOverlayOutsidePointerEventListener } from "./core.js";
|
|
4
|
+
import { SbbDisabledMixin, SbbEscapableOverlayController, SbbOpenCloseBaseElement, SbbOverlayPositionController, appendAriaElements, idReference, isAndroid, isIOS, isZeroAnimationDuration, popoverResetStyles, queueDomContentLoaded, readConfig, removeAriaElements, sbbInputModalityDetector, sbbOverlayOutsidePointerEventListener } from "./core.js";
|
|
5
5
|
|
|
6
6
|
//#region src/elements/tooltip/tooltip.scss?inline
|
|
7
7
|
var tooltip_default = ":host {\n --sbb-tooltip-max-width: min(\n 25rem,\n calc(100vw - var(--sbb-spacing-fixed-2x))\n );\n --sbb-tooltip-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n position-area: var(--sbb-overlay-position-area);\n position-try-fallbacks: var(--sbb-overlay-position-try-fallbacks);\n display: none;\n position: fixed;\n pointer-events: var(--sbb-tooltip-pointer-events, all);\n z-index: var(--sbb-tooltip-z-index, var(--sbb-overlay-default-z-index));\n animation-name: var(--sbb-tooltip-animation-name);\n animation-duration: var(--sbb-tooltip-animation-duration);\n animation-timing-function: var(--sbb-tooltip-animation-easing);\n font-size: var(--sbb-tooltip-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n --sbb-tooltip-animation-name: open;\n display: block;\n}\n\n:host(:is(:state(state-closing),[state--state-closing])) {\n --sbb-tooltip-animation-name: close;\n --sbb-tooltip-pointer-events: none;\n}\n\n:host(:is([data-position~=block-end], [data-position~=bottom], [data-position^=end])) {\n padding-block-start: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=block-start], [data-position~=top], [data-position^=start])) {\n padding-block-end: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=inline-start],\n[data-position~=inline-end],\n[data-position~=left],\n[data-position~=right],\n[data-position$=\" start\"],\n[data-position$=\" end\"])) {\n padding-inline: var(--sbb-tooltip-gap);\n}\n\n.sbb-tooltip {\n box-shadow: var(--sbb-box-shadow-level-5-soft);\n border: var(--sbb-border-width-1x) solid var(--sbb-tooltip-border-color);\n border-radius: var(--sbb-tooltip-border-radius);\n padding: var(--sbb-tooltip-padding);\n color: var(--sbb-tooltip-color);\n background-color: var(--sbb-tooltip-background-color);\n min-width: var(--sbb-tooltip-min-width);\n max-width: var(--sbb-tooltip-max-width);\n}\n\n@keyframes open {\n from {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n to {\n opacity: 1;\n translate: 0;\n }\n}\n@keyframes close {\n from {\n opacity: 1;\n translate: 0;\n }\n to {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n}\n";
|
|
@@ -334,7 +334,9 @@ let SbbTooltipElement = (() => {
|
|
|
334
334
|
if (!newTarget || newTarget !== this) this._delayedClose();
|
|
335
335
|
}, options);
|
|
336
336
|
trigger.addEventListener("blur", () => this.close(), options);
|
|
337
|
-
trigger.addEventListener("focus", () =>
|
|
337
|
+
trigger.addEventListener("focus", () => {
|
|
338
|
+
if (sbbInputModalityDetector.mostRecentModality === "keyboard") this._delayedOpen();
|
|
339
|
+
}, options);
|
|
338
340
|
}
|
|
339
341
|
trigger.addEventListener("touchstart", () => {
|
|
340
342
|
clearTimeout(this._longPressOpenTimeout);
|
|
@@ -243,18 +243,18 @@ let SbbTrainFormationElement = (() => {
|
|
|
243
243
|
render() {
|
|
244
244
|
return html`
|
|
245
245
|
${this._sectors.length && this._sectors[0].label !== void 0 ? html`<div class="sbb-train-formation__sectors" aria-hidden="true">
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
${this._sectors.map((aggregatedSector) => html`<span
|
|
247
|
+
class="sbb-train-formation__sector"
|
|
248
|
+
style=${styleMap({
|
|
249
249
|
"--sbb-train-formation-wagon-count": aggregatedSector.wagonCount,
|
|
250
250
|
"--sbb-train-formation-wagon-blocked-passage-count": aggregatedSector.blockedPassageCount
|
|
251
251
|
})}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
252
|
+
>
|
|
253
|
+
<span class="sbb-train-formation__sector-sticky-wrapper">
|
|
254
|
+
${`${aggregatedSector.wagonCount === 1 && aggregatedSector.label ? i18nSectorShort[this._language.current] : i18nSector[this._language.current]} ${aggregatedSector.label ? aggregatedSector.label : ""}`}
|
|
255
|
+
</span>
|
|
256
|
+
</span>`)}
|
|
257
|
+
</div>` : nothing}
|
|
258
258
|
|
|
259
259
|
<div class="sbb-train-formation__trains">
|
|
260
260
|
${this.renderList({
|
|
@@ -636,13 +636,13 @@ const SbbTrainWagonMixin = (superClass) => {
|
|
|
636
636
|
${this.label ? html$1`<li class="sbb-screen-reader-only">${labelString}</li>` : nothing}
|
|
637
637
|
${this.wagonClass && this.wagonType !== "closed" ? html$1`<li class="sbb-train-wagon__class">${wagonClassContent}</li>` : nothing}
|
|
638
638
|
${this.occupancy && this.wagonType !== "closed" ? html$1`<sbb-timetable-occupancy-icon
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
639
|
+
class="sbb-train-wagon__occupancy"
|
|
640
|
+
role="listitem"
|
|
641
|
+
occupancy=${this.occupancy}
|
|
642
|
+
></sbb-timetable-occupancy-icon>` : nothing}
|
|
643
643
|
${hasBlockedPassageEntry ? html$1`<li class="sbb-screen-reader-only">
|
|
644
|
-
|
|
645
|
-
|
|
644
|
+
${i18nBlockedPassage[blockedPassage][this._language.current]}
|
|
645
|
+
</li>` : nothing}
|
|
646
646
|
</ul>`, () => html$1`<div class="sbb-train-wagon__compartment">
|
|
647
647
|
<span class="sbb-screen-reader-only">
|
|
648
648
|
${`${this._wagonTypeLabel()}${this.sector ? `, ${sectorString}` : ""}`}
|
|
@@ -650,17 +650,17 @@ const SbbTrainWagonMixin = (superClass) => {
|
|
|
650
650
|
${this.label ? html$1`<span class="sbb-screen-reader-only">${labelString}</span>` : nothing}
|
|
651
651
|
${this.wagonClass && this.wagonType !== "closed" ? html$1`<span class="sbb-train-wagon__class">${wagonClassContent}</span>` : nothing}
|
|
652
652
|
${this.occupancy && this.wagonType !== "closed" ? html$1`<sbb-timetable-occupancy-icon
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
653
|
+
class="sbb-train-wagon__occupancy"
|
|
654
|
+
occupancy=${this.occupancy}
|
|
655
|
+
></sbb-timetable-occupancy-icon>` : nothing}
|
|
656
656
|
${hasBlockedPassageEntry ? html$1`<span class="sbb-screen-reader-only">
|
|
657
|
-
|
|
658
|
-
|
|
657
|
+
${i18nBlockedPassage[blockedPassage][this._language.current]}
|
|
658
|
+
</span>` : nothing}
|
|
659
659
|
</div> `)}
|
|
660
660
|
${wagonTypeToIconMap[this.wagonType] ? html$1`<sbb-icon
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
661
|
+
name=${wagonTypeToIconMap[this.wagonType]}
|
|
662
|
+
class="sbb-train-wagon__main-icon"
|
|
663
|
+
></sbb-icon>` : nothing}
|
|
664
664
|
<svg class="sbb-train-wagon__shape" viewBox="0 0 84 36" aria-hidden="true">
|
|
665
665
|
<path d=${path}></path>
|
|
666
666
|
<path
|
|
@@ -673,18 +673,18 @@ const SbbTrainWagonMixin = (superClass) => {
|
|
|
673
673
|
></path>
|
|
674
674
|
</svg>
|
|
675
675
|
${this.additionalAccessibilityText ? html$1`<span class="sbb-screen-reader-only"
|
|
676
|
-
|
|
677
|
-
|
|
676
|
+
>, ${this.additionalAccessibilityText}</span
|
|
677
|
+
>` : nothing}
|
|
678
678
|
<span
|
|
679
679
|
class="sbb-train-wagon__information-wrapper"
|
|
680
680
|
?hidden=${!this.listChildren.length && !this.label}
|
|
681
681
|
>
|
|
682
682
|
${this.label ? html$1`<span aria-hidden="true" class="sbb-train-wagon__label">${this.label}</span>` : nothing}
|
|
683
683
|
${this.label && this.listChildren.length ? html$1`<sbb-divider
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
684
|
+
orientation=${this.orientation === "vertical" ? "horizontal" : "vertical"}
|
|
685
|
+
aria-hidden="true"
|
|
686
|
+
class="sbb-train-wagon__label-divider"
|
|
687
|
+
></sbb-divider>` : nothing}
|
|
688
688
|
${this.renderList({
|
|
689
689
|
class: "sbb-train-wagon__attribute-icon-list",
|
|
690
690
|
ariaLabel: i18nAdditionalWagonInformationHeading[this._language.current]
|
|
@@ -118,19 +118,19 @@ let SbbVisualCheckboxElement = (() => {
|
|
|
118
118
|
render() {
|
|
119
119
|
return html`
|
|
120
120
|
${this.checked || this.indeterminate ? html`<svg
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
121
|
+
viewBox="0 0 24 24"
|
|
122
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
123
|
+
width="100%"
|
|
124
|
+
height="100%"
|
|
125
|
+
>
|
|
126
|
+
<path
|
|
127
|
+
fill="none"
|
|
128
|
+
d=${this.indeterminate ? "M9 12H15" : "M8 12.3304L10.4615 15L16 9"}
|
|
129
|
+
stroke-width="2"
|
|
130
|
+
stroke-linecap="round"
|
|
131
|
+
stroke-linejoin="round"
|
|
132
|
+
/>
|
|
133
|
+
</svg>` : nothing}
|
|
134
134
|
`;
|
|
135
135
|
}
|
|
136
136
|
constructor() {
|
package/expansion-panel.pure.js
CHANGED
|
@@ -6,12 +6,12 @@ import{html as e,nothing as t,unsafeCSS as n}from"lit";import{SbbButtonBaseEleme
|
|
|
6
6
|
<slot></slot>
|
|
7
7
|
</span>
|
|
8
8
|
${this.disabled?t:e`<span class="sbb-expansion-panel-header__toggle">
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
<sbb-icon
|
|
10
|
+
name="chevron-small-down-medium"
|
|
11
|
+
class="sbb-expansion-panel-header__toggle-icon"
|
|
12
|
+
>
|
|
13
|
+
</sbb-icon>
|
|
14
|
+
</span>`}
|
|
15
15
|
`}},b=`:host{--sbb-expansion-panel-animation-duration:var(--sbb-disable-animation-duration,var(--sbb-animation-duration-4x));--sbb-expansion-panel-border-color:var(--sbb-border-color-4-inverted);--sbb-expansion-panel-border-width:var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-color:var(--sbb-expansion-panel-border-color);--sbb-expansion-panel-border-block-start-width:var(--sbb-expansion-panel-border-width);--sbb-expansion-panel-start-end-radius:var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius:var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-end-radius:var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius:var(--sbb-expansion-panel-border-radius);background-color:var(--sbb-expansion-panel-background-color);border:var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);border-block-start-color:var(--sbb-expansion-panel-border-block-start-color);border-block-start-width:var(--sbb-expansion-panel-border-block-start-width);border-radius:var(--sbb-expansion-panel-start-start-radius) var(--sbb-expansion-panel-start-end-radius) var(--sbb-expansion-panel-end-end-radius) var(--sbb-expansion-panel-end-start-radius);background-clip:padding-box;display:block}:host([size=s]){--sbb-expansion-panel-title-gap:var(--sbb-expansion-panel-title-gap-s)}:host([size=l]){--sbb-expansion-panel-title-gap:var(--sbb-expansion-panel-title-gap-l)}:host(:not([size])){--sbb-expansion-panel-title-gap:var(--sbb-expansion-panel-title-gap-default)}@media (forced-colors:active){:host([disabled]){--sbb-expansion-panel-border-color:GrayText;--sbb-expansion-panel-border-block-start-color:GrayText}}:host([expanded]){--_sbb-expansion-panel-display-expanded:grid}:host(:is(:state(accordion),[state--accordion]):is(:state(accordion-first),[state--accordion-first])){--sbb-expansion-panel-start-end-radius:var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius:var(--sbb-expansion-panel-border-radius)}:host(:is(:state(accordion),[state--accordion]):not(:is(:state(accordion-first),[state--accordion-first]))){--sbb-expansion-panel-border-block-start-width:0;--sbb-expansion-panel-border-block-start-color:transparent;--sbb-expansion-panel-start-end-radius:0;--sbb-expansion-panel-start-start-radius:0}:host(:is(:state(accordion),[state--accordion]):is(:state(accordion-last),[state--accordion-last])){--sbb-expansion-panel-end-end-radius:var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius:var(--sbb-expansion-panel-border-radius)}:host(:is(:state(accordion),[state--accordion]):not(:is(:state(accordion-last),[state--accordion-last]))){--sbb-expansion-panel-end-end-radius:0;--sbb-expansion-panel-end-start-radius:0}:host([color=white]){--sbb-expansion-panel-background-color:var(--sbb-background-color-1);--sbb-expansion-panel-background-color-hover:var(--sbb-background-color-3)}:host([color=milk]){--sbb-expansion-panel-background-color:var(--sbb-background-color-3);--sbb-expansion-panel-background-color-hover:var(--sbb-background-color-1)}:host([borderless]){--sbb-expansion-panel-border-width:0;--sbb-expansion-panel-border-color:transparent;--sbb-expansion-panel-border-block-start-width:0;--sbb-expansion-panel-border-block-start-color:transparent}@media (forced-colors:active){:host([borderless]){--sbb-expansion-panel-border-width:var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-width:var(--sbb-expansion-panel-border-width)}}:host([borderless]:is(:state(accordion),[state--accordion]):not(:is(:state(accordion-first),[state--accordion-first]))){--sbb-expansion-panel-border-block-start-width:var(--sbb-spacing-fixed-1x)}@media (forced-colors:active){:host([borderless]:is(:state(accordion),[state--accordion]):not(:is(:state(accordion-first),[state--accordion-first]))){--sbb-expansion-panel-border-block-start-width:0}}:host(:not([disabled]):is(:state(toggle-hover),[state--toggle-hover])){background-color:var(--sbb-expansion-panel-background-color-hover)}@media (forced-colors:active){:host(:not([disabled]):is(:state(toggle-hover),[state--toggle-hover])){--sbb-expansion-panel-border-color:Highlight;--sbb-expansion-panel-border-block-start-color:Highlight}}.sbb-expansion-panel__header{margin:0}.sbb-expansion-panel__content-wrapper{display:var(--_sbb-expansion-panel-display-expanded,none);opacity:0;grid-template-rows:0fr}:host(:is(:state(state-opened),[state--state-opened])) .sbb-expansion-panel__content-wrapper{opacity:1;grid-template-rows:1fr}:host(:is(:state(state-opening),[state--state-opening])) .sbb-expansion-panel__content-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s, var(--sbb-expansion-panel-animation-duration)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-expansion-panel__content-wrapper{visibility:hidden;animation-name:close;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);display:grid}.sbb-expansion-panel__content{min-width:0;min-height:0}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{opacity:1;grid-template-rows:1fr}to{opacity:0;grid-template-rows:0fr}}
|
|
16
16
|
`;let x=0,S=(()=>{let r=a,i=[],o,s=[],c=[],f,g=[],_=[],v,y,S,C=[],w=[],T,E=[],D=[];return class extends r{static{let e=typeof Symbol==`function`&&Symbol.metadata?Object.create(r[Symbol.metadata]??null):void 0;o=[h({attribute:`title-level`})],f=[h({reflect:!0})],v=[h({reflect:!0,type:Boolean})],y=[h({reflect:!0,type:Boolean})],S=[l(),h({reflect:!0,type:Boolean})],T=[h({reflect:!0})],p(this,null,o,{kind:`accessor`,name:`titleLevel`,static:!1,private:!1,access:{has:e=>`titleLevel`in e,get:e=>e.titleLevel,set:(e,t)=>{e.titleLevel=t}},metadata:e},s,c),p(this,null,f,{kind:`accessor`,name:`color`,static:!1,private:!1,access:{has:e=>`color`in e,get:e=>e.color,set:(e,t)=>{e.color=t}},metadata:e},g,_),p(this,null,v,{kind:`setter`,name:`expanded`,static:!1,private:!1,access:{has:e=>`expanded`in e,set:(e,t)=>{e.expanded=t}},metadata:e},null,i),p(this,null,y,{kind:`setter`,name:`disabled`,static:!1,private:!1,access:{has:e=>`disabled`in e,set:(e,t)=>{e.disabled=t}},metadata:e},null,i),p(this,null,S,{kind:`accessor`,name:`borderless`,static:!1,private:!1,access:{has:e=>`borderless`in e,get:e=>e.borderless,set:(e,t)=>{e.borderless=t}},metadata:e},C,w),p(this,null,T,{kind:`accessor`,name:`size`,static:!1,private:!1,access:{has:e=>`size`in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:e},E,D),e&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e})}static{this.elementName=`sbb-expansion-panel`}static{this.styles=[n(b)]}static{this.events={beforeopen:`beforeopen`,open:`open`,beforeclose:`beforeclose`,close:`close`}}#e;get titleLevel(){return this.#e}set titleLevel(e){this.#e=e}#t;get color(){return this.#t}set color(e){this.#t=e}set expanded(e){this._expanded=e,this._onExpandedChange()}get expanded(){return this._expanded}set disabled(e){this._disabled=e,this._updateDisabledOnHeader(this._disabled)}get disabled(){return this._disabled}#n;get borderless(){return this.#n}set borderless(e){this.#n=e}#r;get size(){return this.#r}set size(e){this.#r=e}set _state(e){this._stateInternal&&this.internals.states.delete(`state-${this._stateInternal}`),this._stateInternal=e,this._stateInternal&&this.internals.states.add(`state-${this._stateInternal}`)}get _state(){return this._stateInternal}constructor(){super(),this.#e=(m(this,i),m(this,s,null)),this.#t=(m(this,c),m(this,g,`white`)),this._expanded=(m(this,_),!1),this._disabled=!1,this.#n=m(this,C,!1),this.#r=(m(this,w),m(this,E,null)),this._stateInternal=m(this,D),this._progressiveId=`-${++x}`,this._state=`closed`,this.addEventListener?.(`toggleexpanded`,e=>{e.target===this._headerRef&&this._toggleExpanded()})}connectedCallback(){super.connectedCallback(),this.toggleState(`accordion`,!!this.closest?.(`sbb-accordion`))}disconnectedCallback(){super.disconnectedCallback(),this.internals.states.delete(`accordion`)}_toggleExpanded(){this.expanded=!this.expanded}_onExpandedChange(){this._headerRef?.setAttribute(`aria-expanded`,String(this.expanded)),this._contentRef?.setAttribute(`aria-hidden`,String(!this.expanded)),this.expanded?this._open():this._state===`opened`&&this._close()}_open(){this._state=`opening`,this.dispatchEvent(new Event(`beforeopen`)),(!this.hasUpdated||this._isZeroAnimationDuration())&&this._handleOpening()}_close(){this._state=`closing`,this.dispatchEvent(new Event(`beforeclose`)),this._isZeroAnimationDuration()&&this._handleClosing()}_isZeroAnimationDuration(){return u(this,`--sbb-expansion-panel-animation-duration`)}_handleOpening(){this._state=`opened`,this.dispatchEvent(new Event(`open`))}_handleClosing(){this._state=`closed`,this.dispatchEvent(new Event(`close`))}_updateDisabledOnHeader(e){this._headerRef&&(this._headerRef.disabled=e)}_handleSlotchange(){let e=Array.from(this.children??[]),t=e.find(e=>e.localName===`sbb-expansion-panel-header`),n=e.find(e=>e.localName===`sbb-expansion-panel-content`);this._headerRef===t&&this._contentRef===n||(t&&this._headerRef!==t&&(t.id||=`sbb-expansion-panel-header${this._progressiveId}`,t.setAttribute(`aria-expanded`,String(this.expanded)),t.toggleAttribute(`disabled`,this.disabled)),n&&this._contentRef!==n&&(n.id||=`sbb-expansion-panel-content${this._progressiveId}`,n.setAttribute(`aria-hidden`,String(!this.expanded))),this._headerRef=t,this._contentRef=n,this._headerRef&&this._contentRef&&(this._headerRef.setAttribute(`aria-controls`,this._contentRef.id),this._contentRef.setAttribute(`aria-labelledby`,this._headerRef.id),d(this._contentRef).toggle(`icon-space`,d(this._headerRef).has(`icon`))))}_onAnimationEnd(e){e.animationName===`open-opacity`&&this._state===`opening`?this._handleOpening():e.animationName===`close`&&this._state===`closing`&&this._handleClosing()}render(){return e`
|
|
17
17
|
<div
|
package/file-selector.pure.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import{__esDecorate as e,__runInitializers as t}from"tslib";import{nothing as n,unsafeCSS as r}from"lit";import{property as i}from"lit/decorators.js";import{ref as a}from"lit/directives/ref.js";import{html as o,unsafeStatic as s}from"lit/static-html.js";import{SbbSecondaryButtonElement as c,SbbSecondaryButtonStaticElement as l}from"./button.pure.js";import{SbbDisabledMixin as u,SbbElement as d,SbbFormAssociatedMixin as f,SbbLanguageController as p,forceType as m,forwardEvent as h,i18nFileSelectorButtonLabel as g,i18nFileSelectorButtonLabelMultiple as _,i18nFileSelectorCurrentlySelected as v,i18nFileSelectorDeleteFile as y,i18nFileSelectorSubtitleLabel as b,i18nFileSelectorSubtitleLabelMultiple as x,sbbInputModalityDetector as S,screenReaderOnlyStyles as C,ɵstateController as w}from"./core.js";import{SbbIconElement as T}from"./icon.pure.js";var E=`:host{--sbb-file-selector-transition-duration:var(--sbb-disable-animation-duration,var(--sbb-animation-duration-2x));width:20rem;display:block}@media (forced-colors:active){:host(:disabled){--sbb-file-selector-color:GrayText;--sbb-file-selector-subtitle-color:GrayText;--sbb-file-selector-border-color:GrayText}}:host(:is(:state(active),[state--active])){--sbb-file-selector-background-color:var(--sbb-background-color-3);--sbb-file-selector-border-color:light-dark(var(--sbb-color-storm),var(--sbb-color-anthracite))}@media (forced-colors:active){:host(:is(:state(active),[state--active])){--sbb-file-selector-border-color:Highlight}}.sbb-file-selector__input-container{-webkit-tap-highlight-color:transparent;flex-direction:column;display:flex}.sbb-file-selector__file-list{row-gap:var(--sbb-spacing-fixed-3x);padding-inline:0;padding-block:var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x);flex-direction:column;margin-block:0;display:flex}.sbb-file-selector__file{gap:var(--sbb-spacing-fixed-4x);line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size-s);justify-content:space-between;align-items:center;display:flex}.sbb-file-selector__file-details{justify-content:space-between;gap:var(--sbb-spacing-fixed-4x);flex:1;display:flex;overflow:auto}.sbb-file-selector__file-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sbb-file-selector__file-size{white-space:nowrap;color:light-dark(var(--sbb-color-metal),var(--sbb-color-smoke))}:host(:not(:is(:state(slotted-error),[state--slotted-error]))) .sbb-file-selector__error{display:none}
|
|
2
|
-
`,D=class extends Event{get files(){return this._files}constructor(e){super(`filechanged`,{bubbles:!0,composed:!0}),this._files=Object.freeze(e||[])}};const O=l=>(()=>{let d=u(f(l)),b=[],x,T=[],O=[],k,A=[],j=[],M,N=[],P=[],F,I=[],L=[],R,z=[],B=[],V,H;return class extends d{constructor(){super(...arguments),this.#e=(t(this,b),t(this,T,null)),this.#t=(t(this,O),t(this,A,!1)),this.#n=(t(this,j),t(this,N,`default`)),this.#r=(t(this,P),t(this,I,``)),this.#i=(t(this,L),t(this,z,``)),this._files=(t(this,B),[]),this._suffixes=[`B`,`kB`,`MB`,`GB`,`TB`],this.language=new p(this),this._counter=0}static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(d[Symbol.metadata]??null):void 0;x=[i({reflect:!0})],k=[m(),i({type:Boolean})],M=[i({attribute:`multiple-mode`})],F=[m(),i()],R=[m(),i({attribute:`accessibility-label`})],V=[i({attribute:!1})],H=[i({attribute:!1})],e(this,null,x,{kind:`accessor`,name:`size`,static:!1,private:!1,access:{has:e=>`size`in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:t},T,O),e(this,null,k,{kind:`accessor`,name:`multiple`,static:!1,private:!1,access:{has:e=>`multiple`in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:t},A,j),e(this,null,M,{kind:`accessor`,name:`multipleMode`,static:!1,private:!1,access:{has:e=>`multipleMode`in e,get:e=>e.multipleMode,set:(e,t)=>{e.multipleMode=t}},metadata:t},N,P),e(this,null,F,{kind:`accessor`,name:`accept`,static:!1,private:!1,access:{has:e=>`accept`in e,get:e=>e.accept,set:(e,t)=>{e.accept=t}},metadata:t},I,L),e(this,null,R,{kind:`accessor`,name:`accessibilityLabel`,static:!1,private:!1,access:{has:e=>`accessibilityLabel`in e,get:e=>e.accessibilityLabel,set:(e,t)=>{e.accessibilityLabel=t}},metadata:t},z,B),e(this,null,V,{kind:`setter`,name:`value`,static:!1,private:!1,access:{has:e=>`value`in e,set:(e,t)=>{e.value=t}},metadata:t},null,b),e(this,null,H,{kind:`setter`,name:`files`,static:!1,private:!1,access:{has:e=>`files`in e,set:(e,t)=>{e.files=t}},metadata:t},null,b),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementDependencies=[c]}static{this.events={filechanged:`filechanged`}}static{this.styles=[C,r(E)]}#e;get size(){return this.#e}set size(e){this.#e=e}#t;get multiple(){return this.#t}set multiple(e){this.#t=e}#n;get multipleMode(){return this.#n}set multipleMode(e){this.#n=e}#r;get accept(){return this.#r}set accept(e){this.#r=e}#i;get accessibilityLabel(){return this.#i}set accessibilityLabel(e){this.#i=e}set value(e){this._hiddenInput.value=e??``,e||(this.files=[])}get value(){return this._hiddenInput?.value}set files(e){this._files=e??[];let t=new DataTransfer;this.files.forEach(e=>t.items.add(e)),this._hiddenInput.files=t.files,this.updateFormValue()}get files(){return this._files}get type(){return`file`}formResetCallback(){this.files=[]}formStateRestoreCallback(e,t){e&&(this.files=e.getAll(this.name))}updateFormValue(){let e=new FormData;this.files.forEach(t=>e.append(this.name,t)),this.internals.setFormValue(e)}_checkFileEquality(e,t){return e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified}_onFocus(){S.mostRecentModality===`keyboard`&&w(this.loadButton).add(`focus-visible`)}_onBlur(){w(this.loadButton).delete(`focus-visible`)}_readFiles(e){let t=e.target;t.files&&this.createFileList(t.files),h(e,this)}createFileList(e){let
|
|
2
|
+
`,D=class extends Event{get files(){return this._files}constructor(e){super(`filechanged`,{bubbles:!0,composed:!0}),this._files=Object.freeze(e||[])}};const O=l=>(()=>{let d=u(f(l)),b=[],x,T=[],O=[],k,A=[],j=[],M,N=[],P=[],F,I=[],L=[],R,z=[],B=[],V,H;return class extends d{constructor(){super(...arguments),this.#e=(t(this,b),t(this,T,null)),this.#t=(t(this,O),t(this,A,!1)),this.#n=(t(this,j),t(this,N,`default`)),this.#r=(t(this,P),t(this,I,``)),this.#i=(t(this,L),t(this,z,``)),this._files=(t(this,B),[]),this._suffixes=[`B`,`kB`,`MB`,`GB`,`TB`],this.language=new p(this),this._counter=0}static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(d[Symbol.metadata]??null):void 0;x=[i({reflect:!0})],k=[m(),i({type:Boolean})],M=[i({attribute:`multiple-mode`})],F=[m(),i()],R=[m(),i({attribute:`accessibility-label`})],V=[i({attribute:!1})],H=[i({attribute:!1})],e(this,null,x,{kind:`accessor`,name:`size`,static:!1,private:!1,access:{has:e=>`size`in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:t},T,O),e(this,null,k,{kind:`accessor`,name:`multiple`,static:!1,private:!1,access:{has:e=>`multiple`in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:t},A,j),e(this,null,M,{kind:`accessor`,name:`multipleMode`,static:!1,private:!1,access:{has:e=>`multipleMode`in e,get:e=>e.multipleMode,set:(e,t)=>{e.multipleMode=t}},metadata:t},N,P),e(this,null,F,{kind:`accessor`,name:`accept`,static:!1,private:!1,access:{has:e=>`accept`in e,get:e=>e.accept,set:(e,t)=>{e.accept=t}},metadata:t},I,L),e(this,null,R,{kind:`accessor`,name:`accessibilityLabel`,static:!1,private:!1,access:{has:e=>`accessibilityLabel`in e,get:e=>e.accessibilityLabel,set:(e,t)=>{e.accessibilityLabel=t}},metadata:t},z,B),e(this,null,V,{kind:`setter`,name:`value`,static:!1,private:!1,access:{has:e=>`value`in e,set:(e,t)=>{e.value=t}},metadata:t},null,b),e(this,null,H,{kind:`setter`,name:`files`,static:!1,private:!1,access:{has:e=>`files`in e,set:(e,t)=>{e.files=t}},metadata:t},null,b),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementDependencies=[c]}static{this.events={filechanged:`filechanged`}}static{this.styles=[C,r(E)]}#e;get size(){return this.#e}set size(e){this.#e=e}#t;get multiple(){return this.#t}set multiple(e){this.#t=e}#n;get multipleMode(){return this.#n}set multipleMode(e){this.#n=e}#r;get accept(){return this.#r}set accept(e){this.#r=e}#i;get accessibilityLabel(){return this.#i}set accessibilityLabel(e){this.#i=e}set value(e){this._hiddenInput.value=e??``,e||(this.files=[])}get value(){return this._hiddenInput?.value}set files(e){this._files=e??[];let t=new DataTransfer;this.files.forEach(e=>t.items.add(e)),this._hiddenInput.files=t.files,this.updateFormValue()}get files(){return this._files}get type(){return`file`}formResetCallback(){this.files=[]}formStateRestoreCallback(e,t){e&&(this.files=e.getAll(this.name))}updateFormValue(){let e=new FormData;this.files.forEach(t=>e.append(this.name,t)),this.internals.setFormValue(e)}_checkFileEquality(e,t){return e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified}_onFocus(){S.mostRecentModality===`keyboard`&&w(this.loadButton).add(`focus-visible`)}_onBlur(){w(this.loadButton).delete(`focus-visible`)}_readFiles(e){let t=e.target;t.files&&this.createFileList(t.files),h(e,this)}createFileList(e,t=!1){let n=Array.from(e);!this.multiple&&e.length>1||this.accept&&n.some(e=>!this.accept.split(`,`).some(t=>e.name.endsWith(t.trim())))||(!this.multiple||this.multipleMode!==`persistent`||this.files.length===0?this.files=n:this.files=n.filter(e=>this.files.findIndex(t=>this._checkFileEquality(e,t))===-1).concat(this.files),this._updateA11yLiveRegion(),this._dispatchFileChangedEvent(),t&&this._dispatchNativeEvents())}getButtonLabel(){return this.multiple?_[this.language.current]:g[this.language.current]}_removeFile(e){this.files=this.files.filter(t=>!this._checkFileEquality(e,t)),this._updateA11yLiveRegion(),this._dispatchNativeEvents(),this._dispatchFileChangedEvent()}_dispatchNativeEvents(){this.dispatchEvent(new InputEvent(`input`,{bubbles:!0,composed:!0})),this.dispatchEvent(new Event(`change`,{bubbles:!0}))}_dispatchFileChangedEvent(){let e=this.files;this.dispatchEvent(new D(e))}_formatFileSize(e){let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**t).toFixed(0)} ${this._suffixes[t]}`}_updateA11yLiveRegion(){this._liveRegion.innerText=v(this.files.map(e=>e.name))[this.language.current]}_renderFileList(){let e=this.files.length>1?{WRAPPER:`ul`,ELEMENT:`li`}:{WRAPPER:`div`,ELEMENT:`span`};return o`
|
|
3
3
|
<${s(e.WRAPPER)} class="sbb-file-selector__file-list">
|
|
4
4
|
${this.files.map(t=>o`
|
|
5
5
|
<${s(e.ELEMENT)} class="sbb-file-selector__file">
|
|
@@ -15,7 +15,7 @@ import{__esDecorate as e,__runInitializers as t}from"tslib";import{nothing as n,
|
|
|
15
15
|
></sbb-secondary-button>
|
|
16
16
|
</${s(e.ELEMENT)}>`)}
|
|
17
17
|
</${s(e.WRAPPER)}>
|
|
18
|
-
`}_onDragEnter(e){this._counter++,!this.disabled&&!this.formDisabled&&(this._setDragState(e.target,!0),this._blockEvent(e))}_onDragLeave(e){this._counter--,!this.disabled&&!this.formDisabled&&e.target===this._dragTarget&&this._counter===0&&(this._setDragState(),this._blockEvent(e))}_onFileDrop(e){this._counter=0,!this.disabled&&!this.formDisabled&&(this._setDragState(),this._blockEvent(e),this.createFileList(e.dataTransfer.files))}_blockEvent(e){e.stopPropagation(),e.preventDefault()}_setDragState(e=void 0,t=!1){this._dragTarget=e,this.toggleState(`active`,t),w(this.loadButton).toggle(`active`,t)}render(){let e=this.accessibilityLabel?`${this.getButtonLabel()} - ${this.accessibilityLabel}`:void 0;return o`
|
|
18
|
+
`}_onDragEnter(e){this._counter++,!this.disabled&&!this.formDisabled&&(this._setDragState(e.target,!0),this._blockEvent(e))}_onDragLeave(e){this._counter--,!this.disabled&&!this.formDisabled&&e.target===this._dragTarget&&this._counter===0&&(this._setDragState(),this._blockEvent(e))}_onFileDrop(e){this._counter=0,!this.disabled&&!this.formDisabled&&(this._setDragState(),this._blockEvent(e),this.createFileList(e.dataTransfer.files,!0))}_blockEvent(e){e.stopPropagation(),e.preventDefault()}_setDragState(e=void 0,t=!1){this._dragTarget=e,this.toggleState(`active`,t),w(this.loadButton).toggle(`active`,t)}render(){let e=this.accessibilityLabel?`${this.getButtonLabel()} - ${this.accessibilityLabel}`:void 0;return o`
|
|
19
19
|
<div
|
|
20
20
|
class="sbb-file-selector__input-container"
|
|
21
21
|
@dragenter=${this._onDragEnter}
|
package/image.pure.js
CHANGED
|
@@ -53,14 +53,14 @@ import{__esDecorate as e,__runInitializers as t}from"tslib";import{html as n,not
|
|
|
53
53
|
}`,u(e)}_createMediaQueryString(e){let t=``;return e.forEach(e=>{let n=e.conditionFeature,r;r=e.conditionFeatureValue.lyneDesignToken?f[e.conditionFeatureValue.value]??``:e.conditionFeatureValue.value;let i=e.conditionOperator?` ${e.conditionOperator} `:``;t+=`(${n}: ${r})${i}`}),t}_imageLoaded(){this._logPerformanceMarks(),this.internals.states.add(`loaded`),this.dispatchEvent(new Event(`load`))}render(){let e=this._prepareImageUrl(this.imageSrc,!0),t=this._prepareImageUrl(this.imageSrc,!1);this.loading===`lazy`&&(this.decoding=`async`,this.importance=`low`);let i=this._preparePictureSizeConfigs();return n`
|
|
54
54
|
<div class="sbb-image__wrapper">
|
|
55
55
|
${this.skipLqip?r:n`<img
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
alt=""
|
|
57
|
+
class="sbb-image__blurred"
|
|
58
|
+
src=${e}
|
|
59
|
+
width="1000"
|
|
60
|
+
height="562"
|
|
61
|
+
loading=${this.loading??r}
|
|
62
|
+
decoding=${this.decoding??r}
|
|
63
|
+
/>`}
|
|
64
64
|
|
|
65
65
|
<picture>
|
|
66
66
|
<!-- render picture element sources -->
|
package/lean-off-brand-theme.css
CHANGED
|
@@ -1720,7 +1720,15 @@ summary {
|
|
|
1720
1720
|
--sbb-stepper-marker-color: var(--sbb-color-3);
|
|
1721
1721
|
--sbb-table-border-color: var(--sbb-color-cloud);
|
|
1722
1722
|
--sbb-table-border-color: light-dark(var(--sbb-color-cloud), var(--sbb-color-anthracite));
|
|
1723
|
+
--sbb-table-border-color-hover: var(--sbb-color-aluminium);
|
|
1724
|
+
--sbb-table-border-color-hover: light-dark(
|
|
1725
|
+
var(--sbb-color-aluminium),
|
|
1726
|
+
var(--sbb-table-border-color)
|
|
1727
|
+
);
|
|
1728
|
+
--sbb-table-border-color-selected: var(--sbb-background-color-4-inverted);
|
|
1729
|
+
--sbb-table-border-width: var(--sbb-border-width-1x);
|
|
1723
1730
|
--sbb-table-background-color: var(--sbb-background-color-1);
|
|
1731
|
+
--sbb-table-background-color-hover: var(--sbb-background-color-4);
|
|
1724
1732
|
--sbb-table-row-striped-color: var(--sbb-background-color-3);
|
|
1725
1733
|
--sbb-table-color: var(--sbb-color-1);
|
|
1726
1734
|
--sbb-table-caption-color: var(--sbb-color-granite);
|
|
@@ -2248,6 +2256,10 @@ sbb-card .sbb-action {
|
|
|
2248
2256
|
pointer-events: all;
|
|
2249
2257
|
}
|
|
2250
2258
|
|
|
2259
|
+
sbb-carousel-item sbb-image {
|
|
2260
|
+
border-radius: unset;
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2251
2263
|
sbb-container > [slot=image]:is(sbb-image, img),
|
|
2252
2264
|
sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
|
|
2253
2265
|
--sbb-image-object-fit: cover;
|
|
@@ -2546,7 +2558,7 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
|
|
|
2546
2558
|
}
|
|
2547
2559
|
|
|
2548
2560
|
:is(.sbb-table, .sbb-table-m, .sbb-table-s, .sbb-table-xs) {
|
|
2549
|
-
--sbb-table-border: var(--sbb-border-width
|
|
2561
|
+
--sbb-table-border: var(--sbb-table-border-width) solid var(--sbb-table-border-color);
|
|
2550
2562
|
--sbb-table-sticky-shadow-transition-duration: var(
|
|
2551
2563
|
--sbb-disable-animation-duration,
|
|
2552
2564
|
var(--sbb-animation-duration-6x)
|
|
@@ -2630,7 +2642,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
|
|
|
2630
2642
|
sbb-table-wrapper[negative] .sbb-table,
|
|
2631
2643
|
.sbb-table--negative {
|
|
2632
2644
|
--sbb-table-border-color: var(--sbb-color-anthracite);
|
|
2645
|
+
--sbb-table-border-color-hover: var(--sbb-table-border-color);
|
|
2646
|
+
--sbb-table-border-color-selected: var(--sbb-color-cloud);
|
|
2633
2647
|
--sbb-table-background-color: var(--sbb-background-color-1-negative);
|
|
2648
|
+
--sbb-table-background-color-hover: var(--sbb-background-color-4-negative);
|
|
2634
2649
|
--sbb-table-color: var(--sbb-color-1-negative);
|
|
2635
2650
|
--sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
|
|
2636
2651
|
--sbb-table-caption-color: var(--sbb-color-cement);
|
|
@@ -2644,6 +2659,26 @@ sbb-table-wrapper[negative] .sbb-table,
|
|
|
2644
2659
|
background-color: var(--sbb-table-background-color);
|
|
2645
2660
|
}
|
|
2646
2661
|
|
|
2662
|
+
.sbb-table--hover tbody tr:hover :is(th, td) {
|
|
2663
|
+
background-color: var(--sbb-table-background-color-hover);
|
|
2664
|
+
border-color: var(--sbb-table-border-color-hover);
|
|
2665
|
+
}
|
|
2666
|
+
.sbb-table--hover :is(thead:has(+ tbody tr:first-of-type:hover) tr:last-of-type :is(th, td),
|
|
2667
|
+
tbody tr:has(+ tr:hover) :is(th, td)) {
|
|
2668
|
+
border-block-end-color: var(--sbb-table-border-color-hover);
|
|
2669
|
+
}
|
|
2670
|
+
|
|
2671
|
+
tr.sbb-table--selected :is(th, td) {
|
|
2672
|
+
position: relative;
|
|
2673
|
+
}
|
|
2674
|
+
tr.sbb-table--selected :is(th, td)::after {
|
|
2675
|
+
content: "";
|
|
2676
|
+
position: absolute;
|
|
2677
|
+
inset: 0 0 calc(-1 * var(--sbb-table-border-width));
|
|
2678
|
+
pointer-events: none;
|
|
2679
|
+
border-block-end: var(--sbb-table-border-width) solid var(--sbb-table-border-color-selected);
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2647
2682
|
.sbb-table--theme-iron {
|
|
2648
2683
|
--sbb-table-cell-color: var(--sbb-color-4);
|
|
2649
2684
|
}
|
|
@@ -2766,6 +2801,9 @@ sbb-tab-nav-bar .sbb-tab-amount {
|
|
|
2766
2801
|
filter: brightness(var(--sbb-teaser-image-brightness, 1));
|
|
2767
2802
|
transition: filter, scale var(--sbb-teaser-image-animation-duration) var(--sbb-teaser-image-animation-easing);
|
|
2768
2803
|
}
|
|
2804
|
+
:is(sbb-teaser, sbb-teaser-hero, sbb-teaser-product) .sbb-figure {
|
|
2805
|
+
max-width: 100%;
|
|
2806
|
+
}
|
|
2769
2807
|
|
|
2770
2808
|
sbb-teaser :is(sbb-image, img):not(.sbb-figure-overlap-image) {
|
|
2771
2809
|
--sbb-image-object-fit: cover;
|