tyrell-components 1.0.0-TC52 → 1.0.0-TC53

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 (105) hide show
  1. package/css/tyrell-theme.css +25 -2
  2. package/css/tyrell.css +4 -0
  3. package/dist/tyrell-colors-static.css +1 -316
  4. package/dist/tyrell-theme.css +1 -1443
  5. package/dist/tyrell.css +1 -1390
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.js +196 -196
  8. package/lib/components/button.d.ts +1 -1
  9. package/lib/components/button.js +260 -259
  10. package/lib/components/calendar-month.d.ts +2 -2
  11. package/lib/components/calendar-month.js +426 -416
  12. package/lib/components/calendar-navigation.js +238 -238
  13. package/lib/components/calendar.js +605 -602
  14. package/lib/components/checkbox.d.ts +1 -1
  15. package/lib/components/checkbox.js +273 -272
  16. package/lib/components/copy.d.ts +1 -1
  17. package/lib/components/copy.js +279 -278
  18. package/lib/components/date-picker.d.ts +1 -1
  19. package/lib/components/date-picker.js +1103 -1108
  20. package/lib/components/file-upload.js +404 -404
  21. package/lib/components/icon.js +141 -141
  22. package/lib/components/input.d.ts +1 -1
  23. package/lib/components/input.js +593 -596
  24. package/lib/components/modal.js +319 -319
  25. package/lib/components/option.js +167 -167
  26. package/lib/components/popup.js +233 -233
  27. package/lib/components/radio.d.ts +2 -2
  28. package/lib/components/radio.js +407 -406
  29. package/lib/components/resize-observer.js +67 -67
  30. package/lib/components/scroll-container.js +294 -294
  31. package/lib/components/select.d.ts +1 -1
  32. package/lib/components/select.js +1524 -1532
  33. package/lib/components/selected-tags.js +184 -184
  34. package/lib/components/step.js +62 -62
  35. package/lib/components/switch.d.ts +1 -1
  36. package/lib/components/switch.js +214 -213
  37. package/lib/components/tab.js +62 -62
  38. package/lib/components/tabs.js +507 -507
  39. package/lib/components/tag.d.ts +1 -1
  40. package/lib/components/tag.js +236 -235
  41. package/lib/components/textarea.d.ts +1 -1
  42. package/lib/components/textarea.js +457 -456
  43. package/lib/components/tooltip.js +283 -283
  44. package/lib/components/wizard.js +384 -384
  45. package/lib/icons/heroicons/micro.js +392 -392
  46. package/lib/icons/heroicons/mini.js +382 -382
  47. package/lib/icons/heroicons/outline.js +337 -337
  48. package/lib/icons/heroicons/solid.js +407 -407
  49. package/lib/icons/lucide.js +22843 -22843
  50. package/lib/icons/material/filled.js +9653 -9653
  51. package/lib/icons/material/outlined.js +10271 -10271
  52. package/lib/icons/material/round.js +10495 -10495
  53. package/lib/icons/material/sharp.js +9905 -9905
  54. package/lib/icons/material/two-tone.js +12792 -12792
  55. package/lib/index.js +21 -21
  56. package/lib/styles/button.js +176 -288
  57. package/lib/styles/calendar-month.js +123 -183
  58. package/lib/styles/calendar-navigation.js +60 -79
  59. package/lib/styles/calendar.js +8 -9
  60. package/lib/styles/checkbox.js +45 -72
  61. package/lib/styles/copy.js +67 -91
  62. package/lib/styles/custom-scrollbar.js +80 -100
  63. package/lib/styles/date-picker.js +261 -331
  64. package/lib/styles/field-size.d.ts +6 -0
  65. package/lib/styles/field-size.js +91 -0
  66. package/lib/styles/file-upload.js +139 -169
  67. package/lib/styles/icon.js +92 -156
  68. package/lib/styles/input.js +125 -241
  69. package/lib/styles/modal.js +67 -102
  70. package/lib/styles/option.d.ts +1 -1
  71. package/lib/styles/option.js +47 -67
  72. package/lib/styles/popup.js +34 -65
  73. package/lib/styles/radio.js +69 -96
  74. package/lib/styles/resize-observer.js +2 -5
  75. package/lib/styles/scroll-container.js +100 -130
  76. package/lib/styles/select-base.js +525 -778
  77. package/lib/styles/select.js +140 -228
  78. package/lib/styles/step.js +22 -29
  79. package/lib/styles/switch.js +34 -55
  80. package/lib/styles/tab.js +22 -29
  81. package/lib/styles/tabs.js +171 -252
  82. package/lib/styles/tag.js +135 -188
  83. package/lib/styles/textarea.d.ts +1 -1
  84. package/lib/styles/textarea.js +205 -271
  85. package/lib/styles/tooltip.js +3 -3
  86. package/lib/styles/wizard.js +170 -226
  87. package/lib/types/common.d.ts +2 -0
  88. package/lib/types/common.js +6 -5
  89. package/lib/utils/calendar-utils.js +100 -100
  90. package/lib/utils/custom-scrollbar.js +272 -272
  91. package/lib/utils/flavor-sheet.js +14 -14
  92. package/lib/utils/icon-registry.js +127 -127
  93. package/lib/utils/loader-registry.js +3 -3
  94. package/lib/utils/locale.js +34 -34
  95. package/lib/utils/mobile.js +1 -1
  96. package/lib/utils/number-format.js +54 -54
  97. package/lib/utils/positioning.js +212 -212
  98. package/lib/utils/property-capture.js +36 -36
  99. package/lib/utils/property-manager.js +125 -125
  100. package/lib/utils/resize-observer.js +23 -23
  101. package/lib/utils/scroll-lock.js +57 -57
  102. package/lib/utils/styles.js +17 -17
  103. package/lib/version.d.ts +1 -1
  104. package/lib/version.js +1 -1
  105. package/package.json +4 -4
