@scania/tegel 1.37.1 → 1.38.0-handleValueChange-correct-logic-beta.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 (98) hide show
  1. package/dist/cjs/index-ca8040ad.js +4 -4
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +1 -1
  4. package/dist/cjs/tds-dropdown_2.cjs.entry.js +49 -21
  5. package/dist/cjs/tds-folder-tab.cjs.entry.js +1 -1
  6. package/dist/cjs/tds-folder-tabs.cjs.entry.js +1 -1
  7. package/dist/cjs/tds-inline-tab.cjs.entry.js +1 -1
  8. package/dist/cjs/tds-message.cjs.entry.js +3 -4
  9. package/dist/cjs/tds-navigation-tab.cjs.entry.js +1 -1
  10. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +1 -1
  11. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -6
  12. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +1 -1
  13. package/dist/cjs/tds-side-menu-item.cjs.entry.js +1 -1
  14. package/dist/cjs/tds-slider.cjs.entry.js +39 -10
  15. package/dist/cjs/tegel.cjs.js +1 -1
  16. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +13 -3
  17. package/dist/collection/components/dropdown/dropdown.js +48 -18
  18. package/dist/collection/components/header/header-item/header-item.css +3 -3
  19. package/dist/collection/components/message/message.css +0 -20
  20. package/dist/collection/components/message/message.js +2 -3
  21. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -6
  22. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.css +84 -6
  23. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.css +82 -6
  24. package/dist/collection/components/slider/slider.css +24 -28
  25. package/dist/collection/components/slider/slider.js +38 -9
  26. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.css +34 -8
  27. package/dist/collection/components/tabs/folder-tabs/folder-tabs.css +12 -2
  28. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.css +14 -9
  29. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.css +16 -10
  30. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.css +12 -2
  31. package/dist/components/{p-63437b77.js → p-072bf53a.js} +1 -1
  32. package/dist/components/{p-ea381f94.js → p-92c2da85.js} +1 -1
  33. package/dist/components/{p-94bfc9f4.js → p-9a47d831.js} +37 -19
  34. package/dist/components/p-a0c21704.js +187 -0
  35. package/dist/components/{p-6adb1ce3.js → p-ad6babcd.js} +1 -1
  36. package/dist/components/{p-d64878cb.js → p-c4318e35.js} +13 -3
  37. package/dist/components/tds-dropdown-option.js +1 -1
  38. package/dist/components/tds-dropdown.js +1 -1
  39. package/dist/components/tds-folder-tab.js +1 -1
  40. package/dist/components/tds-folder-tabs.js +1 -1
  41. package/dist/components/tds-header-brand-symbol.js +1 -1
  42. package/dist/components/tds-header-dropdown.js +1 -1
  43. package/dist/components/tds-header-hamburger.js +1 -1
  44. package/dist/components/tds-header-item.js +1 -1
  45. package/dist/components/tds-header-launcher-button.js +1 -1
  46. package/dist/components/tds-header-launcher.js +2 -2
  47. package/dist/components/tds-inline-tab.js +1 -1
  48. package/dist/components/tds-message.js +3 -4
  49. package/dist/components/tds-navigation-tab.js +1 -1
  50. package/dist/components/tds-navigation-tabs.js +1 -1
  51. package/dist/components/tds-side-menu-collapse-button.js +5 -7
  52. package/dist/components/tds-side-menu-dropdown-list-item.js +1 -1
  53. package/dist/components/tds-side-menu-dropdown.js +1 -1
  54. package/dist/components/tds-side-menu-item.js +1 -1
  55. package/dist/components/tds-slider.js +59 -12
  56. package/dist/components/tds-table-footer.js +2 -2
  57. package/dist/components/tds-text-field.js +1 -185
  58. package/dist/esm/index-51d04e39.js +4 -4
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/tds-core-header-item_2.entry.js +1 -1
  61. package/dist/esm/tds-dropdown_2.entry.js +49 -21
  62. package/dist/esm/tds-folder-tab.entry.js +1 -1
  63. package/dist/esm/tds-folder-tabs.entry.js +1 -1
  64. package/dist/esm/tds-inline-tab.entry.js +1 -1
  65. package/dist/esm/tds-message.entry.js +3 -4
  66. package/dist/esm/tds-navigation-tab.entry.js +1 -1
  67. package/dist/esm/tds-navigation-tabs.entry.js +1 -1
  68. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -6
  69. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +1 -1
  70. package/dist/esm/tds-side-menu-item.entry.js +1 -1
  71. package/dist/esm/tds-slider.entry.js +39 -10
  72. package/dist/esm/tegel.js +1 -1
  73. package/dist/tegel/{p-c0b26507.entry.js → p-25f4b4ca.entry.js} +1 -1
  74. package/dist/tegel/p-2c9ea0be.entry.js +1 -0
  75. package/dist/tegel/p-2f9b15f6.entry.js +1 -0
  76. package/dist/tegel/p-336f2de3.entry.js +1 -0
  77. package/dist/tegel/p-7368906f.entry.js +1 -0
  78. package/dist/tegel/p-8ae4e03c.entry.js +1 -0
  79. package/dist/tegel/p-b2b9561f.entry.js +1 -0
  80. package/dist/tegel/{p-52adc30c.entry.js → p-bb9445ff.entry.js} +1 -1
  81. package/dist/tegel/p-c465f9b8.entry.js +1 -0
  82. package/dist/tegel/p-c4f701f6.entry.js +1 -0
  83. package/dist/tegel/{p-8c841698.entry.js → p-d184a3f0.entry.js} +1 -1
  84. package/dist/tegel/p-db38b4f2.entry.js +1 -0
  85. package/dist/tegel/tegel.css +1 -1
  86. package/dist/tegel/tegel.esm.js +1 -1
  87. package/dist/types/components/dropdown/dropdown.d.ts +3 -0
  88. package/dist/types/components/slider/slider.d.ts +2 -0
  89. package/package.json +1 -1
  90. package/dist/tegel/p-06d3490c.entry.js +0 -1
  91. package/dist/tegel/p-106e048d.entry.js +0 -1
  92. package/dist/tegel/p-397c8969.entry.js +0 -1
  93. package/dist/tegel/p-5c077bb9.entry.js +0 -1
  94. package/dist/tegel/p-61a1dc59.entry.js +0 -1
  95. package/dist/tegel/p-a0591e58.entry.js +0 -1
  96. package/dist/tegel/p-ae438c2e.entry.js +0 -1
  97. package/dist/tegel/p-dc375d3e.entry.js +0 -1
  98. package/dist/tegel/p-e3c2b6b4.entry.js +0 -1
