@ash-qw/dsh-theme-prts 1.2.1 → 1.3.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.
@@ -13,7 +13,7 @@ export function sessionImages(agent) {
13
13
  for(const part of message.content ?? []) {
14
14
  const ref=part.attachment
15
15
  if(!ref || typeof ref.attachmentId!=='string' || !ref.attachmentId)continue
16
- if(part.type!=='image' && !(part.type==='file' && (/^image\/(png|jpeg|webp)$/.test(ref.mediaType || '') || /\.(png|jpe?g|webp)$/i.test(ref.name || ''))))continue
16
+ if(part.type!=='image' && !(part.type==='file' && (/^image\/(png|jpeg|webp|gif|avif)$/.test(ref.mediaType || '') || /\.(png|jpe?g|webp|gif|avif)$/i.test(ref.name || ''))))continue
17
17
  if(images.has(ref.attachmentId))continue
18
18
  images.set(ref.attachmentId,{...ref,attachmentKind:part.type,origin:uploaded?'upload':'tool',...(toolName?{toolName}:{})})
19
19
  }
@@ -44,15 +44,12 @@ html[data-dsh-prts] {
44
44
  --prts-glass-dense: rgba(7, 10, 12, .94);
45
45
  --prts-active-glass: var(--prts-glass-standard-surface);
46
46
  --prts-active-glass-filter: blur(18px) saturate(145%);
47
- --prts-chat-user-surface: #3a3211;
48
- --prts-chat-user-edge: #8c7718;
49
- --prts-chat-assistant-surface: rgba(17, 24, 28, .97);
50
- --prts-chat-assistant-edge: #34474f;
47
+ --prts-chat-user-surface: #efefed;
48
+ --prts-chat-assistant-surface: #454644;
51
49
  --prts-chat-avatar-surface: #151c20;
52
- --prts-chat-shadow: rgba(0, 0, 0, .3);
50
+ --prts-avatar-ring-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='47' fill='none' stroke='%23c7cdca' stroke-width='3' pathLength='360' stroke-dasharray='98 24 96 24 98 20' transform='rotate(-80 50 50)'/%3E%3C/svg%3E");
53
51
  --prts-chat-backdrop: #0a0e11;
54
52
  --prts-chat-backdrop-edge: #0e1519;
55
- --prts-chat-link: #4d7079;
56
53
  color-scheme: dark;
57
54
  accent-color: var(--prts-yellow);
58
55
  }
@@ -80,15 +77,12 @@ html[data-dsh-prts][data-prts-scheme="light"] {
80
77
  --prts-glass-clear-surface: rgba(244, 249, 251, .78);
81
78
  --prts-glass-dense: rgba(249, 251, 252, .97);
82
79
  --prts-shadow-glass-overlay: 0 18px 44px rgba(48, 63, 70, .18), inset 0 1px rgba(255, 255, 255, .86);
83
- --prts-chat-user-surface: #fff0af;
84
- --prts-chat-user-edge: #c9a610;
85
- --prts-chat-assistant-surface: rgba(250, 252, 253, .97);
86
- --prts-chat-assistant-edge: #c7d4da;
80
+ --prts-chat-user-surface: #fff;
81
+ --prts-chat-assistant-surface: #dfe3df;
87
82
  --prts-chat-avatar-surface: #e4e9ec;
88
- --prts-chat-shadow: rgba(45, 59, 66, .16);
83
+ --prts-avatar-ring-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='47' fill='none' stroke='%23657069' stroke-width='3' pathLength='360' stroke-dasharray='98 24 96 24 98 20' transform='rotate(-80 50 50)'/%3E%3C/svg%3E");
89
84
  --prts-chat-backdrop: #edf1f3;
90
85
  --prts-chat-backdrop-edge: #e4ebee;
91
- --prts-chat-link: #6b8d96;
92
86
  color-scheme: light;
93
87
  }
94
88
 
@@ -186,7 +180,8 @@ html[data-dsh-prts] [data-prts-theme-settings] button {
186
180
  color: inherit;
187
181
  }
188
182
 
189
- html[data-dsh-prts] :focus-visible {
183
+ /* Focus decoration belongs to theme controls, not host or third-party pages. */
184
+ html[data-dsh-prts] :is([data-prts-shell], [data-prts-theme-settings], [data-prts-plugin-settings]) :focus-visible {
190
185
  outline: 2px solid var(--prts-yellow) !important;
191
186
  outline-offset: 2px !important;
192
187
  }
@@ -1167,36 +1162,22 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is(
1167
1162
  ) {
1168
1163
  position: relative;
1169
1164
  box-sizing: border-box;
1165
+ min-width: 0;
1170
1166
  overflow: visible;
1171
1167
  }
1172
1168
 
1173
1169
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) {
1174
- padding-inline-end: 54px;
1170
+ padding-inline-end: 80px;
1175
1171
  color: var(--prts-ink);
1176
1172
  }
1177
1173
 
1178
1174
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"]) {
1179
- --prts-chat-link-x: 22px;
1180
- padding-inline-start: 56px;
1175
+ padding-inline-start: 80px;
1181
1176
  color: var(--prts-ink);
1182
1177
  }
