@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779781429 → 5.0.0-next.3-dev.1779890843

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.
Files changed (180) hide show
  1. package/_index.scss +65 -3
  2. package/alert/{alert/alert.global.scss → _alert.global.scss} +9 -7
  3. package/badge/{badge.global.scss → _badge.global.scss} +4 -2
  4. package/breadcrumb/{breadcrumb-group/breadcrumb-group.global.scss → _breadcrumb.global.scss} +11 -1
  5. package/button/{common/button-common.global.scss → _button.global.scss} +43 -2
  6. package/calendar/{calendar/calendar.global.scss → _calendar.global.scss} +20 -4
  7. package/card/{card.library.global.scss → _card.global.scss} +29 -5
  8. package/carousel/{carousel/carousel.global.scss → _carousel.global.scss} +2 -1
  9. package/carousel/carousel-list/carousel-list.component.js +1 -1
  10. package/{carousel-list.component-7mbfkw4K.js → carousel-list.component-DAPO_Oce.js} +1 -1
  11. package/carousel.js +1 -1
  12. package/carousel.pure.js +1 -1
  13. package/checkbox/{common/checkbox-common.global.scss → _checkbox.global.scss} +5 -1
  14. package/chip/{chip-group/chip-group.global.scss → _chip.global.scss} +12 -2
  15. package/container/{sticky-bar/sticky-bar.global.scss → _container.global.scss} +16 -1
  16. package/core/base-elements/{selection-group-base-element.global.scss → _selection-group-base-element.global.scss} +6 -2
  17. package/core/styles/_index.scss +3 -3
  18. package/core/styles/_theme.scss +359 -10
  19. package/core/styles/features/font-face.scss +3 -0
  20. package/core/styles/features/layout.private.scss +1 -1
  21. package/core/styles/features/typography.private.scss +3 -3
  22. package/core/styles/features/typography.scss +10 -2
  23. package/core/styles/mixins/_core.scss +69 -0
  24. package/core/styles/mixins/_layout.scss +1 -1
  25. package/core/styles/mixins/_lists.scss +2 -2
  26. package/core/styles/mixins/_pearl-chain-bullet.scss +1 -1
  27. package/core/styles/mixins/_scrollbar.scss +1 -1
  28. package/core/styles/mixins/_typo.scss +0 -19
  29. package/custom-elements.json +54 -6
  30. package/development/block-link-common-C0XzZIvS.js +1 -1
  31. package/development/breadcrumb.component-B3XsV_Aq.js +1 -1
  32. package/development/card.component-CVAgqDNK.js +1 -1
  33. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  34. package/development/carousel-list.component-pJBqbfi9.js +126 -0
  35. package/development/carousel.js +1 -1
  36. package/development/carousel.pure.js +1 -1
  37. package/development/inline-link-common-CXYyREBi.js +1 -1
  38. package/development/link-common-DWTP-lFX.js +1 -1
  39. package/development/selection-group-base-element-govDKjsE.js +1 -1
  40. package/development/styles-BTV2MyrZ.js +1 -1
  41. package/development/tab-label.component-BbQu5sA-.js +233 -0
  42. package/development/tabs/tab-label/tab-label.component.js +1 -1
  43. package/development/tabs.js +1 -1
  44. package/development/tabs.pure.js +1 -1
  45. package/development/tag/tag/tag.component.d.ts +1 -0
  46. package/development/tag/tag/tag.component.d.ts.map +1 -1
  47. package/development/tag/tag/tag.component.js +1 -1
  48. package/development/tag/tag-group/tag-group.component.d.ts +6 -1
  49. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  50. package/development/tag/tag-group/tag-group.component.js +1 -1
  51. package/development/tag-group.component-DTff1eBB.js +225 -0
  52. package/development/{tag.component-D6YowucW.js → tag.component-CDDb2fnV.js} +28 -8
  53. package/development/tag.js +2 -2
  54. package/development/tag.pure.js +2 -2
  55. package/dialog/_dialog.global.scss +77 -0
  56. package/expansion-panel/{expansion-panel-header/expansion-panel-header.global.scss → _expansion-panel.global.scss} +27 -2
  57. package/file-selector/{common/file-selector.global.scss → _file-selector.global.scss} +1 -1
  58. package/flip-card/{flip-card/flip-card.global.scss → _flip-card.global.scss} +15 -2
  59. package/footer/{footer.global.scss → _footer.global.scss} +1 -1
  60. package/form-field/{form-field/form-field.global.scss → _form-field.global.scss} +6 -3
  61. package/header/{header/header.global.scss → _header.global.scss} +41 -2
  62. package/icon-sidebar/{icon-sidebar/icon-sidebar.global.scss → _icon-sidebar.global.scss} +1 -1
  63. package/lead-container/{lead-container.global.scss → _lead-container.global.scss} +1 -1
  64. package/lean-off-brand-theme.css +351 -526
  65. package/lean-safety-theme.css +351 -526
  66. package/lean-theme.css +351 -526
  67. package/link/{link.library.global.scss → _link.global.scss} +18 -4
  68. package/loading-indicator-circle/{loading-indicator-circle.global.scss → _loading-indicator-circle.global.scss} +1 -1
  69. package/logo/{logo.global.scss → _logo.global.scss} +1 -1
  70. package/map-container/{map-container.global.scss → _map-container.global.scss} +1 -1
  71. package/menu/{menu/menu.global.scss → _menu.global.scss} +14 -6
  72. package/mini-calendar/{mini-calendar-month/mini-calendar-month.global.scss → _mini-calendar.global.scss} +4 -1
  73. package/navigation/_navigation.global.scss +78 -0
  74. package/notification/{notification.global.scss → _notification.global.scss} +1 -1
  75. package/off-brand-theme.css +349 -524
  76. package/option/{option/option.global.scss → _option.global.scss} +30 -1
  77. package/package.json +2 -2
  78. package/paginator/_paginator.global.scss +21 -0
  79. package/radio-button/{common/radio-button-common.global.scss → _radio-button.global.scss} +2 -2
  80. package/safety-theme.css +349 -524
  81. package/sidebar/{sidebar-container/sidebar-container.global.scss → _sidebar.global.scss} +20 -1
  82. package/signet/{signet.global.scss → _signet.global.scss} +1 -1
  83. package/slider/{slider.global.scss → _slider.global.scss} +1 -1
  84. package/standard-theme.css +349 -524
  85. package/stepper/{step-label/step-label.global.scss → _stepper.global.scss} +6 -2
  86. package/tab-label.component-C5HCrNFB.js +158 -0
  87. package/tabs/{common/tab-label-common.global.scss → _tabs.global.scss} +24 -1
  88. package/tabs/tab-label/tab-label.component.js +1 -1
  89. package/tabs.js +1 -1
  90. package/tabs.pure.js +1 -1
  91. package/tag/{tag/tag.global.scss → _tag.global.scss} +2 -2
  92. package/tag/tag/tag.component.js +1 -1
  93. package/tag/tag-group/tag-group.component.js +1 -1
  94. package/{tag-group.component-ByRxy8UG.js → tag-group.component-CJwbkP70.js} +38 -23
  95. package/{tag.component-BrKoQeIW.js → tag.component-r8diGGP-.js} +14 -5
  96. package/tag.js +2 -2
  97. package/tag.pure.js +2 -2
  98. package/teaser/_teaser.global.scss +51 -0
  99. package/teaser-hero/{teaser-hero.global.scss → _teaser-hero.global.scss} +2 -0
  100. package/teaser-panel/{teaser-panel.global.scss → _teaser-panel.global.scss} +2 -2
  101. package/teaser-product/{common/teaser-product-common.global.scss → _teaser-product.global.scss} +4 -2
  102. package/time-input/{time-input.global.scss → _time-input.global.scss} +1 -1
  103. package/timetable-form/{timetable-form/timetable-form.global.scss → _timetable-form.global.scss} +11 -1
  104. package/title/{title.global.scss → _title.global.scss} +4 -0
  105. package/toggle/{toggle/toggle.global.scss → _toggle.global.scss} +6 -2
  106. package/toggle-check/{toggle-check.global.scss → _toggle-check.global.scss} +1 -1
  107. package/train/{train-wagon-common.global.scss → _train.global.scss} +24 -0
  108. package/visual-checkbox/{visual-checkbox.global.scss → _visual-checkbox.global.scss} +1 -1
  109. package/alert/alert-group/alert-group.global.scss +0 -8
  110. package/breadcrumb/breadcrumb/breadcrumb.global.scss +0 -16
  111. package/button/common/mini-button-common.global.scss +0 -18
  112. package/button/mini-button-group/mini-button-group.global.scss +0 -35
  113. package/calendar/common/calendar-cell-base-element.global.scss +0 -23
  114. package/card/card/card.global.scss +0 -22
  115. package/card/card-badge/card-badge.global.scss +0 -19
  116. package/checkbox/checkbox.global.scss +0 -10
  117. package/chip/chip/chip.global.scss +0 -16
  118. package/container/container/container.global.scss +0 -21
  119. package/core/styles/features/core.scss +0 -618
  120. package/development/carousel-list.component-BLY3JfDq.js +0 -126
  121. package/development/tab-label.component-QHzOZ28y.js +0 -233
  122. package/development/tag-group.component-jSgluqL-.js +0 -194
  123. package/dialog/dialog/dialog.global.scss +0 -32
  124. package/dialog/dialog-close-button/dialog-close-button.global.scss +0 -35
  125. package/dialog/dialog-content/dialog-content.global.scss +0 -13
  126. package/dialog/dialog-title/dialog-title.global.scss +0 -13
  127. package/expansion-panel/expansion-panel/expansion-panel.global.scss +0 -21
  128. package/expansion-panel/expansion-panel-content/expansion-panel-content.global.scss +0 -16
  129. package/flip-card/flip-card-details/flip-card-details.global.scss +0 -7
  130. package/flip-card/flip-card-summary/flip-card-summary.global.scss +0 -17
  131. package/form-field/error/error.global.scss +0 -9
  132. package/header/common/header-action.global.scss +0 -41
  133. package/header/header-environment/header-environment.global.scss +0 -10
  134. package/link/common/block-link.global.scss +0 -15
  135. package/menu/common/menu-action.global.scss +0 -14
  136. package/mini-calendar/mini-calendar-day/mini-calendar-day.global.scss +0 -9
  137. package/navigation/common/navigation-action.global.scss +0 -11
  138. package/navigation/navigation/navigation.global.scss +0 -36
  139. package/navigation/navigation-list/navigation-list.global.scss +0 -10
  140. package/navigation/navigation-marker/navigation-marker.global.scss +0 -17
  141. package/navigation/navigation-section/navigation-section.global.scss +0 -34
  142. package/option/optgroup/optgroup.global.scss +0 -17
  143. package/option/option-hint/option-hint.global.scss +0 -17
  144. package/option/option-panel-common.global.scss +0 -11
  145. package/paginator/common/paginator-common.global.scss +0 -14
  146. package/paginator/compact-paginator/compact-paginator.global.scss +0 -9
  147. package/paginator/paginator/paginator.global.scss +0 -10
  148. package/sidebar/sidebar/sidebar.global.scss +0 -19
  149. package/sidebar/sidebar-close-button/sidebar-close-button.global.scss +0 -10
  150. package/stepper/stepper/stepper.global.scss +0 -10
  151. package/tab-label.component-BYssa8XI.js +0 -158
  152. package/tabs/common/tab-group-common.global.scss +0 -17
  153. package/tabs/tab-nav-bar/tab-nav-bar.global.scss +0 -10
  154. package/teaser/teaser.global.scss +0 -24
  155. package/timetable-form/timetable-form-details/timetable-form-details.global.scss +0 -12
  156. package/timetable-form/timetable-form-field/timetable-form-field.global.scss +0 -10
  157. package/title/title-common.global.scss +0 -7
  158. package/toggle/toggle-option/toggle-option.global.scss +0 -10
  159. package/train/train-blocked-passage/train-blocked-passage.global.scss +0 -16
  160. package/train/train-formation/train-formation.global.scss +0 -26
  161. /package/chip-label/{chip-label.global.scss → _chip-label.global.scss} +0 -0
  162. /package/clock/{clock.global.scss → _clock.global.scss} +0 -0
  163. /package/core/mixins/{panel-common.global.scss → _panel-common.global.scss} +0 -0
  164. /package/core/styles/{core/functions.scss → mixins/_functions.scss} +0 -0
  165. /package/core/styles/{core/mediaqueries.scss → mixins/_mediaqueries.scss} +0 -0
  166. /package/core/styles/{core → mixins}/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -0
  167. /package/core/styles/{features/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss → node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss} +0 -0
  168. /package/divider/{divider.global.scss → _divider.global.scss} +0 -0
  169. /package/loading-indicator/{loading-indicator.global.scss → _loading-indicator.global.scss} +0 -0
  170. /package/message/{message.global.scss → _message.global.scss} +0 -0
  171. /package/overlay/{overlay.global.scss → _overlay.global.scss} +0 -0
  172. /package/popover/{popover.global.scss → _popover.global.scss} +0 -0
  173. /package/select/{select.global.scss → _select.global.scss} +0 -0
  174. /package/selection-action-panel/{selection-action-panel.global.scss → _selection-action-panel.global.scss} +0 -0
  175. /package/selection-expansion-panel/{selection-expansion-panel.global.scss → _selection-expansion-panel.global.scss} +0 -0
  176. /package/status/{status.global.scss → _status.global.scss} +0 -0
  177. /package/table/{table.global.scss → _table.global.scss} +0 -0
  178. /package/timetable-occupancy/{timetable-occupancy.global.scss → _timetable-occupancy.global.scss} +0 -0
  179. /package/toast/{toast.global.scss → _toast.global.scss} +0 -0
  180. /package/tooltip/{tooltip.global.scss → _tooltip.global.scss} +0 -0