@@ -26,24 +26,102 @@
26
26
  }
27
27
  :host .component ::slotted(a:hover),
28
28
  :host .component ::slotted(button:hover) {
29
- background-color: var(--tds-header-nav-item-dropdown-opened-background-hover);
29
+ background-color: var(--tds-sidebar-item-state-hover);
30
30
  cursor: pointer;
31
+ position: relative;
32
+ }
33
+ :host .component ::slotted(a:hover)::before,
34
+ :host .component ::slotted(button:hover)::before {
35
+ content: "";
36
+ position: absolute;
37
+ top: 0;
38
+ left: 0;
39
+ width: 4px;
40
+ height: 100%;
41
+ background-color: var(--tds-side-menu-item-hover-indicator);
42
+ }
43
+ :host .component ::slotted(a:hover:focus-visible),
44
+ :host .component ::slotted(button:hover:focus-visible) {
45
+ background-color: var(--tds-sidebar-item-state-hover);
46
+ cursor: pointer;
47
+ position: relative;
48
+ }
49
+ :host .component ::slotted(a:hover:focus-visible)::before,
50
+ :host .component ::slotted(button:hover:focus-visible)::before {
51
+ content: "";
52
+ position: absolute;
53
+ top: 3px;
54
+ left: 3px;
55
+ width: 4px;
56
+ height: calc(100% - 6px);
57
+ background-color: var(--tds-side-menu-item-hover-indicator);
31
58
  }
32
59
  :host .component ::slotted(a:active),
33
60
  :host .component ::slotted(button:active) {
34
- background-color: var(--tds-header-nav-item-dropdown-opened-background-active) !important;
61
+ background-color: var(--tds-sidemenu-item-state-active) !important;
35
62
  cursor: pointer;
63
+ position: relative;
64
+ }
65
+ :host .component ::slotted(a:active)::before,
66
+ :host .component ::slotted(button:active)::before {
67
+ content: "";
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ width: 4px;
72
+ height: 100%;
73
+ background-color: var(--tds-side-menu-item-pressed-indicator);
74
+ }
75
+ :host .component ::slotted(a:active:focus-visible),
76
+ :host .component ::slotted(button:active:focus-visible) {
77
+ background-color: var(--tds-sidemenu-item-state-active) !important;
78
+ cursor: pointer;
79
+ position: relative;
80
+ }
81
+ :host .component ::slotted(a:active:focus-visible)::before,
82
+ :host .component ::slotted(button:active:focus-visible)::before {
83
+ content: "";
84
+ position: absolute;
85
+ top: 3px;
86
+ left: 3px;
87
+ width: 4px;
88
+ height: calc(100% - 6px);
89
+ background-color: var(--tds-side-menu-item-pressed-indicator);
36
90
  }
37
91
  :host .component ::slotted(a:focus-visible) {
38
92
  outline: 2px solid var(--tds-focus-outline-color);
39
- box-shadow: 0 0 0 1px var(--tds-white);
40
- outline-offset: 1px;
41
- z-index: 1;
93
+ box-shadow: inset 0 0 0 3px var(--tds-white);
94
+ outline-offset: -2px;
42
95
  }
43
96
  :host .component.component-selected ::slotted(a),
44
97
  :host .component.component-selected ::slotted(button) {
45
- box-shadow: inset 4px 0 0 var(--tds-nav-item-border-color-active);
46
98
  background-color: var(--tds-header-nav-item-dropdown-opened-background-selected);
99
+ position: relative;
100
+ }
101
+ :host .component.component-selected ::slotted(a)::before,
102
+ :host .component.component-selected ::slotted(button)::before {
103
+ content: "";
104
+ position: absolute;
105
+ top: 0;
106
+ left: 0;
107
+ width: 4px;
108
+ height: 100%;
109
+ background-color: var(--tds-sidebar-side-menu-single-subitem-selected-border-color);
110
+ }
111
+ :host .component.component-selected ::slotted(a:focus-visible),
112
+ :host .component.component-selected ::slotted(button:focus-visible) {
113
+ background-color: var(--tds-header-nav-item-dropdown-opened-background-selected);
114
+ position: relative;
115
+ }
116
+ :host .component.component-selected ::slotted(a:focus-visible)::before,
117
+ :host .component.component-selected ::slotted(button:focus-visible)::before {
118
+ content: "";
119
+ position: absolute;
120
+ top: 3px;
121
+ left: 3px;
122
+ width: 4px;
123
+ height: calc(100% - 6px);
124
+ background-color: var(--tds-sidebar-side-menu-single-subitem-selected-border-color);
47
125
  }