1183
1178
 
1184
- html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"])::after,
1185
- html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::after {
1186
- content: "";
1187
- position: absolute;
1188
- z-index: 1;
1189
- top: 54px;
1190
- left: calc(var(--prts-chat-link-x) - 1px);
1191
- width: 2px;
1192
- height: 30px;
1193
- border-radius: 1px;
1194
- background: linear-gradient(to bottom,
1195
- color-mix(in srgb, var(--prts-chat-link) 56%, transparent),
1196
- color-mix(in srgb, var(--prts-chat-link) 20%, transparent) 72%,
1197
- transparent);
1198
- pointer-events: none;
1199
- }
1179
+
1180
+
1200
1181
 
1201
1182
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"])::before,
1202
1183
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering]))::after,
@@ -1204,18 +1185,30 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role
1204
1185
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"]::after {
1205
1186
  position: absolute;
1206
1187
  z-index: 2;
1207
- top: 2px;
1188
+ top: -5px;
1208
1189
  display: grid;
1209
1190
  place-items: center;
1210
1191
  box-sizing: border-box;
1211
- width: 42px;
1212
- height: 42px;
1213
- border: 1px solid var(--prts-line);
1214
- border-radius: 14px;
1215
- background-color: var(--prts-chat-avatar-surface);
1216
- box-shadow:
1217
- inset 0 1px rgba(255, 255, 255, .08),
1218
- 0 8px 20px var(--prts-chat-shadow);
1192
+ --prts-portrait-size: 60px;
1193
+ width: var(--prts-portrait-size);
1194
+ height: var(--prts-portrait-size);
1195
+ min-width: var(--prts-portrait-size);
1196
+ max-width: var(--prts-portrait-size);
1197
+ min-height: var(--prts-portrait-size);
1198
+ max-height: var(--prts-portrait-size);
1199
+ padding: 5px;
1200
+ aspect-ratio: 1;
1201
+ border: 0;
1202
+ corner-shape: round;
1203
+ border-radius: 50%;
1204
+ outline: none;
1205
+ background-color: transparent;
1206
+ background-origin: border-box, content-box, content-box;
1207
+ background-clip: border-box, content-box, content-box;
1208
+ background-position: center;
1209
+ background-size: 100% 100%, cover, auto;
1210
+ background-repeat: no-repeat;
1211
+ box-shadow: none;
1219
1212
  pointer-events: none;
1220
1213
  }
1221
1214
 
@@ -1223,96 +1216,81 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-ki
1223
1216
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::before {
1224
1217
  content: "";
1225
1218
  left: 0;
1226
- width: 44px;
1227
- height: 48px;
1228
- border-color: color-mix(in srgb, var(--prts-cyan) 42%, var(--prts-line));
1229
- border-radius: 14px 14px 16px 16px;
1219
+
1230
1220
  background-image:
1231
- var(--prts-assistant-avatar-image, none),
1232
- linear-gradient(145deg, rgba(255, 255, 255, .08), transparent 56%);
1233
- background-repeat: no-repeat;
1234
- background-position: center, center;
1235
- background-size: cover, auto;
1236
- box-shadow:
1237
- inset 0 -2px color-mix(in srgb, var(--prts-cyan) 72%, transparent),
1238
- inset 0 1px rgba(255, 255, 255, .08),
1239
- 0 8px 20px var(--prts-chat-shadow);
1221
+ var(--prts-avatar-ring-image),
1222
+ var(--prts-custom-assistant-avatar, var(--prts-assistant-avatar-image, none)),
1223
+ linear-gradient(var(--prts-chat-avatar-surface), var(--prts-chat-avatar-surface));
1224
+
1240
1225
  }
