@sbb-esta/lyne-elements 4.0.5 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/breadcrumb/breadcrumb/breadcrumb.component.js +5 -5
  2. package/core/styles/core.scss +14 -0
  3. package/core/styles/mixins/link.scss +0 -1
  4. package/core.css +166 -0
  5. package/custom-elements.json +409 -22
  6. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -2
  7. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  8. package/development/dialog/dialog/dialog.component.js +1 -3
  9. package/development/link/common/block-link-common.js +1 -1
  10. package/development/link/common/inline-link-common.js +1 -1
  11. package/development/link/common/link-common.js +1 -1
  12. package/development/link/common.js +1 -1
  13. package/development/{link-common-CYr3PeRf.js → link-common-d27fHmQw.js} +1 -2
  14. package/development/link.js +1 -1
  15. package/development/overlay/overlay-base-element.d.ts +8 -2
  16. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  17. package/development/overlay/overlay-base-element.js +14 -6
  18. package/development/overlay/overlay.component.d.ts.map +1 -1
  19. package/development/overlay/overlay.component.js +1 -3
  20. package/development/popover/popover.component.d.ts +2 -2
  21. package/development/popover/popover.component.d.ts.map +1 -1
  22. package/development/popover/popover.component.js +5 -5
  23. package/development/tabs/common.d.ts +4 -0
  24. package/development/tabs/common.d.ts.map +1 -0
  25. package/development/tabs/common.js +170 -0
  26. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  27. package/development/tabs/tab-group/tab-group.component.js +11 -18
  28. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  29. package/development/tabs/tab-label/tab-label.component.js +110 -134
  30. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +30 -0
  31. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -0
  32. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +105 -0
  33. package/development/tabs/tab-nav-bar.d.ts +5 -0
  34. package/development/tabs/tab-nav-bar.d.ts.map +1 -0
  35. package/development/tabs/tab-nav-bar.js +5 -0
  36. package/development/tabs.d.ts +1 -0
  37. package/development/tabs.d.ts.map +1 -1
  38. package/development/tabs.js +4 -2
  39. package/development/toast/toast.component.js +2 -2
  40. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  41. package/dialog/dialog/dialog.component.js +5 -5
  42. package/index.d.ts +2 -0
  43. package/index.js +2 -0
  44. package/link/common/block-link-common.js +1 -1
  45. package/link/common/inline-link-common.js +1 -1
  46. package/link/common/link-common.js +1 -1
  47. package/link/common.js +1 -1
  48. package/{link-common-D9TmX32v.js → link-common-7IiqjmPD.js} +1 -1
  49. package/link.js +1 -1
  50. package/off-brand-theme.css +166 -0
  51. package/overlay/overlay-base-element.d.ts +8 -2
  52. package/overlay/overlay-base-element.d.ts.map +1 -1
  53. package/overlay/overlay-base-element.js +45 -36
  54. package/overlay/overlay.component.d.ts.map +1 -1
  55. package/overlay/overlay.component.js +7 -7
  56. package/package.json +11 -1
  57. package/popover/popover.component.d.ts +2 -2
  58. package/popover/popover.component.d.ts.map +1 -1
  59. package/popover/popover.component.js +4 -4
  60. package/safety-theme.css +166 -0
  61. package/standard-theme.css +166 -0
  62. package/tabs/common.d.ts +4 -0
  63. package/tabs/common.d.ts.map +1 -0
  64. package/tabs/common.js +6 -0
  65. package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  66. package/tabs/tab-group/tab-group.component.js +38 -38
  67. package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  68. package/tabs/tab-label/tab-label.component.js +34 -35
  69. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +30 -0
  70. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -0
  71. package/tabs/tab-nav-bar/tab-nav-bar.component.js +66 -0
  72. package/tabs/tab-nav-bar.d.ts +5 -0
  73. package/tabs/tab-nav-bar.d.ts.map +1 -0
  74. package/tabs/tab-nav-bar.js +4 -0
  75. package/tabs.d.ts +1 -0
  76. package/tabs.d.ts.map +1 -1
  77. package/tabs.js +5 -3
  78. package/toast/toast.component.js +1 -1