package/lib/styles/tab.js CHANGED
@@ -1,46 +1,39 @@
1
1
  import { customScrollbarStyles } from './custom-scrollbar.js';
2
2
  export const tabStyles = `
3
3
  :host {
4
- width: var(--tabs-width, 100%);
5
- height: calc(var(--tabs-height, 400px) - var(--buttons-height, 48px));
6
- display: block;
7
- box-sizing: border-box;
8
- flex-shrink: 0;
9
- transition: opacity var(--ty-tabs-transition-duration, 400ms) var(--ty-tabs-transition-easing, ease-in-out);
10
- }
11
-
4
+ width: var(--tabs-width, 100%);
5
+ height: calc(var(--tabs-height, 400px) - var(--buttons-height, 48px));
6
+ display: block;
7
+ box-sizing: border-box;
8
+ flex-shrink: 0;
9
+ transition: opacity var(--ty-tabs-transition-duration, 400ms) var(--ty-tabs-transition-easing, ease-in-out);
10
+ }
12
11
  @media (prefers-reduced-motion: reduce) {
13
- :host {
14
- transition-duration: 0ms !important;
15
- }
12
+ :host {
13
+ transition-duration: 0ms !important;
14
+ }
16
15
  }
17
-
18
16
  .tab-wrapper {
19
- width: 100%;
20
- height: 100%;
21
- position: relative;
22
- overflow: hidden;
17
+ width: 100%;
18
+ height: 100%;
19
+ position: relative;
20
+ overflow: hidden;
23
21
  }
24
-
25
22
  .tab-panel {
26
- width: 100%;
27
- height: 100%;
28
- overflow: auto;
29
- box-sizing: border-box;
23
+ width: 100%;
24
+ height: 100%;
25
+ overflow: auto;
26
+ box-sizing: border-box;
30
27
  }
31
-
32
28
  .tab-panel.ty-custom-scroll {
33
- scrollbar-width: none;
34
- -ms-overflow-style: none;
29
+ scrollbar-width: none;
30
+ -ms-overflow-style: none;
35
31
  }
36
-
37
32
  .tab-panel.ty-custom-scroll::-webkit-scrollbar {
38
- display: none;
33
+ display: none;
39
34
  }
40
-
41
35
  .tab-wrapper:hover .ty-scrollbar-track-y.has-overflow {
42
- opacity: 1;
36
+ opacity: 1;
43
37
  }
44
-
45
38
  ${customScrollbarStyles}
46
39
  `;