1241
1226
 
1242
1227
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering]))::after,
1243
1228
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"]::after {
1244
- content: "我";
1229
+ content: var(--prts-user-avatar-label, "我");
1245
1230
  right: 0;
1246
- border-color: color-mix(in srgb, var(--prts-yellow) 58%, var(--prts-line));
1247
- background:
1248
- linear-gradient(145deg, color-mix(in srgb, var(--prts-yellow) 18%, transparent), transparent 58%),
1249
- var(--prts-chat-avatar-surface);
1250
- color: color-mix(in srgb, var(--prts-yellow) 78%, var(--prts-ink));
1231
+
1232
+ background-image:
1233
+ var(--prts-avatar-ring-image), var(--prts-custom-user-avatar, none),
1234
+ linear-gradient(var(--prts-chat-avatar-surface), var(--prts-chat-avatar-surface));
1235
+ color: var(--prts-ink);
1251
1236
  font: 500 13px/1 var(--prts-mono);
1252
1237
  }
1253
1238
 
1254
1239
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"],
1255
1240
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"] {
1256
- border: 1px solid var(--prts-chat-user-edge) !important;
1257
- border-radius: 18px 6px 18px 18px !important;
1258
- padding: 13px 18px !important;
1259
- background:
1260
- linear-gradient(145deg, color-mix(in srgb, var(--prts-yellow) 10%, transparent), transparent 54%),
1261
- var(--prts-chat-user-surface) !important;
1241
+ position: relative;
1242
+ --prts-ink: #191c19;
1243
+ --prts-muted: #515851;
1244
+ --prts-canvas: #e0e4e0;
1245
+ --prts-cyan: #27616a;
1246
+ border: 0 !important;
1247
+ border-radius: 18px 0 18px 18px !important;
1248
+ padding: 10px 18px !important;
1249
+ background: var(--prts-chat-user-surface) !important;
1262
1250
  color: var(--prts-ink) !important;
1263
1251
  clip-path: none !important;
1264
- box-shadow:
1265
- inset 0 1px color-mix(in srgb, var(--prts-yellow) 22%, transparent),
1266
- 0 9px 24px var(--prts-chat-shadow) !important;
1252
+ box-shadow: none !important;
1267
1253
  overflow-wrap: anywhere;
1268
1254
  }
1269
1255
 
1270
1256
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"] {
1271
- width: calc(100% - 54px);
1257
+ width: calc(100% - 80px);
1272
1258
  margin-inline-start: auto;
1273
1259
  }
1274
1260
 
1275
1261
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"]::after {
1276
- right: -54px;
1262
+ right: -80px;
1277
1263
  }
1278
1264
 
1279
1265
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"] {
1280
- --prts-chat-link-x: -34px;
1281
1266
  position: relative;
1282
- width: calc(100% - 56px);
1283
- margin-inline-start: calc((100% - min(var(--dsh-chat-content-width, 748px), 100%)) / 2 + 56px);
1284
- padding: 16px 22px !important;
1285
- border: 1px solid var(--prts-chat-assistant-edge) !important;
1286
- border-radius: 6px 18px 18px 18px !important;
1287
- background:
1288
- linear-gradient(118deg, color-mix(in srgb, var(--prts-cyan) 6%, transparent), transparent 44%),
1289
- var(--prts-chat-assistant-surface) !important;
1267
+ width: calc(100% - 80px);
1268
+ margin-inline-start: calc((100% - min(var(--dsh-chat-content-width, 748px), 100%)) / 2 + 80px);
1269
+ padding: 12px 22px !important;
1270
+ border: 0 !important;
1271
+ border-radius: 0 18px 18px 18px !important;
1272
+ background: var(--prts-chat-assistant-surface) !important;
1290
1273
  color: var(--prts-ink) !important;