@@ -1,4 +1,4 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
@@ -35,9 +35,13 @@ $theme: 'standard' !default;
35
35
  ),
36
36
  $theme
37
37
  )};
38
+ --sbb-stepper-orientation: row;
39
+ --sbb-stepper-border-width: var(--sbb-border-width-1x);
40
+ --sbb-stepper-marker-width: var(--sbb-border-width-3x);
41
+ --sbb-stepper-marker-color: var(--sbb-color-3);
38
42
  }
39
43
 
40
- @mixin base-forced-colors {
44
+ @mixin forced-colors {
41
45
  --sbb-step-label-color: ButtonText;
42
46
  --sbb-step-label-prefix-border-color: ButtonText;
43
47
  }
@@ -0,0 +1,158 @@
1
+ import { __esDecorate as e, __runInitializers as t } from "tslib";
2
+ import { unsafeCSS as n } from "lit";
3
+ import { property as r } from "lit/decorators.js";
4
+ import { SbbDisabledMixin as i, SbbElement as a, SbbPropertyWatcherController as o, forceType as s, omitEmptyConverter as c } from "./core.js";
5
+ import { html as l, unsafeStatic as u } from "lit/static-html.js";
6
+ import { SbbIconNameMixin as d } from "./icon.pure.js";
7
+ import { tabLabelCommonStyles as f } from "./tabs/common/styles.js";
8
+ import { SbbTabChangeEvent as p } from "./tabs/tab-group/tab-group.component.js";
9
+ //#region src/elements/tabs/tab-label/tab-label.scss?inline
10
+ var m = ":host{display:inline-block;max-width:100%;outline:none!important}.sbb-tab-label{cursor:var(--sbb-tab-label-cursor);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sbb-tab-label__icon{display:flex;flex-shrink:0}:host(:not(:is(:state(slotted-icon),[state--slotted-icon]),:is(:state(has-icon-name),[state--has-icon-name]))) .sbb-tab-label__icon{display:none}.sbb-tab-label__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:not(:is(:state(slotted),[state--slotted]))) .sbb-tab-label__text{display:none}.sbb-tab-label__amount{margin:0;color:var(--sbb-tab-label-amount-color);font-weight:400;text-decoration:var(--sbb-tab-label-text-decoration)}:host(:not(:is(:state(slotted-amount),[state--slotted-amount]),[amount])) .sbb-tab-label__amount{display:none}", h = (() => {
11
+ let h = i(d(a)), g, _ = [], v = [], y, b = [], x = [], S, C = [], w = [];
12
+ return class extends h {
13
+ static {
14
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(h[Symbol.metadata] ?? null) : void 0;
15
+ g = [r()], y = [s(), r({
16
+ reflect: !0,
17
+ type: Boolean
18
+ })], S = [s(), r({
19
+ reflect: !0,
20
+ converter: c
21
+ })], e(this, null, g, {
22
+ kind: "accessor",
23
+ name: "level",
24
+ static: !1,
25
+ private: !1,
26
+ access: {
27
+ has: (e) => "level" in e,
28
+ get: (e) => e.level,
29
+ set: (e, t) => {
30
+ e.level = t;
31
+ }
32
+ },
33
+ metadata: t
34
+ }, _, v), e(this, null, y, {
35
+ kind: "accessor",
36
+ name: "active",
37
+ static: !1,
38
+ private: !1,
39
+ access: {
40
+ has: (e) => "active" in e,
41
+ get: (e) => e.active,
42
+ set: (e, t) => {
43
+ e.active = t;
44
+ }
45
+ },
46
+ metadata: t
47
+ }, b, x), e(this, null, S, {
48
+ kind: "accessor",
49
+ name: "amount",
50
+ static: !1,
51
+ private: !1,
52
+ access: {
53
+ has: (e) => "amount" in e,
54
+ get: (e) => e.amount,
55
+ set: (e, t) => {
56
+ e.amount = t;
57
+ }
58
+ },
59
+ metadata: t
60
+ }, C, w), t && Object.defineProperty(this, Symbol.metadata, {
61
+ enumerable: !0,
62
+ configurable: !0,
63
+ writable: !0,
64
+ value: t
65
+ });
66
+ }
67
+ static {
68
+ this.elementName = "sbb-tab-label";
69
+ }
70
+ static {
71
+ this.role = "tab";
72
+ }
73
+ static {
74
+ this.styles = [f, n(m)];
75
+ }
76
+ #e;
77
+ get level() {
78
+ return this.#e;
79
+ }
80
+ set level(e) {
81
+ this.#e = e;
82
+ }
83
+ #t;
84
+ get active() {
85
+ return this.#t;
86
+ }
87
+ set active(e) {
88
+ this.#t = e;
89
+ }
90
+ #n;
91
+ get amount() {
92
+ return this.#n;
93
+ }
94
+ set amount(e) {
95
+ this.#n = e;
96
+ }
97
+ get tab() {
98
+ return this.nextElementSibling?.localName === "sbb-tab" ? this.nextElementSibling : null;
99
+ }
100
+ get group() {
101
+ return this.closest("sbb-tab-group");
102
+ }
103
+ constructor() {
104
+ super(), this._selected = !1, this._previousSize = null, this.#e = t(this, _, "1"), this.#t = (t(this, v), t(this, b, !1)), this.#n = (t(this, x), t(this, C, "")), t(this, w), this.addEventListener("click", () => this.activate()), this.addController(new o(this, () => this.group, { size: (e) => {
105
+ this._previousSize && this.internals.states.delete(`size-${this._previousSize}`), this._previousSize = e.size ?? null, this._previousSize && this.internals.states.add(`size-${this._previousSize}`);
106
+ } }));
107
+ }
108
+ connectedCallback() {
109
+ super.connectedCallback(), this.slot = "tab-bar", this.tabIndex = this.active ? 0 : -1;
110
+ }
111
+ willUpdate(e) {
112
+ super.willUpdate(e), e.has("active") && (this.internals.ariaSelected = `${this.active}`, this.active && !this.disabled ? this.activate() : this.deactivate()), e.has("disabled") && this.disabled && (this.tabIndex = -1, this.active && (this.deactivate(), this.group?.activateTab(0)));
113
+ }
114
+ deactivate() {
115
+ this.active = !1, this.tab?.deactivate(), this._selected = !1, this.tabIndex = -1;
116
+ }
117
+ activate() {
118
+ if (this.disabled) return;
119
+ let e = this.group?.labels || [], t = e.find((e) => e._selected);
120
+ if (t !== this) {
121
+ t?.deactivate(), this.active = !0, this.tab?.activate(), this._selected = !0, this.tabIndex = 0, this.tab?.dispatchEvent(new Event("active", {
122
+ bubbles: !0,
123
+ composed: !0
124
+ }));
125
+ let n = {
126
+ activeIndex: e.findIndex((e) => e === this),
127
+ activeTabLabel: this,
128
+ activeTab: this.tab,
129
+ previousIndex: e.findIndex((e) => e === t),
130
+ previousTabLabel: t,
131
+ previousTab: t?.tab
132
+ };
133
+ this.group?.dispatchEvent(new p(n));
134
+ }
135
+ }
136
+ linkToTab() {
137
+ this.tab && (this.internals.ariaControlsElements = [this.tab]);
138
+ }
139
+ render() {
140
+ let e = `h${Number(this.level) < 7 ? this.level : "1"}`;
141
+ return l`
142
+ <${u(e)} class="sbb-tab-label">
143
+ <span class="sbb-tab-label__icon">
144
+ ${this.renderIconSlot()}
145
+ </span>
146
+ <span class="sbb-tab-label__text">
147
+ <slot></slot>
148
+ </span>
149
+ <p class="sbb-tab-label__amount">
150
+ <slot name="amount">${this.amount}</slot>
151
+ </p>
152
+ </${u(e)}>
153
+ `;
154
+ }
155
+ };
156
+ })();
157
+ //#endregion
158
+ export { h as t };
@@ -1,9 +1,26 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
5
+ @mixin tab-label-amount {
6
+ margin: 0;
7
+ color: var(--sbb-tab-label-amount-color);
8
+ font-weight: normal;
9
+ text-decoration: var(--sbb-tab-label-text-decoration);
10
+ }
11
+
5
12
  // These variables are shared within the `sbb-tab-label` and the `sbb-tab-nav-bar`.