48
126
  :host .component.component-dropdown-has-icon:not(.component-collapsed) ::slotted(a),
49
127
  :host .component.component-dropdown-has-icon:not(.component-collapsed) ::slotted(button) {
@@ -43,17 +43,76 @@
43
43
  :host .component ::slotted(a:focus-visible),
44
44
  :host .component ::slotted(button:focus-visible) {
45
45
  outline: 2px solid var(--tds-focus-outline-color);
46
- box-shadow: 0 0 0 1px var(--tds-white);
47
- outline-offset: 1px;
48
- z-index: 1;
46
+ box-shadow: inset 0 0 0 3px var(--tds-white);
47
+ outline-offset: -2px;
49
48
  }
50
49
  :host .component:hover ::slotted(a),
51
- :host .component:hover ::slotted(button) {
50
+ :host .component:hover ::slotted(button),
51
+ :host .component:hover ::slotted(tds-side-menu-user) {
52
52
  background-color: var(--tds-sidebar-item-state-hover);
53
+ position: relative;
54
+ }
55
+ :host .component:hover ::slotted(a)::before,
56
+ :host .component:hover ::slotted(button)::before,
57
+ :host .component:hover ::slotted(tds-side-menu-user)::before {
58
+ content: "";
59
+ position: absolute;
60
+ top: 0;
61
+ left: 0;
62
+ width: 4px;
63
+ height: 100%;
64
+ background-color: var(--tds-side-menu-item-hover-indicator);
65
+ }
66
+ :host .component:hover ::slotted(a:focus-visible),
67
+ :host .component:hover ::slotted(button:focus-visible),
68
+ :host .component:hover ::slotted(tds-side-menu-user:focus-visible) {
69
+ background-color: var(--tds-sidebar-item-state-hover);
70
+ position: relative;
71
+ }
72
+ :host .component:hover ::slotted(a:focus-visible)::before,
73
+ :host .component:hover ::slotted(button:focus-visible)::before,
74
+ :host .component:hover ::slotted(tds-side-menu-user:focus-visible)::before {
75
+ content: "";
76
+ position: absolute;
77
+ top: 3px;
78
+ left: 3px;
79
+ width: 4px;
80
+ height: calc(100% - 6px);
81
+ background-color: var(--tds-side-menu-item-hover-indicator);
53
82
  }
54
83
  :host .component:active ::slotted(a),
55
- :host .component:active ::slotted(button) {
84
+ :host .component:active ::slotted(button),
85
+ :host .component:active ::slotted(tds-side-menu-user) {
86
+ background-color: var(--tds-sidemenu-item-state-active);
87
+ position: relative;
88
+ }
89
+ :host .component:active ::slotted(a)::before,
90
+ :host .component:active ::slotted(button)::before,
91
+ :host .component:active ::slotted(tds-side-menu-user)::before {
92
+ content: "";
93
+ position: absolute;
94
+ top: 0;
95
+ left: 0;
96
+ width: 4px;
97
+ height: 100%;
98
+ background-color: var(--tds-side-menu-item-pressed-indicator);
99
+ }
100
+ :host .component:active ::slotted(a:focus-visible),
101
+ :host .component:active ::slotted(button:focus-visible),
102
+ :host .component:active ::slotted(tds-side-menu-user:focus-visible) {
56
103
  background-color: var(--tds-sidemenu-item-state-active);
104
+ position: relative;
105
+ }
106
+ :host .component:active ::slotted(a:focus-visible)::before,
107
+ :host .component:active ::slotted(button:focus-visible)::before,
108
+ :host .component:active ::slotted(tds-side-menu-user:focus-visible)::before {
109
+ content: "";
110
+ position: absolute;
111
+ top: 3px;
112
+ left: 3px;
113
+ width: 4px;
114
+ height: calc(100% - 6px);
115
+ background-color: var(--tds-side-menu-item-pressed-indicator);
57
116
  }
58
117
  :host .component-collapsed ::slotted(a),
59
118
  :host .component-collapsed ::slotted(button) {
@@ -66,8 +125,8 @@
66
125
  :host .component-selected:not(:host .component-active) ::slotted(a),
67
126
  :host .component-selected:not(:host .component-active) ::slotted(button),
68
127
  :host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user) {
69
- position: relative;
70
128
  background-color: var(--tds-sidebar-item-state-selected);
129
+ position: relative;
71
130
  }
72
131
  :host .component-selected:not(:host .component-active) ::slotted(a)::before,
73
132
  :host .component-selected:not(:host .component-active) ::slotted(button)::before,
@@ -80,6 +139,23 @@
80
139
  height: 100%;
81
140
  background-color: var(--tds-sidebar-side-menu-single-subitem-selected-border-color);
82
141
  }
142
+ :host .component-selected:not(:host .component-active) ::slotted(a:focus-visible),
143
+ :host .component-selected:not(:host .component-active) ::slotted(button:focus-visible),
144
+ :host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user:focus-visible) {
145
+ background-color: var(--tds-sidebar-item-state-selected);
146
+ position: relative;
147
+ }
148
+ :host .component-selected:not(:host .component-active) ::slotted(a:focus-visible)::before,
149
+ :host .component-selected:not(:host .component-active) ::slotted(button:focus-visible)::before,
150
+ :host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user:focus-visible)::before {
151
+ content: "";
152
+ position: absolute;
153
+ top: 3px;
154
+ left: 3px;
155
+ width: 4px;
156
+ height: calc(100% - 6px);
157
+ background-color: var(--tds-sidebar-side-menu-single-subitem-selected-border-color);
158
+ }
83
159
 