1291
- box-shadow:
1292
- inset 0 1px color-mix(in srgb, var(--prts-cyan) 10%, transparent),
1293
- 0 10px 28px var(--prts-chat-shadow) !important;
1274
+ box-shadow: none !important;
1294
1275
  overflow-wrap: anywhere;
1295
1276
  }
1296
1277
 
1297
1278
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::before {
1298
- left: -56px;
1279
+ left: -80px;
1299
1280
  }
1300
1281
 
1301
1282
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"]) [class$="_body"]:has(:is([data-markdown], [data-slot*="markdown" i], .markdown-body)),
1302
1283
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-prts-ai-surface] {
1284
+ position: relative;
1303
1285
  box-sizing: border-box;
1304
1286
  width: fit-content;
1305
1287
  max-width: 100%;
1306
- padding: 16px 22px !important;
1307
- border: 1px solid var(--prts-chat-assistant-edge) !important;
1308
- border-radius: 6px 18px 18px 18px !important;
1309
- background:
1310
- linear-gradient(118deg, color-mix(in srgb, var(--prts-cyan) 6%, transparent), transparent 44%),
1311
- var(--prts-chat-assistant-surface) !important;
1288
+ padding: 12px 22px !important;
1289
+ border: 0 !important;
1290
+ border-radius: 0 18px 18px 18px !important;
1291
+ background: var(--prts-chat-assistant-surface) !important;
1312
1292
  color: var(--prts-ink) !important;
1313
- box-shadow:
1314
- inset 0 1px color-mix(in srgb, var(--prts-cyan) 10%, transparent),
1315
- 0 10px 28px var(--prts-chat-shadow) !important;
1293
+ box-shadow: none !important;
1316
1294
  overflow-wrap: anywhere;
1317
1295
  }
1318
1296
 
@@ -1777,66 +1755,59 @@ html[data-dsh-prts-settings] :is(.prts-plugin-settings button[role='switch'], [d
1777
1755
 
1778
1756
  @media (max-width: 760px) {
1779
1757
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) {
1780
- padding-inline: 8px 50px;
1758
+ padding-inline: 8px 74px;
1781
1759
  }
1782
1760
 
1783
1761
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"]) {
1784
1762
  padding-inline: 0 8px;
1785
- padding-inline-start: 50px;
1763
+ padding-inline-start: 74px;
1786
1764
  }
1787
1765
 
1788
1766
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"])::before,
1789
1767
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::before {
1790
1768
  left: 8px;
1791
- width: 34px;
1792
- height: 38px;
1793
- border-radius: 11px 11px 13px 13px;
1769
+ --prts-portrait-size: 52px;
1770
+ border-radius: 50%;
1794
1771
  }
1795
1772
 
1796
1773
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering]))::after,
1797
1774
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"]::after {
1798
1775
  right: 8px;
1799
- width: 34px;
1800
- height: 34px;
1801
- border-radius: 11px;
1776
+ --prts-portrait-size: 52px;
1777
+ border-radius: 50%;
1802
1778
  font-size: 11px;
1803
1779
  }
1804
1780
 
1805
1781
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"],
1806
1782
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"] {
1807
- padding: 11px 15px !important;
1808
- border-radius: 16px 5px 16px 16px !important;
1783
+ padding: 9px 15px !important;
1784
+ border-radius: 16px 0 16px 16px !important;
1809
1785
  }
1810
1786
 
1811
1787
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"]) [class$="_body"]:has(:is([data-markdown], [data-slot*="markdown" i], .markdown-body)),
1812
1788
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-prts-ai-surface],
1813
1789
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"] {
1814
- padding: 13px 16px !important;
1815
- border-radius: 5px 16px 16px 16px !important;
1790
+ padding: 10px 16px !important;
1791
+ border-radius: 0 16px 16px 16px !important;
1816
1792
  }
1817
1793
 
1818
1794
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"] {
1819
- width: calc(100% - 42px);
1795
+ width: calc(100% - 66px);
1820
1796
  }
1821
1797
 
1822
1798
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="user"]::after {
1823
- right: -42px;
1799
+ right: -66px;
1824
1800
  }
