@sbb-esta/lyne-elements-dev 5.13.1-dev.1794294068 → 5.13.1-dev.1794308738
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/autocomplete.pure.js +5 -8
- package/button/_button.global.scss +62 -8
- package/button.pure.js +2 -2
- package/core.js +13 -13
- package/custom-elements.json +142 -50
- package/datepicker.pure.js +1 -1
- package/development/autocomplete/autocomplete/autocomplete-base-element.d.ts +5 -2
- package/development/autocomplete/autocomplete/autocomplete.component.d.ts +2 -3
- package/development/autocomplete/autocomplete-button/autocomplete-button.component.d.ts +3 -1
- package/development/autocomplete/autocomplete-row/autocomplete-row.component.d.ts +4 -0
- package/development/autocomplete.pure.js +74 -24
- package/development/button.pure.js +2 -2
- package/development/core/controllers/language-controller.d.ts +4 -1
- package/development/core/i18n/i18n.d.ts +2 -0
- package/development/core/overlay/overlay-trigger-attributes.d.ts +2 -0
- package/development/core.js +20 -5
- package/development/datepicker.pure.js +1 -1
- package/lean-off-brand-theme.css +68 -8
- package/lean-safety-theme.css +68 -8
- package/lean-theme.css +68 -8
- package/off-brand-theme.css +68 -8
- package/package.json +2 -2
- package/safety-theme.css +68 -8
- package/standard-theme.css +68 -8
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
3
|
-
import { html, isServer,
|
|
3
|
+
import { html, isServer, unsafeCSS } from "lit";
|
|
4
4
|
import { property } from "lit/decorators.js";
|
|
5
5
|
import { ref } from "lit/directives/ref.js";
|
|
6
|
-
import { SbbActionBaseElement, SbbDisabledMixin, SbbElement, SbbEscapableOverlayController, SbbNegativeMixin, SbbOpenCloseBaseElement, SbbPropertyWatcherController, forceType, getNextElementIndex, idReference, isAndroid, isEventOnElement, isSafari, isZeroAnimationDuration, popoverResetStyles, removeAriaComboBoxAttributes,
|
|
6
|
+
import { SbbActionBaseElement, SbbDisabledMixin, SbbElement, SbbEscapableOverlayController, SbbLanguageController, SbbNegativeMixin, SbbOpenCloseBaseElement, SbbPropertyWatcherController, appendAriaElements, forceType, getNextElementIndex, i18nAutocompleteActionsHint, i18nButton, idReference, isAndroid, isEventOnElement, isIOS, isMacOS, isSafari, isZeroAnimationDuration, popoverResetStyles, removeAriaComboBoxAttributes, sbbLiveAnnouncer, scrollbarStyles, setOverlayPosition } from "./core.js";
|
|
7
7
|
import { optionPanelStyles } from "./option.pure.js";
|
|
8
8
|
import { miniButtonStyle } from "./button.pure.js";
|
|
9
9
|
import { SbbIconNameMixin } from "./icon.pure.js";
|
|
@@ -12,11 +12,6 @@ import { SbbIconNameMixin } from "./icon.pure.js";
|
|
|
12
12
|
var autocomplete_base_element_default = ":host {\n display: none;\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 display: block;\n}\n";
|
|
13
13
|
|
|
14
14
|
// src/elements/autocomplete/autocomplete/autocomplete-base-element.ts
|
|
15
|
-
/**
|
|
16
|
-
* On Safari, the aria role 'listbox' must be on the host element, or else VoiceOver won't work at all.
|
|
17
|
-
* On the other hand, JAWS and NVDA need the role to be "closer" to the options, or else optgroups won't work.
|
|
18
|
-
*/
|
|
19
|
-
const ariaRoleOnHost$1 = isSafari;
|
|
20
15
|
var SbbInputAutocompleteEvent = class extends Event {
|
|
21
16
|
get option() {
|
|
22
17
|
return this._option;
|
|
@@ -34,6 +29,7 @@ var SbbInputAutocompleteEvent = class extends Event {
|
|
|
34
29
|
*
|
|
35
30
|
* @event {Event} change - The change event is fired on the autocomplete's trigger when the user modifies the element's value. Unlike the input event, the change event is not necessarily fired for each alteration to an element's value.
|
|
36
31
|
* @event {InputEvent} input - The input event fires on the autocomplete's trigger when the value has been changed as a direct result of a user action.
|
|
32
|
+
* @deprecated Will be inlined into autocompelte with next major release.
|
|
37
33
|
*/
|
|
38
34
|
let SbbAutocompleteBaseElement = (() => {
|
|
39
35
|
let _classSuper = SbbNegativeMixin(SbbOpenCloseBaseElement);
|
|
@@ -366,8 +362,9 @@ let SbbAutocompleteBaseElement = (() => {
|
|
|
366
362
|
get triggerElement() {
|
|
367
363
|
return this._triggerElement ?? null;
|
|
368
364
|
}
|
|
365
|
+
/** @deprecated **/
|
|
369
366
|
get overlayId() {
|
|
370
|
-
return
|
|
367
|
+
return this.id;
|
|
371
368
|
}
|
|
372
369
|
constructor() {
|
|
373
370
|
super();
|
|
@@ -382,6 +379,8 @@ let SbbAutocompleteBaseElement = (() => {
|
|
|
382
379
|
this.#requireSelection_accessor_storage = (__runInitializers(this, _autoSelectActiveOptionOnBlur_extraInitializers), __runInitializers(this, _requireSelection_initializers, false));
|
|
383
380
|
this.#position_accessor_storage = (__runInitializers(this, _requireSelection_extraInitializers), __runInitializers(this, _position_initializers, "auto"));
|
|
384
381
|
this._triggerElement = __runInitializers(this, _position_extraInitializers);
|
|
382
|
+
/** @deprecated **/
|
|
383
|
+
this.generatedId = "";
|
|
385
384
|
this.activeOption = null;
|
|
386
385
|
this.pendingAutoSelectedOption = null;
|
|
387
386
|
this._resizeObserver = new ResizeController(this, {
|
|
@@ -458,7 +457,7 @@ let SbbAutocompleteBaseElement = (() => {
|
|
|
458
457
|
connectedCallback() {
|
|
459
458
|
this.popover = "manual";
|
|
460
459
|
super.connectedCallback();
|
|
461
|
-
this.
|
|
460
|
+
this.tabIndex = -1;
|
|
462
461
|
if (this.hasUpdated) this._componentSetup();
|
|
463
462
|
this.syncNegative();
|
|
464
463
|
}
|
|
@@ -536,7 +535,9 @@ let SbbAutocompleteBaseElement = (() => {
|
|
|
536
535
|
if (this._optionsCount > 0 && this.options.length === 0) this.close();
|
|
537
536
|
} else if (document?.activeElement === this.triggerElement && this._optionsCount === 0 && this.options.length > 0) this.open();
|
|
538
537
|
this._optionsCount = this.options.length;
|
|
538
|
+
this.handleOptionChange();
|
|
539
539
|
}
|
|
540
|
+
handleOptionChange() {}
|
|
540
541
|
_setNextActiveOptionIfAutoActiveFirstOption() {
|
|
541
542
|
if (this.autoActiveFirstOption) {
|
|
542
543
|
this.resetActiveElement();
|
|
@@ -680,9 +681,6 @@ let SbbAutocompleteBaseElement = (() => {
|
|
|
680
681
|
<div class="sbb-option-panel__overlay-container">
|
|
681
682
|
<div
|
|
682
683
|
class="sbb-option-panel__overlay ${this.negative ? "sbb-scrollbar-negative" : "sbb-scrollbar"}"
|
|
683
|
-
role=${!ariaRoleOnHost$1 ? this.panelRole : nothing}
|
|
684
|
-
id=${!ariaRoleOnHost$1 ? this.overlayId : nothing}
|
|
685
|
-
tabindex="-1"
|
|
686
684
|
@animationend=${this._onAnimationEnd}
|
|
687
685
|
${ref((overlayRef) => this._overlay = overlayRef)}
|
|
688
686
|
>
|
|
@@ -705,7 +703,7 @@ var SbbAutocompleteButtonElement = class extends SbbDisabledMixin(SbbNegativeMix
|
|
|
705
703
|
this.elementName = "sbb-autocomplete-button";
|
|
706
704
|
}
|
|
707
705
|
static {
|
|
708
|
-
this.role = "button";
|
|
706
|
+
this.role = isSafari ? "button" : "option";
|
|
709
707
|
}
|
|
710
708
|
static {
|
|
711
709
|
this.styles = [miniButtonStyle];
|
|
@@ -720,7 +718,14 @@ var SbbAutocompleteButtonElement = class extends SbbDisabledMixin(SbbNegativeMix
|
|
|
720
718
|
}
|
|
721
719
|
constructor() {
|
|
722
720
|
super();
|
|
721
|
+
this._languageController = new SbbLanguageController(this);
|
|
723
722
|
this.internals.states.add("button");
|
|
723
|
+
if (!isSafari) {
|
|
724
|
+
this.internals.ariaRoleDescription = "";
|
|
725
|
+
const updateDescription = () => this.internals.ariaDescription = i18nButton[this._languageController.current];
|
|
726
|
+
updateDescription();
|
|
727
|
+
this._languageController.withHandler(updateDescription);
|
|
728
|
+
}
|
|
724
729
|
if (!isServer) {
|
|
725
730
|
this.setupBaseEventHandlers();
|
|
726
731
|
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-optgroup"), { disabled: () => this._updateInternals() }));
|
|
@@ -733,6 +738,18 @@ var SbbAutocompleteButtonElement = class extends SbbDisabledMixin(SbbNegativeMix
|
|
|
733
738
|
*/
|
|
734
739
|
setActive(value) {
|
|
735
740
|
this.toggleState("focus-visible", value);
|
|
741
|
+
if (value && isSafari && isMacOS) {
|
|
742
|
+
const output = [];
|
|
743
|
+
if (this.ariaLabel) output.push(this.ariaLabel);
|
|
744
|
+
else if (this.ariaLabelledByElements?.length) output.push(this._textContent(this.ariaLabelledByElements));
|
|
745
|
+
if (this.ariaDescription) output.push(this.ariaDescription);
|
|
746
|
+
else if (this.ariaDescribedByElements?.length) output.push(this._textContent(this.ariaDescribedByElements));
|
|
747
|
+
output.push(i18nButton[this._languageController.current]);
|
|
748
|
+
sbbLiveAnnouncer.announce(output.join(", "), "assertive");
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
_textContent(elements) {
|
|
752
|
+
return elements?.map((el) => el.textContent.trim().replace(/\.$/, "")).join(". ") ?? "";
|
|
736
753
|
}
|
|
737
754
|
willUpdate(changedProperties) {
|
|
738
755
|
super.willUpdate(changedProperties);
|
|
@@ -772,26 +789,42 @@ var SbbAutocompleteRowElement = class extends SbbElement {
|
|
|
772
789
|
static {
|
|
773
790
|
this.elementName = "sbb-autocomplete-row";
|
|
774
791
|
}
|
|
792
|
+
static {
|
|
793
|
+
this.role = "group";
|
|
794
|
+
}
|
|
775
795
|
static {
|
|
776
796
|
this.styles = [unsafeCSS(autocomplete_row_default)];
|
|
777
797
|
}
|
|
778
798
|
constructor() {
|
|
779
799
|
super();
|
|
800
|
+
this._languageController = new SbbLanguageController(this).withHandler(() => this._updateAriaDescription());
|
|
780
801
|
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete"), { negative: (e) => this.toggleState("negative", e.negative) }));
|
|
781
802
|
this.addController(new SbbPropertyWatcherController(this, () => this.querySelector("sbb-option"), { disabled: (e) => this.toggleState("disabled", e.disabled) }));
|
|
782
803
|
}
|
|
804
|
+
_updateAriaDescription() {
|
|
805
|
+
if (isIOS || isAndroid) return;
|
|
806
|
+
const hasButton = !!this.querySelector("sbb-autocomplete-button");
|
|
807
|
+
const option = this.querySelector("sbb-option");
|
|
808
|
+
if (!option) return;
|
|
809
|
+
if (!option["internals"]) customElements.upgrade(option);
|
|
810
|
+
if (hasButton) option["internals"].ariaDescription = i18nAutocompleteActionsHint[this._languageController.current];
|
|
811
|
+
else if (!hasButton && option["internals"].ariaDescription) option["internals"].ariaDescription = null;
|
|
812
|
+
if (isSafari) {
|
|
813
|
+
if (hasButton && (!option.ariaDescription || this._assignedDescription && option.ariaDescription === this._assignedDescription && option.ariaDescription !== i18nAutocompleteActionsHint[this._languageController.current])) {
|
|
814
|
+
option.ariaDescription = i18nAutocompleteActionsHint[this._languageController.current];
|
|
815
|
+
this._assignedDescription = option.ariaDescription;
|
|
816
|
+
} else if (!hasButton && this._assignedDescription && option.ariaDescription === this._assignedDescription) {
|
|
817
|
+
option.ariaDescription = null;
|
|
818
|
+
this._assignedDescription = void 0;
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
}
|
|
783
822
|
render() {
|
|
784
|
-
return html`<slot></slot>`;
|
|
823
|
+
return html`<slot @slotchange=${this._updateAriaDescription}></slot>`;
|
|
785
824
|
}
|
|
786
825
|
};
|
|
787
826
|
|
|
788
827
|
// src/elements/autocomplete/autocomplete/autocomplete.component.ts
|
|
789
|
-
let nextId = 0;
|
|
790
|
-
/**
|
|
791
|
-
* On Safari, the aria role 'listbox' must be on the host element, or else VoiceOver won't work at all.
|
|
792
|
-
* On the other hand, JAWS and NVDA need the role to be "closer" to the options, or else optgroups won't work.
|
|
793
|
-
*/
|
|
794
|
-
const ariaRoleOnHost = isSafari;
|
|
795
828
|
/**
|
|
796
829
|
* Combined with a native input, it displays a panel with a list of available options.
|
|
797
830
|
*
|
|
@@ -806,8 +839,6 @@ const ariaRoleOnHost = isSafari;
|
|
|
806
839
|
var SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
|
|
807
840
|
constructor() {
|
|
808
841
|
super(...arguments);
|
|
809
|
-
this.generatedId = `sbb-autocomplete-${++nextId}`;
|
|
810
|
-
this.panelRole = "listbox";
|
|
811
842
|
/** Index of the active element within the active option's row (0 = option, >0 = a button). */
|
|
812
843
|
this._activeColumnIndex = 0;
|
|
813
844
|
}
|
|
@@ -815,7 +846,7 @@ var SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
|
|
|
815
846
|
this.elementName = "sbb-autocomplete";
|
|
816
847
|
}
|
|
817
848
|
static {
|
|
818
|
-
this.role =
|
|
849
|
+
this.role = "listbox";
|
|
819
850
|
}
|
|
820
851
|
get options() {
|
|
821
852
|
return Array.from(this.querySelectorAll?.("sbb-option") ?? []);
|
|
@@ -866,6 +897,19 @@ var SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
|
|
|
866
897
|
if (event) event.preventDefault();
|
|
867
898
|
if (this.autoSelectActiveOption && event) this.setPendingSelection(this.activeOption);
|
|
868
899
|
}
|
|
900
|
+
handleOptionChange() {
|
|
901
|
+
const options = this.options;
|
|
902
|
+
const optionsCount = `${options.length}`;
|
|
903
|
+
let position = 1;
|
|
904
|
+
for (const option of options) {
|
|
905
|
+
const buttons = Array.from(option.closest("sbb-autocomplete-row")?.querySelectorAll("sbb-autocomplete-button") ?? []);
|
|
906
|
+
for (const element of [option, ...buttons]) {
|
|
907
|
+
element["internals"].ariaSetSize = optionsCount;
|
|
908
|
+
element["internals"].ariaPosInSet = `${position}`;
|
|
909
|
+
}
|
|
910
|
+
position++;
|
|
911
|
+
}
|
|
912
|
+
}
|
|
869
913
|
/**
|
|
870
914
|
* Moves the active element horizontally within the active option's `sbb-autocomplete-row`,
|
|
871
915
|
* between the option itself and its `sbb-autocomplete-button`s.
|
|
@@ -900,7 +944,13 @@ var SbbAutocompleteElement = class extends SbbAutocompleteBaseElement {
|
|
|
900
944
|
if (this.triggerElement) this.triggerElement.ariaActiveDescendantElement = null;
|
|
901
945
|
}
|
|
902
946
|
setTriggerAttributes(element) {
|
|
903
|
-
|
|
947
|
+
if (!element) return;
|
|
948
|
+
element.autocomplete = "off";
|
|
949
|
+
element.role = "combobox";
|
|
950
|
+
element.ariaAutoComplete = "list";
|
|
951
|
+
element.ariaHasPopup = "listbox";
|
|
952
|
+
element.ariaControlsElements = appendAriaElements(element.ariaControlsElements, this);
|
|
953
|
+
element.ariaExpanded = "false";
|
|
904
954
|
}
|
|
905
955
|
};
|
|
906
956
|
|
|
@@ -9,7 +9,7 @@ import { SbbIconNameMixin } from "./icon.pure.js";
|
|
|
9
9
|
var accent_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-1-inverted);\n --sbb-button-color-active-border: var(--sbb-border-color-1);\n --sbb-button-color-active-text: var(--sbb-color-cloud);\n --sbb-button-color-active-text: light-dark(var(--sbb-color-cloud), var(--sbb-color-anthracite));\n --sbb-button-color-default-background: var(--sbb-background-color-3-inverted);\n --sbb-button-color-default-border: var(--sbb-border-color-3);\n --sbb-button-color-default-text: var(--sbb-color-1-inverted);\n --sbb-button-color-hover-background: var(--sbb-background-color-3-inverted);\n --sbb-button-color-hover-border: var(--sbb-border-color-3);\n --sbb-button-color-hover-text: var(--sbb-color-3-inverted);\n --sbb-button-color-loading-border: var(--sbb-color-iron);\n --sbb-button-color-loading-border: light-dark(var(--sbb-color-iron), var(--sbb-color-silver));\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-cement) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-cement) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-1-negative-inverted);\n --sbb-button-color-active-border: var(--sbb-border-color-1-negative);\n --sbb-button-color-active-text: var(--sbb-color-anthracite);\n --sbb-button-color-default-background: var(--sbb-background-color-3-negative-inverted);\n --sbb-button-color-default-border: var(--sbb-border-color-3-negative);\n --sbb-button-color-default-text: var(--sbb-color-1-negative-inverted);\n --sbb-button-color-hover-background: var(--sbb-background-color-3-negative-inverted);\n --sbb-button-color-hover-border: var(--sbb-border-color-3-negative);\n --sbb-button-color-hover-text: var(--sbb-color-4-negative-inverted);\n --sbb-button-color-loading-border: var(--sbb-color-silver);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading])) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n";
|
|
10
10
|
|
|
11
11
|
// src/elements/button/common/button-common.scss?inline
|
|
12
|
-
var button_common_default = ":host {\n display: inline-block;\n outline: none !important;\n --sbb-button-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n --sbb-button-box-shadow-definition:\n var(--sbb-shadow-elevation-level-3-shadow-2-offset-x) var(--sbb-button-shadow-2-offset-y)\n var(--sbb-button-shadow-2-blur) var(--sbb-shadow-elevation-level-3-shadow-2-spread)\n var(--sbb-button-shadow-2-color),\n var(--sbb-shadow-elevation-level-3-shadow-1-offset-x) var(--sbb-button-shadow-1-offset-y)\n var(--sbb-button-shadow-1-blur) var(--sbb-shadow-elevation-level-3-shadow-1-spread)\n var(--sbb-button-shadow-1-color);\n --_width: unset;\n --_border-color: var(--sbb-button-color-default-border);\n --_background-color: var(--sbb-button-color-default-background);\n --_background: var(--_background-color);\n --_color: var(--sbb-button-color-default-text);\n --_button-inset: 0;\n --_hover-offset: 0.0625rem;\n --_padding-block: var(--sbb-button-padding-block-min);\n --_padding-inline: var(--sbb-button-padding-inline);\n --_border: calc(var(--sbb-button-border-width) + var(--sbb-button-border-overlap-fix, 1px)) solid\n var(--_border-color);\n --_animation-loading-delay: var(\n --sbb-disable-animation-duration,\n var(--sbb-button-loading-delay)\n );\n --_animation-loading-duration: var(--sbb-disable-animation-duration, 3s);\n --_animation-loading-rotate-function: linear(0, 0.25 12.5% 37.5%, 0.75 62.5% 87.5%, 1);\n --_animation-loading-rotate: sbb-button-rotate var(--_animation-loading-duration)\n var(--_animation-loading-delay) infinite var(--_animation-loading-rotate-function);\n --_animation-loading-move: sbb-button-move calc(var(--_animation-loading-duration) / 2)\n var(--_animation-loading-delay) alternate infinite linear;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-button-color-default-border: CanvasText !important;\n --sbb-button-color-active-border: Highlight !important;\n --sbb-button-color-default-background: Canvas !important;\n --sbb-button-color-hover-background: Canvas !important;\n --sbb-button-color-active-background: Canvas !important;\n --sbb-button-color-disabled-background: Canvas !important;\n --sbb-button-color-disabled-text: GrayText !important;\n --sbb-button-color-loading-border: CanvasText !important;\n --sbb-button-color-loading-snake-color: Canvas;\n --sbb-button-color-default-text: CanvasText !important;\n --sbb-button-color-hover-text: CanvasText !important;\n --sbb-button-color-active-text: CanvasText !important;\n --sbb-button-border-overlap-fix: 0rem;\n }\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(button),[state--button])) {\n --sbb-button-color-default-text: ButtonText !important;\n --sbb-button-color-hover-text: ButtonText !important;\n --sbb-button-color-active-text: ButtonText !important;\n }\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(link),[state--link])) {\n --sbb-button-color-default-text: LinkText !important;\n --sbb-button-color-hover-text: LinkText !important;\n --sbb-button-color-active-text: LinkText !important;\n }\n}\n\n:host([negative]) {\n --sbb-button-color-disabled-background: var(--sbb-background-color-3-negative);\n --sbb-button-color-disabled-text: var(--sbb-color-aluminium);\n}\n\n:host([size=l]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-l);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-l);\n}\n\n:host([size=m]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-m);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-m);\n}\n\n:host([size=s]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-s);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-s);\n --sbb-button-gap: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:where(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name])):not(:is(:state(slotted),[state--slotted]))) {\n --sbb-button-padding-inline: 0;\n --_width: var(--sbb-button-min-height);\n --_animation-loading-rotate-function: linear;\n}\n\n@media (any-hover: hover) {\n :host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading]):is(:hover, :is(:state(force-hover),[state--force-hover]))) {\n --sbb-button-translate-y-content-hover: -0.0625rem;\n --sbb-button-shadow-1-offset-y: calc(\n 0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-offset-y)\n );\n --sbb-button-shadow-1-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-blur));\n --sbb-button-shadow-2-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-2-blur));\n --sbb-button-cursor: var(--sbb-cursor-pointer);\n --_border-color: var(--sbb-button-color-hover-border);\n --_color: var(--sbb-button-color-hover-text);\n --_background-color: var(--sbb-button-color-hover-background);\n --_button-inset: calc(var(--sbb-button-border-width) * -1);\n }\n}\n@media (forced-colors: active) {\n :host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading]):is(:hover, :is(:state(force-hover),[state--force-hover]))) {\n --sbb-button-color-hover-border: Highlight !important;\n }\n}\n\n:host(:is([disabled], :disabled, [disabled-interactive])) {\n --sbb-button-cursor: var(--sbb-cursor-default);\n --_color: var(--sbb-button-color-disabled-text);\n --_background-color: var(--sbb-button-color-disabled-background);\n --_border-color: var(--sbb-button-color-disabled-border);\n --_border: var(--sbb-button-border-disabled-width) var(--sbb-button-border-disabled-style)\n var(--_border-color);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive]):is(:active, :is(:state(active),[state--active]), [loading])) {\n --_color: var(--sbb-button-color-active-text);\n --_background-color: var(--sbb-button-color-active-background);\n --_border-color: var(--sbb-button-color-active-border);\n}\n\n:host([loading]:not([disabled], :disabled, [disabled-interactive])) {\n --_loading-outline-offset: calc(\n var(--sbb-focus-outline-offset) + var(--sbb-button-loading-border-width)\n );\n --_border: none;\n --_border-action: var(--sbb-button-loading-border-width) dotted transparent;\n --_padding-block: calc(\n var(--sbb-button-padding-block-min) - var(--sbb-button-loading-border-width)\n );\n --_padding-inline: calc(\n var(--sbb-button-padding-inline) - var(--sbb-button-loading-border-width)\n );\n --_animation: var(--_animation-loading-rotate), var(--_animation-loading-move);\n --_forced-colors-adjust: none;\n}\n\n.sbb-action-base {\n display: flex;\n gap: var(--sbb-button-gap);\n align-items: center;\n justify-content: center;\n font-size: var(--sbb-text-font-size-xs);\n font-weight: bold;\n letter-spacing: var(--sbb-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n text-align: left;\n white-space: nowrap;\n text-decoration: none;\n min-height: var(--sbb-button-min-height);\n outline: none;\n width: var(--_width);\n border-radius: var(--sbb-button-border-radius);\n color: var(--_color);\n cursor: var(--sbb-button-cursor);\n user-select: none;\n background: var(--_background);\n border: var(--_border-action);\n transition-duration: var(--sbb-button-transition-duration);\n transition-timing-function: var(--sbb-button-transition-easing-function);\n forced-color-adjust: var(--_forced-colors-adjust, auto);\n transition-property: color, background-color, padding-top, padding-bottom;\n animation: var(--_animation);\n padding-block: var(--_padding-block);\n padding-inline: var(--_padding-inline);\n position: relative;\n}\n.sbb-action-base::before {\n content: \"\";\n position: absolute;\n inset: var(--_button-inset);\n border: var(--_border);\n border-radius: var(--sbb-button-border-radius);\n pointer-events: none;\n box-shadow: var(--sbb-button-box-shadow);\n transition-duration: var(--sbb-button-transition-duration);\n transition-timing-function: var(--sbb-button-transition-easing-function);\n transition-property: inset, border, box-shadow;\n}\n:host(:is(:state(focus-visible),[state--focus-visible])) .sbb-action-base::before, :host(:focus-visible) .sbb-action-base::before, .sbb-action-base:focus-visible::before {\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 outline-offset: var(--_loading-outline-offset, var(--sbb-focus-outline-offset));\n}\n:host([loading]:not([disabled], :disabled, [disabled-interactive])) .sbb-action-base {\n --_background:\n border-box padding-box linear-gradient(var(--_background-color)),\n border-box\n conic-gradient(\n from var(--sbb-button-loading-angle) at\n clamp(\n calc(var(--sbb-button-min-height) / 2),\n var(--sbb-button-loading-offset),\n calc(100% - var(--sbb-button-min-height) / 2)\n )\n 50%,\n var(--sbb-button-color-loading-border) 0deg,\n var(--sbb-button-color-loading-border) 300deg,\n var(--sbb-button-color-loading-snake-color, var(--sbb-button-color-active-text)) 360deg\n ),\n var(--_background-color);\n}\n\n.sbb-button__label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n:host(:where(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name])):not(:is(:state(slotted),[state--slotted]))) .sbb-button__label {\n display: none;\n}\n\n.sbb-button__label,\n::slotted([slot=icon]),\nsbb-icon {\n transition: translate var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);\n translate: 0 var(--sbb-button-translate-y-content-hover, 0);\n}\n\n@keyframes sbb-button-rotate {\n from {\n --sbb-button-loading-angle: -90deg;\n }\n to {\n --sbb-button-loading-angle: 270deg;\n }\n}\n@keyframes sbb-button-move {\n from {\n --sbb-button-loading-offset: 0%;\n }\n to {\n --sbb-button-loading-offset: 100%;\n }\n}\n";
|
|
12
|
+
var button_common_default = ":host {\n display: inline-block;\n outline: none !important;\n --sbb-button-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n --sbb-button-box-shadow-definition:\n var(--sbb-shadow-elevation-level-3-shadow-2-offset-x) var(--sbb-button-shadow-2-offset-y)\n var(--sbb-button-shadow-2-blur) var(--sbb-shadow-elevation-level-3-shadow-2-spread)\n var(--sbb-button-shadow-2-color),\n var(--sbb-shadow-elevation-level-3-shadow-1-offset-x) var(--sbb-button-shadow-1-offset-y)\n var(--sbb-button-shadow-1-blur) var(--sbb-shadow-elevation-level-3-shadow-1-spread)\n var(--sbb-button-shadow-1-color);\n --_width: unset;\n --_border-color: var(--sbb-button-color-default-border);\n --_background-color: var(--sbb-button-color-default-background);\n --_background: var(--_background-color);\n --_color: var(--sbb-button-color-default-text);\n --_button-inset: 0;\n --_hover-offset: 0.0625rem;\n --_padding-block: var(--sbb-button-padding-block-min);\n --_padding-inline: var(--sbb-button-padding-inline);\n --_border: var(\n --sbb-button-border-override,\n calc(var(--sbb-button-border-width) + var(--sbb-button-border-overlap-fix, 1px)) solid\n var(--_border-color)\n );\n --_animation-loading-delay: var(\n --sbb-disable-animation-duration,\n var(--sbb-button-loading-delay)\n );\n --_animation-loading-duration: var(--sbb-disable-animation-duration, 3s);\n --_animation-loading-rotate-function: linear(0, 0.25 12.5% 37.5%, 0.75 62.5% 87.5%, 1);\n --_animation-loading-rotate: sbb-button-rotate var(--_animation-loading-duration)\n var(--_animation-loading-delay) infinite var(--_animation-loading-rotate-function);\n --_animation-loading-move: sbb-button-move calc(var(--_animation-loading-duration) / 2)\n var(--_animation-loading-delay) alternate infinite linear;\n --_animation-loading-fade: sbb-button-loading-fade\n var(--sbb-disable-animation-duration, var(--sbb-button-loading-delay)) ease-in forwards;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-button-color-default-border: CanvasText !important;\n --sbb-button-color-active-border: Highlight !important;\n --sbb-button-color-default-background: Canvas !important;\n --sbb-button-color-hover-background: Canvas !important;\n --sbb-button-color-active-background: Canvas !important;\n --sbb-button-color-disabled-background: Canvas !important;\n --sbb-button-color-disabled-text: GrayText !important;\n --sbb-button-color-loading-border: CanvasText !important;\n --sbb-button-color-loading-snake-color: Canvas;\n --sbb-button-color-default-text: CanvasText !important;\n --sbb-button-color-hover-text: CanvasText !important;\n --sbb-button-color-active-text: CanvasText !important;\n --sbb-button-border-overlap-fix: 0rem;\n }\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(button),[state--button])) {\n --sbb-button-color-default-text: ButtonText !important;\n --sbb-button-color-hover-text: ButtonText !important;\n --sbb-button-color-active-text: ButtonText !important;\n }\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(link),[state--link])) {\n --sbb-button-color-default-text: LinkText !important;\n --sbb-button-color-hover-text: LinkText !important;\n --sbb-button-color-active-text: LinkText !important;\n }\n}\n\n:host([negative]) {\n --sbb-button-color-disabled-background: var(--sbb-background-color-3-negative);\n --sbb-button-color-disabled-text: var(--sbb-color-aluminium);\n}\n\n:host([size=l]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-l);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-l);\n}\n\n:host([size=m]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-m);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-m);\n}\n\n:host([size=s]) {\n --sbb-button-min-height: var(--sbb-button-min-height-size-s);\n --sbb-button-padding-inline: var(--sbb-button-padding-inline-size-s);\n --sbb-button-gap: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:where(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name])):not(:is(:state(slotted),[state--slotted]))) {\n --sbb-button-padding-inline: 0;\n --_width: var(--sbb-button-min-height);\n --_animation-loading-rotate-function: linear;\n}\n\n@media (any-hover: hover) {\n :host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading]):is(:hover, :is(:state(force-hover),[state--force-hover]))) {\n --sbb-button-translate-y-content-hover: -0.0625rem;\n --sbb-button-shadow-1-offset-y: calc(\n 0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-offset-y)\n );\n --sbb-button-shadow-1-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-blur));\n --sbb-button-shadow-2-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-2-blur));\n --sbb-button-cursor: var(--sbb-cursor-pointer);\n --_border-color: var(--sbb-button-color-hover-border);\n --_color: var(--sbb-button-color-hover-text);\n --_background-color: var(--sbb-button-color-hover-background);\n --_button-inset: calc(var(--sbb-button-border-width) * -1);\n }\n}\n@media (forced-colors: active) {\n :host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading]):is(:hover, :is(:state(force-hover),[state--force-hover]))) {\n --sbb-button-color-hover-border: Highlight !important;\n }\n}\n\n:host(:is([disabled], :disabled, [disabled-interactive])) {\n --sbb-button-cursor: var(--sbb-cursor-default);\n --_color: var(--sbb-button-color-disabled-text);\n --_background-color: var(--sbb-button-color-disabled-background);\n --_border-color: var(--sbb-button-color-disabled-border);\n --_border: var(--sbb-button-border-disabled-width) var(--sbb-button-border-disabled-style)\n var(--_border-color);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive]):is(:active, :is(:state(active),[state--active]), [loading])) {\n --_color: var(--sbb-button-color-active-text);\n --_background-color: var(--sbb-button-color-active-background);\n --_border-color: var(--sbb-button-color-active-border);\n}\n\n:host([loading]:not([disabled], :disabled, [disabled-interactive])) {\n --_loading-outline-offset: calc(\n var(--sbb-focus-outline-offset) + var(--sbb-button-loading-border-width)\n );\n --_border-action: var(--sbb-button-loading-border-width) dotted transparent;\n --_padding-block: calc(\n var(--sbb-button-padding-block-min) - var(--sbb-button-loading-border-width)\n );\n --_padding-inline: calc(\n var(--sbb-button-padding-inline) - var(--sbb-button-loading-border-width)\n );\n --_animation:\n var(--_animation-loading-fade), var(--_animation-loading-rotate), var(--_animation-loading-move);\n --_forced-colors-adjust: none;\n}\n@media (forced-colors: active) {\n :host([loading]:not([disabled], :disabled, [disabled-interactive])) {\n --sbb-button-border-override: none;\n }\n}\n\n.sbb-action-base {\n display: flex;\n gap: var(--sbb-button-gap);\n align-items: center;\n justify-content: center;\n font-size: var(--sbb-text-font-size-xs);\n font-weight: bold;\n letter-spacing: var(--sbb-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n text-align: left;\n white-space: nowrap;\n text-decoration: none;\n min-height: var(--sbb-button-min-height);\n outline: none;\n width: var(--_width);\n border-radius: var(--sbb-button-border-radius);\n color: var(--_color);\n cursor: var(--sbb-button-cursor);\n user-select: none;\n background: var(--_background);\n border: var(--_border-action);\n transition-duration: var(--sbb-button-transition-duration);\n transition-timing-function: var(--sbb-button-transition-easing-function);\n forced-color-adjust: var(--_forced-colors-adjust, auto);\n transition-property: color, background-color, padding-top, padding-bottom;\n animation: var(--_animation);\n padding-block: var(--_padding-block);\n padding-inline: var(--_padding-inline);\n position: relative;\n}\n.sbb-action-base::before {\n content: \"\";\n position: absolute;\n inset: var(--_button-inset);\n border: var(--_border);\n border-radius: var(--sbb-button-border-radius);\n pointer-events: none;\n box-shadow: var(--sbb-button-box-shadow);\n transition-duration: var(--sbb-button-transition-duration);\n transition-timing-function: var(--sbb-button-transition-easing-function);\n transition-property: inset, border, box-shadow;\n}\n:host(:is(:state(focus-visible),[state--focus-visible])) .sbb-action-base::before, :host(:focus-visible) .sbb-action-base::before, .sbb-action-base:focus-visible::before {\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 outline-offset: var(--_loading-outline-offset, var(--sbb-focus-outline-offset));\n}\n:host([loading]:not([disabled], :disabled, [disabled-interactive])) .sbb-action-base {\n --_background:\n border-box padding-box linear-gradient(var(--_background-color)),\n border-box\n conic-gradient(\n from var(--sbb-button-loading-angle) at\n clamp(\n calc(var(--sbb-button-min-height) / 2),\n var(--sbb-button-loading-offset),\n calc(100% - var(--sbb-button-min-height) / 2)\n )\n 50%,\n color-mix(\n in srgb,\n var(--sbb-button-color-loading-border) calc(var(--sbb-button-loading-opacity) * 100%),\n transparent\n )\n 0deg,\n color-mix(\n in srgb,\n var(--sbb-button-color-loading-border) calc(var(--sbb-button-loading-opacity) * 100%),\n transparent\n )\n 300deg,\n color-mix(\n in srgb,\n var(--sbb-button-color-loading-snake-color, var(--sbb-button-color-active-text))\n calc(var(--sbb-button-loading-opacity) * 100%),\n transparent\n )\n 360deg\n ),\n var(--_background-color);\n}\n\n.sbb-button__label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n:host(:where(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name])):not(:is(:state(slotted),[state--slotted]))) .sbb-button__label {\n display: none;\n}\n\n.sbb-button__label,\n::slotted([slot=icon]),\nsbb-icon {\n transition: translate var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);\n translate: 0 var(--sbb-button-translate-y-content-hover, 0);\n}\n\n@keyframes sbb-button-loading-fade {\n from {\n --sbb-button-loading-opacity: 0;\n }\n to {\n --sbb-button-loading-opacity: 1;\n }\n}\n@keyframes sbb-button-rotate {\n from {\n --sbb-button-loading-angle: -90deg;\n }\n to {\n --sbb-button-loading-angle: 270deg;\n }\n}\n@keyframes sbb-button-move {\n from {\n --sbb-button-loading-offset: 0%;\n }\n to {\n --sbb-button-loading-offset: 100%;\n }\n}\n";
|
|
13
13
|
|
|
14
14
|
// src/elements/button/common/mini-button-common.scss?inline
|
|
15
15
|
var mini_button_common_default = ":host {\n display: inline-block;\n -webkit-tap-highlight-color: transparent;\n height: fit-content;\n outline: none !important;\n --sbb-mini-button-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n --sbb-mini-button-color-background: var(--sbb-mini-button-color-default-background);\n --sbb-mini-button-color: var(--sbb-mini-button-color-text);\n}\n@media (forced-colors: active) {\n :host {\n --sbb-mini-button-color-text: ButtonText !important;\n --sbb-mini-button-color-hover-background: Highlight !important;\n --sbb-mini-button-color-active-background: Highlight !important;\n --sbb-mini-button-color-disabled-background: Canvas !important;\n --sbb-mini-button-color-disabled-border: GrayText !important;\n --sbb-mini-button-color-disabled-text: GrayText !important;\n }\n}\n\n:host([negative]) {\n --sbb-mini-button-color-text: var(--sbb-color-3-negative);\n --sbb-mini-button-color-default-background: transparent;\n --sbb-mini-button-color-hover-background: var(--sbb-background-color-3-negative);\n --sbb-mini-button-color-active-background: var(--sbb-background-color-4-negative);\n --sbb-mini-button-color-disabled-background: var(--sbb-background-color-3-negative);\n --sbb-mini-button-color-disabled-border: var(--sbb-border-color-5);\n --sbb-mini-button-color-disabled-text: var(--sbb-color-5);\n}\n\n@media (any-hover: hover) {\n :host(:is(:hover, :is(:state(force-hover),[state--force-hover])):not([disabled], :disabled, [disabled-interactive], :is(:state(disabled),[state--disabled]), :active, :is(:state(active),[state--active]))) {\n --sbb-mini-button-translate-y-content-hover: -0.0625rem;\n --sbb-mini-button-color-background: var(--sbb-mini-button-color-hover-background);\n }\n}\n\n:host(:is(:active, :is(:state(active),[state--active])):not([disabled], :disabled, [disabled-interactive], :is(:state(disabled),[state--disabled]))) {\n --sbb-mini-button-color-background: var(--sbb-mini-button-color-active-background);\n}\n\n:host(:is([disabled], :disabled, [disabled-interactive], :is(:state(disabled),[state--disabled]))) {\n --sbb-mini-button-color-background: var(--sbb-mini-button-color-disabled-background);\n --sbb-mini-button-border: var(--sbb-border-width-1x) dashed\n var(--sbb-mini-button-color-disabled-border);\n --sbb-mini-button-color: var(--sbb-mini-button-color-disabled-text);\n --sbb-mini-button-pointer-events: none;\n --sbb-mini-button-cursor: var(--sbb-cursor-default);\n}\n\n:host(:is(:state(focus-visible),[state--focus-visible])) {\n --sbb-focus-outline-style: initial;\n}\n\n.sbb-action-base {\n display: flex;\n position: relative;\n color: var(--sbb-mini-button-color);\n border-radius: var(--sbb-mini-button-border-radius);\n user-select: none;\n pointer-events: var(--sbb-mini-button-pointer-events, auto);\n cursor: var(--sbb-mini-button-cursor, var(--sbb-cursor-pointer));\n transition: color var(--sbb-mini-button-transition-duration) var(--sbb-mini-button-transition-easing-function);\n text-decoration: none;\n outline: none;\n}\n.sbb-action-base::before {\n position: absolute;\n content: \"\";\n inset: 0;\n border-radius: var(--sbb-mini-button-border-radius);\n background-color: var(--sbb-mini-button-color-background);\n transition-duration: var(--sbb-mini-button-transition-duration);\n transition-timing-function: var(--sbb-mini-button-transition-easing-function);\n transition-property: inset, background-color;\n border: var(--sbb-mini-button-border);\n}\n.sbb-action-base:focus-visible::before, :host(:is(:is(:state(focus-visible),[state--focus-visible]), :focus-visible)) .sbb-action-base::before {\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}\n\n::slotted(sbb-icon),\nsbb-icon {\n display: flex;\n transition: translate var(--sbb-mini-button-transition-duration) var(--sbb-mini-button-transition-easing-function);\n translate: 0 var(--sbb-mini-button-translate-y-content-hover, 0);\n min-width: var(--_sbb-mini-button-image-size, var(--sbb-size-icon-ui-small));\n min-height: var(--_sbb-mini-button-image-size, var(--sbb-size-icon-ui-small));\n align-items: center;\n justify-content: center;\n}\n";
|
|
@@ -21,7 +21,7 @@ var mini_button_label_common_default = ":host {\n --sbb-mini-button-gap: 0.125r
|
|
|
21
21
|
var primary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-color-primary150);\n --sbb-button-color-active-border: var(--sbb-color-primary150);\n --sbb-button-color-active-text: var(--sbb-color-4-negative);\n --sbb-button-color-default-background: var(--sbb-color-primary);\n --sbb-button-color-default-border: var(--sbb-color-primary);\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-color-primary125);\n --sbb-button-color-hover-border: var(--sbb-color-primary125);\n --sbb-button-color-hover-text: var(--sbb-color-3-negative);\n --sbb-button-color-loading-border: color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 50%,\n var(--sbb-button-color-default-text)\n );\n --sbb-button-color-loading-border: light-dark(\n color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 50%,\n var(--sbb-button-color-default-text)\n ),\n color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 70%,\n var(--sbb-button-color-default-text)\n )\n );\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-primary) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-primary) 40%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-primary125) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary125) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-primary125) 40%, transparent)\n );\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-color-primary150);\n --sbb-button-color-active-border: var(--sbb-color-primary150);\n --sbb-button-color-active-text: var(--sbb-color-4-negative);\n --sbb-button-color-default-background: var(--sbb-color-primary);\n --sbb-button-color-default-border: var(--sbb-color-primary);\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-color-primary125);\n --sbb-button-color-hover-border: var(--sbb-color-primary125);\n --sbb-button-color-hover-text: var(--sbb-color-3-negative);\n --sbb-button-color-loading-border: color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 70%,\n var(--sbb-button-color-default-text)\n );\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-primary) 60%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-primary) 40%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-primary125) 60%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary125) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-primary125) 40%, transparent)\n );\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading])) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n";
|
|
22
22
|
|
|
23
23
|
// src/elements/button/common/secondary-button.scss?inline
|
|
24
|
-
var secondary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-3);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-anthracite);\n --sbb-button-color-active-text: light-dark(\n var(--sbb-color-anthracite),\n var(--sbb-color-graphite)\n );\n --sbb-button-color-default-background: var(--sbb-background-color-1);\n --sbb-button-color-default-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3);\n --sbb-button-color-hover-background: var(--sbb-background-color-1);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-cement) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-cement) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-border-overlap-fix: 0rem;\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-2-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-graphite);\n --sbb-button-color-default-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-default-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4-negative);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]))) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n";
|
|
24
|
+
var secondary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-3);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-anthracite);\n --sbb-button-color-active-text: light-dark(\n var(--sbb-color-anthracite),\n var(--sbb-color-graphite)\n );\n --sbb-button-color-default-background: var(--sbb-background-color-1);\n --sbb-button-color-default-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3);\n --sbb-button-color-hover-background: var(--sbb-background-color-1);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-cement) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-cement) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-border-overlap-fix: 0rem;\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-2-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-graphite);\n --sbb-button-color-default-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-default-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4-negative);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]))) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive])[loading]) {\n --sbb-button-border-override: none transparent;\n}\n";
|
|
25
25
|
|
|
26
26
|
// src/elements/button/common/transparent-button.scss?inline
|
|
27
27
|
var transparent_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-4);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-1);\n --sbb-button-color-default-background: transparent;\n --sbb-button-color-default-border: transparent;\n --sbb-button-color-default-text: var(--sbb-color-1);\n --sbb-button-color-hover-background: var(--sbb-background-color-3);\n --sbb-button-color-hover-border: var(--sbb-border-color-3-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-1);\n --sbb-button-color-loading-border: var(--sbb-color-silver);\n --sbb-button-color-loading-border: light-dark(var(--sbb-color-silver), var(--sbb-color-granite));\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-4-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-1-negative);\n --sbb-button-color-default-background: transparent;\n --sbb-button-color-default-border: transparent;\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-3-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-3-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-1-negative);\n --sbb-button-color-loading-border: var(--sbb-color-granite);\n}\n";
|
|
@@ -23,7 +23,10 @@ export declare class SbbLanguageController implements ReactiveController {
|
|
|
23
23
|
private _previousLanguage?;
|
|
24
24
|
private _handlers;
|
|
25
25
|
constructor(_host: ReactiveControllerHost);
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Add a language change handler.
|
|
28
|
+
* TODO: Refactor to EventTarget.
|
|
29
|
+
*/
|
|
27
30
|
withHandler(handler: () => void): this;
|
|
28
31
|
hostConnected(): void;
|
|
29
32
|
hostDisconnected(): void;
|
|
@@ -106,3 +106,5 @@ export declare const i18nSlide: Record<string, string>;
|
|
|
106
106
|
export declare const i18nRemainingCharacters: Record<string, string>;
|
|
107
107
|
export declare const i18nLogo125Anniversary: Record<string, string>;
|
|
108
108
|
export declare const i18nLogo125AnniversaryYears: Record<string, string>;
|
|
109
|
+
export declare const i18nButton: Record<string, string>;
|
|
110
|
+
export declare const i18nAutocompleteActionsHint: Record<string, string>;
|
|
@@ -9,9 +9,11 @@ export declare function setAriaOverlayTriggerProperties(overlay: HTMLElement, tr
|
|
|
9
9
|
export declare function removeAriaOverlayTriggerProperties(trigger: HTMLElement | null | undefined): void;
|
|
10
10
|
/**
|
|
11
11
|
* Add meaningful aria attributes to trigger element of role='combobox'
|
|
12
|
+
* @deprecated
|
|
12
13
|
*/
|
|
13
14
|
export declare function setAriaComboBoxAttributes(trigger: HTMLElement, overlayId: string, expanded: boolean, hasPopup?: 'listbox' | 'grid'): void;
|
|
14
15
|
/**
|
|
15
16
|
* Remove aria attributes from trigger elements.
|
|
17
|
+
* @deprecated
|
|
16
18
|
*/
|
|
17
19
|
export declare function removeAriaComboBoxAttributes(trigger?: HTMLElement | null): void;
|
package/development/core.js
CHANGED
|
@@ -1629,7 +1629,10 @@ var SbbLanguageController = class SbbLanguageController {
|
|
|
1629
1629
|
this._handlers = [];
|
|
1630
1630
|
this._host.addController(this);
|
|
1631
1631
|
}
|
|
1632
|
-
/**
|
|
1632
|
+
/**
|
|
1633
|
+
* Add a language change handler.
|
|
1634
|
+
* TODO: Refactor to EventTarget.
|
|
1635
|
+
*/
|
|
1633
1636
|
withHandler(handler) {
|
|
1634
1637
|
this._handlers.unshift(handler);
|
|
1635
1638
|
return this;
|
|
@@ -2473,6 +2476,18 @@ const i18nLogo125AnniversaryYears = {
|
|
|
2473
2476
|
fr: "ans",
|
|
2474
2477
|
it: "anni"
|
|
2475
2478
|
};
|
|
2479
|
+
const i18nButton = {
|
|
2480
|
+
de: "Schaltfläche",
|
|
2481
|
+
en: "Button",
|
|
2482
|
+
fr: "Bouton",
|
|
2483
|
+
it: "Pulsante"
|
|
2484
|
+
};
|
|
2485
|
+
const i18nAutocompleteActionsHint = {
|
|
2486
|
+
de: "Drücken Sie Pfeil links oder rechts für verfügbare Aktionen",
|
|
2487
|
+
en: "Press arrow left or right for available actions",
|
|
2488
|
+
fr: "Appuyez sur les flèches gauche ou droite pour les actions disponibles",
|
|
2489
|
+
it: "Usare i tasti freccia destra o sinistra per le azioni disponibili"
|
|
2490
|
+
};
|
|
2476
2491
|
|
|
2477
2492
|
// src/elements/core/base-elements/link-base-element.ts
|
|
2478
2493
|
/** Link base class. */
|
|
@@ -6286,7 +6301,7 @@ const sbbOverlayOutsidePointerEventListener = new SbbOverlayOutsidePointerEventL
|
|
|
6286
6301
|
function setAriaOverlayTriggerProperties(overlay, trigger, popupType, state) {
|
|
6287
6302
|
if (!trigger) return;
|
|
6288
6303
|
trigger.ariaHasPopup = popupType;
|
|
6289
|
-
trigger.ariaControlsElements =
|
|
6304
|
+
trigger.ariaControlsElements = appendAriaElements(trigger.ariaControlsElements, overlay);
|
|
6290
6305
|
trigger.ariaExpanded = `${state === "opening" || state === "opened"}`;
|
|
6291
6306
|
}
|
|
6292
6307
|
/**
|
|
@@ -6300,6 +6315,7 @@ function removeAriaOverlayTriggerProperties(trigger) {
|
|
|
6300
6315
|
}
|
|
6301
6316
|
/**
|
|
6302
6317
|
* Add meaningful aria attributes to trigger element of role='combobox'
|
|
6318
|
+
* @deprecated
|
|
6303
6319
|
*/
|
|
6304
6320
|
function setAriaComboBoxAttributes(trigger, overlayId, expanded, hasPopup = "listbox") {
|
|
6305
6321
|
if (!trigger) return;
|
|
@@ -6308,11 +6324,11 @@ function setAriaComboBoxAttributes(trigger, overlayId, expanded, hasPopup = "lis
|
|
|
6308
6324
|
trigger.setAttribute("aria-autocomplete", "list");
|
|
6309
6325
|
trigger.setAttribute("aria-haspopup", hasPopup);
|
|
6310
6326
|
trigger.setAttribute("aria-controls", overlayId);
|
|
6311
|
-
trigger.setAttribute("aria-owns", overlayId);
|
|
6312
6327
|
trigger.setAttribute("aria-expanded", `${expanded}`);
|
|
6313
6328
|
}
|
|
6314
6329
|
/**
|
|
6315
6330
|
* Remove aria attributes from trigger elements.
|
|
6331
|
+
* @deprecated
|
|
6316
6332
|
*/
|
|
6317
6333
|
function removeAriaComboBoxAttributes(trigger) {
|
|
6318
6334
|
if (!trigger) return;
|
|
@@ -6321,8 +6337,7 @@ function removeAriaComboBoxAttributes(trigger) {
|
|
|
6321
6337
|
trigger.removeAttribute("aria-autocomplete");
|
|
6322
6338
|
trigger.removeAttribute("aria-haspopup");
|
|
6323
6339
|
trigger.removeAttribute("aria-controls");
|
|
6324
|
-
trigger.removeAttribute("aria-owns");
|
|
6325
6340
|
trigger.removeAttribute("aria-expanded");
|
|
6326
6341
|
}
|
|
6327
6342
|
|
|
6328
|
-
export { DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, IS_FOCUSABLE_QUERY, InteractivityChecker, IsFocusableConfig, MONDAY, NativeDateAdapter, SATURDAY, SEPARATORLESS_FORMAT_DATE, SUNDAY, SbbActionBaseElement, SbbAnimationCompleteMixin, SbbButtonBaseElement, SbbButtonLikeBaseElement, SbbDarkModeController, SbbDisabledInteractiveMixin, SbbDisabledMixin, SbbDisabledTabIndexActionMixin, SbbElement, SbbEscapableOverlayController, SbbFocusTrapController, SbbFocusVisibleWithinController, SbbFormAssociatedCheckboxMixin, SbbFormAssociatedInputMixin, SbbFormAssociatedMixin, SbbFormAssociatedRadioButtonMixin, SbbIdReferenceController, SbbInertController, SbbLanguageController, SbbLinkBaseElement, SbbLiveAnnouncer, SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointLargeAndBelow, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove, SbbMediaQueryDarkMode, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse, SbbNamedSlotListMixin, SbbNegativeMixin, SbbOpenCloseBaseElement, SbbOverlayOutsidePointerEventListener, SbbOverlayPositionController, SbbPanelMixin, SbbPropertyWatcherController, SbbReadonlyMixin, SbbRequiredMixin, SbbScrollController, SbbScrollHandler, SbbSelectionGroupBaseElement, SbbSelectionPanelMixin, SbbSlottedChangeEvent, SbbUpdateSchedulerMixin, THURSDAY, TUESDAY, TemporalDateAdapter, WEDNESDAY, appendAriaElements, buttonResetStyles, containsPierceShadowDom, defaultDateAdapter, forceType, forwardEvent, getElementPosition, getElementPositionHorizontal, getElementRectangle, getEventTarget, getNextElementIndex, getOverride, handleDistinctChange, hostScrollbarStyles, i18nAdditionalWagonInformationHeading, i18nAnd, i18nArrival, i18nBlockedPassage, i18nBreadcrumbEllipsisButtonLabel, i18nCalendarDateSelection, i18nCalendarWeekNumber, i18nCarouselArrowsNavigationHint, i18nCarouselItemAriaLabel, i18nCheckboxRequired, i18nChipDelete, i18nChipGroupInputDescription, i18nClass, i18nClearInput, i18nCloseAlert, i18nCloseDialog, i18nCloseNavigation, i18nCloseNotification, i18nClosePopover, i18nCloseSidebar, i18nClosedCompartmentLabel, i18nCollapsed, i18nConnectionFrom, i18nConnectionRoundtrip, i18nConnectionTo, i18nCouchetteWagonLabel, i18nDateChangedTo, i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder, i18nDeparture, i18nDialog, i18nDirection, i18nDownload, i18nDurationDay, i18nDurationHour, i18nDurationMinute, i18nExpanded, i18nFileSelectorButtonLabel, i18nFileSelectorButtonLabelMultiple, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorSubtitleLabel, i18nFileSelectorSubtitleLabelMultiple, i18nFlipCard, i18nFromPlatform, i18nGoBack, i18nInputRequired, i18nItemsPerPage, i18nLocomotiveLabel, i18nLogo125Anniversary, i18nLogo125AnniversaryYears, i18nMapContainerButtonLabel, i18nMeansOfTransport, i18nMultipleSelectionPossible, i18nNew, i18nNextDay, i18nNextMonth, i18nNextPage, i18nNextSlide, i18nNextYear, i18nNextYearRange, i18nNonAccessible, i18nOccupancy, i18nPage, i18nPaginatorOf, i18nPaginatorSelected, i18nPreviousDay, i18nPreviousMonth, i18nPreviousPage, i18nPreviousSlide, i18nPreviousYear, i18nPreviousYearRange, i18nRealTimeInfo, i18nRemainingCharacters, i18nRestaurantWagonLabel, i18nReverseCard, i18nSector, i18nSectorShort, i18nSelectNextDay, i18nSelectPreviousDay, i18nSelectionRequired, i18nShowCalendar, i18nSleepingWagonLabel, i18nSlide, i18nSupersaver, i18nTargetOpensInNewWindow, i18nTimeInputChange, i18nTimeInvalid, i18nTimeMax, i18nTimeMaxLength, i18nTimetableFormSwapButtonLabel, i18nToday, i18nTrain, i18nTrains, i18nTransferProcedure, i18nTransferProcedures, i18nTravelhints, i18nTripDuration, i18nTripQuayChange, i18nWagonLabel, i18nWagonLabelNumber, i18nWagonsLabel, i18nWalkingDistanceArrival, i18nWalkingDistanceDeparture, i18nYearMonthSelection, idReference, interactivityChecker, isAndroid, isArrowKeyOrPageKeysPressed, isArrowKeyPressed, isBlink, isChromium, isEdge, isEventOnElement, isEventPrevented, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, isFirefox, isIOS, isMacOS, isNextArrowKeyPressed, isNextjs, isPreviousArrowKeyPressed, isSafari, isTrident, isWebkit, isZeroAnimationDuration, listResetStyles, mergeConfig, omitEmptyConverter, pageScrollDisabled, plainDate, plainDateConverter, popoverResetStyles, preventScrollOnSpacebarPress, queueDomContentLoaded, radioButtonRegistry, readConfig, removeAriaComboBoxAttributes, removeAriaElements, removeAriaOverlayTriggerProperties, sbbInputModalityDetector, sbbLiveAnnouncer, sbbOverlayOutsidePointerEventListener, screenReaderOnlyStyles, scrollbarStyles, setAriaComboBoxAttributes, setAriaOverlayTriggerProperties, setOrRemoveAttribute, setOverlayPosition, ɵstateController };
|
|
6343
|
+
export { DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, IS_FOCUSABLE_QUERY, InteractivityChecker, IsFocusableConfig, MONDAY, NativeDateAdapter, SATURDAY, SEPARATORLESS_FORMAT_DATE, SUNDAY, SbbActionBaseElement, SbbAnimationCompleteMixin, SbbButtonBaseElement, SbbButtonLikeBaseElement, SbbDarkModeController, SbbDisabledInteractiveMixin, SbbDisabledMixin, SbbDisabledTabIndexActionMixin, SbbElement, SbbEscapableOverlayController, SbbFocusTrapController, SbbFocusVisibleWithinController, SbbFormAssociatedCheckboxMixin, SbbFormAssociatedInputMixin, SbbFormAssociatedMixin, SbbFormAssociatedRadioButtonMixin, SbbIdReferenceController, SbbInertController, SbbLanguageController, SbbLinkBaseElement, SbbLiveAnnouncer, SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointLargeAndBelow, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove, SbbMediaQueryDarkMode, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse, SbbNamedSlotListMixin, SbbNegativeMixin, SbbOpenCloseBaseElement, SbbOverlayOutsidePointerEventListener, SbbOverlayPositionController, SbbPanelMixin, SbbPropertyWatcherController, SbbReadonlyMixin, SbbRequiredMixin, SbbScrollController, SbbScrollHandler, SbbSelectionGroupBaseElement, SbbSelectionPanelMixin, SbbSlottedChangeEvent, SbbUpdateSchedulerMixin, THURSDAY, TUESDAY, TemporalDateAdapter, WEDNESDAY, appendAriaElements, buttonResetStyles, containsPierceShadowDom, defaultDateAdapter, forceType, forwardEvent, getElementPosition, getElementPositionHorizontal, getElementRectangle, getEventTarget, getNextElementIndex, getOverride, handleDistinctChange, hostScrollbarStyles, i18nAdditionalWagonInformationHeading, i18nAnd, i18nArrival, i18nAutocompleteActionsHint, i18nBlockedPassage, i18nBreadcrumbEllipsisButtonLabel, i18nButton, i18nCalendarDateSelection, i18nCalendarWeekNumber, i18nCarouselArrowsNavigationHint, i18nCarouselItemAriaLabel, i18nCheckboxRequired, i18nChipDelete, i18nChipGroupInputDescription, i18nClass, i18nClearInput, i18nCloseAlert, i18nCloseDialog, i18nCloseNavigation, i18nCloseNotification, i18nClosePopover, i18nCloseSidebar, i18nClosedCompartmentLabel, i18nCollapsed, i18nConnectionFrom, i18nConnectionRoundtrip, i18nConnectionTo, i18nCouchetteWagonLabel, i18nDateChangedTo, i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder, i18nDeparture, i18nDialog, i18nDirection, i18nDownload, i18nDurationDay, i18nDurationHour, i18nDurationMinute, i18nExpanded, i18nFileSelectorButtonLabel, i18nFileSelectorButtonLabelMultiple, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorSubtitleLabel, i18nFileSelectorSubtitleLabelMultiple, i18nFlipCard, i18nFromPlatform, i18nGoBack, i18nInputRequired, i18nItemsPerPage, i18nLocomotiveLabel, i18nLogo125Anniversary, i18nLogo125AnniversaryYears, i18nMapContainerButtonLabel, i18nMeansOfTransport, i18nMultipleSelectionPossible, i18nNew, i18nNextDay, i18nNextMonth, i18nNextPage, i18nNextSlide, i18nNextYear, i18nNextYearRange, i18nNonAccessible, i18nOccupancy, i18nPage, i18nPaginatorOf, i18nPaginatorSelected, i18nPreviousDay, i18nPreviousMonth, i18nPreviousPage, i18nPreviousSlide, i18nPreviousYear, i18nPreviousYearRange, i18nRealTimeInfo, i18nRemainingCharacters, i18nRestaurantWagonLabel, i18nReverseCard, i18nSector, i18nSectorShort, i18nSelectNextDay, i18nSelectPreviousDay, i18nSelectionRequired, i18nShowCalendar, i18nSleepingWagonLabel, i18nSlide, i18nSupersaver, i18nTargetOpensInNewWindow, i18nTimeInputChange, i18nTimeInvalid, i18nTimeMax, i18nTimeMaxLength, i18nTimetableFormSwapButtonLabel, i18nToday, i18nTrain, i18nTrains, i18nTransferProcedure, i18nTransferProcedures, i18nTravelhints, i18nTripDuration, i18nTripQuayChange, i18nWagonLabel, i18nWagonLabelNumber, i18nWagonsLabel, i18nWalkingDistanceArrival, i18nWalkingDistanceDeparture, i18nYearMonthSelection, idReference, interactivityChecker, isAndroid, isArrowKeyOrPageKeysPressed, isArrowKeyPressed, isBlink, isChromium, isEdge, isEventOnElement, isEventPrevented, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, isFirefox, isIOS, isMacOS, isNextArrowKeyPressed, isNextjs, isPreviousArrowKeyPressed, isSafari, isTrident, isWebkit, isZeroAnimationDuration, listResetStyles, mergeConfig, omitEmptyConverter, pageScrollDisabled, plainDate, plainDateConverter, popoverResetStyles, preventScrollOnSpacebarPress, queueDomContentLoaded, radioButtonRegistry, readConfig, removeAriaComboBoxAttributes, removeAriaElements, removeAriaOverlayTriggerProperties, sbbInputModalityDetector, sbbLiveAnnouncer, sbbOverlayOutsidePointerEventListener, screenReaderOnlyStyles, scrollbarStyles, setAriaComboBoxAttributes, setAriaOverlayTriggerProperties, setOrRemoveAttribute, setOverlayPosition, ɵstateController };
|
|
@@ -21,7 +21,7 @@ var mini_button_label_common_default = ":host {\n --sbb-mini-button-gap: 0.125r
|
|
|
21
21
|
var primary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-color-primary150);\n --sbb-button-color-active-border: var(--sbb-color-primary150);\n --sbb-button-color-active-text: var(--sbb-color-4-negative);\n --sbb-button-color-default-background: var(--sbb-color-primary);\n --sbb-button-color-default-border: var(--sbb-color-primary);\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-color-primary125);\n --sbb-button-color-hover-border: var(--sbb-color-primary125);\n --sbb-button-color-hover-text: var(--sbb-color-3-negative);\n --sbb-button-color-loading-border: color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 50%,\n var(--sbb-button-color-default-text)\n );\n --sbb-button-color-loading-border: light-dark(\n color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 50%,\n var(--sbb-button-color-default-text)\n ),\n color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 70%,\n var(--sbb-button-color-default-text)\n )\n );\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-primary) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-primary) 40%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-primary125) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary125) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-primary125) 40%, transparent)\n );\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-color-primary150);\n --sbb-button-color-active-border: var(--sbb-color-primary150);\n --sbb-button-color-active-text: var(--sbb-color-4-negative);\n --sbb-button-color-default-background: var(--sbb-color-primary);\n --sbb-button-color-default-border: var(--sbb-color-primary);\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-color-primary125);\n --sbb-button-color-hover-border: var(--sbb-color-primary125);\n --sbb-button-color-hover-text: var(--sbb-color-3-negative);\n --sbb-button-color-loading-border: color-mix(\n in srgb,\n var(--sbb-button-color-active-background) 70%,\n var(--sbb-button-color-default-text)\n );\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-primary) 60%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-primary) 40%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-primary125) 60%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-primary125) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-primary125) 40%, transparent)\n );\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]), [loading])) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n";
|
|
22
22
|
|
|
23
23
|
// src/elements/button/common/secondary-button.scss?inline
|
|
24
|
-
var secondary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-3);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-anthracite);\n --sbb-button-color-active-text: light-dark(\n var(--sbb-color-anthracite),\n var(--sbb-color-graphite)\n );\n --sbb-button-color-default-background: var(--sbb-background-color-1);\n --sbb-button-color-default-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3);\n --sbb-button-color-hover-background: var(--sbb-background-color-1);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-cement) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-cement) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-border-overlap-fix: 0rem;\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-2-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-graphite);\n --sbb-button-color-default-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-default-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4-negative);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]))) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n";
|
|
24
|
+
var secondary_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-3);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-anthracite);\n --sbb-button-color-active-text: light-dark(\n var(--sbb-color-anthracite),\n var(--sbb-color-graphite)\n );\n --sbb-button-color-default-background: var(--sbb-background-color-1);\n --sbb-button-color-default-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3);\n --sbb-button-color-hover-background: var(--sbb-background-color-1);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent);\n --sbb-button-shadow-1-color: light-dark(\n color-mix(in srgb, var(--sbb-color-platinum) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-cement) 20%, transparent);\n --sbb-button-shadow-2-color: light-dark(\n color-mix(in srgb, var(--sbb-color-cement) 20%, transparent),\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent)\n );\n --sbb-button-border-overlap-fix: 0rem;\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-2-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-graphite);\n --sbb-button-color-default-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-default-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-default-text: var(--sbb-color-3-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-1-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-4-negative);\n --sbb-button-color-loading-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-shadow-1-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-button-shadow-2-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive], :active, :is(:state(active),[state--active]))) {\n --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);\n}\n\n:host(:not([disabled], :disabled, [disabled-interactive])[loading]) {\n --sbb-button-border-override: none transparent;\n}\n";
|
|
25
25
|
|
|
26
26
|
// src/elements/button/common/transparent-button.scss?inline
|
|
27
27
|
var transparent_button_default = ":host {\n --sbb-button-color-active-background: var(--sbb-background-color-4);\n --sbb-button-color-active-border: var(--sbb-border-color-4-inverted);\n --sbb-button-color-active-text: var(--sbb-color-1);\n --sbb-button-color-default-background: transparent;\n --sbb-button-color-default-border: transparent;\n --sbb-button-color-default-text: var(--sbb-color-1);\n --sbb-button-color-hover-background: var(--sbb-background-color-3);\n --sbb-button-color-hover-border: var(--sbb-border-color-3-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-1);\n --sbb-button-color-loading-border: var(--sbb-color-silver);\n --sbb-button-color-loading-border: light-dark(var(--sbb-color-silver), var(--sbb-color-granite));\n}\n\n:host([negative]) {\n --sbb-button-color-active-background: var(--sbb-background-color-4-negative);\n --sbb-button-color-active-border: var(--sbb-border-color-4-negative-inverted);\n --sbb-button-color-active-text: var(--sbb-color-1-negative);\n --sbb-button-color-default-background: transparent;\n --sbb-button-color-default-border: transparent;\n --sbb-button-color-default-text: var(--sbb-color-1-negative);\n --sbb-button-color-hover-background: var(--sbb-background-color-3-negative);\n --sbb-button-color-hover-border: var(--sbb-border-color-3-negative-inverted);\n --sbb-button-color-hover-text: var(--sbb-color-1-negative);\n --sbb-button-color-loading-border: var(--sbb-color-granite);\n}\n";
|
package/lean-off-brand-theme.css
CHANGED
|
@@ -2577,8 +2577,11 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
2577
2577
|
--_hover-offset: 0.0625rem;
|
|
2578
2578
|
--_padding-block: var(--sbb-button-padding-block-min);
|
|
2579
2579
|
--_padding-inline: var(--sbb-button-padding-inline);
|
|
2580
|
-
--_border:
|
|
2581
|
-
|
|
2580
|
+
--_border: var(
|
|
2581
|
+
--sbb-button-border-override,
|
|
2582
|
+
calc(var(--sbb-button-border-width) + var(--sbb-button-border-overlap-fix, 1px)) solid
|
|
2583
|
+
var(--_border-color)
|
|
2584
|
+
);
|
|
2582
2585
|
--_animation-loading-delay: var(
|
|
2583
2586
|
--sbb-disable-animation-duration,
|
|
2584
2587
|
var(--sbb-button-loading-delay)
|
|
@@ -2589,6 +2592,8 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
2589
2592
|
var(--_animation-loading-delay) infinite var(--_animation-loading-rotate-function);
|
|
2590
2593
|
--_animation-loading-move: sbb-button-move calc(var(--_animation-loading-duration) / 2)
|
|
2591
2594
|
var(--_animation-loading-delay) alternate infinite linear;
|
|
2595
|
+
--_animation-loading-fade: sbb-button-loading-fade
|
|
2596
|
+
var(--sbb-disable-animation-duration, var(--sbb-button-loading-delay)) ease-in forwards;
|
|
2592
2597
|
}
|
|
2593
2598
|
@media (forced-colors: active) {
|
|
2594
2599
|
:is(.sbb-button,
|
|
@@ -2900,15 +2905,30 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
2900
2905
|
calc(100% - var(--sbb-button-min-height) / 2)
|
|
2901
2906
|
)
|
|
2902
2907
|
50%,
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2908
|
+
color-mix(
|
|
2909
|
+
in srgb,
|
|
2910
|
+
var(--sbb-button-color-loading-border) calc(var(--sbb-button-loading-opacity) * 100%),
|
|
2911
|
+
transparent
|
|
2912
|
+
)
|
|
2913
|
+
0deg,
|
|
2914
|
+
color-mix(
|
|
2915
|
+
in srgb,
|
|
2916
|
+
var(--sbb-button-color-loading-border) calc(var(--sbb-button-loading-opacity) * 100%),
|
|
2917
|
+
transparent
|
|
2918
|
+
)
|
|
2919
|
+
300deg,
|
|
2920
|
+
color-mix(
|
|
2921
|
+
in srgb,
|
|
2922
|
+
var(--sbb-button-color-loading-snake-color, var(--sbb-button-color-active-text))
|
|
2923
|
+
calc(var(--sbb-button-loading-opacity) * 100%),
|
|
2924
|
+
transparent
|
|
2925
|
+
)
|
|
2926
|
+
360deg
|
|
2906
2927
|
),
|
|
2907
2928
|
var(--_background-color);
|
|
2908
2929
|
--_loading-outline-offset: calc(
|
|
2909
2930
|
var(--sbb-focus-outline-offset) + var(--sbb-button-loading-border-width)
|
|
2910
2931
|
);
|
|
2911
|
-
--_border: none;
|
|
2912
2932
|
--_border-action: var(--sbb-button-loading-border-width) dotted transparent;
|
|
2913
2933
|
--_padding-block: calc(
|
|
2914
2934
|
var(--sbb-button-padding-block-min) - var(--sbb-button-loading-border-width)
|
|
@@ -2916,9 +2936,30 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
2916
2936
|
--_padding-inline: calc(
|
|
2917
2937
|
var(--sbb-button-padding-inline) - var(--sbb-button-loading-border-width)
|
|
2918
2938
|
);
|
|
2919
|
-
--_animation:
|
|
2939
|
+
--_animation:
|
|
2940
|
+
var(--_animation-loading-fade), var(--_animation-loading-rotate), var(--_animation-loading-move);
|
|
2920
2941
|
--_forced-colors-adjust: none;
|
|
2921
2942
|
}
|
|
2943
|
+
@media (forced-colors: active) {
|
|
2944
|
+
:is(.sbb-button,
|
|
2945
|
+
.sbb-button-s,
|
|
2946
|
+
.sbb-button-m,
|
|
2947
|
+
.sbb-button-l,
|
|
2948
|
+
.sbb-secondary-button,
|
|
2949
|
+
.sbb-secondary-button-s,
|
|
2950
|
+
.sbb-secondary-button-m,
|
|
2951
|
+
.sbb-secondary-button-l,
|
|
2952
|
+
.sbb-accent-button,
|
|
2953
|
+
.sbb-accent-button-s,
|
|
2954
|
+
.sbb-accent-button-m,
|
|
2955
|
+
.sbb-accent-button-l,
|
|
2956
|
+
.sbb-transparent-button,
|
|
2957
|
+
.sbb-transparent-button-s,
|
|
2958
|
+
.sbb-transparent-button-m,
|
|
2959
|
+
.sbb-transparent-button-l):not([disabled], :disabled, [disabled-interactive], .sbb-disabled-interactive):is([loading], .sbb-loading) {
|
|
2960
|
+
--sbb-button-border-override: none;
|
|
2961
|
+
}
|
|
2962
|
+
}
|
|
2922
2963
|
:is(.sbb-button,
|
|
2923
2964
|
.sbb-button-s,
|
|
2924
2965
|
.sbb-button-m,
|
|
@@ -3097,6 +3138,12 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
3097
3138
|
.sbb-secondary-button-l):not([disabled], :disabled, [disabled-interactive], .sbb-disabled-interactive, :active, :is(:state(active),[state--active]), [loading], .sbb-loading) {
|
|
3098
3139
|
--sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);
|
|
3099
3140
|
}
|
|
3141
|
+
:is(.sbb-secondary-button,
|
|
3142
|
+
.sbb-secondary-button-s,
|
|
3143
|
+
.sbb-secondary-button-m,
|
|
3144
|
+
.sbb-secondary-button-l):not([disabled], :disabled, [disabled-interactive], .sbb-disabled-interactive):is([loading], .sbb-loading) {
|
|
3145
|
+
--sbb-button-border-override: none transparent;
|
|
3146
|
+
}
|
|
3100
3147
|
|
|
3101
3148
|
:is(.sbb-accent-button, .sbb-accent-button-s, .sbb-accent-button-m, .sbb-accent-button-l) {
|
|
3102
3149
|
--sbb-button-color-active-background: var(--sbb-background-color-1-inverted);
|
|
@@ -3172,6 +3219,14 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
3172
3219
|
--sbb-button-color-loading-border: var(--sbb-color-granite);
|
|
3173
3220
|
}
|
|
3174
3221
|
|
|
3222
|
+
@keyframes sbb-button-loading-fade {
|
|
3223
|
+
from {
|
|
3224
|
+
--sbb-button-loading-opacity: 0;
|
|
3225
|
+
}
|
|
3226
|
+
to {
|
|
3227
|
+
--sbb-button-loading-opacity: 1;
|
|
3228
|
+
}
|
|
3229
|
+
}
|
|
3175
3230
|
@keyframes sbb-button-rotate {
|
|
3176
3231
|
from {
|
|
3177
3232
|
--sbb-button-loading-angle: -90deg;
|
|
@@ -3190,7 +3245,12 @@ sbb-breadcrumb-group:not(:defined) {
|
|
|
3190
3245
|
}
|
|
3191
3246
|
@property --sbb-button-loading-angle {
|
|
3192
3247
|
syntax: "<angle>";
|
|
3193
|
-
initial-value:
|
|
3248
|
+
initial-value: -90deg;
|
|
3249
|
+
inherits: false;
|
|
3250
|
+
}
|
|
3251
|
+
@property --sbb-button-loading-opacity {
|
|
3252
|
+
syntax: "<number>";
|
|
3253
|
+
initial-value: 1;
|
|
3194
3254
|
inherits: false;
|
|
3195
3255
|
}
|
|
3196
3256
|
@property --sbb-button-loading-offset {
|