84
160
  @media (min-width: 992px) {
85
161
  :host .component.component-collapsed ::slotted(a),
@@ -27,12 +27,6 @@ tds-slider .sr-only {
27
27
  pointer-events: none;
28
28
  }
29
29
 
30
- .tds-slider-wrapper:focus-within {
31
- outline: 2px solid var(--tds-blue-400);
32
- outline-offset: 2px;
33
- border-radius: var(--tds-spacing-element-4);
34
- }
35
-
36
30
  .tds-slider {
37
31
  width: 100%;
38
32
  display: flex;
@@ -44,6 +38,12 @@ tds-slider .sr-only {
44
38
  height: 20px;
45
39
  position: relative;
46
40
  }
41
+ .tds-slider .tds-slider-inner:focus-within .tds-slider__thumb-inner {
42
+ outline: var(--tds-slider-thumb-focus-outline);
43
+ box-shadow: var(--tds-slider-thumb-focus-box-shadow);
44
+ outline-offset: var(--tds-slider-thumb-focus-outline-offset);
45
+ z-index: 1;
46
+ }
47
47
  .tds-slider .tds-slider__controls {
48
48
  position: relative;
49
49
  top: -25px;
@@ -81,30 +81,23 @@ tds-slider .sr-only {
81
81
  justify-content: center;
82
82
  border-radius: 4px 4px 0 0;
83
83
  }
84
- .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper input.tds-slider__input-field {
85
- font: var(--tds-detail-02);
86
- letter-spacing: var(--tds-detail-02-ls);
87
- color: var(--tds-slider-inputfield-number-color);
88
- border: 0;
89
- background-color: transparent;
90
- text-align: center;
84
+ .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper tds-text-field .text-field-input[type=number] {
85
+ width: auto;
91
86
  padding: 12px;
92
- box-shadow: inset 0 -1px 0 var(--tds-slider-inputfield-box-shadow);
93
- border-radius: 4px 4px 0 0;
87
+ text-align: center;
94
88
  appearance: textfield;
95
89
  }
96
- .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper input.tds-slider__input-field:hover {
97
- box-shadow: inset 0 -1px 0 var(--tds-grey-600);
98
- }
99
- .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper input.tds-slider__input-field:focus {
100
- box-shadow: inset 0 -2px 0 var(--tds-blue-400);
101
- outline: 0;
102
- }
103
- .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper input.tds-slider__input-field::-webkit-outer-spin-button,
104
- .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper input.tds-slider__input-field::-webkit-inner-spin-button {
90
+ .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper tds-text-field .text-field-input[type=number]::-webkit-outer-spin-button,
91
+ .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper tds-text-field .text-field-input[type=number]::-webkit-inner-spin-button {
105
92
  appearance: none;
106
93
  margin: 0;
107
94
  }
95
+ .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper tds-text-field .text-field-input:read-only {
96
+ text-align: left;
97
+ }
98
+ .tds-slider .tds-slider__input-values .tds-slider__input-field-wrapper tds-text-field .text-field-icon__readonly {
99
+ right: 12px;
100
+ }
108
101
  .tds-slider label {
109
102
  font: var(--tds-detail-05);
110
103
  letter-spacing: var(--tds-detail-05-ls);
@@ -122,7 +115,7 @@ tds-slider .sr-only {
122
115
  letter-spacing: var(--tds-detail-01-ls);
123
116
  user-select: none;
124
117
  border-radius: 4px;
125
- padding: 8px;
118
+ padding: 8px 11px;
126
119
  position: absolute;
127
120
  transform: translate(-50%, -100%);
128
121
  top: -24px;
@@ -139,6 +132,9 @@ tds-slider .sr-only {
139
132
  .tds-slider .tds-slider__thumb {
140
133
  position: absolute;
141
134
  }
135
+ .tds-slider .tds-slider__thumb:hover .tds-slider__value {
136
+ display: block;
137
+ }
142
138
  .tds-slider .tds-slider__thumb .tds-slider__thumb-inner {
143
139
  width: 20px;
144
140
  height: 20px;
@@ -164,7 +160,7 @@ tds-slider .sr-only {
164
160
  }
165
161
  .tds-slider .tds-slider__thumb .tds-slider__thumb-inner:hover::before {
166
162
  display: block;
167
- opacity: 0.08;
163
+ background-color: var(--tds-slider-thumb-hover);
168
164
  }
169
165
  .tds-slider .tds-slider__thumb .tds-slider__thumb-inner.pressed {
170
166
  width: 24px;
@@ -172,7 +168,7 @@ tds-slider .sr-only {
172
168
  }
173
169
  .tds-slider .tds-slider__thumb .tds-slider__thumb-inner.pressed::before {
174
170
  display: block;
175
- opacity: 0.16 !important;
171
+ background-color: var(--tds-slider-thumb-pressed);
176
172
  }
177
173
  .tds-slider .tds-slider__value-dividers-wrapper {
178
174
  position: relative;
@@ -307,7 +303,7 @@ tds-slider .sr-only {
307
303
  }
308
304
 
309
305
  .tds-slider .tds-slider__controls .tds-slider__control {
310
- cursor: default;
306
+ cursor: pointer;
311
307
  }
312
308
  .tds-slider .tds-slider__controls .tds-slider__control.tds-slider__control-minus tds-icon, .tds-slider .tds-slider__controls .tds-slider__control.tds-slider__control-plus tds-icon {
313
309
  color: var(--tds-slider-controls-color);
@@ -267,6 +267,25 @@ export class TdsSlider {
267
267
  const rounded = this.roundToStep(newValue);
268
268
  this.forceValueUpdate(rounded.toString());
269
269
  }
270
+ /** Updates the slider value when using tds-text-field (reads value from host element) */
271
+ updateSliderValueFromTextField(event) {
272
+ const hostEl = event.target; // tds-text-field host element exposes a value prop
273
+ const raw = hostEl && typeof hostEl.value !== 'undefined' ? hostEl.value : '';
274
+ let newValue = parseFloat(raw);
275
+ if (Number.isNaN(newValue)) {
276
+ return;
277
+ }
278
+ const minNum = parseFloat(this.min);
279
+ const maxNum = parseFloat(this.max);
280
+ if (newValue < minNum) {
281
+ newValue = minNum;
282
+ }
283
+ else if (newValue > maxNum) {
284
+ newValue = maxNum;
285
+ }
286
+ const rounded = this.roundToStep(newValue);
287
+ this.forceValueUpdate(rounded.toString());
288
+ }
270
289
  /** Updates the slider value based on the current input value when enter is pressed */
271
290
  handleInputFieldEnterPress(event) {
272
291
  event.stopPropagation();
@@ -287,7 +306,16 @@ export class TdsSlider {
287
306
  }
288
307
  }
289
308
  calculateInputSizeFromMax() {
290
- return this.max.length;
309
+ const input = this.host.querySelector('tds-text-field input[type="number"]');
310
+ if (input) {
311
+ if (this.readOnly) {
312
+ // explicit size to fit suffix icon
313
+ input.style.width = `${52 + this.max.length * 8}px`;
314
+ }
315
+ else {
316
+ input.setAttribute('size', `${this.max.length}`);
317
+ }
318
+ }
291
319
  }
292
320
  controlsStep(delta, event) {
293
321
  if (this.readOnly || this.disabled) {
@@ -358,6 +386,7 @@ export class TdsSlider {
358
386
  }
359
387
  }
360
388
  componentDidLoad() {
389
+ this.calculateInputSizeFromMax();
361
390
  if (!this.resizeObserverAdded) {
362
391
  this.resizeObserverAdded = true;
363
392
  const resizeObserver = new ResizeObserver(() => {
@@ -401,30 +430,30 @@ export class TdsSlider {
401
430
  }
402
431
  render() {
403
432
  const ariaLabel = this.readOnly ? this.tdsReadOnlyAriaLabel : this.label || this.tdsAriaLabel;
404
- return (h("div", { key: 'b4dd7706df0be052f0028a5f8ba6b6158f403b13', class: {
433
+ return (h("div", { key: '6077f356c7723ce54bdee208039af07154499684', class: {
405
434
  'tds-slider-wrapper': true,
406
435
  'read-only': this.readOnly,
407
- } }, h("input", { key: '672c2aaa6dfee6489cd5e764ef151728c2af10fc', class: "tds-slider-native-element", type: "range", name: this.name, min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled }), h("div", { key: '8c7200436a9ef6524a3b2d554a2556bda8cc6afd', class: "sr-only", "aria-live": "assertive", ref: (el) => {
436
+ } }, h("input", { key: '0ee6d0f1c8661bdcae6a3df5eca7b154306338eb', class: "tds-slider-native-element", type: "range", name: this.name, min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled }), h("div", { key: 'cfb2700cf9d16c204182a72f9f00ccd03b58ef89', class: "sr-only", "aria-live": "assertive", ref: (el) => {
408
437
  this.ariaLiveElement = el;
409
- } }), h("div", { key: '1ce8e7ddccd19ca15733683768900c8fcde514d3', class: {
438
+ } }), h("div", { key: 'b90c1d06afd96682a108b24506660e7544c4be38', class: {
410
439
  'tds-slider': true,
411
440
  'disabled': this.disabled,
412
441
  'tds-slider-small': this.useSmall,
413
442
  }, ref: (el) => {
414
443
  this.wrapperElement = el;
415
- }, "aria-disabled": this.disabled ? 'true' : 'false' }, h("label", { key: '54616f1cb5e4c13541f6f5fa700ddf4b1c4a9493', id: `${this.sliderId}-label`, class: this.showTickNumbers && 'offset' }, this.label), this.useInput && (h("div", { key: 'f6b8283409e9fb74ebf5fe89af5d88c29fde904d', class: "tds-slider__input-values" }, h("div", { key: '30532947c70dc8e0612fea3c01c25a5e86dacfca', class: "tds-slider__input-value min-value" }, this.min))), this.useControls && (h("div", { key: '6c001b8caba4a396bb9f4f4f3ba7b9ee6ca36f84', class: "tds-slider__controls" }, h("div", { key: '7a5804b789f84a4cd749c21d0ecc4b73bf7bae09', class: "tds-slider__control tds-slider__control-minus", onClick: (event) => this.stepLeft(event), role: "button", "aria-label": "Decrease value", tabindex: this.disabled || this.readOnly ? '-1' : '0' }, h("tds-icon", { key: '41db4dc1a8fda4972303fd48400078035648ca5c', name: "minus", size: "16px" })))), h("div", { key: 'f3cb2039ec4245b1d5c58bb819675381c4490197', class: "tds-slider-inner", tabIndex: -1 }, this.tickValues.length > 0 && (h("div", { key: '38bf8ca015894f3a42a0e9e33800cc7f0ff9c8d5', class: "tds-slider__value-dividers-wrapper" }, h("div", { key: '6a5aaa5d652d55f23db24b1b531664d125fc2a23', class: "tds-slider__value-dividers" }, this.tickValues.map((value) => (h("div", { class: "tds-slider__value-divider" }, this.showTickNumbers && h("span", null, value))))))), h("div", { key: '0c99475a8bdb1fdec04358421ec34630111a63b8', class: "tds-slider__track", ref: (el) => {
444
+ }, "aria-disabled": this.disabled ? 'true' : 'false' }, h("label", { key: '3d0bc3f42de59e4397dc8da0edf7ec29802ee8ab', id: `${this.sliderId}-label`, class: this.showTickNumbers && 'offset' }, this.label), this.useInput && (h("div", { key: 'c3868e2225cc4dacf60d23e31bdb2b106b85ce22', class: "tds-slider__input-values" }, h("div", { key: 'af100279435087101f37043ea083e5e33d930079', class: "tds-slider__input-value min-value" }, this.min))), this.useControls && (h("div", { key: '83c0078ec0ae39d29582e1ff1f4c3fc5f3a09483', class: "tds-slider__controls" }, h("div", { key: '31947e6cd76c35b8b8e7c0fb92b777e3bf8538b7', class: "tds-slider__control tds-slider__control-minus", onClick: (event) => this.stepLeft(event), role: "button", "aria-label": "Decrease value", tabindex: this.disabled || this.readOnly ? '-1' : '0' }, h("tds-icon", { key: '4c005f8c628236482eecdac51bd43a860f9e38d9', name: "minus", size: "16px" })))), h("div", { key: 'c6f21ded71244d202e255a90039f03872af09d5a', class: "tds-slider-inner", tabIndex: -1 }, this.tickValues.length > 0 && (h("div", { key: 'df1e820e1077ccec24826e38ba1b1fdd8dc0ae90', class: "tds-slider__value-dividers-wrapper" }, h("div", { key: 'f8cadf57f46068f61d1afc2bbcc30997a750705b', class: "tds-slider__value-dividers" }, this.tickValues.map((value) => (h("div", { class: "tds-slider__value-divider" }, this.showTickNumbers && h("span", null, value))))))), h("div", { key: '389ba385948b6772e803b7b9ec858061451f7534', class: "tds-slider__track", ref: (el) => {
416
445
  this.trackElement = el;
417
446
  }, tabindex: this.disabled ? '-1' : '0', role: "presentation", onFocus: () => {
418
447
  if (this.thumbElement) {
419
448
  this.thumbElement.focus();
420
449
  }
421
- } }, h("div", { key: 'd3ece50db5fbc17e4ebbf4272faa17fcf201dccf', class: "tds-slider__track-fill", ref: (el) => {
450
+ } }, h("div", { key: '5409aec334156fc5c5ac6a2cdbcb38ee50e35259', class: "tds-slider__track-fill", ref: (el) => {
422
451
  this.trackFillElement = el;
423
- } }), h("div", { key: 'c304176e6a240820418d80aa8bfad35fbbdaf0f4', class: "tds-slider__thumb", ref: (el) => {
452
+ } }), h("div", { key: '8e0953ed9771846db11b9f79f6844065494f1b01', class: "tds-slider__thumb", ref: (el) => {
424
453
  this.thumbElement = el;
425
- }, onMouseDown: () => this.grabThumb(), onTouchStart: () => this.grabThumb(), role: "slider", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.value, "aria-valuetext": `${this.value} of ${this.max}`, "aria-labelledby": `${this.sliderId}-label`, "aria-grabbed": this.thumbGrabbed ? 'true' : 'false', "aria-label": ariaLabel, tabindex: this.disabled ? '-1' : '0' }, this.tooltip && (h("div", { key: '7c46c4f8b3cc3bf3aeae7c841a2f38e7b3d1dfbb', class: "tds-slider__value" }, this.value, h("svg", { key: '871a05a8fc1560c8e94071172c57563d63e10f22', width: "18", height: "14", viewBox: "0 0 18 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '0c99295a2049b3aac5d0472880e63acc4318fa07', d: "M8.15882 12.6915L0.990487 1.54076C0.562658 0.875246 1.0405 0 1.83167 0H16.1683C16.9595 0 17.4373 0.875246 17.0095 1.54076L9.84118 12.6915C9.44754 13.3038 8.55246 13.3038 8.15882 12.6915Z", fill: "currentColor" })))), h("div", { key: 'bf42f5b512d3041a88bd8cc420a5a4aaeb875e49', class: "tds-slider__thumb-inner", ref: (el) => {
454
+ }, onMouseDown: () => this.grabThumb(), onTouchStart: () => this.grabThumb(), role: "slider", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.value, "aria-valuetext": `${this.value} of ${this.max}`, "aria-labelledby": `${this.sliderId}-label`, "aria-grabbed": this.thumbGrabbed ? 'true' : 'false', "aria-label": ariaLabel, tabindex: this.disabled ? '-1' : '0' }, this.tooltip && (h("div", { key: 'ed08cca6219adff68babc9c535aff278a1b3325e', class: "tds-slider__value" }, this.value, h("svg", { key: 'dc46d041d7c123400a42ea9c9472cf0a329eb4a1', width: "18", height: "14", viewBox: "0 0 18 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '3d46edb2069bd056a2ae09efa4bfa7f6319afe3b', d: "M8.15882 12.6915L0.990487 1.54076C0.562658 0.875246 1.0405 0 1.83167 0H16.1683C16.9595 0 17.4373 0.875246 17.0095 1.54076L9.84118 12.6915C9.44754 13.3038 8.55246 13.3038 8.15882 12.6915Z", fill: "currentColor" })))), h("div", { key: '202f2b005a969cd7eb3396c14ef6f72224fcd56a', class: "tds-slider__thumb-inner", ref: (el) => {
426
455
  this.thumbInnerElement = el;
427
- } })))), this.useInput && (h("div", { key: '9a1ed941f13b84e738500921b12aeb21ace2464c', class: "tds-slider__input-values" }, h("div", { key: '2bdf5b0fb2687075b2fc12ce931859d2f26a0685', class: "tds-slider__input-value", onClick: (event) => this.stepLeft(event) }, this.max), h("div", { key: '480825ddccd550527ac18f046c6a8ce26baaba87', class: "tds-slider__input-field-wrapper" }, h("input", { key: '94a1446990ea0ae3955e8db9f0119e4a0ec71970', size: this.calculateInputSizeFromMax(), class: "tds-slider__input-field", value: this.value, "aria-label": this.readOnly ? this.tdsReadOnlyAriaLabel : undefined, onBlur: (event) => this.updateSliderValueOnInputChange(event), onKeyDown: (event) => this.handleInputFieldEnterPress(event), type: "number", min: this.min, max: this.max, step: this.step })))), this.useControls && (h("div", { key: 'b7415e621df023ffe0eca844d9970454d01c72ce', class: "tds-slider__controls" }, h("div", { key: '044a984a7212d56f8c1bcb5709608d90677d7647', class: "tds-slider__control tds-slider__control-plus", onClick: (event) => this.stepRight(event), role: "button", "aria-label": "Increase value", tabindex: this.disabled || this.readOnly ? '-1' : '0' }, h("tds-icon", { key: '0b6410f7fb4af32681c3f49f29c9696e871bfd5a', name: "plus", size: "16px" })))))));
456
+ } })))), this.useInput && (h("div", { key: 'ca2e84c4bccc24ebbc58a4915f62b5ecb77462c9', class: "tds-slider__input-values" }, h("div", { key: '58fdb8a9a25b9f15314aab8ffaee9424fbb26458', class: "tds-slider__input-value", onClick: (event) => this.stepLeft(event) }, this.max), h("div", { key: '4cba8f4c2b8a89922dbaa9eec4c2f9d12f43b62c', class: "tds-slider__input-field-wrapper" }, h("tds-text-field", { key: '65d311769aa5202134676cf9c4652132fbfc364d', noMinWidth: true, size: "sm", type: "number", value: this.value, min: this.min, max: this.max, readOnly: this.readOnly, disabled: this.disabled, onTdsChange: (e) => console.log(e), tdsAriaLabel: this.readOnly ? this.tdsReadOnlyAriaLabel : undefined, onTdsBlur: (event) => this.updateSliderValueFromTextField(event), onKeyDown: (event) => this.handleInputFieldEnterPress(event) })))), this.useControls && (h("div", { key: 'da8881158bee1aec2724a0e71af3faa88bc0eb17', class: "tds-slider__controls" }, h("div", { key: '241b11a3bee6ce8cf3e53ba77a095e2fb0cdb8a6', class: "tds-slider__control tds-slider__control-plus", onClick: (event) => this.stepRight(event), role: "button", "aria-label": "Increase value", tabindex: this.disabled || this.readOnly ? '-1' : '0' }, h("tds-icon", { key: 'c8e5466b53a1fe6abaaab77741e4adb7ec197341', name: "plus", size: "16px" })))))));
428
457
  }
429
458
  static get is() { return "tds-slider"; }
430
459
  static get originalStyleUrls() {
@@ -20,21 +20,34 @@
20
20
  text-align: left;
21
21
  outline: none;
22
22
  border: none;
23
- border-left: 1px solid;
24
- border-left-color: transparent;
25
23
  }
26
- :host ::slotted(*:focus-visible) {
24
+ :host ::slotted(*:focus-within)::before {
27
25
  outline: 2px solid var(--tds-focus-outline-color);
28
26
  box-shadow: 0 0 0 1px var(--tds-white);
29
27
  outline-offset: 1px;
30
28
  z-index: 1;
29
+ content: "";
30
+ position: absolute;
31
+ top: 3px;
32
+ bottom: 3px;
33
+ left: 3px;
34
+ right: 3px;
31
35
  }
32
36
  :host div:not(.selected) {
33
37
  background-color: var(--tds-folder-tab-background);
38
+ position: relative;
39
+ }
40
+ :host div:not(.selected)::before {
41
+ content: "";
42
+ position: absolute;
43
+ left: 0;
44
+ top: 0;
45
+ bottom: 0;
46
+ width: 1px;
47
+ background-color: var(--tds-folder-tab-divider-color);
34
48
  }
35
49
  :host div:not(.selected) ::slotted(*) {
36
- border-left-color: var(--tds-folder-tab-divider-color);
37
- border-top: 2px solid var(--tds-folder-tab-background);
50
+ border-top: 2px solid transparent;
38
51
  color: var(--tds-folder-tab-item-color);
39
52
  }
40
53
  :host div:not(.selected):hover:not(.disabled) {
@@ -42,9 +55,12 @@
42
55
  cursor: pointer;
43
56
  }
44
57
  :host div:not(.selected):hover:not(.disabled) ::slotted(*) {
45
- border-top-color: var(--tds-folder-tab-background-hover);
58
+ border-top: 2px solid var(--tds-folder-tab-top-border-hover);
46
59
  color: var(--tds-folder-tab-color);
47
60
  }
61
+ :host div:not(.selected).disabled {
62
+ background-color: var(--tds-folder-tab-item-background-disabled);
63
+ }
48
64
  :host div:not(.selected).disabled ::slotted(*) {
49
65
  color: var(--tds-folder-tab-item-color-disabled);
50
66
  }
@@ -63,7 +79,7 @@
63
79
  }
64
80
  :host .selected::after {
65
81
  content: " ";
66
- background-color: var(--tds-folder-tab-background-selected);
82
+ background-color: var(--tds-folder-tab-divider-color);
67
83
  width: 1px;
68
84
  top: 0;
69
85
  bottom: 0;
@@ -75,7 +91,17 @@
75
91
  :host .selected ::slotted(*) {
76
92
  color: var(--tds-folder-tab-color);
77
93
  }
94
+ :host .selected:hover:not(.disabled) {
95
+ background-color: var(--tds-folder-tab-background-hover);
96
+ cursor: pointer;
97
+ }
98
+ :host .selected:hover:not(.disabled) ::slotted(*) {
99
+ color: var(--tds-folder-tab-color);
100
+ }
78
101
 
79
- :host(.first) :not(.selected) ::slotted(*) {
102
+ :host(.first) ::slotted(*) {
80
103
  border-left-color: transparent;
104
+ }
105
+ :host(.first) .selected {
106
+ border-left: none;
81
107
  }
@@ -53,12 +53,22 @@
53
53
  :host .scroll-left-button:active {
54
54
  background-color: var(--tds-folder-tabs-scroll-btn-background-active);
55
55
  }
56
- :host .scroll-right-button:focus,
57
- :host .scroll-left-button:focus {
56
+ :host .scroll-right-button:focus-within::before,
57
+ :host .scroll-left-button:focus-within::before {
58
58
  outline: 2px solid var(--tds-focus-outline-color);
59
59
  box-shadow: 0 0 0 1px var(--tds-white);
60
60
  outline-offset: 1px;
61
61
  z-index: 1;
62
+ content: "";
63
+ position: absolute;
64
+ top: 3px;
65
+ bottom: 3px;
66
+ left: 3px;
67
+ right: 3px;
68
+ }
69
+ :host .scroll-right-button:focus,
70
+ :host .scroll-left-button:focus {
71
+ outline: 0;
62
72
  }
63
73
  :host .scroll-right-button svg,
64
74
  :host .scroll-left-button svg {
@@ -23,13 +23,16 @@
23
23
  padding: 20px 4px;
24
24
  }
25
25
  :host ::slotted(*:focus-visible)::before {
26
+ outline: 2px solid var(--tds-focus-outline-color);
27
+ box-shadow: 0 0 0 1px var(--tds-white);
28
+ outline-offset: 1px;
29
+ z-index: 1;
26
30
  content: "";
27
31
  position: absolute;
28
32
  left: 0;
29
33
  right: 0;
30
- top: 20px;
31
- bottom: 20px;
32
- outline: 2px solid var(--tds-blue-400);
34
+ top: 3px;
35
+ bottom: 3px;
33
36
  }
34
37
  :host .inline-tab-item:not(.selected)::after {
35
38
  width: 0%;
@@ -42,6 +45,9 @@
42
45
  :host .inline-tab-item:hover {
43
46
  cursor: pointer;
44
47
  }
48
+ :host .inline-tab-item:hover ::slotted(*) {
49
+ color: var(--tds-inline-tabs-tab-color-hover);
50
+ }
45
51
  :host .inline-tab-item:hover::after {
46
52
  width: 100%;
47
53
  }
@@ -65,20 +71,19 @@
65
71
  width: 100%;
66
72
  background-color: var(--tds-inline-tabs-tab-indicator-background-active);
67
73
  }
68
- :host .disabled {
69
- color: var(--tds-inline-tabs-tab-color-disabled);
70
- }
71
- :host .disabled ::slotted(*) {
72
- opacity: var(--tds-inline-tabs-tab-color-opacity-disabled);
73
- }
74
74
  :host .disabled::after {
75
75
  content: none;
76
76
  }
77
+ :host .disabled ::slotted(*) {
78
+ color: var(--tds-inline-tabs-tab-color-disabled);
79
+ }
77
80
  :host .disabled ::slotted(*:hover) {
81
+ color: var(--tds-inline-tabs-tab-color-disabled);
78
82
  cursor: not-allowed;
79
83
  }
80
84
  :host .disabled ::slotted(*:focus-visible) {
81
85
  outline: none;
86
+ box-shadow: none;
82
87
  }
83
88
 
84
89
  :host(.last) {