1825
1801
 
1826
1802
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"] {
1827
- --prts-chat-link-x: -25px;
1828
- width: calc(100% - 42px);
1829
- margin-inline-start: 42px;
1803
+ width: calc(100% - 66px);
1804
+ margin-inline-start: 66px;
1830
1805
  }
1831
1806
 
1832
1807
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::before {
1833
- left: -42px;
1808
+ left: -66px;
1834
1809
  }
1835
1810
 
1836
- html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-chat-flow-kind="assistant-step"]:not([data-chat-group-part="reasoning"])::after,
1837
- html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-message-role="assistant"]::after {
1838
- display: none;
1839
- }
1840
1811
  }
1841
1812
 
1842
1813
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
@@ -1907,3 +1878,17 @@ html[data-dsh-prts-settings] :is(.prts-plugin-settings button[role='switch'], [d
1907
1878
  transition-duration: .01ms !important;
1908
1879
  }
1909
1880
  }
1881
+
1882
+ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] {
1883
+ & :is([data-prts-ai-surface], [data-message-role="assistant"]) { --prts-bubble-surface: var(--prts-chat-assistant-surface); }
1884
+ & [data-prts-ai-surface]::before,
1885
+ & [data-message-role="assistant"]::after,
1886
+ & :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]::before,
1887
+ & [data-message-role="user"]::before {
1888
+ content: ""; position: absolute; top: 0; left: -9px; width: 10px; height: 18px; pointer-events: none;
1889
+ background: var(--prts-bubble-surface, var(--prts-chat-user-surface));
1890
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 18'%3E%3Cpath d='M0 0H10V18Q10 6 0 0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
1891
+ }
1892
+ & :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]::before,
1893
+ & [data-message-role="user"]::before { left: auto; right: -9px; transform: scaleX(-1); }
1894
+ }
@@ -310,8 +310,7 @@ html[data-dsh-prts] :is(
310
310
  [data-composer-card] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
311
311
  [data-prts-composer-fallback] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
312
312
  [data-prts-glass-control],
313
- [data-prts-conversation-control]:not([data-prts-conversation-control="micro"]),
314
- [data-produced-files-row] > button[type="button"]
313
+ [data-prts-conversation-control]:not([data-prts-conversation-control="micro"], [data-prts-conversation-control="file"])
315
314
  ) {
316
315
  --prts-control-outline: var(--prts-line);
317
316
  --prts-control-surface: var(--prts-panel-raised);
@@ -333,8 +332,7 @@ html[data-dsh-prts] :is(
333
332
  [data-composer-card] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
334
333
  [data-prts-composer-fallback] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
335
334
  [data-prts-glass-control],
336
- [data-prts-conversation-control]:not([data-prts-conversation-control="micro"]),
337
- [data-produced-files-row] > button[type="button"]
335
+ [data-prts-conversation-control]:not([data-prts-conversation-control="micro"], [data-prts-conversation-control="file"])
338
336
  )::before {
339
337
  content: "";
340
338
  position: absolute;
@@ -353,8 +351,7 @@ html[data-dsh-prts] :is(
353
351
  [data-composer-card] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
354
352
  [data-prts-composer-fallback] button:not([data-slot="conversation.input.attachments"] *):not([data-prts-glass-menu] *):not([data-prts-floating-glass] *):not([role="menu"] *):not([role="listbox"] *),
355
353
  [data-prts-glass-control],
356
- [data-prts-conversation-control]:not([data-prts-conversation-control="micro"]),
357
- [data-produced-files-row] > button[type="button"]
354
+ [data-prts-conversation-control]:not([data-prts-conversation-control="micro"], [data-prts-conversation-control="file"])
358
355
  ):is(:hover, :focus-visible) {
359
356
  --prts-control-outline: var(--prts-yellow);
360
357
  }
@@ -442,3 +439,18 @@ html[data-dsh-prts] [data-prts-hero-active] [data-composer-seat] {
442
439
  align-self: end;
443
440
  justify-self: center;
444
441
  }
442
+
443
+ /* File presentations share one rounded material; preview hit targets stay native. */
444
+ html[data-dsh-prts] :is([data-presented-file],[data-prts-conversation-control="file"],[data-produced-files-row] > button[type="button"]){
445
+ border:1px solid var(--prts-glass-border)!important;
446
+ border-radius:10px!important;corner-shape:round!important;clip-path:none!important;
447
+ background:var(--prts-active-glass)!important;color:var(--prts-ink);
448
+ backdrop-filter:var(--prts-active-glass-filter);
449
+ &::before{content:none}
450
+ &:is(:hover,:focus-within){border-color:var(--prts-yellow)!important}
451
+ }
452
+ /* The host change-card wrapper must not clip a smaller inner outline. */
453
+ html[data-dsh-prts] [class$="_card"]:has(> span > [data-prts-conversation-control="file"]){
454
+ border:0!important;border-radius:10px!important;corner-shape:round!important;
455
+ background:transparent!important;box-shadow:none!important;
456
+ }
@@ -235,15 +235,11 @@ html[data-dsh-prts] [data-prts-settings-common] :is(
235
235
  [data-prts-setting-row="sessionGlow"],
236
236
  [data-prts-setting-row="sessionFlowPalette"],
237
237
  [data-prts-setting-row="sessionFlowColors"],
238
- [data-prts-setting-row="sessionFlowSpeed"],
239
- [data-prts-setting-row="conversationStyle"]
238
+ [data-prts-setting-row="sessionFlowSpeed"]
240
239
  ) {
241
240
  grid-column: 1 / -1;
242
241
  border-right: 0;
243
242
  }
244
- html[data-dsh-prts] [data-prts-settings-common] [data-prts-setting-row="conversationStyle"] {
245
- border-bottom: 0;
246
- }
247
243
  html[data-dsh-prts] [data-prts-setting-row] > div {
248
244
  min-width: 0;
249
245
  display: flex;
@@ -862,3 +858,60 @@ margin-bottom: 20px;
862
858
  & [data-prts-emblem-edit-bar] [data-prts-emblem-actions]{margin-left:auto;}
863
859
  @media(max-width:640px){& [data-prts-emblem-edit-body]{grid-template-columns:minmax(0,1fr);padding:16px;gap:16px;}& [data-prts-emblem-edit-preview]{min-height:180px;}& [data-prts-emblem-preview]{max-width:220px;}}
864
860
  @media (max-width:720px){& [data-prts-emblem-list] [data-prts-emblem-actions]{flex-basis:100%;gap:5px;}}}
861
+
862
+ html[data-dsh-prts]{
863
+ [data-prts-avatars]{grid-column:1/-1;display:grid;gap:12px}
864
+ [data-prts-avatars][hidden]{display:none}
865
+ [data-prts-avatars] header{display:grid;gap:6px}
866
+ [data-prts-avatars] :is(small,p){font-size:12px;color:var(--prts-muted)}
867
+ [data-prts-avatar-row]{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
868
+ [data-prts-avatar-preview]{display:grid;place-items:center;box-sizing:border-box;flex:0 0 44px;width:44px;height:44px;min-width:44px;max-width:44px;aspect-ratio:1;padding:5px;border:0;border-radius:50%;corner-shape:round;background-color:transparent;background-position:center;background-size:100% 100%,cover,auto;background-repeat:no-repeat;background-origin:border-box,content-box,content-box;background-clip:border-box,content-box,content-box}
869
+ [data-prts-avatar-preview="user"]{background-image:var(--prts-avatar-ring-image),var(--prts-custom-user-avatar,none),linear-gradient(var(--prts-chat-avatar-surface),var(--prts-chat-avatar-surface))}
870
+ [data-prts-avatar-preview="user"]::after{content:var(--prts-user-avatar-label,"我")}
871
+ [data-prts-avatar-preview="assistant"]{background-image:var(--prts-avatar-ring-image),var(--prts-custom-assistant-avatar,var(--prts-assistant-avatar-image,none)),linear-gradient(var(--prts-chat-avatar-surface),var(--prts-chat-avatar-surface))}
872
+ [data-prts-avatar-upload]{position:relative;padding:8px;border:1px solid var(--prts-line);cursor:pointer}
873
+ [data-prts-avatar-upload] input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
874
+ [data-prts-avatar-upload]:focus-within{outline:2px solid var(--prts-cyan)}
875
+ [data-prts-avatar-upload]:has(input:disabled){opacity:.4}
876
+
877
+ }
878
+
879
+ html[data-dsh-prts] [data-prts-avatar-crop]{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(420px,calc(100vw - 24px));max-height:90dvh;overflow:auto;padding:24px;background:var(--prts-panel);color:var(--prts-ink);border:1px solid var(--prts-line);font:14px/1.5 var(--prts-body);
880
+ &::backdrop{background:#0009}
881
+ & canvas{display:block;width:100%;height:auto;aspect-ratio:1;margin:16px auto;border-radius:4px;corner-shape:round;outline:1px solid var(--prts-line-strong);touch-action:none;cursor:grab;background:var(--prts-canvas)}
882
+ & canvas:active{cursor:grabbing}
883
+ & label{display:flex;align-items:center;gap:12px}
884
+ & input{flex:1;min-width:0}
885
+ & p{font-size:12px;color:var(--prts-muted)}
886
+ & header,& [data-crop-tools]{display:flex;align-items:center;justify-content:space-between;gap:12px}
887
+ & [data-crop-tools] label{flex:1;min-width:0;gap:8px}
888
+ & [data-crop-tools] button{padding:6px;font-size:12px}
889
+ & footer{display:grid;grid-template-columns:1fr auto auto;gap:4px;border-top:1px solid var(--prts-line);padding-top:16px}
890
+ & footer span{display:none}
891
+ & footer button{padding:8px;font-size:12px}
892
+ & [data-crop-reset]{justify-self:start}
893
+ & [data-crop-reset],& [data-crop-cancel]{border-color:transparent;background:transparent}
894
+ & [data-crop-save]{background:var(--prts-yellow);color:#151a1d;border-color:var(--prts-yellow)}
895
+ & button{padding:8px 12px;background:var(--prts-panel-raised);color:var(--prts-ink);border:1px solid var(--prts-line)}
896
+ & button:disabled{opacity:.5}
897
+ }
898
+
899
+ html[data-dsh-prts]{
900
+ [data-prts-conversation-settings]{display:grid;gap:16px;padding:18px;border:1px solid var(--prts-line);background:var(--prts-panel)}
901
+ [data-prts-conversation-settings] header{display:grid;gap:5px}
902
+ [data-prts-conversation-settings] small{display:block;color:var(--prts-muted);font-size:12px;line-height:1.6}
903
+ [data-prts-conversation-cards]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
904
+ [data-prts-conversation-cards] button{display:grid;gap:6px;text-align:left;padding:14px;min-width:0;color:var(--prts-ink);background:var(--prts-canvas);border:1px solid var(--prts-line);cursor:pointer;font:inherit}
905
+ [data-prts-conversation-cards] button[aria-pressed="true"]{border-color:var(--prts-cyan);background:color-mix(in srgb,var(--prts-cyan) 7%,var(--prts-canvas))}
906
+ [data-prts-conversation-sample]{display:grid;gap:8px;height:48px;padding:8px;opacity:.7}
907
+ [data-prts-conversation-sample] i{width:70%;height:10px;background:var(--prts-muted)}
908
+ [data-prts-conversation-sample] i:first-child{justify-self:end;width:45%}
909
+ [data-prts-conversation-sample="baker"] i{height:16px;border-radius:5px;corner-shape:round}
910
+ [data-prts-avatar-choices]{display:flex;flex-wrap:wrap;gap:24px}
911
+ [data-prts-avatar-preview]{cursor:pointer;color:var(--prts-ink);font:inherit;box-shadow:none}
912
+ [data-prts-avatar-preview]:focus-visible{outline:2px solid var(--prts-cyan);outline-offset:3px}
913
+ [data-prts-avatar-preview]::before{display:none}
914
+ [data-prts-avatars]{padding-top:16px;border-top:1px solid var(--prts-line)}
915
+ [data-prts-avatar-crop] [data-prts-avatar-upload]{padding:6px 10px;font-size:12px}
916
+ }
917
+ @media(max-width:480px){html[data-dsh-prts] [data-prts-conversation-cards]{grid-template-columns:1fr}}