@@ -1,303 +1,222 @@
1
1
  export const tabsStyles = `
2
2
  :host {
3
- display: block;
4
- width: var(--tabs-width, 100%);
5
- height: var(--tabs-height, 400px);
6
- box-sizing: border-box;
3
+ display: block;
4
+ width: var(--tabs-width, 100%);
5
+ height: var(--tabs-height, 400px);
6
+ box-sizing: border-box;
7
7
  }
8
-
9
8
  .tabs-container {
10
- width: 100%;
11
- height: 100%;
12
- display: flex;
13
- flex-direction: column;
14
- position: relative;
15
- box-sizing: border-box;
16
- }
17
-
9
+ width: 100%;
10
+ height: 100%;
11
+ display: flex;
12
+ flex-direction: column;
13
+ position: relative;
14
+ box-sizing: border-box;
15
+ }
18
16
  .tabs-container[data-placement="bottom"] {
19
- flex-direction: column-reverse;
17
+ flex-direction: column-reverse;
20
18
  }
21
-
22
- /* Tab buttons container — exposed as a CSS Part for full styling control */
23
19
  .tab-buttons {
24
- display: flex;
25
- gap: 0;
26
- flex-shrink: 0;
27
- position: relative;
28
-
29
- /* Default minimal styling - customize via ::part(buttons-container) */
30
- background: transparent;
31
- }
32
-
33
- /* Separator drawn as a pseudo-element, not a border: a border sits OUTSIDE the
34
- strip's box, so the marker (absolutely positioned inside the strip) could only
35
- ever stop just above it, reading as two stacked lines. As an overlaid line it
36
- lands inside the marker's range, and .tab-strip's z-index lets the marker
37
- cover it. */
20
+ display: flex;
21
+ gap: 0;
22
+ flex-shrink: 0;
23
+ position: relative;
24
+ background: transparent;
25
+ }
38
26
  .tab-buttons::after {
39
- content: "";
40
- position: absolute;
41
- left: 0;
42
- right: 0;
43
- bottom: 0;
44
- height: 1px;
45
- /* --ty-tabs-separator: transparent removes the line (e.g. with a pill marker) */
46
- background: var(--ty-tabs-separator, var(--ty-border));
47
- pointer-events: none;
48
- }
49
-
27
+ content: "";
28
+ position: absolute;
29
+ left: 0;
30
+ right: 0;
31
+ bottom: 0;
32
+ height: 1px;
33
+ background: var(--ty-tabs-separator, var(--ty-border));
34
+ pointer-events: none;
35
+ }
50
36
  .tabs-container[data-placement="bottom"] .tab-buttons::after {
51
- bottom: auto;
52
- top: 0;
53
- }
54
-
55
- /* Scrollable strip holding the buttons + marker. Tabs never collapse — the
56
- strip scrolls (scrollbar hidden; touch/wheel still work) and activation
57
- glides the active tab into view. The "…" trigger sits OUTSIDE this strip,
58
- pinned at the edge. position:relative makes it the offsetParent for the
59
- marker, so the marker scrolls with the buttons and can't desync. */
37
+ bottom: auto;
38
+ top: 0;
39
+ }
60
40
  .tab-strip {
61
- display: flex;
62
- flex: 1 1 auto;
63
- min-width: 0;
64
- position: relative;
65
- /* Paints the marker + buttons over .tab-buttons::after (the separator line) */
66
- z-index: 1;
67
- overflow-x: auto;
68
- scrollbar-width: none;
69
- /* Edge fades — a mask, not overlays, so it works over any background.
70
- --fade-left/right are set from the scroll listener: 0px at a hard edge,
71
- 28px when more tabs continue past that side. */
72
- --fade-left: 0px;
73
- --fade-right: 0px;
74
- -webkit-mask-image: linear-gradient(to right,
75
- transparent, black var(--fade-left),
76
- black calc(100% - var(--fade-right)), transparent);
77
- mask-image: linear-gradient(to right,
78
- transparent, black var(--fade-left),
79
- black calc(100% - var(--fade-right)), transparent);
80
- }
81
-
41
+ display: flex;
42
+ flex: 1 1 auto;
43
+ min-width: 0;
44
+ position: relative;
45
+ z-index: 1;
46
+ overflow-x: auto;
47
+ scrollbar-width: none;
48
+ --fade-left: 0px;
49
+ --fade-right: 0px;
50
+ -webkit-mask-image: linear-gradient(to right,
51
+ transparent, black var(--fade-left),
52
+ black calc(100% - var(--fade-right)), transparent);
53
+ mask-image: linear-gradient(to right,
54
+ transparent, black var(--fade-left),
55
+ black calc(100% - var(--fade-right)), transparent);
56
+ }
82
57
  .tab-strip::-webkit-scrollbar {
83
- display: none;
58
+ display: none;
84
59
  }
85
-
86
- /* When every tab fits there is nothing to scroll, so drop the clipping —
87
- both overflow and the mask cut a custom marker's box-shadow off at the
88
- strip edge. Set by updateOverflow(); clipping stays the pre-measurement
89
- default so overflowing tabs can't spill for a frame on first render. */
90
60
  .tab-strip.unclipped {
91
- overflow: visible;
92
- -webkit-mask-image: none;
93
- mask-image: none;
61
+ overflow: visible;
62
+ -webkit-mask-image: none;
63
+ mask-image: none;
94
64
  }
95
-
96
- /* Marker wrapper — exposed as a CSS Part for custom marker styling */
97
65
  .marker-wrapper {
98
- position: absolute;
99
- z-index: 0;
100
- /* Behind buttons */
101
- pointer-events: none;
102
- /* Don't block clicks */
103
- transition: left var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
104
- width var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
105
- height var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
106
- top var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out);
107
- }
108
-
66
+ position: absolute;
67
+ z-index: 0;
68
+ pointer-events: none;
69
+ transition: left var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
70
+ width var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
71
+ height var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out),
72
+ top var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out);
73
+ }
109
74
  .default-marker {
110
- position: absolute;
111
- bottom: 0;
112
- left: 0;
113
- height: 3px;
114
- width: 100%;
115
- background: var(--ty-color-primary);
116
- pointer-events: none;
117
- }
118
-
119
- /* Bottom placement: marker rides the top edge, next to the content it marks */
75
+ position: absolute;
76
+ bottom: 0;
77
+ left: 0;
78
+ height: 3px;
79
+ width: 100%;
80
+ background: var(--ty-color-primary);
81
+ pointer-events: none;
82
+ }
120
83
  .tabs-container[data-placement="bottom"] .default-marker {
121
- bottom: auto;
122
- top: 0;
84
+ bottom: auto;
85
+ top: 0;
123
86
  }
124
-
125
87
  ::slotted([slot="marker"]) {
126
- display: block;
127
- width: 100%;
128
- height: 100%;
129
- box-sizing: border-box;
88
+ display: block;
89
+ width: 100%;
90
+ height: 100%;
91
+ box-sizing: border-box;
130
92
  }
131
-
132
93
  .tab-button {
133
- /* Material's floor for SCROLLABLE tabs. 120px is the fixed-tab number and it
134
- manufactured overflow: five short labels claimed 600px whether they needed
135
- it or not. Equal-width rhythm is what the "fixed" attribute is for. */
136
- min-width: var(--ty-tab-min-width, 72px);
137
- /* Scrollable tabs keep their natural width and let the strip scroll — that is
138
- the whole contract. Without this they are flex items with the default
139
- shrink of 1, so they squeeze toward the floor and their labels ellipsize
140
- before the strip ever overflows. Squeezing is what "fixed" is for. */
141
- flex-shrink: 0;
142
- padding: 6px 12px;
143
- border: none;
144
- background: transparent;
145
- cursor: pointer;
146
- font: inherit;
147
- color: var(--ty-text-soft);
148
- transition: var(--ty-local-transition, color 200ms, background-color 200ms);
149
- white-space: nowrap;
150
- display: inline-flex;
151
- align-items: center;
152
- justify-content: center;
153
- gap: 8px;
154
- font-weight: var(--ty-font-bold);
155
- font-size: var(--ty-font-sm);
156
- position: relative;
157
- /* Establish stacking context */
158
- z-index: 10;
159
- /* Above marker */
160
- }
161
-
162
- /* Fixed tabs: the bar is divided between them instead of scrolling. Material
163
- calls this "fixed tabs" — for a small, known set of short labels. No
164
- min-width floor, no overflow, no "…". */
94
+ min-width: var(--ty-tab-min-width, 72px);
95
+ flex-shrink: 0;
96
+ padding: 6px 12px;
97
+ border: none;
98
+ background: transparent;
99
+ cursor: pointer;
100
+ font: inherit;
101
+ color: var(--ty-text-soft);
102
+ transition: var(--ty-local-transition, color 200ms, background-color 200ms);
103
+ white-space: nowrap;
104
+ display: inline-flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ gap: 8px;
108
+ font-weight: var(--ty-font-bold);
109
+ font-size: var(--ty-font-sm);
110
+ position: relative;
111
+ z-index: 10;
112
+ }
165
113
  .tabs-container[data-fixed] .tab-button {
166
- flex: 1 1 0;
167
- min-width: 0;
114
+ flex: 1 1 0;
115
+ min-width: 0;
168
116
  }
169
-
170
- /* Fixed tabs only. A scrollable tab is never narrower than its label, so
171
- ellipsizing there would hide text the user could simply scroll to. */
172
117
  .tabs-container[data-fixed] .tab-label {
173
- overflow: hidden;
174
- text-overflow: ellipsis;
175
- white-space: nowrap;
118
+ overflow: hidden;
119
+ text-overflow: ellipsis;
120
+ white-space: nowrap;
176
121
  }
177
-
178
122
  .tab-button[aria-selected=true] {
179
- color: var(--ty-text-strong);
123
+ color: var(--ty-text-strong);
180
124
  }
181
-
182
125
  .tab-button[disabled] {
183
- opacity: 0.5;
184
- cursor: not-allowed;
185
- pointer-events: none;
126
+ opacity: 0.5;
127
+ cursor: not-allowed;
128
+ pointer-events: none;
186
129
  }
187
-
188
130
  .tab-button:focus-visible {
189
- outline: 2px solid var(--ty-color-primary);
190
- outline-offset: -2px;
131
+ outline: 2px solid var(--ty-color-primary);
132
+ outline-offset: -2px;
191
133
  }
192
-
193
- /* Overflow "more" trigger (pill) + menu */
194
134
  .tab-overflow-trigger {
195
- flex-shrink: 0;
196
- align-self: center;
197
- min-width: 36px;
198
- height: 24px;
199
- margin: 0 8px;
200
- padding: 0 10px;
201
- border: 1px solid var(--ty-border);
202
- border-radius: 9999px;
203
- background: transparent;
204
- cursor: pointer;
205
- color: var(--ty-text-soft);
206
- font-size: 16px;
207
- line-height: 1;
208
- display: inline-flex;
209
- align-items: center;
210
- justify-content: center;
211
- position: relative;
212
- z-index: 10;
213
- transition: color 200ms, border-color 200ms;
214
- }
215
-
135
+ flex-shrink: 0;
136
+ align-self: center;
137
+ min-width: 36px;
138
+ height: 24px;
139
+ margin: 0 8px;
140
+ padding: 0 10px;
141
+ border: 1px solid var(--ty-border);
142
+ border-radius: 9999px;
143
+ background: transparent;
144
+ cursor: pointer;
145
+ color: var(--ty-text-soft);
146
+ font-size: 16px;
147
+ line-height: 1;
148
+ display: inline-flex;
149
+ align-items: center;
150
+ justify-content: center;
151
+ position: relative;
152
+ z-index: 10;
153
+ transition: color 200ms, border-color 200ms;
154
+ }
216
155
  .tab-overflow-trigger:hover {
217
- color: var(--ty-text-strong);
218
- border-color: var(--ty-text-soft);
156
+ color: var(--ty-text-strong);
157
+ border-color: var(--ty-text-soft);
219
158
  }
220
-
221
159
  .tab-overflow-trigger:focus-visible {
222
- outline: 2px solid var(--ty-color-primary);
223
- outline-offset: -2px;
160
+ outline: 2px solid var(--ty-color-primary);
161
+ outline-offset: -2px;
224
162
  }
225
-
226
163
  .tab-overflow-menu {
227
- display: flex;
228
- flex-direction: column;
229
- min-width: 160px;
230
- max-height: 300px;
231
- overflow-y: auto;
232
- padding: var(--ty-spacing-2, 4px);
233
- background: var(--ty-surface-floating);
234
- border-radius: var(--ty-radius-md);
235
- box-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
236
- }
237
-
164
+ display: flex;
165
+ flex-direction: column;
166
+ min-width: 160px;
167
+ max-height: 300px;
168
+ overflow-y: auto;
169
+ padding: var(--ty-spacing-2, 4px);
170
+ background: var(--ty-surface-floating);
171
+ border-radius: var(--ty-radius-md);
172
+ box-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
173
+ }
238
174
  .tab-overflow-item {
239
- padding: var(--ty-spacing-2, 6px) var(--ty-spacing-3, 12px);
240
- border: none;
241
- background: transparent;
242
- text-align: left;
243
- cursor: pointer;
244
- border-radius: var(--ty-radius-md);
245
- color: var(--ty-text);
246
- font: inherit;
247
- font-size: var(--ty-font-sm);
248
- white-space: nowrap;
249
- }
250
-
175
+ padding: var(--ty-spacing-2, 6px) var(--ty-spacing-3, 12px);
176
+ border: none;
177
+ background: transparent;
178
+ text-align: left;
179
+ cursor: pointer;
180
+ border-radius: var(--ty-radius-md);
181
+ color: var(--ty-text);
182
+ font: inherit;
183
+ font-size: var(--ty-font-sm);
184
+ white-space: nowrap;
185
+ }
251
186
  .tab-overflow-item:hover {
252
- background: var(--ty-bg-neutral-soft);
253
- color: var(--ty-text-strong);
187
+ background: var(--ty-bg-neutral-soft);
188
+ color: var(--ty-text-strong);
254
189
  }
255
-
256
190
  .tab-overflow-item[data-active="true"] {
257
- color: var(--ty-color-primary);
258
- font-weight: var(--ty-font-bold);
191
+ color: var(--ty-color-primary);
192
+ font-weight: var(--ty-font-bold);
259
193
  }
260
-
261
194
  .tab-overflow-item[disabled] {
262
- opacity: 0.5;
263
- cursor: not-allowed;
195
+ opacity: 0.5;
196
+ cursor: not-allowed;
264
197
  }
265
-
266
- /* Panels viewport — exposed as a CSS Part */
267
198
  .panels-viewport {
268
- position: relative;
269
- flex: 1;
270
- overflow: hidden;
271
- /* Critical: hides off-screen panels */
272
- min-height: 0;
273
- /* Allows flex child to shrink */
274
- }
275
-
276
- /* Panels wrapper slides horizontally */
199
+ position: relative;
200
+ flex: 1;
201
+ overflow: hidden;
202
+ min-height: 0;
203
+ }
277
204
  .panels-wrapper {
278
- display: flex;
279
- height: 100%;
280
- transition: transform var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out);
205
+ display: flex;
206
+ height: 100%;
207
+ transition: transform var(--ty-tabs-transition-duration, 300ms) var(--ty-tabs-transition-easing, ease-in-out);
281
208
  }
282
-
283
209
  @media (prefers-reduced-motion: reduce) {
284
- .panels-wrapper {
285
- transition-duration: 0ms !important;
286
- }
287
-
288
- .marker-wrapper {
289
- transition-duration: 0ms !important;
290
- }
291
- }
292
-
210
+ .panels-wrapper {
211
+ transition-duration: 0ms !important;
212
+ }
213
+ .marker-wrapper {
214
+ transition-duration: 0ms !important;
215
+ }
216
+ }
293
217
  ::slotted(ty-tab) {
294
- /* Carousel page width. --tabs-page-width is the measured pixel width, set by
295
- the ResizeObserver for percentage-width tabs so every panel is exactly one
296
- page wide. It is deliberately NOT --tabs-width: that one sizes :host, and
297
- feeding a measured pixel value back into the host's own width is a
298
- self-referential loop (see setupResizeObserver). */
299
- width: var(--tabs-page-width, var(--tabs-width, 100%));
300
- height: 100%;
301
- flex-shrink: 0;
218
+ width: var(--tabs-page-width, var(--tabs-width, 100%));
219
+ height: 100%;
220
+ flex-shrink: 0;
302
221
  }
303
222
  `;