6
13
  @mixin base {
14
+ --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
15
+ --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
16
+ --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
17
+ --sbb-tab-group-content-gap-default: #{sbb.theme-pattern-select(
18
+ (
19
+ 'standard': var(--sbb-tab-group-content-gap-size-l),
20
+ 'lean': var(--sbb-tab-group-content-gap-size-s),
21
+ ),
22
+ $theme
23
+ )};
7
24
  --sbb-tab-label-height: #{sbb.theme-pattern-select(
8
25
  (
9
26
  'standard': var(--sbb-size-element-m),
@@ -36,3 +53,9 @@ $theme: 'standard' !default;
36
53
  --sbb-tab-label-line-color: var(--sbb-border-color-4-inverted);
37
54
  --sbb-tab-label-cursor: var(--sbb-cursor-pointer);
38
55
  }
56
+
57
+ @mixin rules {
58
+ sbb-tab-nav-bar .sbb-tab-amount {
59
+ @include tab-label-amount;
60
+ }
61
+ }
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../tab-label.component-BYssa8XI.js";
1
+ import { t as e } from "../../tab-label.component-C5HCrNFB.js";
2
2
  export { e as SbbTabLabelElement };
package/tabs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { n as e, t } from "./tab-group.component-Dx0xldWI.js";
2
- import { t as n } from "./tab-label.component-BYssa8XI.js";
2
+ import { t as n } from "./tab-label.component-C5HCrNFB.js";
3
3
  import { t as r } from "./tab-nav-bar.component-7j-RCq7p.js";
