@sbb-esta/lyne-elements 0.52.0 → 0.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion.js +54 -54
- package/action-group.js +3 -3
- package/alert/alert-group.js +22 -22
- package/alert/alert.js +22 -22
- package/autocomplete.js +126 -126
- package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group.js +70 -69
- package/breadcrumb/breadcrumb.js +17 -17
- package/calendar.js +423 -423
- package/card/card-badge.js +17 -17
- package/card/card.js +2 -2
- package/card/common.js +30 -30
- package/checkbox/checkbox-group.js +17 -17
- package/checkbox/checkbox.js +34 -34
- package/clock.js +83 -83
- package/container/sticky-bar.js +16 -16
- package/core/a11y.js +91 -91
- package/core/base-elements.js +87 -88
- package/core/controllers.js +40 -40
- package/core/datetime.js +34 -36
- package/core/dom.js +26 -26
- package/core/eventing.js +33 -33
- package/core/mixins.js +122 -122
- package/core/overlay/overlay.d.ts.map +1 -1
- package/core/overlay.js +55 -50
- package/core/testing/event-spy.d.ts +1 -1
- package/core/testing/wait-for-image-ready.d.ts +4 -0
- package/core/testing/wait-for-image-ready.d.ts.map +1 -0
- package/core/testing.d.ts +1 -0
- package/core/testing.d.ts.map +1 -1
- package/core/testing.js +42 -31
- package/custom-elements.json +70 -4
- package/datepicker/common.js +55 -55
- package/datepicker/datepicker-toggle.js +94 -94
- package/datepicker/datepicker.js +144 -144
- package/development/accordion.js +2 -3
- package/development/action-group.js +2 -3
- package/development/alert/alert-group.js +2 -3
- package/development/alert/alert.js +2 -3
- package/development/autocomplete.js +2 -3
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group.js +5 -5
- package/development/breadcrumb/breadcrumb.js +2 -3
- package/development/button/button-link.js +2 -3
- package/development/button/button-static.js +2 -3
- package/development/button/button.js +2 -3
- package/development/button/common.js +2 -3
- package/development/button/mini-button.js +2 -3
- package/development/button/secondary-button-link.js +2 -3
- package/development/button/secondary-button-static.js +2 -3
- package/development/button/secondary-button.js +2 -3
- package/development/button/tertiary-button-link.js +2 -3
- package/development/button/tertiary-button-static.js +2 -3
- package/development/button/tertiary-button.js +2 -3
- package/development/button/transparent-button-link.js +2 -3
- package/development/button/transparent-button-static.js +2 -3
- package/development/button/transparent-button.js +2 -3
- package/development/calendar.js +2 -3
- package/development/card/card-badge.js +2 -3
- package/development/card/card-button.js +2 -3
- package/development/card/card-link.js +2 -3
- package/development/card/card.js +2 -3
- package/development/card/common.js +2 -3
- package/development/checkbox/checkbox-group.js +2 -3
- package/development/checkbox/checkbox.js +2 -3
- package/development/chip.js +2 -3
- package/development/clock.js +2 -3
- package/development/container/container.js +2 -3
- package/development/container/sticky-bar.js +2 -3
- package/development/core/base-elements.js +4 -7
- package/development/core/mixins.js +7 -13
- package/development/core/overlay/overlay.d.ts.map +1 -1
- package/development/core/overlay.js +9 -3
- package/development/core/testing/event-spy.d.ts +1 -1
- package/development/core/testing/wait-for-image-ready.d.ts +4 -0
- package/development/core/testing/wait-for-image-ready.d.ts.map +1 -0
- package/development/core/testing.d.ts +1 -0
- package/development/core/testing.d.ts.map +1 -1
- package/development/core/testing.js +17 -1
- package/development/datepicker/common.js +2 -3
- package/development/datepicker/datepicker-next-day.js +2 -3
- package/development/datepicker/datepicker-previous-day.js +2 -3
- package/development/datepicker/datepicker-toggle.js +2 -3
- package/development/datepicker/datepicker.js +2 -3
- package/development/dialog/dialog-actions.js +2 -3
- package/development/dialog/dialog-content.js +2 -3
- package/development/dialog/dialog-title.js +2 -3
- package/development/dialog/dialog.js +2 -3
- package/development/divider.js +2 -3
- package/development/expansion-panel/expansion-panel-content.js +2 -3
- package/development/expansion-panel/expansion-panel-header.js +2 -3
- package/development/expansion-panel/expansion-panel.js +2 -3
- package/development/file-selector.js +2 -3
- package/development/footer.js +2 -3
- package/development/form-error.js +2 -3
- package/development/form-field/form-field-clear.js +2 -3
- package/development/form-field/form-field.js +2 -3
- package/development/header/common.js +2 -3
- package/development/header/header-button.js +2 -3
- package/development/header/header-link.js +2 -3
- package/development/header/header.js +2 -3
- package/development/icon.js +4 -7
- package/development/image/image.d.ts +12 -3
- package/development/image/image.d.ts.map +1 -1
- package/development/image.js +41 -24
- package/development/journey-header.js +2 -3
- package/development/lead-container.js +2 -3
- package/development/link/block-link-button.js +2 -3
- package/development/link/block-link-static.js +2 -3
- package/development/link/block-link.js +2 -3
- package/development/link/common.js +3 -5
- package/development/link/link-button.js +2 -3
- package/development/link/link-static.js +2 -3
- package/development/link/link.js +2 -3
- package/development/link-list.js +2 -3
- package/development/loading-indicator.js +2 -3
- package/development/logo.js +2 -3
- package/development/map-container.js +2 -3
- package/development/menu/common.js +2 -3
- package/development/menu/menu-button.js +2 -3
- package/development/menu/menu-link.js +2 -3
- package/development/menu/menu.js +2 -3
- package/development/message.js +2 -3
- package/development/navigation/common.js +2 -3
- package/development/navigation/navigation-button.js +2 -3
- package/development/navigation/navigation-link.js +2 -3
- package/development/navigation/navigation-list.js +2 -3
- package/development/navigation/navigation-marker.js +2 -3
- package/development/navigation/navigation-section.js +2 -3
- package/development/navigation/navigation.js +2 -3
- package/development/notification.js +2 -3
- package/development/option/optgroup.js +2 -3
- package/development/option/option.js +2 -3
- package/development/overlay.js +3 -5
- package/development/popover/popover-trigger.js +2 -3
- package/development/popover/popover.js +2 -3
- package/development/radio-button/radio-button-group.js +2 -3
- package/development/radio-button/radio-button.js +2 -3
- package/development/screen-reader-only.js +2 -3
- package/development/select.js +2 -3
- package/development/selection-panel.js +2 -3
- package/development/signet.js +2 -3
- package/development/skiplink-list.js +2 -3
- package/development/slider.js +2 -3
- package/development/status.js +2 -3
- package/development/stepper/step-label.js +2 -3
- package/development/stepper/step.js +2 -3
- package/development/stepper/stepper/stepper.d.ts +1 -1
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +5 -6
- package/development/tabs/tab-group.js +2 -3
- package/development/tabs/tab-title.js +2 -3
- package/development/tag/tag-group.js +2 -3
- package/development/tag/tag.js +2 -3
- package/development/teaser-hero.js +2 -3
- package/development/teaser-paid.js +2 -3
- package/development/teaser.js +2 -3
- package/development/time-input.js +2 -3
- package/development/timetable-occupancy-icon.js +2 -3
- package/development/timetable-occupancy.js +2 -3
- package/development/title.js +3 -5
- package/development/toast.js +2 -3
- package/development/toggle/toggle-option.js +3 -5
- package/development/toggle/toggle.js +2 -3
- package/development/toggle-check.js +10 -3
- package/development/train/train-blocked-passage.js +2 -3
- package/development/train/train-formation.js +2 -3
- package/development/train/train-wagon.js +2 -3
- package/development/train/train.js +2 -3
- package/development/visual-checkbox.js +2 -3
- package/dialog/dialog-title.js +20 -20
- package/dialog/dialog.js +66 -66
- package/expansion-panel/expansion-panel-header.js +20 -20
- package/expansion-panel/expansion-panel.js +60 -60
- package/file-selector.js +91 -91
- package/form-field/form-field-clear.js +12 -12
- package/form-field/form-field.js +111 -111
- package/header/header.js +53 -53
- package/icon.js +107 -107
- package/image/image.d.ts +12 -3
- package/image/image.d.ts.map +1 -1
- package/image.js +118 -105
- package/journey-header.js +29 -29
- package/map-container.js +23 -23
- package/menu/menu.js +91 -91
- package/navigation/common.js +16 -16
- package/navigation/navigation-marker.js +34 -34
- package/navigation/navigation-section.js +83 -83
- package/navigation/navigation.js +87 -87
- package/notification.js +52 -52
- package/option/optgroup.js +45 -45
- package/option/option.js +108 -108
- package/overlay.js +5 -5
- package/package.json +1 -1
- package/popover/popover.js +110 -110
- package/radio-button/radio-button-group.js +93 -93
- package/radio-button/radio-button.js +84 -84
- package/select.js +178 -178
- package/selection-panel.js +44 -44
- package/slider.js +58 -58
- package/status.js +6 -6
- package/stepper/step-label.js +19 -19
- package/stepper/step.js +31 -31
- package/stepper/stepper/stepper.d.ts +1 -1
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +48 -48
- package/tabs/tab-group.js +67 -67
- package/tag/tag-group.js +8 -8
- package/tag/tag.js +27 -27
- package/teaser-paid.js +12 -12
- package/time-input.js +73 -73
- package/timetable-occupancy-icon.js +26 -26
- package/timetable-occupancy.js +9 -9
- package/toast.js +38 -38
- package/toggle/toggle-option.js +33 -33
- package/toggle/toggle.js +46 -46
- package/toggle-check.js +14 -14
- package/train/train-formation.js +36 -37
- package/train/train-wagon.js +30 -30
- package/train/train.js +13 -13
package/toast.js
CHANGED
|
@@ -2,28 +2,28 @@ import { css as m, html as d, nothing as p } from "lit";
|
|
|
2
2
|
import { property as b, customElement as h } from "lit/decorators.js";
|
|
3
3
|
import { SbbOpenCloseBaseElement as f } from "./core/base-elements.js";
|
|
4
4
|
import { SbbConnectedAbortController as v, SbbLanguageController as g, SbbSlotStateController as u } from "./core/controllers.js";
|
|
5
|
-
import { isFirefox as
|
|
6
|
-
import { composedPathHasAttribute as
|
|
7
|
-
import { i18nCloseAlert as
|
|
8
|
-
import { SbbIconNameMixin as
|
|
5
|
+
import { isFirefox as x } from "./core/dom.js";
|
|
6
|
+
import { composedPathHasAttribute as y } from "./core/eventing.js";
|
|
7
|
+
import { i18nCloseAlert as _ } from "./core/i18n.js";
|
|
8
|
+
import { SbbIconNameMixin as N } from "./icon.js";
|
|
9
9
|
import "./button/transparent-button.js";
|
|
10
10
|
const k = m`*,:before,:after{box-sizing:border-box}:host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-toast-animation-timing-function: ease;--sbb-toast-color: var(--sbb-color-white);--sbb-toast-text-color: var(--sbb-color-milk);--sbb-toast-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-toast-margin: var(--sbb-spacing-responsive-s);--sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);--sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);--sbb-toast-border-radius: var(--sbb-border-radius-4x);--sbb-toast-container-display: flex;--sbb-toast-container-position: fixed;--sbb-toast-horizontal-position: initial;--sbb-toast-vertical-position: initial;display:block}:host(:not([data-state])),:host([data-state=closed]){--sbb-toast-container-display: none}:host([position=bottom-left]),:host([position=bottom-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-end}:host([position=bottom-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-end}:host([position=bottom-right]),:host([position=bottom-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-end}:host([position=top-left]),:host([position=top-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-start}:host([position=top-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-start}:host([position=top-right]),:host([position=top-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-start}.sbb-toast__overlay-container{position:var(--sbb-toast-container-position);pointer-events:none;top:0;right:0;bottom:0;left:0;display:var(--sbb-toast-container-display);justify-content:var(--sbb-toast-horizontal-position);align-items:var(--sbb-toast-vertical-position)}.sbb-toast{z-index:var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));pointer-events:auto;margin:var(--sbb-toast-margin);padding-block:var(--sbb-toast-padding-block);padding-inline:var(--sbb-toast-padding-inline);border-radius:var(--sbb-toast-border-radius);max-width:var(--sbb-toast-max-width);display:flex;color:var(--sbb-toast-color);background-color:var(--sbb-toast-background-color)}:host([data-state=opening]) .sbb-toast{animation-name:open;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}:host([data-state=closing]) .sbb-toast{animation-name:close;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}.sbb-toast__icon{margin-inline-end:var(--sbb-spacing-fixed-2x);line-height:initial}:host(:not([data-slot-names~=icon],[icon-name])) .sbb-toast__icon{display:none}.sbb-toast__content{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);color:var(--sbb-toast-text-color);flex:1 1 0}.sbb-toast__action{position:relative;min-width:2.5rem}:host(:not([data-slot-names~=action],[dismissible])) .sbb-toast__action{display:none}::slotted([data-sbb-button]),.sbb-toast__action-button{margin-inline:var(--sbb-spacing-fixed-2x);position:absolute;top:-.625rem}::slotted(:is(sbb-link,sbb-link-button,sbb-link-static)){margin-inline-start:var(--sbb-spacing-fixed-4x)}@keyframes open{0%{visibility:hidden;opacity:0;transform:translateY(var(--sbb-spacing-fixed-2x))}to{visibility:visible;opacity:1;transform:translateY(0)}}@keyframes close{0%{visibility:visible;opacity:1;transform:translateY(0)}to{visibility:hidden;opacity:0;transform:translateY(var(--sbb-spacing-fixed-2x))}}`;
|
|
11
|
-
var
|
|
12
|
-
for (var t = a > 1 ? void 0 : a ?
|
|
13
|
-
(l =
|
|
14
|
-
return a && t &&
|
|
11
|
+
var z = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (s, o, i, a) => {
|
|
12
|
+
for (var t = a > 1 ? void 0 : a ? T(o, i) : o, r = s.length - 1, l; r >= 0; r--)
|
|
13
|
+
(l = s[r]) && (t = (a ? l(o, i, t) : l(t)) || t);
|
|
14
|
+
return a && t && z(o, i, t), t;
|
|
15
15
|
};
|
|
16
16
|
const c = /* @__PURE__ */ new Set();
|
|
17
|
-
let e = class extends
|
|
17
|
+
let e = class extends N(f) {
|
|
18
18
|
constructor() {
|
|
19
|
-
super(), this.timeout = 6e3, this.position = "bottom-center", this.dismissible = !1, this.politeness = "polite", this.
|
|
19
|
+
super(), this.timeout = 6e3, this.position = "bottom-center", this.dismissible = !1, this.politeness = "polite", this.b = new v(this), this.c = new g(this), new u(this);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Role of the live region. This is only for Firefox as there is a known issue where Firefox +
|
|
23
23
|
* JAWS does not read out aria-live message.
|
|
24
24
|
*/
|
|
25
|
-
get
|
|
26
|
-
if (
|
|
25
|
+
get d() {
|
|
26
|
+
if (x) {
|
|
27
27
|
if (this.politeness === "polite")
|
|
28
28
|
return "status";
|
|
29
29
|
if (this.politeness === "assertive")
|
|
@@ -35,46 +35,46 @@ let e = class extends T(f) {
|
|
|
35
35
|
* If there are other opened toasts in the page, close them first.
|
|
36
36
|
*/
|
|
37
37
|
open() {
|
|
38
|
-
this.state === "closed" && this.willOpen.emit() && (this.state = "opening", this.
|
|
38
|
+
this.state === "closed" && this.willOpen.emit() && (this.state = "opening", this.e());
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Close the toast.
|
|
42
42
|
*/
|
|
43
43
|
close() {
|
|
44
|
-
this.state === "opened" && this.willClose.emit() && (clearTimeout(this.
|
|
44
|
+
this.state === "opened" && this.willClose.emit() && (clearTimeout(this.a), this.state = "closing");
|
|
45
45
|
}
|
|
46
46
|
// Close the toast on click of any element that has the 'sbb-toast-close' attribute.
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
47
|
+
f(s) {
|
|
48
|
+
const o = y(s, "sbb-toast-close", this);
|
|
49
|
+
o && !o.hasAttribute("disabled") && this.close();
|
|
50
50
|
}
|
|
51
51
|
connectedCallback() {
|
|
52
52
|
super.connectedCallback();
|
|
53
|
-
const
|
|
54
|
-
this.addEventListener("click", (
|
|
53
|
+
const s = this.b.signal;
|
|
54
|
+
this.addEventListener("click", (o) => this.f(o), { signal: s }), c.add(this);
|
|
55
55
|
}
|
|
56
56
|
disconnectedCallback() {
|
|
57
|
-
super.disconnectedCallback(), clearTimeout(this.
|
|
57
|
+
super.disconnectedCallback(), clearTimeout(this.a), c.delete(this);
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Slotted text nodes are not read correctly by screen readers on Chrome.
|
|
61
61
|
* To address the problem, if there is at least a root text node,
|
|
62
62
|
* we wrap the whole content in a <span> tag
|
|
63
63
|
*/
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
64
|
+
g(s) {
|
|
65
|
+
const o = s.target.assignedNodes();
|
|
66
|
+
if (o.some((i) => i.nodeType === Node.TEXT_NODE)) {
|
|
67
67
|
const i = document.createElement("span");
|
|
68
|
-
this.appendChild(i), i.append(...
|
|
68
|
+
this.appendChild(i), i.append(...o);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
71
|
+
h(s) {
|
|
72
|
+
const o = s.target.assignedNodes();
|
|
73
|
+
o.filter(
|
|
74
74
|
(t) => t.nodeName === "SBB-TRANSPARENT-BUTTON" || t.nodeName === "SBB-TRANSPARENT-BUTTON-LINK"
|
|
75
75
|
).forEach((t) => {
|
|
76
76
|
t.negative = !0, t.size = "m";
|
|
77
|
-
}),
|
|
77
|
+
}), o.filter(
|
|
78
78
|
(t) => ["SBB-LINK", "SBB-LINK-BUTTON", "SBB-LINK-STATIC"].includes(t.nodeName)
|
|
79
79
|
).forEach((t) => {
|
|
80
80
|
t.negative = !0;
|
|
@@ -82,15 +82,15 @@ let e = class extends T(f) {
|
|
|
82
82
|
}
|
|
83
83
|
// In rare cases it can be that the animationEnd event is triggered twice.
|
|
84
84
|
// To avoid entering a corrupt state, exit when state is not expected.
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
i(s) {
|
|
86
|
+
s.animationName === "open" && this.state === "opening" && (this.state = "opened", this.didOpen.emit(), this.timeout && (this.a = setTimeout(() => this.close(), this.timeout))), s.animationName === "close" && this.state === "closing" && (this.state = "closed", this.didClose.emit());
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Since we do not stack toasts, we force the closing on other existing opened ones
|
|
90
90
|
*/
|
|
91
|
-
|
|
92
|
-
c.forEach((
|
|
93
|
-
|
|
91
|
+
e() {
|
|
92
|
+
c.forEach((s) => {
|
|
93
|
+
s.getAttribute("data-state") === "opened" && s.close();
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
render() {
|
|
@@ -100,23 +100,23 @@ let e = class extends T(f) {
|
|
|
100
100
|
class="sbb-toast"
|
|
101
101
|
${/* Firefox needs 'role' to enable screen readers */
|
|
102
102
|
""}
|
|
103
|
-
role=${this.
|
|
104
|
-
@animationend=${this.
|
|
103
|
+
role=${this.d ?? p}
|
|
104
|
+
@animationend=${this.i}
|
|
105
105
|
>
|
|
106
106
|
<div class="sbb-toast__icon">${this.renderIconSlot()}</div>
|
|
107
107
|
|
|
108
108
|
<div class="sbb-toast__content" aria-live=${this.politeness}>
|
|
109
|
-
<slot @slotchange=${this.
|
|
109
|
+
<slot @slotchange=${this.g}></slot>
|
|
110
110
|
</div>
|
|
111
111
|
|
|
112
112
|
<div class="sbb-toast__action">
|
|
113
|
-
<slot name="action" @slotchange=${this.
|
|
113
|
+
<slot name="action" @slotchange=${this.h}>
|
|
114
114
|
${this.dismissible ? d` <sbb-transparent-button
|
|
115
115
|
class="sbb-toast__action-button"
|
|
116
116
|
icon-name="cross-small"
|
|
117
117
|
negative
|
|
118
118
|
size="m"
|
|
119
|
-
aria-label=${
|
|
119
|
+
aria-label=${_[this.c.current]}
|
|
120
120
|
sbb-toast-close
|
|
121
121
|
></sbb-transparent-button>` : p}
|
|
122
122
|
</slot>
|
package/toggle/toggle-option.js
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { css as
|
|
1
|
+
import { css as c, LitElement as h, html as g, nothing as d } from "lit";
|
|
2
2
|
import { property as a, customElement as p } from "lit/decorators.js";
|
|
3
3
|
import { SbbConnectedAbortController as u, SbbSlotStateController as f } from "../core/controllers.js";
|
|
4
4
|
import { hostAttributes as v } from "../core/decorators.js";
|
|
5
5
|
import { setOrRemoveAttribute as m } from "../core/dom.js";
|
|
6
|
-
import { SbbIconNameMixin as
|
|
7
|
-
const
|
|
8
|
-
var x = Object.defineProperty,
|
|
9
|
-
for (var o =
|
|
10
|
-
(
|
|
11
|
-
return
|
|
6
|
+
import { SbbIconNameMixin as y } from "../icon.js";
|
|
7
|
+
const w = c`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-option-cursor: pointer;--sbb-toggle-option-color: var(--sbb-color-anthracite);--sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);--sbb-toggle-option-border-radius: var(--sbb-border-radius-infinity);--sbb-toggle-option-line-height: calc(1em * var(--sbb-typo-line-height-body-text));display:inline-block;min-width:var(--sbb-toggle-min-width);overflow:hidden;z-index:1}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])){outline:none!important}:host([checked]){--sbb-toggle-option-color: var(--sbb-color-charcoal)}:host([disabled]){--sbb-toggle-option-cursor: unset;--sbb-toggle-option-color: var(--sbb-color-granite)}input[type=radio]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-toggle-option{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);font-weight:700;cursor:var(--sbb-toggle-option-cursor);display:flex;justify-content:center;align-items:center;height:var(--sbb-toggle-height);padding-inline:var(--sbb-toggle-padding-inline);border-radius:var(--sbb-toggle-option-border-radius);color:var(--sbb-toggle-option-color)}:host([data-slot-names~=unnamed]:where([data-slot-names~=icon],[icon-name])) .sbb-toggle-option{gap:var(--sbb-spacing-fixed-1x)}.sbb-toggle-option__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-option__label:before{content:"";position:absolute;pointer-events:none;inset:calc(var(--sbb-focus-outline-offset) * -2);border:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-toggle-option-border-radius)}sbb-icon,::slotted(sbb-icon){min-width:var(--sbb-toggle-option-icon-min-size);min-height:var(--sbb-toggle-option-icon-min-size)}`;
|
|
8
|
+
var x = Object.defineProperty, k = Object.getOwnPropertyDescriptor, l = (t, e, i, r) => {
|
|
9
|
+
for (var o = r > 1 ? void 0 : r ? k(e, i) : e, b = t.length - 1, n; b >= 0; b--)
|
|
10
|
+
(n = t[b]) && (o = (r ? n(e, i, o) : n(o)) || o);
|
|
11
|
+
return r && o && x(e, i, o), o;
|
|
12
12
|
};
|
|
13
|
-
let s = class extends
|
|
13
|
+
let s = class extends y(h) {
|
|
14
14
|
constructor() {
|
|
15
|
-
super(), this.checked = !1, this.disabled = !1, this.
|
|
15
|
+
super(), this.checked = !1, this.disabled = !1, this.c = "", this.e = new u(this), new f(this);
|
|
16
16
|
}
|
|
17
|
-
set value(
|
|
18
|
-
this.
|
|
17
|
+
set value(t) {
|
|
18
|
+
this.c = `${t}`;
|
|
19
19
|
}
|
|
20
20
|
get value() {
|
|
21
|
-
return this.
|
|
21
|
+
return this.c;
|
|
22
22
|
}
|
|
23
23
|
connectedCallback() {
|
|
24
|
-
var
|
|
24
|
+
var e;
|
|
25
25
|
super.connectedCallback();
|
|
26
|
-
const
|
|
27
|
-
this.addEventListener("input", () => this.
|
|
26
|
+
const t = this.e.signal;
|
|
27
|
+
this.addEventListener("input", () => this.f(), { signal: t }), this.addEventListener("click", () => {
|
|
28
28
|
var i;
|
|
29
29
|
return (i = this.shadowRoot.querySelector("label")) == null ? void 0 : i.click();
|
|
30
30
|
}, {
|
|
31
|
-
signal:
|
|
32
|
-
}), this.
|
|
31
|
+
signal: t
|
|
32
|
+
}), this.a = ((e = this.closest) == null ? void 0 : e.call(this, "sbb-toggle")) ?? void 0, this.b();
|
|
33
33
|
}
|
|
34
|
-
willUpdate(
|
|
35
|
-
super.willUpdate(
|
|
34
|
+
willUpdate(t) {
|
|
35
|
+
super.willUpdate(t), t.has("checked") && (this.setAttribute("aria-checked", `${this.checked}`), this.b(), this.checked && this.d()), t.has("disabled") && this.g();
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
var
|
|
39
|
-
(
|
|
37
|
+
d() {
|
|
38
|
+
var t;
|
|
39
|
+
(t = this.a) == null || t.options.filter((e) => e !== this).forEach((e) => e.checked = !1);
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
this.
|
|
41
|
+
g() {
|
|
42
|
+
this.a && (this.a.disabled && !this.disabled ? this.disabled = !0 : !this.a.disabled && this.disabled && (this.disabled = !1)), m(this, "aria-disabled", this.disabled ? "true" : null), this.b();
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
this.disabled || (this.checked = !0, this.
|
|
44
|
+
f() {
|
|
45
|
+
this.disabled || (this.checked = !0, this.d());
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
b() {
|
|
48
48
|
this.tabIndex = this.checked && !this.disabled ? 0 : -1;
|
|
49
49
|
}
|
|
50
50
|
render() {
|
|
@@ -57,7 +57,7 @@ let s = class extends _(c) {
|
|
|
57
57
|
?disabled=${this.disabled}
|
|
58
58
|
.checked=${this.checked || d}
|
|
59
59
|
.value=${this.value || d}
|
|
60
|
-
@click=${(
|
|
60
|
+
@click=${(t) => t.stopPropagation()}
|
|
61
61
|
/>
|
|
62
62
|
<label class="sbb-toggle-option" for="sbb-toggle-option-id">
|
|
63
63
|
${this.renderIconSlot()}
|
|
@@ -68,17 +68,17 @@ let s = class extends _(c) {
|
|
|
68
68
|
`;
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
|
-
s.styles =
|
|
72
|
-
|
|
71
|
+
s.styles = w;
|
|
72
|
+
l([
|
|
73
73
|
a({ reflect: !0, type: Boolean })
|
|
74
74
|
], s.prototype, "checked", 2);
|
|
75
|
-
|
|
75
|
+
l([
|
|
76
76
|
a({ reflect: !0, type: Boolean })
|
|
77
77
|
], s.prototype, "disabled", 2);
|
|
78
|
-
|
|
78
|
+
l([
|
|
79
79
|
a()
|
|
80
80
|
], s.prototype, "value", 1);
|
|
81
|
-
s =
|
|
81
|
+
s = l([
|
|
82
82
|
p("sbb-toggle-option"),
|
|
83
83
|
v({
|
|
84
84
|
role: "radio"
|
package/toggle/toggle.js
CHANGED
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
import { css as
|
|
1
|
+
import { css as m, LitElement as u, isServer as c, html as v } from "lit";
|
|
2
2
|
import { property as a, customElement as f } from "lit/decorators.js";
|
|
3
|
-
import { interactivityChecker as y, isArrowKeyPressed as
|
|
4
|
-
import { SbbConnectedAbortController as
|
|
5
|
-
import { hostAttributes as
|
|
3
|
+
import { interactivityChecker as y, isArrowKeyPressed as w, getNextElementIndex as x } from "../core/a11y.js";
|
|
4
|
+
import { SbbConnectedAbortController as k } from "../core/controllers.js";
|
|
5
|
+
import { hostAttributes as z } from "../core/decorators.js";
|
|
6
6
|
import { EventEmitter as p } from "../core/eventing.js";
|
|
7
7
|
import { AgnosticResizeObserver as C } from "../core/observers.js";
|
|
8
|
-
const
|
|
9
|
-
var
|
|
10
|
-
for (var o = i > 1 ? void 0 : i ?
|
|
11
|
-
(
|
|
12
|
-
return i && o &&
|
|
8
|
+
const E = m`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-width: fit-content;--sbb-toggle-min-width: calc( var(--sbb-toggle-padding-inline) * 2 + var(--sbb-size-icon-ui-small) );--sbb-toggle-selected-option-border-color: var(--sbb-color-smoke);--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-toggle-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-toggle-height: 1.75rem;--sbb-toggle-border-width: var(--sbb-border-width-1x);--sbb-toggle-border-style: solid;--sbb-toggle-border-radius: var(--sbb-border-radius-infinity);display:block}@media (min-width: 52.5rem){:host{--sbb-toggle-height: 2rem}}@media (forced-colors: active){:host{--sbb-toggle-selected-option-border-color: Highlight;--sbb-toggle-border-width: var(--sbb-border-width-2x)}}:host([even]){--sbb-toggle-width: 100%}:host([even]) ::slotted(sbb-toggle-option){width:50%}:host([disabled]){--sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);--sbb-toggle-border-style: dashed}@media (forced-colors: active){:host([disabled]){--sbb-toggle-border-style: solid;--sbb-toggle-selected-option-border-color: GrayText}}:host([size=m]){--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-s);--sbb-toggle-height: 2.75rem}@media (min-width: 52.5rem){:host([size=m]){--sbb-toggle-height: 3.25rem}}:host([data-disable-animation-on-resizing]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}.sbb-toggle{--sbb-text-font-size: var(--sbb-font-size-text-m);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);position:relative;display:flex;align-items:center;width:var(--sbb-toggle-width);max-width:100%;min-width:calc(var(--sbb-toggle-min-width) * 2);height:var(--sbb-toggle-height);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:var(--sbb-color-cloud);border-radius:var(--sbb-toggle-border-radius)}.sbb-toggle:after{content:"";padding-inline:var(--sbb-toggle-padding-inline);display:inline-block;opacity:1;background-color:var(--sbb-color-white);border:var(--sbb-toggle-border-width) var(--sbb-toggle-border-style) var(--sbb-toggle-selected-option-border-color);border-radius:var(--sbb-toggle-border-radius);position:absolute;max-width:100%;min-width:var(--sbb-toggle-min-width);inset-block:calc(-2 * var(--sbb-toggle-border-width));inset-inline:calc(var(--sbb-toggle-option-left) - .125rem) calc(var(--sbb-toggle-option-right) - .125rem);transition-duration:var(--sbb-toggle-animation-duration);transition-timing-function:ease;transition-property:opacity,inset-inline-end,inset-inline-start}@media (forced-colors: active){.sbb-toggle{outline:var(--sbb-toggle-border-width) solid CanvasText}}`;
|
|
9
|
+
var O = Object.defineProperty, A = Object.getOwnPropertyDescriptor, l = (e, t, s, i) => {
|
|
10
|
+
for (var o = i > 1 ? void 0 : i ? A(t, s) : t, n = e.length - 1, b; n >= 0; n--)
|
|
11
|
+
(b = e[n]) && (o = (i ? b(t, s, o) : b(o)) || o);
|
|
12
|
+
return i && o && O(t, s, o), o;
|
|
13
13
|
};
|
|
14
|
-
let r = class extends
|
|
14
|
+
let r = class extends u {
|
|
15
15
|
constructor() {
|
|
16
|
-
super(...arguments), this.
|
|
17
|
-
() => this.
|
|
18
|
-
), this.
|
|
16
|
+
super(...arguments), this.b = !1, this.even = !1, this.size = "m", this.d = null, this.f = !1, this.g = new C(
|
|
17
|
+
() => this.a(!0)
|
|
18
|
+
), this.i = new p(this, r.events.didChange, {
|
|
19
19
|
bubbles: !0,
|
|
20
20
|
composed: !0
|
|
21
|
-
}), this.
|
|
21
|
+
}), this.j = new p(this, r.events.change, {
|
|
22
22
|
bubbles: !0,
|
|
23
23
|
composed: !0
|
|
24
|
-
}), this.
|
|
24
|
+
}), this.k = new k(this);
|
|
25
25
|
}
|
|
26
26
|
set disabled(e) {
|
|
27
|
-
this.
|
|
27
|
+
this.b = e, this.c();
|
|
28
28
|
}
|
|
29
29
|
get disabled() {
|
|
30
|
-
return this.
|
|
30
|
+
return this.b;
|
|
31
31
|
}
|
|
32
32
|
set value(e) {
|
|
33
|
-
c ? this.
|
|
33
|
+
c ? this.d = e : this.e(e);
|
|
34
34
|
}
|
|
35
35
|
get value() {
|
|
36
36
|
var e, t;
|
|
37
|
-
return c ? this.
|
|
37
|
+
return c ? this.d ?? "" : ((e = this.options.find((s) => s.checked)) == null ? void 0 : e.value) ?? ((t = this.options[0]) == null ? void 0 : t.value) ?? "";
|
|
38
38
|
}
|
|
39
39
|
/** The child instances of sbb-toggle-option as an array. */
|
|
40
40
|
get options() {
|
|
41
41
|
var e;
|
|
42
42
|
return Array.from(((e = this.querySelectorAll) == null ? void 0 : e.call(this, "sbb-toggle-option")) ?? []);
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
e(e) {
|
|
45
45
|
const t = this.options, s = t.find(
|
|
46
46
|
(i) => e === ("value" in i ? i.value : i.getAttribute("value"))
|
|
47
47
|
) ?? t.find((i) => i.checked) ?? t[0];
|
|
48
|
-
s && (s.checked || (s.checked = !0), this.
|
|
48
|
+
s && (s.checked || (s.checked = !0), this.a(!1));
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
c() {
|
|
51
51
|
for (const e of this.options)
|
|
52
52
|
e.disabled = this.disabled;
|
|
53
53
|
}
|
|
54
|
-
|
|
54
|
+
a(e) {
|
|
55
55
|
var g, h;
|
|
56
|
-
if (!this.
|
|
56
|
+
if (!this.f)
|
|
57
57
|
return;
|
|
58
58
|
const t = this.options, s = this.shadowRoot.querySelector(".sbb-toggle");
|
|
59
59
|
if (t.every((d) => !d.checked) || t.every((d) => !d.clientWidth) || !s)
|
|
60
60
|
return;
|
|
61
61
|
this.toggleAttribute("data-disable-animation-on-resizing", e);
|
|
62
|
-
const i = t[0], o = i.checked, n = i.checked ? "0px" : `${i.clientWidth}px`,
|
|
63
|
-
(g = this.style) == null || g.setProperty("--sbb-toggle-option-left", n), (h = this.style) == null || h.setProperty("--sbb-toggle-option-right",
|
|
62
|
+
const i = t[0], o = i.checked, n = i.checked ? "0px" : `${i.clientWidth}px`, b = o ? `${s.clientWidth - i.clientWidth}px` : "0px";
|
|
63
|
+
(g = this.style) == null || g.setProperty("--sbb-toggle-option-left", n), (h = this.style) == null || h.setProperty("--sbb-toggle-option-right", b);
|
|
64
64
|
}
|
|
65
65
|
connectedCallback() {
|
|
66
66
|
super.connectedCallback();
|
|
67
|
-
const e = this.
|
|
68
|
-
this.addEventListener("input", () => this.
|
|
67
|
+
const e = this.k.signal;
|
|
68
|
+
this.addEventListener("input", () => this.l(), { signal: e, passive: !0 }), this.addEventListener("keydown", (t) => this.m(t), { signal: e }), this.options.forEach((t) => this.g.observe(t)), this.h();
|
|
69
69
|
}
|
|
70
70
|
async firstUpdated(e) {
|
|
71
|
-
super.firstUpdated(e), await this.updateComplete, this.
|
|
71
|
+
super.firstUpdated(e), await this.updateComplete, this.f = !0;
|
|
72
72
|
}
|
|
73
73
|
disconnectedCallback() {
|
|
74
|
-
super.disconnectedCallback(), this.
|
|
74
|
+
super.disconnectedCallback(), this.g.disconnect();
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
this.
|
|
76
|
+
h() {
|
|
77
|
+
this.e(this.value), this.c();
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
this.
|
|
79
|
+
l() {
|
|
80
|
+
this.a(!1), this.j.emit(), this.i.emit();
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
m(e) {
|
|
83
83
|
const t = this.options.filter(
|
|
84
84
|
(s) => !s.disabled && y.isVisible(s)
|
|
85
85
|
);
|
|
86
86
|
if (!(!t || // don't trap nested handling
|
|
87
|
-
e.target !== this && e.target.parentElement !== this) &&
|
|
87
|
+
e.target !== this && e.target.parentElement !== this) && w(e)) {
|
|
88
88
|
const s = t.findIndex(
|
|
89
89
|
(o) => o.checked
|
|
90
|
-
), i =
|
|
90
|
+
), i = x(e, s, t.length);
|
|
91
91
|
t[i].checked || (t[i].checked = !0, t[i].focus(), t[i].dispatchEvent(
|
|
92
92
|
new InputEvent("input", { bubbles: !0, composed: !0 })
|
|
93
93
|
)), e.preventDefault();
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
render() {
|
|
97
|
-
return
|
|
97
|
+
return v`
|
|
98
98
|
<div class="sbb-toggle">
|
|
99
|
-
<slot @slotchange=${this.
|
|
99
|
+
<slot @slotchange=${this.h}></slot>
|
|
100
100
|
</div>
|
|
101
101
|
`;
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
|
-
r.styles =
|
|
104
|
+
r.styles = E;
|
|
105
105
|
r.events = {
|
|
106
106
|
didChange: "didChange",
|
|
107
107
|
change: "change"
|
|
108
108
|
};
|
|
109
|
-
|
|
109
|
+
l([
|
|
110
110
|
a({ reflect: !0, type: Boolean })
|
|
111
111
|
], r.prototype, "disabled", 1);
|
|
112
|
-
|
|
112
|
+
l([
|
|
113
113
|
a({ reflect: !0, type: Boolean })
|
|
114
114
|
], r.prototype, "even", 2);
|
|
115
|
-
|
|
115
|
+
l([
|
|
116
116
|
a({ reflect: !0 })
|
|
117
117
|
], r.prototype, "size", 2);
|
|
118
|
-
|
|
118
|
+
l([
|
|
119
119
|
a()
|
|
120
120
|
], r.prototype, "value", 1);
|
|
121
|
-
r =
|
|
121
|
+
r = l([
|
|
122
122
|
f("sbb-toggle"),
|
|
123
|
-
|
|
123
|
+
z({
|
|
124
124
|
role: "radiogroup"
|
|
125
125
|
})
|
|
126
126
|
], r);
|
package/toggle-check.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { css as g, LitElement as
|
|
1
|
+
import { css as g, LitElement as n, html as h } from "lit";
|
|
2
2
|
import { property as i, customElement as d } from "lit/decorators.js";
|
|
3
3
|
import { SbbSlotStateController as k } from "./core/controllers.js";
|
|
4
4
|
import { SbbFormAssociatedCheckboxMixin as v } from "./core/mixins.js";
|
|
5
5
|
import { SbbIconNameMixin as f } from "./icon.js";
|
|
6
|
-
const p = g`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{display:inline-block;outline:none!important;--sbb-toggle-check-checked-color: var(--sbb-color-red);--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-icon-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-icon-opacity: 0;--sbb-toggle-check-circle-background-color: var(--sbb-color-white);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: solid;--sbb-toggle-check-circle-diameter: 1.75rem;--sbb-toggle-check-overall-height: var(--sbb-toggle-check-circle-diameter);--sbb-toggle-check-circle-transform: translate(0, -50%);--sbb-toggle-check-height: 1.5rem;--sbb-toggle-check-width: calc(2 * var(--sbb-toggle-check-height));--sbb-toggle-check-cursor: pointer;--sbb-toggle-check-flex-direction: row-reverse;--sbb-toggle-check-gap: var(--sbb-spacing-fixed-3x);--sbb-toggle-check-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) )}@media (forced-colors: active){:host{--sbb-toggle-check-background-color: CanvasText;--sbb-toggle-check-circle-background-color: Canvas}}:host([size=m]){--sbb-toggle-check-overall-height: calc(1em * var(--sbb-typo-line-height-body-text))}:host([data-checked]){--sbb-toggle-check-background-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-circle-border-color: var(--sbb-toggle-check-background-color);--sbb-toggle-check-icon-opacity: 1;--sbb-toggle-check-circle-transform: translate( calc(100% - 2 * (100% - .5 * var(--sbb-toggle-check-width))), -50% )}@media (forced-colors: active){:host([data-checked]){--sbb-toggle-check-icon-color: Highlight;--sbb-toggle-check-background-color: Highlight}}:host(:disabled){--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: dashed;--sbb-toggle-check-circle-background-color: var(--sbb-color-milk);--sbb-toggle-check-icon-color: var(--sbb-color-granite);--sbb-toggle-check-cursor: default}@media (forced-colors: active){:host(:disabled){--sbb-toggle-check-icon-color: GrayText;--sbb-toggle-check-background-color: GrayText;--sbb-toggle-check-circle-border-style: solid}}:host([data-checked]:disabled){--sbb-toggle-check-circle-background-color: var(--sbb-color-white)}:host([label-position=before]){--sbb-toggle-check-flex-direction: row}.sbb-toggle-check{position:relative;display:flex;color:var(--sbb-color-charcoal);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:var(--sbb-toggle-check-cursor)}.sbb-toggle-check:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-check{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset))}.sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:var(--sbb-toggle-check-flex-direction);gap:var(--sbb-toggle-check-gap);align-items:start;width:100%}:host([size=m]) .sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-m);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}.sbb-toggle-check__label{flex-grow:1;padding-block-start:calc((var(--sbb-toggle-check-circle-diameter) - var(--sbb-typo-line-height-body-text) * 1em) / 2)}:host(:not([data-slot-names~=unnamed])) .sbb-toggle-check__label{display:none}.sbb-toggle-check__track{display:inline-block;position:relative;min-width:var(--sbb-toggle-check-width);height:var(--sbb-toggle-check-height);border-radius:var(--sbb-border-radius-infinity);background-color:var(--sbb-toggle-check-background-color);margin-block:calc((var(--sbb-toggle-check-overall-height) - var(--sbb-toggle-check-height)) / 2)}.sbb-toggle-check__circle{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);position:absolute;top:50%;transform:translateY(-50%);width:var(--sbb-toggle-check-circle-diameter);height:var(--sbb-toggle-check-circle-diameter);border:var(--sbb-border-width-1x) var(--sbb-toggle-check-circle-border-style) var(--sbb-toggle-check-circle-border-color);border-radius:50%;background-color:var(--sbb-toggle-check-circle-background-color);color:var(--sbb-toggle-check-icon-color);will-change:transform;transform:var(--sbb-toggle-check-circle-transform);transition:transform ease var(--sbb-toggle-check-animation-duration)}.sbb-toggle-check__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);opacity:var(--sbb-toggle-check-icon-opacity);transition:opacity ease var(--sbb-toggle-check-animation-duration)}`;
|
|
7
|
-
var u = Object.defineProperty, m = Object.getOwnPropertyDescriptor,
|
|
8
|
-
for (var e =
|
|
9
|
-
(a =
|
|
10
|
-
return
|
|
6
|
+
const p = g`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{display:inline-block;outline:none!important;--sbb-toggle-check-checked-color: var(--sbb-color-red);--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-icon-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-icon-opacity: 0;--sbb-toggle-check-circle-background-color: var(--sbb-color-white);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: solid;--sbb-toggle-check-circle-diameter: 1.75rem;--sbb-toggle-check-overall-height: var(--sbb-toggle-check-circle-diameter);--sbb-toggle-check-circle-transform: translate(0, -50%);--sbb-toggle-check-height: 1.5rem;--sbb-toggle-check-width: calc(2 * var(--sbb-toggle-check-height));--sbb-toggle-check-cursor: pointer;--sbb-toggle-check-flex-direction: row-reverse;--sbb-toggle-check-gap: var(--sbb-spacing-fixed-3x);--sbb-toggle-check-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) )}@media (forced-colors: active){:host{--sbb-toggle-check-background-color: CanvasText;--sbb-toggle-check-circle-background-color: Canvas}}:host([size=m]){--sbb-toggle-check-overall-height: calc(1em * var(--sbb-typo-line-height-body-text))}:host([data-checked]){--sbb-toggle-check-background-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-circle-border-color: var(--sbb-toggle-check-background-color);--sbb-toggle-check-icon-opacity: 1;--sbb-toggle-check-circle-transform: translate( calc(100% - 2 * (100% - .5 * var(--sbb-toggle-check-width))), -50% )}@media (forced-colors: active){:host([data-checked]){--sbb-toggle-check-icon-color: Highlight;--sbb-toggle-check-background-color: Highlight}}:host(:disabled){--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: dashed;--sbb-toggle-check-circle-background-color: var(--sbb-color-milk);--sbb-toggle-check-icon-color: var(--sbb-color-granite);--sbb-toggle-check-cursor: default}@media (forced-colors: active){:host(:disabled){--sbb-toggle-check-icon-color: GrayText;--sbb-toggle-check-background-color: GrayText;--sbb-toggle-check-circle-border-style: solid}}:host([data-checked]:disabled){--sbb-toggle-check-circle-background-color: var(--sbb-color-white)}:host([label-position=before]){--sbb-toggle-check-flex-direction: row}.sbb-toggle-check{position:relative;display:flex;color:var(--sbb-color-charcoal);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:var(--sbb-toggle-check-cursor)}.sbb-toggle-check:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-check{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset))}.sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:var(--sbb-toggle-check-flex-direction);gap:var(--sbb-toggle-check-gap);align-items:start;width:100%}:host([size=m]) .sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-m);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}:host([size=xs]) .sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size)}.sbb-toggle-check__label{flex-grow:1;padding-block-start:calc((var(--sbb-toggle-check-circle-diameter) - var(--sbb-typo-line-height-body-text) * 1em) / 2)}:host(:not([data-slot-names~=unnamed])) .sbb-toggle-check__label{display:none}.sbb-toggle-check__track{display:inline-block;position:relative;min-width:var(--sbb-toggle-check-width);height:var(--sbb-toggle-check-height);border-radius:var(--sbb-border-radius-infinity);background-color:var(--sbb-toggle-check-background-color);margin-block:calc((var(--sbb-toggle-check-overall-height) - var(--sbb-toggle-check-height)) / 2)}.sbb-toggle-check__circle{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);position:absolute;top:50%;transform:translateY(-50%);width:var(--sbb-toggle-check-circle-diameter);height:var(--sbb-toggle-check-circle-diameter);border:var(--sbb-border-width-1x) var(--sbb-toggle-check-circle-border-style) var(--sbb-toggle-check-circle-border-color);border-radius:50%;background-color:var(--sbb-toggle-check-circle-background-color);color:var(--sbb-toggle-check-icon-color);will-change:transform;transform:var(--sbb-toggle-check-circle-transform);transition:transform ease var(--sbb-toggle-check-animation-duration)}.sbb-toggle-check__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);opacity:var(--sbb-toggle-check-icon-opacity);transition:opacity ease var(--sbb-toggle-check-animation-duration)}`;
|
|
7
|
+
var u = Object.defineProperty, m = Object.getOwnPropertyDescriptor, b = (t, c, r, s) => {
|
|
8
|
+
for (var e = s > 1 ? void 0 : s ? m(c, r) : c, l = t.length - 1, a; l >= 0; l--)
|
|
9
|
+
(a = t[l]) && (e = (s ? a(c, r, e) : a(e)) || e);
|
|
10
|
+
return s && e && u(c, r, e), e;
|
|
11
11
|
};
|
|
12
12
|
let o = class extends v(
|
|
13
|
-
f(
|
|
13
|
+
f(n)
|
|
14
14
|
) {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(), this.size = "s", this.iconName = "tick-small", this.labelPosition = "after", new k(this);
|
|
17
17
|
}
|
|
18
|
-
async willUpdate(
|
|
19
|
-
super.willUpdate(
|
|
18
|
+
async willUpdate(t) {
|
|
19
|
+
super.willUpdate(t), t.has("checked") && (this.internals.ariaChecked = `${this.checked}`, this.toggleAttribute("data-checked", this.checked));
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
return
|
|
22
|
+
return h`
|
|
23
23
|
<span class="sbb-toggle-check">
|
|
24
24
|
<span class="sbb-toggle-check__container">
|
|
25
25
|
<span class="sbb-toggle-check__label">
|
|
@@ -39,16 +39,16 @@ o.styles = p;
|
|
|
39
39
|
o.events = {
|
|
40
40
|
didChange: "didChange"
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
b([
|
|
43
43
|
i({ reflect: !0 })
|
|
44
44
|
], o.prototype, "size", 2);
|
|
45
|
-
|
|
45
|
+
b([
|
|
46
46
|
i({ attribute: "icon-name" })
|
|
47
47
|
], o.prototype, "iconName", 2);
|
|
48
|
-
|
|
48
|
+
b([
|
|
49
49
|
i({ attribute: "label-position", reflect: !0 })
|
|
50
50
|
], o.prototype, "labelPosition", 2);
|
|
51
|
-
o =
|
|
51
|
+
o = b([
|
|
52
52
|
d("sbb-toggle-check")
|
|
53
53
|
], o);
|
|
54
54
|
export {
|