@@ -6,11 +6,11 @@ import { SbbHydrationMixin as d } from "../../core/mixins.js";
6
6
  import { boxSizingStyles as u } from "../../core/styles.js";
7
7
  import { SbbIconNameMixin as f } from "../../icon.js";
8
8
  import { css as v } from "lit";
9
- const h = v`:host{display:flex;--sbb-breadcrumb-color: var(--sbb-color-granite);--sbb-breadcrumb-color: light-dark(var(--sbb-color-granite), var(--sbb-color-aluminium))}@media(any-hover:hover){:host(:hover){--sbb-breadcrumb-color: var(--sbb-color-charcoal);--sbb-breadcrumb-color: light-dark(var(--sbb-color-charcoal), var(--sbb-color-smoke))}}:host(:is(:active,:is(:state(active),[state--active]))){--sbb-breadcrumb-color: var(--sbb-color-anthracite);--sbb-breadcrumb-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud))}.sbb-breadcrumb{--sbb-link-text-decoration-line: none;--sbb-text-font-size: var(--sbb-text-font-size-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);color:var(--sbb-link-color-normal);text-decoration-line:var(--sbb-link-text-decoration-line, underline);text-decoration-thickness:.0625rem;text-underline-offset:.3125em;-webkit-user-select:none;user-select:none}@media(forced-colors:active){.sbb-breadcrumb{text-decoration:underline}}.sbb-breadcrumb{display:flex;cursor:var(--sbb-cursor-pointer);gap:var(--sbb-spacing-fixed-2x);color:var(--sbb-breadcrumb-color);align-items:center;overflow:hidden;outline:none}@media(forced-colors:active){.sbb-breadcrumb{--sbb-breadcrumb-color: ButtonText}}.sbb-breadcrumb:focus-visible{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);border-radius:var(--sbb-border-radius-2x)}.sbb-breadcrumb__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:not(:is(:state(slotted),[state--slotted]))) .sbb-breadcrumb__label{display:none}slot[name=icon] .sbb-breadcrumb__icon,slot[name=icon] ::slotted(*){flex-shrink:0}`;
9
+ const h = v`:host{display:flex;--sbb-breadcrumb-color: var(--sbb-color-granite);--sbb-breadcrumb-color: light-dark(var(--sbb-color-granite), var(--sbb-color-aluminium))}@media(any-hover:hover){:host(:hover){--sbb-breadcrumb-color: var(--sbb-color-charcoal);--sbb-breadcrumb-color: light-dark(var(--sbb-color-charcoal), var(--sbb-color-smoke))}}:host(:is(:active,:is(:state(active),[state--active]))){--sbb-breadcrumb-color: var(--sbb-color-anthracite);--sbb-breadcrumb-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud))}.sbb-breadcrumb{--sbb-link-text-decoration-line: none;--sbb-text-font-size: var(--sbb-text-font-size-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);color:var(--sbb-link-color-normal);text-decoration-line:var(--sbb-link-text-decoration-line, underline);text-decoration-thickness:.0625rem;text-underline-offset:.3125em}@media(forced-colors:active){.sbb-breadcrumb{text-decoration:underline}}.sbb-breadcrumb{display:flex;cursor:var(--sbb-cursor-pointer);gap:var(--sbb-spacing-fixed-2x);color:var(--sbb-breadcrumb-color);align-items:center;overflow:hidden;outline:none}@media(forced-colors:active){.sbb-breadcrumb{--sbb-breadcrumb-color: ButtonText}}.sbb-breadcrumb:focus-visible{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);border-radius:var(--sbb-border-radius-2x)}.sbb-breadcrumb__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:not(:is(:state(slotted),[state--slotted]))) .sbb-breadcrumb__label{display:none}slot[name=icon] .sbb-breadcrumb__icon,slot[name=icon] ::slotted(*){flex-shrink:0}`;
10
10
  let z = (() => {
11
11
  var r;
12
- let a = [c("sbb-breadcrumb")], o, b = [], e, s = f(d(m));
13
- return r = class extends s {
12
+ let s = [c("sbb-breadcrumb")], o, b = [], e, a = f(d(m));
13
+ return r = class extends a {
14
14
  renderTemplate() {
15
15
  return n`
16
16
  ${this.renderIconSlot("sbb-breadcrumb__icon")}
@@ -20,8 +20,8 @@ let z = (() => {
20
20
  `;
21
21
  }
22
22
  }, e = r, (() => {
23
- const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(s[Symbol.metadata] ?? null) : void 0;
24
- l(null, o = { value: e }, a, { kind: "class", name: e.name, metadata: t }, null, b), e = o.value, t && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
23
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
24
+ l(null, o = { value: e }, s, { kind: "class", name: e.name, metadata: t }, null, b), e = o.value, t && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
25
25
  })(), r.styles = [u, h], i(e, b), e;
26
26
  })();
27
27
  export {
@@ -45,6 +45,15 @@ $theme: 'standard' !default;
45
45
  with (
46
46
  $theme: $theme
47
47
  );
48
+ @use '../../tabs/common/tab-group-common.global' as tab-group-common with (
49
+ $theme: $theme
50
+ );
51
+ @use '../../tabs/common/tab-label-common.global' as tab-label-common with (
52
+ $theme: $theme
53
+ );
54
+ @use '../../tabs/tab-nav-bar/tab-nav-bar.global' as tab-nav-bar with (
55
+ $theme: $theme
56
+ );
48
57
  @use '../../visual-checkbox/visual-checkbox.global' as visual-checkbox with (
49
58
  $theme: $theme
50
59
  );
@@ -66,6 +75,8 @@ $theme: 'standard' !default;
66
75
  @include radio-button-group.base;
67
76
  @include selection-action-panel.base;
68
77
  @include selection-expansion-panel.base;
78
+ @include tab-group-common.base;
79
+ @include tab-label-common.base;
69
80
  @include visual-checkbox.base;
70
81
 
71
82
  @include a11y.if-forced-colors {
@@ -169,6 +180,9 @@ $theme: 'standard' !default;
169
180
 
170
181
  @include font-face.font-declarations;
171
182
 
183
+ // Components global styles
184
+ @include tab-nav-bar.rules;
185
+
172
186
  // TODO: discuss where to add these classes
173
187
  .sbb-dark {
174
188
  color-scheme: dark;
@@ -66,7 +66,6 @@
66
66
  text-decoration-line: var(--sbb-link-text-decoration-line, underline);
67
67
  text-decoration-thickness: #{functions.px-to-rem-build(1)};
68
68
  text-underline-offset: 0.3125em; // 5px
69
- user-select: none;
70
69
 
71
70
  @include a11y.if-forced-colors {
72
71
  text-decoration: underline;
package/core.css CHANGED
@@ -148,6 +148,146 @@
148
148
  flex: var(--sbb-radio-button-group-radio-button-flex);
149
149
  }
150
150
 
151
+ :host {
152
+ --sbb-tab-label-animation-duration: var(
153
+ --sbb-disable-animation-duration,
154
+ var(--sbb-animation-duration-2x)
155
+ );
156
+ --sbb-tab-label-outline-border-radius-internal: calc(
157
+ var(--sbb-tab-label-outline-border-radius) - var(--sbb-focus-outline-offset)
158
+ );
159
+ }
160
+
161
+ :host(:is(:is(:state(size-s),[state--size-s]), [size=s])) {
162
+ --sbb-tab-label-height: var(--sbb-size-element-xs);
163
+ --sbb-tab-label-inline-padding: var(--sbb-spacing-responsive-xxxs);
164
+ --sbb-tab-label-font-size: var(--sbb-text-font-size-s);
165
+ }
166
+
167
+ :host(:is(:is(:state(size-l),[state--size-l]), [size=l])) {
168
+ --sbb-tab-label-height: var(--sbb-size-element-m);
169
+ --sbb-tab-label-inline-padding: var(--sbb-spacing-responsive-xs);
170
+ --sbb-tab-label-font-size: var(--sbb-text-font-size-m);
171
+ }
172
+
173
+ :host(:is(:is(:state(size-xl),[state--size-xl]), [size=xl])) {
174
+ --sbb-tab-label-height: var(--sbb-size-element-m);
175
+ --sbb-tab-label-inline-padding: var(--sbb-spacing-responsive-xs);
176
+ --sbb-tab-label-font-size: var(--sbb-text-font-size-xl);
177
+ }
178
+
179
+ :host(sbb-tab-label),
180
+ :host(sbb-tab-nav-bar) ::slotted(a) {
181
+ pointer-events: var(--sbb-tab-label-pointer-events, unset);
182
+ }
183
+ @media (forced-colors: active) {
184
+ :host(sbb-tab-label),
185
+ :host(sbb-tab-nav-bar) ::slotted(a) {
186
+ --sbb-tab-label-color: ButtonText;
187
+ --sbb-tab-label-amount-color: ButtonText;
188
+ }
189
+ }
190
+
191
+ :host(sbb-tab-nav-bar) ::slotted(a),
192
+ :host(sbb-tab-label) .sbb-tab-label {
193
+ position: relative;
194
+ display: flex;
195
+ align-items: center;
196
+ gap: var(--sbb-tab-label-gap);
197
+ color: var(--sbb-tab-label-color);
198
+ margin: 0;
199
+ padding-inline: var(--sbb-tab-label-inline-padding);
200
+ min-height: var(--sbb-tab-label-height);
201
+ transition: color var(--sbb-tab-label-animation-duration) var(--sbb-tab-label-animation-easing);
202
+ font-size: var(--sbb-tab-label-font-size);
203
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
204
+ font-weight: var(--sbb-tab-label-font-weight);
205
+ text-decoration: var(--sbb-tab-label-text-decoration);
206
+ }
207
+ :host(sbb-tab-nav-bar) ::slotted(a)::after,
208
+ :host(sbb-tab-label) .sbb-tab-label::after {
209
+ position: absolute;
210
+ content: "";
211
+ inset-inline: 0;
212
+ inset-block-end: 0;
213
+ height: var(--sbb-tab-label-marker-thickness);
214
+ background-color: var(--sbb-tab-label-color);
215
+ scale: var(--sbb-tab-label-marker-scale, 0);
216
+ transition-duration: var(--sbb-tab-label-animation-duration);
217
+ transition-timing-function: var(--sbb-tab-label-animation-easing);
218
+ transition-property: scale, background-color;
219
+ }
220
+
221
+ :host(sbb-tab-nav-bar) .sbb-tab-nav-bar > [data-has-divider],
222
+ :host(sbb-tab-label:is(:state(has-divider),[state--has-divider])) {
223
+ position: relative;
224
+ }
225
+ :host(sbb-tab-nav-bar) .sbb-tab-nav-bar > [data-has-divider]::before,
226
+ :host(sbb-tab-label:is(:state(has-divider),[state--has-divider]))::before {
227
+ content: "";
228
+ position: absolute;
229
+ inset-inline-start: 0;
230
+ inset-block-end: 0;
231
+ width: var(--sbb-tab-group-width);
232
+ height: var(--sbb-border-width-1x);
233
+ background-color: var(--sbb-tab-label-line-color);
234
+ }
235
+
236
+ :host(sbb-tab-nav-bar) ::slotted(a.sbb-disabled),
237
+ :host(sbb-tab-label[disabled]) {
238
+ --sbb-tab-label-cursor: unset;
239
+ --sbb-tab-label-pointer-events: none;
240
+ --sbb-tab-label-text-decoration: line-through;
241
+ }
242
+ @media (forced-colors: active) {
243
+ :host(sbb-tab-nav-bar) ::slotted(a.sbb-disabled),
244
+ :host(sbb-tab-label[disabled]) {
245
+ --sbb-tab-label-color: GrayText;
246
+ --sbb-tab-label-amount-color: GrayText;
247
+ }
248
+ }
249
+
250
+ :host(sbb-tab-nav-bar) ::slotted(a.sbb-active:not(.sbb-disabled)),
251
+ :host(sbb-tab-label[active]:not([disabled])) {
252
+ --sbb-tab-label-color: var(--sbb-color-3);
253
+ --sbb-tab-label-cursor: unset;
254
+ --sbb-tab-label-pointer-events: none;
255
+ --sbb-tab-label-marker-scale: 1;
256
+ }
257
+ @media (forced-colors: active) {
258
+ :host(sbb-tab-nav-bar) ::slotted(a.sbb-active:not(.sbb-disabled)),
259
+ :host(sbb-tab-label[active]:not([disabled])) {
260
+ --sbb-tab-label-color: ButtonText;
261
+ --sbb-tab-label-amount-color: ButtonText;
262
+ }
263
+ }
264
+
265
+ @media (any-hover: hover) {
266
+ :host(sbb-tab-nav-bar) ::slotted(a:hover:not(.sbb-disabled)),
267
+ :host(sbb-tab-label:hover:not([disabled])) {
268
+ --sbb-tab-label-marker-scale: 1;
269
+ }
270
+ }
271
+
272
+ :host(sbb-tab-nav-bar) ::slotted(a:active:not(.sbb-disabled)),
273
+ :host(sbb-tab-label:active) {
274
+ --sbb-tab-label-color: var(--sbb-color-3);
275
+ }
276
+ @media (forced-colors: active) {
277
+ :host(sbb-tab-nav-bar) ::slotted(a:active:not(.sbb-disabled)),
278
+ :host(sbb-tab-label:active) {
279
+ --sbb-tab-label-color: ButtonText;
280
+ --sbb-tab-label-amount-color: ButtonText;
281
+ }
282
+ }
283
+
284
+ :host(sbb-tab-nav-bar) ::slotted(a:focus-visible),
285
+ :host(sbb-tab-label:focus-visible) .sbb-tab-label {
286
+ outline-offset: var(--sbb-focus-outline-offset);
287
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
288
+ border-radius: var(--sbb-tab-label-outline-border-radius-internal);
289
+ }
290
+
151
291
  *,
152
292
  ::before,
153
293
  ::after {
@@ -1194,6 +1334,25 @@
1194
1334
  --sbb-selection-panel-input-padding-block-m
1195
1335
  );
1196
1336
  --sbb-selection-expansion-panel-content-padding-inline: var(--sbb-selection-panel-input-padding-inline-m);
1337
+ --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1338
+ --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1339
+ --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
1340
+ --sbb-tab-group-content-gap-default: var(--sbb-tab-group-content-gap-size-l);
1341
+ --sbb-tab-label-height: var(--sbb-size-element-m);
1342
+ --sbb-tab-label-inline-padding: var(--sbb-spacing-responsive-xs);
1343
+ --sbb-tab-label-color: var(--sbb-color-granite);
1344
+ --sbb-tab-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));
1345
+ --sbb-tab-label-marker-thickness: var(--sbb-border-width-3x);
1346
+ --sbb-tab-label-text-decoration: none;
1347
+ --sbb-tab-label-animation-easing: var(--sbb-animation-easing);
1348
+ --sbb-tab-label-font-size: var(--sbb-text-font-size-m);
1349
+ --sbb-tab-label-font-weight: bold;
1350
+ --sbb-tab-label-gap: var(--sbb-spacing-fixed-2x);
1351
+ --sbb-tab-label-outline-border-radius: var(--sbb-border-radius-2x);
1352
+ --sbb-tab-label-amount-color: var(--sbb-color-metal);
1353
+ --sbb-tab-label-amount-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
1354
+ --sbb-tab-label-line-color: var(--sbb-border-color-4-inverted);
1355
+ --sbb-tab-label-cursor: var(--sbb-cursor-pointer);
1197
1356
  --sbb-visual-checkbox-dimension: var(--sbb-checkbox-dimension-m);
1198
1357
  --sbb-visual-checkbox-selection-color: var(--sbb-color-primary);
1199
1358
  --sbb-visual-checkbox-selection-color-negative: var(--sbb-color-primary85);
@@ -1364,6 +1523,13 @@
1364
1523
  font-display: swap;
1365
1524
  font-weight: 300;
1366
1525
  }
1526
+ sbb-tab-nav-bar .sbb-tab-amount {
1527
+ margin: 0;
1528
+ color: var(--sbb-tab-label-amount-color);
1529
+ font-weight: normal;
1530
+ text-decoration: var(--sbb-tab-label-text-decoration);
1531
+ }
1532
+
1367
1533
  .sbb-dark {
1368
1534
  color-scheme: dark;
1369
1535
  }