4
4
  import { t as i } from "./tab.component-C5xxMwwX.js";
5
5
  import { n as a, t as o } from "./styles-DGAxTLMz.js";
package/tabs.pure.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { n as e, t } from "./tab-group.component-Dx0xldWI.js";
2
- import { t as n } from "./tab-label.component-BYssa8XI.js";
2
+ import { t as n } from "./tab-label.component-C5HCrNFB.js";
3
3
  import { t as r } from "./tab-nav-bar.component-7j-RCq7p.js";
4
4
  import { t as i } from "./tab.component-C5xxMwwX.js";
5
5
  import { n as a, t as o } from "./styles-DGAxTLMz.js";
@@ -1,4 +1,4 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
@@ -32,7 +32,7 @@ $theme: 'standard' !default;
32
32
  )};
33
33
  }
34
34
 
35
- @mixin base-forced-colors {
35
+ @mixin forced-colors {
36
36
  --sbb-tag-amount-color: ButtonText;
37
37
  --sbb-tag-background-color: Canvas !important;
38
38
  --sbb-tag-text-color: ButtonText;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../tag.component-BrKoQeIW.js";
1
+ import { t as e } from "../../tag.component-r8diGGP-.js";
2
2
  export { e as SbbTagElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../tag-group.component-ByRxy8UG.js";
1
+ import { t as e } from "../../tag-group.component-CJwbkP70.js";
2
2
  export { e as SbbTagGroupElement };
@@ -1,30 +1,27 @@
1
1
  import { __esDecorate as e, __runInitializers as t } from "tslib";
2
2
  import { html as n, isServer as r, unsafeCSS as i } from "lit";
3
3
  import { property as a } from "lit/decorators.js";
4
- import { SbbDisabledMixin as o, SbbElement as s, SbbNamedSlotListMixin as c, forceType as l } from "./core.js";
4
+ import { SbbDisabledMixin as o, SbbElement as s, SbbNamedSlotListMixin as c, forceType as l, getNextElementIndex as u, isArrowKeyPressed as d } from "./core.js";
5
5
  //#region src/elements/tag/tag-group/tag-group.scss?inline
6
- var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;gap:var(--sbb-spacing-fixed-3x)}.sbb-tag-group__list>:is(li,span){display:flex;max-width:100%}", d = (() => {
7
- let d = o(c(s)), f = [], p, m = [], h = [], g, _ = [], v = [], y, b = [], x = [], S;
8
- return class extends d {
9
- constructor() {
10
- super(...arguments), this.listChildLocalNames = (t(this, f), ["sbb-tag", "div"]), this.#e = t(this, m, ""), this.#t = (t(this, h), t(this, _, !1)), this.#n = (t(this, v), t(this, b, null)), this._value = (t(this, x), null);
11
- }
6
+ var f = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;gap:var(--sbb-spacing-fixed-3x)}.sbb-tag-group__list>:is(li,span){display:flex;max-width:100%}", p = (() => {
7
+ let p = o(c(s)), m = [], h, g = [], _ = [], v, y = [], b = [], x, S = [], C = [], w;
8
+ return class extends p {
12
9
  static {
13
- let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(d[Symbol.metadata] ?? null) : void 0;
14
- p = [l(), a({ attribute: "list-accessibility-label" })], g = [l(), a({ type: Boolean })], y = [a({ reflect: !0 })], S = [a()], e(this, null, p, {
10
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(p[Symbol.metadata] ?? null) : void 0;
11
+ h = [l(), a({ attribute: "accessibility-label" })], v = [l(), a({ type: Boolean })], x = [a({ reflect: !0 })], w = [a()], e(this, null, h, {
15
12
  kind: "accessor",
16
- name: "listAccessibilityLabel",
13
+ name: "accessibilityLabel",
17
14
  static: !1,
18
15
  private: !1,
19
16
  access: {
20
- has: (e) => "listAccessibilityLabel" in e,
21
- get: (e) => e.listAccessibilityLabel,
17
+ has: (e) => "accessibilityLabel" in e,
18
+ get: (e) => e.accessibilityLabel,
22
19
  set: (e, t) => {
23
- e.listAccessibilityLabel = t;
20
+ e.accessibilityLabel = t;
24
21
  }
25
22
  },
26
23
  metadata: t
27
- }, m, h), e(this, null, g, {
24
+ }, g, _), e(this, null, v, {
28
25
  kind: "accessor",
29
26
  name: "multiple",
30
27
  static: !1,
@@ -37,7 +34,7 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
37
34
  }
38
35
  },
39
36
  metadata: t
40
- }, _, v), e(this, null, y, {
37
+ }, y, b), e(this, null, x, {
41
38
  kind: "accessor",
42
39
  name: "size",
43
40
  static: !1,
@@ -50,7 +47,7 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
50
47
  }
51
48
  },
52
49
  metadata: t
53
- }, b, x), e(this, null, S, {
50
+ }, S, C), e(this, null, w, {
54
51
  kind: "setter",
55
52
  name: "value",
56
53
  static: !1,
@@ -62,7 +59,7 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
62
59
  }
63
60
  },
64
61
  metadata: t
65
- }, null, f), t && Object.defineProperty(this, Symbol.metadata, {
62
+ }, null, m), t && Object.defineProperty(this, Symbol.metadata, {
66
63
  enumerable: !0,
67
64
  configurable: !0,
68
65
  writable: !0,
@@ -73,13 +70,13 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
73
70
  this.elementName = "sbb-tag-group";
74
71
  }
75
72
  static {
76
- this.styles = [i(u)];
73
+ this.styles = [i(f)];
77
74
  }
78
75
  #e;
79
- get listAccessibilityLabel() {
76
+ get accessibilityLabel() {
80
77
  return this.#e;
81
78
  }
82
- set listAccessibilityLabel(e) {
79
+ set accessibilityLabel(e) {
83
80
  this.#e = e;
84
81
  }
85
82
  #t;
@@ -109,8 +106,26 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
109
106
  get tags() {
110
107
  return Array.from(this.querySelectorAll?.("sbb-tag") ?? []);
111
108
  }
109
+ constructor() {
110
+ super(), this.listChildLocalNames = (t(this, m), ["sbb-tag", "div"]), this.#e = t(this, g, ""), this.#t = (t(this, _), t(this, y, !1)), this.#n = (t(this, b), t(this, S, null)), this._value = (t(this, C), null), this.addEventListener?.("keydown", (e) => this._handleArrowKeyDown(e));
111
+ }
112
112
  willUpdate(e) {
113
- super.willUpdate(e), e.has("value") && !this.hasUpdated && this._value && this._applyValueToTags(this.value), e.has("disabled") && this.tags.forEach((e) => e.requestUpdate?.("disabled")), (e.has("listChildren") || e.has("multiple")) && !this.multiple && this.tags.filter((e) => e.checked).slice(1).forEach((e) => e.checked = !1), e.has("listAccessibilityLabel") && (this.internals.role = this.listAccessibilityLabel ? null : "group");
113
+ super.willUpdate(e), e.has("value") && !this.hasUpdated && this._value && this._applyValueToTags(this.value), e.has("disabled") && this.tags.forEach((e) => e.requestUpdate?.("disabled")), (e.has("listChildren") || e.has("multiple")) && (this.multiple ? e.has("multiple") && this._enabledTags().forEach((e) => e.tabIndex = 0) : (this.tags.filter((e) => e.checked).slice(1).forEach((e) => e.checked = !1), this.updateExclusiveTabIndex())), (e.has("accessibilityLabel") || e.has("multiple")) && (this.multiple ? (this.internals.role = this.accessibilityLabel ? null : "group", this.internals.ariaLabel = null) : (this.internals.role = "radiogroup", this.internals.ariaLabel = this.accessibilityLabel));
114
+ }
115
+ _enabledTags() {
116
+ return this.tags.filter((e) => !e.disabled);
117
+ }
118
+ updateExclusiveTabIndex() {
119
+ let e = this._enabledTags(), t = e.find((e) => e.checked) ?? e[0];
120
+ e.forEach((e) => e.tabIndex = e === t ? 0 : -1);
121
+ }
122
+ _handleArrowKeyDown(e) {
123
+ if (this.multiple || !d(e)) return;
124
+ e.preventDefault();
125
+ let t = this._enabledTags(), n = t.indexOf(e.target);
126
+ if (n === -1) return;
127
+ let r = t[u(e, n, t.length)];
128
+ t.forEach((e) => e.tabIndex = e === r ? 0 : -1), r.focus();
114
129
  }
115
130
  _applyValueToTags(e) {
116
131
  let t = this.tags;
@@ -127,11 +142,11 @@ var u = ":host{display:block}.sbb-tag-group__list{display:flex;flex-wrap:wrap;ga
127
142
  return n`
128
143
  ${this.renderList({
129
144
  class: "sbb-tag-group__list",
130
- ariaLabel: this.listAccessibilityLabel
145
+ ariaLabel: this.multiple ? this.accessibilityLabel : void 0
131
146
  })}
132
147
  `;
133
148
  }
134
149
  };
135
150
  })();
