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
@@ -1,341 +1,275 @@
1
+ import { fieldSizeVars } from './field-size.js';
1
2
  export const textareaStyles = `
3
+ ${fieldSizeVars}
2
4
  :host {
3
- display: block;
4
- font-family: inherit;
5
- width: 100%;
5
+ display: block;
6
+ font-family: inherit;
7
+ width: 100%;
6
8
  }
7
-
8
9
  .textarea-container {
9
- display: flex;
10
- flex-direction: column;
11
- width: 100%;
12
- box-sizing: border-box;
13
- position: relative;
14
- /* For absolute positioned dummy element */
15
- }
16
-
17
- /* Bordered container — owns the border + active state (composer layout):
18
- header (top slot) · textarea (borderless) · footer (bottom slot). */
10
+ display: flex;
11
+ flex-direction: column;
12
+ width: 100%;
13
+ box-sizing: border-box;
14
+ position: relative;
15
+ }
19
16
  .textarea-wrapper {
20
- position: relative;
21
- width: 100%;
22
- display: flex;
23
- flex-direction: column;
24
- box-sizing: border-box;
25
- border: 1px solid var(--input-border, var(--ty-input-border));
26
- border-radius: var(--ty-radius-base);
27
- background: var(--input-bg, var(--ty-input-bg));
28
- transition: var(--ty-local-transition, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out);
29
- }
30
-
31
- /* Active ring tied to the TEXTAREA specifically (not :focus-within) so tabbing
32
- to a footer button doesn't make the whole field look focused. */
17
+ position: relative;
18
+ width: 100%;
19
+ display: flex;
20
+ flex-direction: column;
21
+ box-sizing: border-box;
22
+ border: 1px solid var(--input-border, var(--ty-input-border));
23
+ border-radius: var(--ty-radius-base);
24
+ background: var(--input-bg, var(--ty-input-bg));
25
+ transition: var(--ty-local-transition, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out);
26
+ }
33
27
  .textarea-wrapper:has(textarea:focus) {
34
- border-color: var(--input-border-focus, var(--ty-input-border-focus));
35
- box-shadow: 0 0 0 3px var(--input-shadow-focus, var(--ty-input-shadow-focus));
28
+ border-color: var(--input-border-focus, var(--ty-input-border-focus));
29
+ box-shadow: 0 0 0 3px var(--input-shadow-focus, var(--ty-input-shadow-focus));
36
30
  }
37
-
38
- /* Error + disabled reflected from the inner textarea (both in shadow DOM, so
39
- :has is reliable here — unlike slotted content). */
40
31
  .textarea-wrapper:has(textarea.error) {
41
- border-color: var(--ty-color-danger);
42
- background: var(--ty-bg-danger-soft);
32
+ border-color: var(--ty-color-danger);
33
+ background: var(--ty-bg-danger-soft);
43
34
  }
44
35
  .textarea-wrapper:has(textarea.error):has(textarea:focus) {
45
- border-color: var(--ty-color-danger-bold);
36
+ border-color: var(--ty-color-danger-bold);
46
37
  }
47
38
  .textarea-wrapper:has(textarea:disabled) {
48
- opacity: 0.5;
49
- background: var(--input-disabled-bg, var(--ty-input-disabled-bg));
50
- border-color: var(--input-disabled-border, var(--ty-input-disabled-border));
39
+ opacity: 0.5;
40
+ background: var(--input-disabled-bg, var(--ty-input-disabled-bg));
41
+ border-color: var(--input-disabled-border, var(--ty-input-disabled-border));
51
42
  }
52
-
53
- /* Scroll region wraps just the textarea so the custom scrollbar never overlaps
54
- the header/footer. */
55
43
  .textarea-scroll {
56
- position: relative;
57
- flex: 1 1 auto;
58
- min-height: 0;
59
- display: flex;
44
+ position: relative;
45
+ flex: 1 1 auto;
46
+ min-height: 0;
47
+ display: flex;
60
48
  }
61
-
62
- /* Custom scrollbar track positioned to the scroll region (textarea edges) */
63
49
  .textarea-scroll .ty-scrollbar-track-y {
64
- top: 2px;
65
- right: 2px;
66
- bottom: 2px;
67
- border-radius: 0 4px 4px 0;
68
- }
69
-
70
- /* Header / footer slot regions — zero footprint until they have content
71
- (the component toggles .has-content via slotchange). footer defaults to
72
- space-between so "tools … submit" works; a single wide button fills it. */
50
+ top: 2px;
51
+ right: 2px;
52
+ bottom: 2px;
53
+ border-radius: 0 4px 4px 0;
54
+ }
73
55
  .textarea-header,
74
56
  .textarea-footer {
75
- display: flex;
76
- align-items: center;
77
- gap: 0.5rem;
57
+ display: flex;
58
+ align-items: center;
59
+ gap: 0.5rem;
78
60
  }
79
61
  .textarea-footer { justify-content: space-between; }
80
62
  .textarea-header.has-content {
81
- padding: 6px 10px;
82
- border-bottom: 1px solid var(--ty-textarea-divider, var(--input-border, var(--ty-input-border)));
63
+ padding: 6px 10px;
64
+ border-bottom: 1px solid var(--ty-textarea-divider, var(--input-border, var(--ty-input-border)));
83
65
  }
84
66
  .textarea-footer.has-content {
85
- padding: 6px 10px;
86
- border-top: 1px solid var(--ty-textarea-divider, var(--input-border, var(--ty-input-border)));
67
+ padding: 6px 10px;
68
+ border-top: 1px solid var(--ty-textarea-divider, var(--input-border, var(--ty-input-border)));
87
69
  }
88
-
89
70
  .ty-field-label {
90
- font-size: var(--ty-font-sm);
91
- line-height: var(--ty-leading-sm);
92
- letter-spacing: var(--ty-tracking-sm);
93
- font-weight: var(--ty-font-medium);
94
- color: var(--ty-label-color);
95
- margin-bottom: 6px;
96
- padding-left: 12px;
97
- }
98
-
71
+ font-size: var(--ty-field-label-font);
72
+ line-height: var(--ty-field-label-leading);
73
+ letter-spacing: var(--ty-tracking-sm);
74
+ font-weight: var(--ty-font-medium);
75
+ color: var(--ty-label-color);
76
+ margin-bottom: var(--ty-field-label-gap);
77
+ padding-left: var(--ty-field-outer-pad-x);
78
+ }
99
79
  .required-icon {
100
- display: inline-flex;
101
- align-items: center;
102
- color: var(--ty-color-danger);
103
- width: 12px;
104
- height: 12px;
105
- vertical-align: middle;
106
- }
107
-
80
+ display: inline-flex;
81
+ align-items: center;
82
+ color: var(--ty-color-danger);
83
+ width: 12px;
84
+ height: 12px;
85
+ vertical-align: middle;
86
+ }
108
87
  .error-message {
109
- font-size: var(--ty-font-xs);
110
- line-height: var(--ty-leading-xs);
111
- letter-spacing: var(--ty-tracking-xs);
112
- color: var(--ty-color-danger);
113
- margin-top: 4px;
114
- padding-left: 12px;
115
- }
116
-
117
- /* Error state is reflected on .textarea-wrapper (see above). */
118
-
88
+ font-size: var(--ty-font-xs);
89
+ line-height: var(--ty-leading-xs);
90
+ letter-spacing: var(--ty-tracking-xs);
91
+ color: var(--ty-color-danger);
92
+ margin-top: 4px;
93
+ padding-left: var(--ty-field-outer-pad-x);
94
+ }
119
95
  textarea {
120
- font-family: inherit;
121
- /* Borderless — the .textarea-wrapper owns the border/background now. */
122
- box-sizing: border-box;
123
- width: 100%;
124
- flex: 1 1 auto;
125
- border: none;
126
- background: transparent;
127
- color: var(--input-color, var(--ty-input-color));
128
- font-family: inherit;
129
- /* Linear-paired typography */
130
- font-size: var(--ty-font-sm);
131
- line-height: var(--ty-leading-sm);
132
- letter-spacing: var(--ty-tracking-sm);
133
- font-weight: var(--ty-font-normal);
134
- outline: none;
135
-
136
- min-height: 80px;
137
- padding: 12px 12px;
138
-
139
- overflow: hidden;
140
- /* Hide scrollbars since we're auto-resizing */
141
- resize: none;
142
-
143
- white-space: pre-wrap;
144
- word-wrap: break-word;
145
- }
146
-
147
- /* Hide native scrollbar for webkit when custom scrollbar is active
148
- (scrollbar-width: none handles Firefox; this handles Chrome/Safari) */
96
+ font-family: inherit;
97
+ box-sizing: border-box;
98
+ width: 100%;
99
+ flex: 1 1 auto;
100
+ border: none;
101
+ background: transparent;
102
+ color: var(--input-color, var(--ty-input-color));
103
+ font-family: inherit;
104
+ font-size: var(--ty-font-sm);
105
+ line-height: var(--ty-leading-sm);
106
+ letter-spacing: var(--ty-tracking-sm);
107
+ font-weight: var(--ty-font-normal);
108
+ outline: none;
109
+ min-height: 80px;
110
+ padding: 12px 12px;
111
+ overflow: hidden;
112
+ resize: none;
113
+ white-space: pre-wrap;
114
+ word-wrap: break-word;
115
+ }
149
116
  :host([data-custom-scroll]) textarea::-webkit-scrollbar {
150
- display: none;
117
+ display: none;
151
118
  }
152
-
153
- /* Disabled — visual state lives on the wrapper; just the cursor/text here. */
154
119
  textarea:disabled {
155
- cursor: not-allowed;
156
- color: var(--input-disabled-color, var(--ty-input-disabled-color));
120
+ cursor: not-allowed;
121
+ color: var(--input-disabled-color, var(--ty-input-disabled-color));
157
122
  }
158
-
159
123
  textarea::placeholder {
160
- color: var(--input-placeholder, var(--ty-input-placeholder));
161
- font-weight: 400;
124
+ color: var(--input-placeholder, var(--ty-input-placeholder));
125
+ font-weight: 400;
162
126
  }
163
-
164
127
  textarea.resize-both {
165
- resize: both;
128
+ resize: both;
166
129
  }
167
-
168
130
  textarea.resize-horizontal {
169
- resize: horizontal;
131
+ resize: horizontal;
170
132
  }
171
-
172
133
  textarea.resize-vertical {
173
- resize: vertical;
134
+ resize: vertical;
174
135
  }
175
-
176
136
  textarea.resize-none {
177
- resize: none;
137
+ resize: none;
178
138
  }
179
-
180
- /* Auto-resize mode (default) disables manual resize */
181
139
  textarea:not(.resize-both):not(.resize-horizontal):not(.resize-vertical) {
182
- resize: none;
140
+ resize: none;
183
141
  }
184
-
185
142
  .textarea-dummy {
186
- /* Hidden element that measures text height */
187
- position: absolute !important;
188
- top: 0 !important;
189
- left: 0 !important;
190
- visibility: hidden !important;
191
- white-space: pre-wrap !important;
192
- word-break: break-word !important;
193
- box-sizing: border-box !important;
194
- overflow: hidden !important;
195
- pointer-events: none !important;
196
- z-index: -1 !important;
197
-
198
- word-wrap: break-word !important;
199
- overflow-wrap: break-word !important;
200
- }
201
-
143
+ position: absolute !important;
144
+ top: 0 !important;
145
+ left: 0 !important;
146
+ visibility: hidden !important;
147
+ white-space: pre-wrap !important;
148
+ word-break: break-word !important;
149
+ box-sizing: border-box !important;
150
+ overflow: hidden !important;
151
+ pointer-events: none !important;
152
+ z-index: -1 !important;
153
+ word-wrap: break-word !important;
154
+ overflow-wrap: break-word !important;
155
+ }
202
156
  textarea.xs {
203
- min-height: 64px;
204
- padding: 8px 10px;
205
- font-size: var(--ty-font-xs);
206
- line-height: var(--ty-leading-xs);
207
- letter-spacing: var(--ty-tracking-xs);
157
+ min-height: 64px;
158
+ padding: 8px var(--ty-field-pad-x);
159
+ font-size: var(--ty-font-xs);
160
+ line-height: var(--ty-leading-xs);
161
+ letter-spacing: var(--ty-tracking-xs);
208
162
  }
209
-
210
163
  textarea.sm {
211
- min-height: 72px;
212
- padding: 10px 10px;
213
- font-size: var(--ty-font-sm);
214
- line-height: var(--ty-leading-sm);
215
- letter-spacing: var(--ty-tracking-sm);
164
+ min-height: 72px;
165
+ padding: 10px var(--ty-field-pad-x);
166
+ font-size: var(--ty-font-sm);
167
+ line-height: var(--ty-leading-sm);
168
+ letter-spacing: var(--ty-tracking-sm);
216
169
  }
217
-
218
170
  textarea.md {
219
- min-height: 80px;
220
- padding: 12px 12px;
221
- font-size: var(--ty-font-sm);
222
- line-height: var(--ty-leading-sm);
223
- letter-spacing: var(--ty-tracking-sm);
171
+ min-height: 80px;
172
+ padding: 12px var(--ty-field-pad-x);
173
+ font-size: var(--ty-font-sm);
174
+ line-height: var(--ty-leading-sm);
175
+ letter-spacing: var(--ty-tracking-sm);
224
176
  }
225
-
226
177
  textarea.lg {
227
- min-height: 96px;
228
- padding: 14px 14px;
229
- font-size: var(--ty-font-base);
230
- line-height: var(--ty-leading-base);
231
- letter-spacing: var(--ty-tracking-base);
178
+ min-height: 96px;
179
+ padding: 14px var(--ty-field-pad-x);
180
+ font-size: var(--ty-font-base);
181
+ line-height: var(--ty-leading-base);
182
+ letter-spacing: var(--ty-tracking-base);
232
183
  }
233
-
234
184
  textarea.xl {
235
- min-height: 112px;
236
- padding: 16px 16px;
237
- font-size: var(--ty-font-lg);
238
- line-height: var(--ty-leading-lg);
239
- letter-spacing: var(--ty-tracking-lg);
185
+ min-height: 112px;
186
+ padding: 16px var(--ty-field-pad-x);
187
+ font-size: var(--ty-font-lg);
188
+ line-height: var(--ty-leading-lg);
189
+ letter-spacing: var(--ty-tracking-lg);
240
190
  }
241
-
242
191
  textarea:focus-visible {
243
- outline: none;
244
- /* We use box-shadow instead */
192
+ outline: none;
245
193
  }
246
-
247
194
  @media (prefers-contrast: high) {
248
- textarea {
249
- border-width: 2px;
250
- }
195
+ textarea {
196
+ border-width: 2px;
197
+ }
251
198
  }
252
-
253
199
  @media (prefers-reduced-motion: reduce) {
254
- textarea {
255
- transition: none;
256
- }
257
-
258
- .textarea-dummy {
259
- transition: none;
260
- }
261
- }
262
-
200
+ textarea {
201
+ transition: none;
202
+ }
203
+ .textarea-dummy {
204
+ transition: none;
205
+ }
206
+ }
263
207
  @container (max-width: 480px) {
264
- textarea.lg {
265
- font-size: var(--ty-font-sm);
266
- line-height: var(--ty-leading-sm);
267
- letter-spacing: var(--ty-tracking-sm);
268
- padding: 12px 12px;
269
- min-height: 80px;
270
- }
271
-
272
- textarea.xl {
273
- font-size: var(--ty-font-base);
274
- line-height: var(--ty-leading-base);
275
- letter-spacing: var(--ty-tracking-base);
276
- padding: 14px 14px;
277
- min-height: 96px;
278
- }
279
- }
280
-
208
+ textarea.lg {
209
+ font-size: var(--ty-font-sm);
210
+ line-height: var(--ty-leading-sm);
211
+ letter-spacing: var(--ty-tracking-sm);
212
+ padding: 12px var(--ty-field-pad-x);
213
+ min-height: 80px;
214
+ }
215
+ textarea.xl {
216
+ font-size: var(--ty-font-base);
217
+ line-height: var(--ty-leading-base);
218
+ letter-spacing: var(--ty-tracking-base);
219
+ padding: 14px var(--ty-field-pad-x);
220
+ min-height: 96px;
221
+ }
222
+ }
281
223
  @container (max-width: 320px) {
282
- textarea.xl {
283
- font-size: var(--ty-font-sm);
284
- line-height: var(--ty-leading-sm);
285
- letter-spacing: var(--ty-tracking-sm);
286
- padding: 12px 12px;
287
- min-height: 80px;
288
- }
289
- }
290
-
291
- /* Fallback for browsers without container query support */
224
+ textarea.xl {
225
+ font-size: var(--ty-font-sm);
226
+ line-height: var(--ty-leading-sm);
227
+ letter-spacing: var(--ty-tracking-sm);
228
+ padding: 12px var(--ty-field-pad-x);
229
+ min-height: 80px;
230
+ }
231
+ }
292
232
  @media (max-width: 640px) {
293
- textarea.lg {
294
- font-size: var(--ty-font-sm);
295
- line-height: var(--ty-leading-sm);
296
- letter-spacing: var(--ty-tracking-sm);
297
- padding: 12px 12px;
298
- min-height: 80px;
299
- }
300
-
301
- textarea.xl {
302
- font-size: var(--ty-font-base);
303
- line-height: var(--ty-leading-base);
304
- letter-spacing: var(--ty-tracking-base);
305
- padding: 14px 14px;
306
- min-height: 96px;
307
- }
308
- }
309
-
233
+ textarea.lg {
234
+ font-size: var(--ty-font-sm);
235
+ line-height: var(--ty-leading-sm);
236
+ letter-spacing: var(--ty-tracking-sm);
237
+ padding: 12px var(--ty-field-pad-x);
238
+ min-height: 80px;
239
+ }
240
+ textarea.xl {
241
+ font-size: var(--ty-font-base);
242
+ line-height: var(--ty-leading-base);
243
+ letter-spacing: var(--ty-tracking-base);
244
+ padding: 14px var(--ty-field-pad-x);
245
+ min-height: 96px;
246
+ }
247
+ }
310
248
  @media (max-width: 480px) {
311
- textarea.xl {
312
- font-size: var(--ty-font-sm);
313
- line-height: var(--ty-leading-sm);
314
- letter-spacing: var(--ty-tracking-sm);
315
- padding: 12px 12px;
316
- min-height: 80px;
317
- }
318
- }
319
-
249
+ textarea.xl {
250
+ font-size: var(--ty-font-sm);
251
+ line-height: var(--ty-leading-sm);
252
+ letter-spacing: var(--ty-tracking-sm);
253
+ padding: 12px var(--ty-field-pad-x);
254
+ min-height: 80px;
255
+ }
256
+ }
320
257
  textarea {
321
- transition: var(--ty-local-transition,
322
- border-color 0.15s ease-in-out,
323
- box-shadow 0.15s ease-in-out,
324
- background-color 0.15s ease-in-out,
325
- height 0.1s ease-out);
326
- }
327
-
328
- /* Disable height transition on focus to avoid jarring effect */
258
+ transition: var(--ty-local-transition,
259
+ border-color 0.15s ease-in-out,
260
+ box-shadow 0.15s ease-in-out,
261
+ background-color 0.15s ease-in-out,
262
+ height 0.1s ease-out);
263
+ }
329
264
  textarea:focus {
330
- transition: var(--ty-local-transition,
331
- border-color 0.15s ease-in-out,
332
- box-shadow 0.15s ease-in-out,
333
- background-color 0.15s ease-in-out);
265
+ transition: var(--ty-local-transition,
266
+ border-color 0.15s ease-in-out,
267
+ box-shadow 0.15s ease-in-out,
268
+ background-color 0.15s ease-in-out);
334
269
  }
335
-
336
270
  @media (prefers-reduced-motion: reduce) {
337
- textarea {
338
- transition: none;
339
- }
271
+ textarea {
272
+ transition: none;
273
+ }
340
274
  }
341
275
  `;
@@ -1,8 +1,8 @@
1
1
  export const tooltipStyles = {
2
- id: 'ty-tooltip',
3
- css: `
2
+ id: 'ty-tooltip',
3
+ css: `
4
4
  :host {
5
- display: contents;
5
+ display: contents;
6
6
  }
7
7
  `,
8
8
  };