@juspay/svelte-ui-components 4.31.3 → 4.32.1
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.
- package/dist/Accordion/Accordion.svelte +6 -1
- package/dist/Animations/ModalAnimation.svelte +71 -8
- package/dist/Animations/OverlayAnimation.svelte +29 -4
- package/dist/Animations/tokenizedFly.d.ts +17 -0
- package/dist/Animations/tokenizedFly.js +153 -0
- package/dist/AreaChart/AreaChart.svelte +7 -5
- package/dist/BarChart/BarChart.svelte +2 -1
- package/dist/Book/Book.svelte +6 -3
- package/dist/ChatBubble/ChatBubble.svelte +18 -3
- package/dist/ChatComposer/ChatComposer.svelte +4 -0
- package/dist/Checkbox/Checkbox.svelte +15 -3
- package/dist/Choicebox/Choicebox.svelte +24 -2
- package/dist/Combobox/Combobox.svelte +15 -1
- package/dist/CommandMenu/CommandMenu.svelte +72 -2
- package/dist/ContextMenu/ContextMenu.svelte +41 -1
- package/dist/DualAxisBarChart/DualAxisBarChart.svelte +4 -3
- package/dist/FunnelChart/FunnelChart.svelte +5 -4
- package/dist/Gallery/Gallery.svelte +53 -1
- package/dist/Gallery/properties.d.ts +5 -3
- package/dist/Gauge/Gauge.svelte +2 -1
- package/dist/LineChart/LineChart.svelte +7 -5
- package/dist/MediaPlayer/MediaPlayer.svelte +9 -1
- package/dist/MediaPlayer/MediaPlayer.svelte.d.ts +1 -1
- package/dist/MediaUpload/MediaUpload.svelte +1 -1
- package/dist/Menu/Menu.svelte +38 -1
- package/dist/Modal/Modal.svelte +18 -4
- package/dist/Pagination/Pagination.svelte +9 -1
- package/dist/PieChart/PieChart.svelte +2 -2
- package/dist/Radio/Radio.svelte +14 -2
- package/dist/RatingGroup/RatingGroup.svelte +9 -0
- package/dist/SankeyChart/SankeyChart.svelte +6 -3
- package/dist/Select/Select.svelte +26 -4
- package/dist/Sheet/Sheet.svelte +34 -2
- package/dist/Slider/Slider.svelte +26 -5
- package/dist/Snippet/Snippet.svelte +7 -1
- package/dist/Table/Table.svelte +10 -2
- package/dist/Tabs/Tabs.svelte +27 -4
- package/dist/TaskList/TaskList.svelte +10 -2
- package/dist/ThemeSwitcher/ThemeSwitcher.svelte +13 -6
- package/dist/ThinkingIndicator/ThinkingIndicator.svelte +5 -3
- package/dist/Toast/Toast.svelte +216 -116
- package/dist/Toggle/Toggle.svelte +8 -4
- package/dist/ToolCallLog/ToolCallLog.svelte +10 -2
- package/dist/Tooltip/Tooltip.svelte +4 -2
- package/dist-wc/index.js +608 -413
- package/package.json +1 -1
|
@@ -806,7 +806,8 @@
|
|
|
806
806
|
pointer-events: none;
|
|
807
807
|
}
|
|
808
808
|
.sankey-link {
|
|
809
|
-
transition: stroke-opacity
|
|
809
|
+
transition: stroke-opacity
|
|
810
|
+
var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
810
811
|
var(--chart-transition-easing, var(--motion-easing, ease));
|
|
811
812
|
cursor: pointer;
|
|
812
813
|
}
|
|
@@ -815,7 +816,8 @@
|
|
|
815
816
|
outline-offset: var(--sankey-focus-outline-offset, 2px);
|
|
816
817
|
}
|
|
817
818
|
.sankey-node {
|
|
818
|
-
transition: opacity
|
|
819
|
+
transition: opacity
|
|
820
|
+
var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
819
821
|
var(--chart-transition-easing, var(--motion-easing, ease));
|
|
820
822
|
cursor: pointer;
|
|
821
823
|
}
|
|
@@ -839,7 +841,8 @@
|
|
|
839
841
|
stroke-width: var(--sankey-label-halo-width, 0);
|
|
840
842
|
stroke-linejoin: round;
|
|
841
843
|
pointer-events: none;
|
|
842
|
-
transition: opacity
|
|
844
|
+
transition: opacity
|
|
845
|
+
var(--chart-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
843
846
|
var(--chart-transition-easing, var(--motion-easing, ease));
|
|
844
847
|
}
|
|
845
848
|
.sankey-col-label {
|
|
@@ -1122,7 +1122,21 @@
|
|
|
1122
1122
|
cursor: pointer;
|
|
1123
1123
|
outline: none;
|
|
1124
1124
|
-webkit-tap-highlight-color: transparent;
|
|
1125
|
-
transition: var(
|
|
1125
|
+
transition: var(
|
|
1126
|
+
--select-trigger-transition,
|
|
1127
|
+
border-color
|
|
1128
|
+
var(
|
|
1129
|
+
--select-trigger-transition-duration,
|
|
1130
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
1131
|
+
)
|
|
1132
|
+
var(--select-trigger-transition-easing, var(--motion-easing, ease)),
|
|
1133
|
+
box-shadow
|
|
1134
|
+
var(
|
|
1135
|
+
--select-trigger-transition-duration,
|
|
1136
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
1137
|
+
)
|
|
1138
|
+
var(--select-trigger-transition-easing, var(--motion-easing, ease))
|
|
1139
|
+
);
|
|
1126
1140
|
}
|
|
1127
1141
|
|
|
1128
1142
|
.select-trigger :global(.select-left-icon) {
|
|
@@ -1269,7 +1283,8 @@
|
|
|
1269
1283
|
height: var(--select-arrow-size, 16px);
|
|
1270
1284
|
color: var(--select-arrow-color, #666666);
|
|
1271
1285
|
flex-shrink: 0;
|
|
1272
|
-
transition: transform
|
|
1286
|
+
transition: transform
|
|
1287
|
+
var(--select-arrow-transition-duration, var(--duration-quick, var(--motion-duration, 0.15s)))
|
|
1273
1288
|
var(--select-arrow-transition-easing, var(--motion-easing, ease));
|
|
1274
1289
|
}
|
|
1275
1290
|
|
|
@@ -1450,9 +1465,16 @@
|
|
|
1450
1465
|
color: var(--select-option-indicator-color, currentColor);
|
|
1451
1466
|
transition:
|
|
1452
1467
|
background-color
|
|
1453
|
-
var(
|
|
1468
|
+
var(
|
|
1469
|
+
--select-option-indicator-transition-duration,
|
|
1470
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
1471
|
+
)
|
|
1454
1472
|
var(--select-option-indicator-transition-easing, var(--motion-easing, ease)),
|
|
1455
|
-
border-color
|
|
1473
|
+
border-color
|
|
1474
|
+
var(
|
|
1475
|
+
--select-option-indicator-transition-duration,
|
|
1476
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
1477
|
+
)
|
|
1456
1478
|
var(--select-option-indicator-transition-easing, var(--motion-easing, ease));
|
|
1457
1479
|
}
|
|
1458
1480
|
|
package/dist/Sheet/Sheet.svelte
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { reducedMotion } from '../reduced-motion.svelte';
|
|
3
3
|
import type { SheetProperties } from './properties';
|
|
4
|
-
import {
|
|
4
|
+
import { fade } from 'svelte/transition';
|
|
5
|
+
import { tokenizedFly } from '../Animations/tokenizedFly';
|
|
5
6
|
import { lockBodyScroll, unlockBodyScroll } from '../utils';
|
|
6
7
|
import { tick } from 'svelte';
|
|
7
8
|
import Button from '../Button/Button.svelte';
|
|
@@ -66,7 +67,38 @@
|
|
|
66
67
|
}
|
|
67
68
|
});
|
|
68
69
|
|
|
70
|
+
// Feeds flyParams' own x/y/duration (reduced-motion already folded in above)
|
|
71
|
+
// into tokenizedFly, which only resizes the distance magnitude -- fallback
|
|
72
|
+
// 60px, down from the 400px literal above -- and reads a duration token.
|
|
73
|
+
// Token name is `sheet-panel`, not `sheet-content`: the element carrying this
|
|
74
|
+
// transition is `.sheet-panel` below; `--sheet-content-*` already names the
|
|
75
|
+
// nested scrollable body (`--sheet-content-overflow-y`/-padding), a different
|
|
76
|
+
// element, so reusing that prefix here would point a consumer at the wrong
|
|
77
|
+
// node. Single duration token/literal, no open/close split: unlike Modal,
|
|
78
|
+
// nothing here already has an in/out asymmetry to preserve. Each array falls
|
|
79
|
+
// back from the element token through the shared --distance-overlay tier (the
|
|
80
|
+
// same 60px this batch settled on for Modal) to the --motion-duration/-easing
|
|
81
|
+
// roots; 300ms doesn't match any named duration tier so it skips straight to
|
|
82
|
+
// the root, same reasoning as Modal's own duration chain.
|
|
83
|
+
let sheetFlyParams = $derived({
|
|
84
|
+
x: flyParams.x,
|
|
85
|
+
y: flyParams.y,
|
|
86
|
+
durationTokens: ['--sheet-panel-transition-duration', '--motion-duration'],
|
|
87
|
+
fallbackDuration: flyParams.duration,
|
|
88
|
+
distanceTokens: ['--sheet-panel-transition-distance', '--distance-overlay'],
|
|
89
|
+
fallbackDistance: 60,
|
|
90
|
+
easingTokens: ['--sheet-panel-transition-easing', '--ease-smooth-out', '--motion-easing']
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Guarded rather than assumed single-fire: the panel's transition:tokenizedFly
|
|
94
|
+
// outro (and the overlay's own transition:fade) keep this mounted -- and every
|
|
95
|
+
// dismiss path (overlay click, Enter/Space, Escape, the close button) live --
|
|
96
|
+
// for the outro's duration after open first flips false. A second dismissal
|
|
97
|
+
// landing in that window would otherwise fire onclose a second time.
|
|
69
98
|
function close() {
|
|
99
|
+
if (!open) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
70
102
|
open = false;
|
|
71
103
|
onclose?.();
|
|
72
104
|
}
|
|
@@ -229,7 +261,7 @@
|
|
|
229
261
|
tabindex="-1"
|
|
230
262
|
data-pw={typeof testId === 'string' ? `${testId}-panel` : null}
|
|
231
263
|
testID={typeof testId === 'string' ? `${testId}-panel` : null}
|
|
232
|
-
transition:
|
|
264
|
+
transition:tokenizedFly|global={sheetFlyParams}
|
|
233
265
|
onintroend={handleIntroEnd}
|
|
234
266
|
onoutroend={handleOutroEnd}
|
|
235
267
|
>
|
|
@@ -153,7 +153,12 @@
|
|
|
153
153
|
)
|
|
154
154
|
);
|
|
155
155
|
outline: none;
|
|
156
|
-
transition: var(
|
|
156
|
+
transition: var(
|
|
157
|
+
--slider-transition,
|
|
158
|
+
background
|
|
159
|
+
var(--slider-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
160
|
+
var(--slider-transition-easing, var(--motion-easing, ease))
|
|
161
|
+
);
|
|
157
162
|
cursor: pointer;
|
|
158
163
|
}
|
|
159
164
|
|
|
@@ -174,9 +179,17 @@
|
|
|
174
179
|
opacity: var(--slider-thumb-opacity, 1);
|
|
175
180
|
cursor: pointer;
|
|
176
181
|
transition:
|
|
177
|
-
transform
|
|
182
|
+
transform
|
|
183
|
+
var(
|
|
184
|
+
--slider-thumb-transition-duration,
|
|
185
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
186
|
+
)
|
|
178
187
|
var(--slider-thumb-transition-easing, var(--motion-easing, ease)),
|
|
179
|
-
opacity
|
|
188
|
+
opacity
|
|
189
|
+
var(
|
|
190
|
+
--slider-thumb-transition-duration,
|
|
191
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
192
|
+
)
|
|
180
193
|
var(--slider-thumb-transition-easing, var(--motion-easing, ease));
|
|
181
194
|
}
|
|
182
195
|
|
|
@@ -190,9 +203,17 @@
|
|
|
190
203
|
opacity: var(--slider-thumb-opacity, 1);
|
|
191
204
|
cursor: pointer;
|
|
192
205
|
transition:
|
|
193
|
-
transform
|
|
206
|
+
transform
|
|
207
|
+
var(
|
|
208
|
+
--slider-thumb-transition-duration,
|
|
209
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
210
|
+
)
|
|
194
211
|
var(--slider-thumb-transition-easing, var(--motion-easing, ease)),
|
|
195
|
-
opacity
|
|
212
|
+
opacity
|
|
213
|
+
var(
|
|
214
|
+
--slider-thumb-transition-duration,
|
|
215
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
216
|
+
)
|
|
196
217
|
var(--slider-thumb-transition-easing, var(--motion-easing, ease));
|
|
197
218
|
}
|
|
198
219
|
|
|
@@ -57,7 +57,11 @@
|
|
|
57
57
|
visible text of its own. Keeping it once the label swaps to
|
|
58
58
|
"Copied!" would leave a screen reader announcing "Copy to clipboard"
|
|
59
59
|
over the visible feedback (WCAG 2.5.3, Label in Name). -->
|
|
60
|
-
<Button
|
|
60
|
+
<Button
|
|
61
|
+
variant="ghost"
|
|
62
|
+
onclick={handleCopy}
|
|
63
|
+
{...copyState.copied ? {} : { ariaLabel: 'Copy to clipboard' }}
|
|
64
|
+
>
|
|
61
65
|
{#if copyState.copied}
|
|
62
66
|
<span class="snippet-copied">{copiedLabel}</span>
|
|
63
67
|
{:else if typeof copyIcon === 'function'}
|
|
@@ -124,6 +128,8 @@
|
|
|
124
128
|
--button-border-radius: var(--snippet-copy-border-radius, var(--radius, 4px));
|
|
125
129
|
--cursor: var(--snippet-copy-cursor, pointer);
|
|
126
130
|
--button-hover-color: var(--snippet-copy-hover-background, #333);
|
|
131
|
+
/* Ghost brings its own hover label; keep this button's. */
|
|
132
|
+
--button-hover-text-color: var(--button-text-color);
|
|
127
133
|
display: flex;
|
|
128
134
|
align-items: center;
|
|
129
135
|
justify-content: center;
|
package/dist/Table/Table.svelte
CHANGED
|
@@ -947,6 +947,7 @@
|
|
|
947
947
|
{#if isColumnSortable(colIndex)}
|
|
948
948
|
<div class="sort-button">
|
|
949
949
|
<Button
|
|
950
|
+
variant="ghost"
|
|
950
951
|
onclick={() => handleSort(colIndex)}
|
|
951
952
|
ariaLabel={labels?.sortBy?.(header) ?? `Sort by ${header}`}
|
|
952
953
|
>
|
|
@@ -1423,7 +1424,11 @@
|
|
|
1423
1424
|
width: var(--table-scroll-scrim-width, 32px);
|
|
1424
1425
|
opacity: 0;
|
|
1425
1426
|
pointer-events: none;
|
|
1426
|
-
transition: opacity
|
|
1427
|
+
transition: opacity
|
|
1428
|
+
var(
|
|
1429
|
+
--table-scroll-scrim-transition-duration,
|
|
1430
|
+
var(--duration-base, var(--motion-duration, 0.2s))
|
|
1431
|
+
)
|
|
1427
1432
|
var(--table-scroll-scrim-transition-easing, var(--motion-easing, ease));
|
|
1428
1433
|
z-index: 2;
|
|
1429
1434
|
}
|
|
@@ -1671,7 +1676,10 @@
|
|
|
1671
1676
|
through <sui-table> the selection checkboxes' transition could not be
|
|
1672
1677
|
slowed or stopped by any means -- custom properties are the only route
|
|
1673
1678
|
across a shadow boundary and this one was already spoken for. */
|
|
1674
|
-
--checkbox-transition: var(
|
|
1679
|
+
--checkbox-transition: var(
|
|
1680
|
+
--table-checkbox-transition,
|
|
1681
|
+
var(--duration-quick, var(--motion-duration, 0.15s))
|
|
1682
|
+
);
|
|
1675
1683
|
}
|
|
1676
1684
|
|
|
1677
1685
|
/* ── Sort button ────────────────────────────────────────────────────────── */
|
package/dist/Tabs/Tabs.svelte
CHANGED
|
@@ -605,7 +605,12 @@
|
|
|
605
605
|
color: var(--tabs-arrow-color, var(--tabs-item-color, #666666));
|
|
606
606
|
cursor: pointer;
|
|
607
607
|
z-index: 1;
|
|
608
|
-
transition: var(
|
|
608
|
+
transition: var(
|
|
609
|
+
--tabs-arrow-transition,
|
|
610
|
+
color
|
|
611
|
+
var(--tabs-arrow-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
612
|
+
var(--tabs-arrow-transition-easing, var(--motion-easing, ease))
|
|
613
|
+
);
|
|
609
614
|
font-family: inherit;
|
|
610
615
|
}
|
|
611
616
|
|
|
@@ -635,7 +640,13 @@
|
|
|
635
640
|
white-space: nowrap;
|
|
636
641
|
flex-shrink: 0;
|
|
637
642
|
user-select: none;
|
|
638
|
-
transition: var(
|
|
643
|
+
transition: var(
|
|
644
|
+
--tabs-transition,
|
|
645
|
+
color var(--tabs-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
646
|
+
var(--tabs-transition-easing, var(--motion-easing, ease)),
|
|
647
|
+
background var(--tabs-transition-duration, var(--duration-base, var(--motion-duration, 0.2s)))
|
|
648
|
+
var(--tabs-transition-easing, var(--motion-easing, ease))
|
|
649
|
+
);
|
|
639
650
|
}
|
|
640
651
|
|
|
641
652
|
/* Roving focus really does move (see focusedKey/focusTabAt above) -- this
|
|
@@ -736,7 +747,13 @@
|
|
|
736
747
|
height: var(--tabs-indicator-height, 2px);
|
|
737
748
|
background-color: var(--tabs-indicator-color, #1a73e8);
|
|
738
749
|
border-radius: var(--tabs-indicator-border-radius, 2px 2px 0 0);
|
|
739
|
-
transition: var(
|
|
750
|
+
transition: var(
|
|
751
|
+
--tabs-indicator-transition,
|
|
752
|
+
left var(--tabs-indicator-transition-duration, var(--motion-duration, 0.3s))
|
|
753
|
+
var(--tabs-indicator-transition-easing, var(--motion-easing, ease)),
|
|
754
|
+
width var(--tabs-indicator-transition-duration, var(--motion-duration, 0.3s))
|
|
755
|
+
var(--tabs-indicator-transition-easing, var(--motion-easing, ease))
|
|
756
|
+
);
|
|
740
757
|
pointer-events: none;
|
|
741
758
|
}
|
|
742
759
|
|
|
@@ -812,7 +829,13 @@
|
|
|
812
829
|
width: var(--tabs-indicator-height, 2px);
|
|
813
830
|
height: var(--tabs-indicator-height, 2px);
|
|
814
831
|
border-radius: var(--tabs-indicator-border-radius-vertical, 0 2px 2px 0);
|
|
815
|
-
transition: var(
|
|
832
|
+
transition: var(
|
|
833
|
+
--tabs-indicator-transition-vertical,
|
|
834
|
+
top var(--tabs-indicator-transition-vertical-duration, var(--motion-duration, 0.3s))
|
|
835
|
+
var(--tabs-indicator-transition-vertical-easing, var(--motion-easing, ease)),
|
|
836
|
+
height var(--tabs-indicator-transition-vertical-duration, var(--motion-duration, 0.3s))
|
|
837
|
+
var(--tabs-indicator-transition-vertical-easing, var(--motion-easing, ease))
|
|
838
|
+
);
|
|
816
839
|
}
|
|
817
840
|
|
|
818
841
|
/* Section header rendered above a group of vertical nav items. */
|
|
@@ -148,7 +148,11 @@
|
|
|
148
148
|
and both fall back through the library-wide --motion-* tokens. */
|
|
149
149
|
animation: task-list-fade-up
|
|
150
150
|
var(--task-list-row-animation-duration, var(--motion-duration, 320ms))
|
|
151
|
-
var(
|
|
151
|
+
var(
|
|
152
|
+
--task-list-ease,
|
|
153
|
+
var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))
|
|
154
|
+
)
|
|
155
|
+
both;
|
|
152
156
|
}
|
|
153
157
|
|
|
154
158
|
.row-glyph {
|
|
@@ -206,7 +210,11 @@
|
|
|
206
210
|
color: var(--task-list-done-color, #6b6b6b);
|
|
207
211
|
animation: task-list-check-pop
|
|
208
212
|
var(--task-list-check-pop-animation-duration, var(--motion-duration, 200ms))
|
|
209
|
-
var(
|
|
213
|
+
var(
|
|
214
|
+
--task-list-ease,
|
|
215
|
+
var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))
|
|
216
|
+
)
|
|
217
|
+
both;
|
|
210
218
|
}
|
|
211
219
|
.glyph-x {
|
|
212
220
|
color: var(--task-list-error-color, #c93f38);
|
|
@@ -172,7 +172,9 @@
|
|
|
172
172
|
background-color: var(--theme-switcher-bg, transparent);
|
|
173
173
|
cursor: pointer;
|
|
174
174
|
color: var(--theme-switcher-icon-color, #374151);
|
|
175
|
-
transition: background-color
|
|
175
|
+
transition: background-color
|
|
176
|
+
var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
177
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease));
|
|
176
178
|
font-family: inherit;
|
|
177
179
|
}
|
|
178
180
|
|
|
@@ -191,8 +193,10 @@
|
|
|
191
193
|
width: var(--theme-switcher-icon-size, 18px);
|
|
192
194
|
height: var(--theme-switcher-icon-size, 18px);
|
|
193
195
|
transition:
|
|
194
|
-
opacity var(--theme-switcher-transition-duration, 0.3s)
|
|
195
|
-
|
|
196
|
+
opacity var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
197
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease)),
|
|
198
|
+
transform var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
199
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease));
|
|
196
200
|
}
|
|
197
201
|
|
|
198
202
|
.icon :global(svg) {
|
|
@@ -232,8 +236,10 @@
|
|
|
232
236
|
background-color: var(--theme-switcher-segment-active-bg, #ffffff);
|
|
233
237
|
box-shadow: var(--theme-switcher-segment-shadow, 0 1px 2px rgba(0, 0, 0, 0.1));
|
|
234
238
|
transition:
|
|
235
|
-
left var(--theme-switcher-transition-duration, 0.3s)
|
|
236
|
-
|
|
239
|
+
left var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
240
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease)),
|
|
241
|
+
width var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
242
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease));
|
|
237
243
|
z-index: 0;
|
|
238
244
|
}
|
|
239
245
|
|
|
@@ -249,7 +255,8 @@
|
|
|
249
255
|
background: transparent;
|
|
250
256
|
cursor: pointer;
|
|
251
257
|
color: var(--theme-switcher-icon-color, #374151);
|
|
252
|
-
transition: color var(--theme-switcher-transition-duration, 0.3s)
|
|
258
|
+
transition: color var(--theme-switcher-transition-duration, var(--motion-duration, 0.3s))
|
|
259
|
+
var(--theme-switcher-transition-easing, var(--motion-easing, ease));
|
|
253
260
|
font-family: inherit;
|
|
254
261
|
}
|
|
255
262
|
|
|
@@ -492,7 +492,7 @@
|
|
|
492
492
|
margin-bottom: var(--thinking-indicator-margin-bottom, 1rem);
|
|
493
493
|
min-height: 0;
|
|
494
494
|
transition: min-height 400ms
|
|
495
|
-
var(--thinking-indicator-trace-ease, cubic-bezier(0.23, 1, 0.32, 1));
|
|
495
|
+
var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)));
|
|
496
496
|
}
|
|
497
497
|
|
|
498
498
|
.expandable.busy {
|
|
@@ -721,7 +721,8 @@
|
|
|
721
721
|
background: var(--thinking-indicator-trace-connector-color, #dcdcdc);
|
|
722
722
|
margin-left: 6px;
|
|
723
723
|
flex-shrink: 0;
|
|
724
|
-
transition: height 500ms
|
|
724
|
+
transition: height 500ms
|
|
725
|
+
var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)));
|
|
725
726
|
}
|
|
726
727
|
|
|
727
728
|
.trace-rows {
|
|
@@ -740,7 +741,8 @@
|
|
|
740
741
|
font-size: var(--thinking-indicator-trace-row-font-size, 0.8125rem);
|
|
741
742
|
color: var(--thinking-indicator-trace-row-color, #2b2b2b);
|
|
742
743
|
animation: thinking-indicator-fade-up 320ms
|
|
743
|
-
var(--thinking-indicator-trace-ease, cubic-bezier(0.23, 1, 0.32, 1))
|
|
744
|
+
var(--thinking-indicator-trace-ease, var(--ease-smooth-out, cubic-bezier(0.23, 1, 0.32, 1)))
|
|
745
|
+
both;
|
|
744
746
|
text-decoration: none;
|
|
745
747
|
}
|
|
746
748
|
|