136
151
  //#endregion
137
- export { d as t };
152
+ export { p as t };
@@ -116,13 +116,20 @@ var d = ":host{--sbb-tag-animation-duration: var( --sbb-disable-animation-durati
116
116
  this.#r = e;
117
117
  }
118
118
  constructor() {
119
- super(), t(this, w), this.addEventListener?.("click", () => this._handleClick()), this.addController(new s(this, () => this._tagGroup(), { size: (e) => {
120
- this.size = e.size;
121
- } }));
119
+ super(), t(this, w), this.addEventListener?.("click", () => this._handleClick()), this.addController(new s(this, () => this._tagGroup(), {
120
+ multiple: () => this._updateAriaRole(),
121
+ size: (e) => {
122
+ this.size = e.size;
123
+ }
124
+ }));
122
125
  }
123
126
  _tagGroup() {
124
127
  return this.closest?.("sbb-tag-group") ?? null;
125
128
  }
129
+ _updateAriaRole() {
130
+ let e = this._tagGroup();
131
+ e && !e.multiple ? (this.internals.role = "radio", this.internals.ariaChecked = `${this.checked}`, this.internals.ariaPressed = null) : (this.internals.role = "button", this.internals.ariaChecked = null, this.internals.ariaPressed = `${this.checked}`);
132
+ }
126
133
  isDisabledExternally() {
127
134
  return this._tagGroup()?.disabled ?? !1;
128
135
  }
@@ -135,9 +142,11 @@ var d = ":host{--sbb-tag-animation-duration: var( --sbb-disable-animation-durati
135
142
  })), this.dispatchEvent(new Event("change", { bubbles: !0 })), this.dispatchEvent(new Event("didChange", { bubbles: !0 })));
136
143
  }
137
144
  willUpdate(e) {
138
- super.willUpdate(e), e.has("checked") && (this.internals.ariaPressed = `${this.checked}`, this.toggleState("checked", this.checked), this.updateFormValue());
145
+ super.willUpdate(e);
139
146
  let t = this._tagGroup();
140
- t && !t.multiple && e.has("checked") && this.checked && t?.tags.filter((e) => e !== this).forEach((e) => e.checked = !1);
147
+ e.has("checked") && (this._updateAriaRole(), this.toggleState("checked", this.checked), this.updateFormValue()), t && !t.multiple && e.has("checked") && (this.checked ? t.tags.forEach((e) => {
148
+ e.tabIndex = e === this ? 0 : -1, e.checked = e === this;
149
+ }) : t.tags.some((e) => e.checked) || t.updateExclusiveTabIndex());
141
150
  }
142
151
  formResetCallback() {
143
152
  this.checked = this.hasAttribute("checked");
package/tag.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e } from "./tag-group.component-ByRxy8UG.js";
2
- import { t } from "./tag.component-BrKoQeIW.js";
1
+ import { t as e } from "./tag-group.component-CJwbkP70.js";
2
+ import { t } from "./tag.component-r8diGGP-.js";
3
3
  import "./tag.pure.js";
4
4
  t.define(), e.define();
5
5
  //#endregion
package/tag.pure.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "./tag-group.component-ByRxy8UG.js";
2
- import { t } from "./tag.component-BrKoQeIW.js";
1
+ import { t as e } from "./tag-group.component-CJwbkP70.js";
2
+ import { t } from "./tag.component-r8diGGP-.js";
3
3
  export { t as SbbTagElement, e as SbbTagGroupElement };
@@ -0,0 +1,51 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-teaser-scale-hover: 1.02;
7
+ --sbb-teaser-description-color: light-dark(var(--sbb-color-granite), var(--sbb-color-silver));
8
+ --sbb-teaser-flex-direction: row;
9
+ --sbb-teaser-align-items: center;
10
+ --sbb-teaser-font-size: var(--sbb-text-font-size-s);
11
+ --sbb-teaser-gap: var(--sbb-spacing-fixed-4x);
12
+ --sbb-teaser-border-radius: var(--sbb-border-radius-4x);
13
+ --sbb-teaser-image-width: #{sbb.px-to-rem-build(300)};
14
+ }
15
+
16
+ @mixin rules {
17
+ // Target the slotted `sbb-image` which are generally wrapped by a <figure> (therefore are not reachable with the :slotted)
18
+ // Apply the brightness effect on mouse hover
19
+ :is(sbb-teaser, sbb-teaser-hero, sbb-teaser-product) {
20
+ --sbb-teaser-image-brightness-hover: var(--sbb-hover-image-brightness);
21
+ --sbb-teaser-image-animation-duration: var(
22
+ --sbb-disable-animation-duration,
23
+ var(--sbb-animation-duration-4x)
24
+ );
25
+ --sbb-teaser-image-animation-easing: var(--sbb-animation-easing);
26
+
27
+ &:hover {
28
+ @include sbb.hover-mq($hover: true) {
29
+ --sbb-teaser-image-brightness: var(--sbb-teaser-image-brightness-hover);
30
+ }
31
+ }
32
+
33
+ :is(sbb-image, img):not(.sbb-figure-overlap-image) {
34
+ // Although only the teaser has a scale property, we do it here, because this rule is
35
+ // more specific and overrides would not be respected.
36
+ will-change: filter, scale;
37
+ filter: brightness(var(--sbb-teaser-image-brightness, 1));
38
+ transition:
39
+ filter,
40
+ scale var(--sbb-teaser-image-animation-duration) var(--sbb-teaser-image-animation-easing);
41
+ }
42
+ }
43
+
44
+ sbb-teaser :is(sbb-image, img):not(.sbb-figure-overlap-image) {
45
+ --sbb-image-object-fit: cover;
46
+ --sbb-image-aspect-ratio: 4 / 3;
47
+
48
+ // The transition of the scale is done by the global rules in core.scss
49
+ scale: var(--sbb-teaser-scale, 1);
50
+ }
51
+ }
@@ -24,4 +24,6 @@ $theme: 'standard' !default;
24
24
  width: 100%;
25
25
  }
26
26
  }
27
+
28
+ // Some rules are shared with sbb-teaser and published there.
27
29
  }
@@ -17,14 +17,14 @@ $theme: 'standard' !default;
17
17
  --sbb-panel-animation-easing: var(--sbb-animation-easing);
18
18
  }
19
19
 
20
- @mixin base-breakpoint-large {
20
+ @mixin breakpoint-large {
21
21
  --sbb-panel-width: #{sbb.px-to-rem-build(321)};
22
22
  --sbb-panel-inner-height: #{sbb.px-to-rem-build(240.11)};
23
23
  --sbb-panel-triangle-height: #{sbb.px-to-rem-build(47.45)};
24
24
  --sbb-panel-font-size: var(--sbb-typo-scale-2x);
25
25
  }
26
26
 
27
- @mixin base-breakpoint-ultra {
27
+ @mixin breakpoint-ultra {
28
28
  --sbb-panel-width: #{sbb.px-to-rem-build(428)};
29
29
  --sbb-panel-inner-height: #{sbb.px-to-rem-build(320.38)};
30
30
  --sbb-panel-triangle-height: #{sbb.px-to-rem-build(63.31)};
@@ -1,4 +1,4 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
@@ -25,7 +25,7 @@ $theme: 'standard' !default;
25
25
  --sbb-teaser-product-footer-padding-block-end: 0;
26
26
  }
27
27
 
28
- @mixin base-breakpoint-large {
28
+ @mixin breakpoint-large {
29
29
  --sbb-teaser-product-container-padding-block: var(--sbb-spacing-responsive-l) 0;
30
30
  --sbb-teaser-product-container-padding-inline: var(--sbb-spacing-responsive-xl);
31
31
  --sbb-teaser-product-content-align-content: center;
@@ -47,4 +47,6 @@ $theme: 'standard' !default;
47
47
  place-self: stretch;
48
48
  }
49
49
  }
50
+
51
+ // Some rules are shared with sbb-teaser and published there.
50
52
  }
@@ -6,6 +6,6 @@ $theme: 'standard' !default;
6
6
  --sbb-time-input-max-width: #{sbb.px-to-rem-build(58)};
7
7
  }
8
8
 
9
- @mixin base-breakpoint-large {
9
+ @mixin breakpoint-large {
10
10
  --sbb-time-input-max-width: #{sbb.px-to-rem-build(65)};
11
11
  }
@@ -1,10 +1,20 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
5
5
  @mixin base {
6
6
  --sbb-timetable-form-background-color: var(--sbb-background-color-1);
7
7
  --sbb-timetable-form-border-radius: var(--sbb-border-radius-4x);
8
+ --sbb-timetable-form-details-border-block-start: var(--sbb-border-width-1x) solid
9
+ var(--sbb-border-color-4-inverted);
10
+ --sbb-timetable-form-details-gap: var(--sbb-spacing-fixed-1x);
11
+ --sbb-timetable-form-details-padding-block: var(--sbb-spacing-fixed-1x);
12
+ --sbb-timetable-form-details-padding-inline: var(--sbb-spacing-responsive-xxs);
13
+ --sbb-timetable-form-details-horizontal-divider-height: 1.5rem;
14
+ --sbb-timetable-form-field-route-icon-color: var(--sbb-color-2);
15
+ --sbb-timetable-form-field-route-icon-background-color: var(--sbb-background-color-1);
16
+ --sbb-timetable-form-field-route-via-icon-width: var(--sbb-size-icon-ui-small);
17
+ --sbb-timetable-form-field-route-via-after-dimension: #{sbb.px-to-rem-build(7)};
8
18
  }
9
19
 
10
20
  @mixin rules {
@@ -2,6 +2,10 @@
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
5
+ @mixin base {
6
+ --sbb-title-color: var(--sbb-color-3);
7
+ }
8
+
5
9
  @mixin rules {
6
10
  // In smaller title font-sizes, the space after the title is smaller than the default paragraph space before.
7
11
  // Due to margin collapsing, the wrong paragraph space wins.
@@ -1,4 +1,4 @@
1
- @use '../../core/styles' as sbb;
1
+ @use '../core/styles' as sbb;
2
2
 
3
3
  $theme: 'standard' !default;
4
4
 
@@ -30,9 +30,13 @@ $theme: 'standard' !default;
30
30
  --sbb-toggle-selected-option-border-style: solid;
31
31
  --sbb-toggle-selected-option-border-color: var(--sbb-border-color-5);
32
32
  --sbb-toggle-selected-option-background-color: var(--sbb-background-color-1);
33
+ --sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));
34
+ --sbb-toggle-option-gap: var(--sbb-spacing-fixed-1x);
35
+ --sbb-toggle-option-font-size: var(--sbb-text-font-size-xs);
36
+ --sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);
33
37
  }
34
38
 
35
- @mixin base-forced-colors {
39
+ @mixin forced-colors {
36
40
  --sbb-toggle-selected-option-border-width: var(--sbb-border-width-2x);
37
41
  --sbb-toggle-selected-option-border-color: Highlight;
38
42
  }
@@ -26,7 +26,7 @@ $theme: 'standard' !default;
26
26
  --sbb-toggle-check-shadow: var(--sbb-box-shadow-level-5-hard);
27
27
  }
28
28
 
29
- @mixin base-forced-colors {
29
+ @mixin forced-colors {
30
30
  --sbb-toggle-check-background-color: CanvasText;
31
31
  --sbb-toggle-check-circle-background-color: Canvas;
32
32
  }
@@ -3,6 +3,27 @@
3
3
  $theme: 'standard' !default;
4
4
 
5
5
  @mixin base {
6
+ --sbb-train-blocked-passage-background-color: var(--sbb-color-error);
7
+ --sbb-train-blocked-passage-bar-color: var(--sbb-color-white);
8
+ --sbb-train-blocked-passage-icon-bar-width: #{sbb.px-to-rem-build(10)};
9
+ --sbb-train-blocked-passage-icon-bar-height: #{sbb.px-to-rem-build(4)};
10
+ --sbb-train-blocked-passage-icon-bar-border-radius: var(--sbb-border-radius-1x);
11
+ --sbb-train-formation-wagon-dimension-short: #{sbb.px-to-rem-build(36)};
12
+ --sbb-train-formation-wagon-dimension-long: #{sbb.px-to-rem-build(84)};
13
+ --sbb-train-formation-wagon-gap: var(--sbb-spacing-fixed-1x);
14
+ --sbb-train-formation-sector-line-color: light-dark(
15
+ var(--sbb-color-cement),
16
+ var(--sbb-color-smoke)
17
+ );
18
+ --sbb-train-formation-sector-line-width: var(--sbb-border-width-1x);
19
+ --sbb-train-formation-blocked-passage-dimension: #{sbb.px-to-rem-build(16)};
20
+ --sbb-train-formation-text-color: var(--sbb-color-3);
21
+ --sbb-train-formation-gap: var(--sbb-spacing-fixed-2x);
22
+ --sbb-train-formation-sector-padding: var(--sbb-spacing-fixed-1x);
23
+ --sbb-train-formation-sector-margin: var(--sbb-spacing-fixed-2x);
24
+ --sbb-train-formation-padding: var(--sbb-spacing-fixed-1x);
25
+ --_sbb-train-formation-flex-direction: row;
26
+ --_sbb-train-formation-flex-direction-inverted: column;
6
27
  --sbb-train-wagon-font-size: var(--sbb-text-font-size-xxs);
7
28
  --sbb-train-wagon-shape-color: var(--sbb-color-3);
8
29
  --sbb-train-wagon-vertical-gap: #{sbb.px-to-rem-build(2)};
@@ -38,5 +59,8 @@ $theme: 'standard' !default;
38
59
  }
39
60
 
40
61
  @mixin forced-colors {
62
+ --sbb-train-blocked-passage-background-color: CanvasText;
63
+ --sbb-train-blocked-passage-bar-color: Canvas;
64
+ --sbb-train-formation-sector-line-color: CanvasText;
41
65
  --sbb-train-wagon-shape-color: CanvasText;
42
66
  }