@ash-qw/dsh-theme-prts 2.0.0 → 2.1.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.
@@ -1340,20 +1340,26 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is(
1340
1340
  color: var(--prts-ink) !important;
1341
1341
  }
1342
1342
 
1343
- /* Bordered Baker tables need inset cells and a scrollport inside the bubble. */
1343
+ /* Baker code cards and tables. */
1344
1344
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is(
1345
- [data-prts-ai-surface], [data-message-role="assistant"], [data-message-role="user"],
1346
- :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]
1345
+ [data-prts-ai-surface], [data-message-role="assistant"], [data-message-role="user"],
1346
+ :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]
1347
1347
  ) {
1348
- & :is(th,td){padding-inline:14px!important}
1349
- & :is(.md-table-wide,[class*="_tableScroll_"]){
1350
- box-sizing:border-box;width:100%;max-width:100%;min-width:0;
1351
- margin-inline:0!important;padding:0!important;overflow:auto;
1352
- border:1px solid color-mix(in srgb,var(--prts-cyan) 24%,var(--prts-line));
1353
- border-radius:10px;corner-shape:round;
1354
- background:color-mix(in srgb,var(--prts-canvas) 88%,transparent);
1355
- & > table{border:0;background:transparent;margin:0;width:100%}
1356
- }
1348
+ /* Clip preserves header stickiness. */
1349
+ & :has(>[data-code-block-content]){
1350
+ box-sizing:border-box;max-width:100%;border:1px solid var(--prts-line);border-left:3px solid var(--prts-cyan);border-radius:12px;overflow:clip;
1351
+ & [data-code-block-banner]{border-radius:11px 11px 0 0;background:color-mix(in srgb,var(--prts-ink) 7%,var(--prts-canvas));border-bottom:1px solid var(--prts-line)}
1352
+ &>[data-code-block-content] pre{box-sizing:border-box;width:100%;border:0!important;border-radius:0 0 11px 11px;margin:0!important}
1353
+ }
1354
+ & :is(th,td){padding-inline:14px!important}
1355
+ & :is(.md-table-wide,[class*="_tableScroll_"]){
1356
+ box-sizing:border-box;width:100%;max-width:100%;min-width:0;
1357
+ margin-inline:0!important;padding:0!important;overflow:auto;
1358
+ border:1px solid color-mix(in srgb,var(--prts-cyan) 24%,var(--prts-line));
1359
+ border-radius:10px;corner-shape:round;
1360
+ background:color-mix(in srgb,var(--prts-canvas) 88%,transparent);
1361
+ & > table{border:0;background:transparent;margin:0;width:100%}
1362
+ }
1357
1363
  }
1358
1364
 
1359
1365
  /* Group process avatars without changing reply alignment or final-answer avatars. */
@@ -1361,10 +1367,10 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] [data-prts-avatar-
1361
1367
 
1362
1368
  /* Baker quote surfaces; classic prose retains the host styling. */
1363
1369
  html[data-dsh-prts][data-prts-conversation-style="deck-chat"] :is([data-chat-flow-kind],[data-message-role],[data-prts-ai-surface],[data-submission-echo]) blockquote {
1364
- border-radius:10px;corner-shape:round;padding:8px 14px;
1365
- border-inline-start:3px solid var(--prts-cyan)!important;
1366
- & > :first-child{margin-top:0}
1367
- & > :last-child{margin-bottom:0}
1370
+ border-radius:10px;corner-shape:round;padding:8px 14px;
1371
+ border-inline-start:3px solid var(--prts-cyan)!important;
1372
+ & > :first-child{margin-top:0}
1373
+ & > :last-child{margin-bottom:0}
1368
1374
  }
1369
1375
 
1370
1376
  html[data-dsh-prts] [aria-invalid="true"],
@@ -1569,6 +1575,7 @@ html[data-dsh-prts] [data-prts-glass-control="preset"] {
1569
1575
  color: var(--prts-ink) !important;
1570
1576
  }
1571
1577
 
1578
+ html[data-dsh-prts] [data-menu-material][class*="_7KE1Ra_menu"],
1572
1579
  html[data-dsh-prts] [data-prts-glass-menu],
1573
1580
  html[data-dsh-prts] [data-prts-floating-glass="menu"],
1574
1581
  html[data-dsh-prts] [data-prts-floating-glass="listbox"],
@@ -1592,6 +1599,7 @@ html[data-dsh-prts] [data-prts-floating-glass="dialog"] {
1592
1599
  -webkit-backdrop-filter: none;
1593
1600
  }
1594
1601
 
1602
+ html[data-dsh-prts] [data-menu-material][class*="_7KE1Ra_menu"] :is([role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]),
1595
1603
  html[data-dsh-prts] [data-prts-floating-item] {
1596
1604
  min-height: 38px;
1597
1605
  border-radius: var(--prts-radius-control) !important;
@@ -1906,3 +1914,91 @@ html[data-dsh-prts][data-prts-conversation-style="deck-chat"] {
1906
1914
  & :is([data-chat-flow-kind="user"], [data-submission-echo]:not([data-pending-steering])) [class$="_bubble"]::before,
1907
1915
  & [data-message-role="user"]::before { left: auto; right: -9px; transform: scaleX(-1); }
1908
1916
  }
1917
+
1918
+ /* The upstream component replaces only the composer's two background plates. */
1919
+ html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::before,
1920
+ html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::after {
1921
+ content: none;
1922
+ }
1923
+ html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback]) > [data-prts-composer-glass-surface] {
1924
+ position: absolute !important;
1925
+ inset: -16px;
1926
+ z-index: 0 !important;
1927
+ pointer-events: none;
1928
+ }
1929
+
1930
+ /* The host's sticky dock fades to opaque after 36px; let the glass see the chat. */
1931
+ html[data-dsh-prts] [data-composer-seat]:has([data-prts-composer-glass-active]) {
1932
+ background: transparent !important;
1933
+ }
1934
+
1935
+
1936
+ /* Optional popup material changes neither popup geometry nor its border/shadow. */
1937
+ html[data-dsh-prts][data-prts-composer-enhanced] {
1938
+ --prts-composer-menu-tint: rgba(25, 32, 38, .85);
1939
+ --prts-composer-menu-filter: blur(16px) saturate(1.15);
1940
+ }
1941
+ html[data-dsh-prts][data-prts-composer-enhanced][data-prts-scheme="light"] {
1942
+ --prts-composer-menu-tint: rgba(244, 249, 251, .85);
1943
+ }
1944
+ html[data-dsh-prts][data-prts-composer-enhanced] :is(
1945
+ [data-prts-glass-menu],
1946
+ [data-menu-material][class*="_7KE1Ra_menu"]
1947
+ ) {
1948
+ background: var(--prts-composer-menu-tint) !important;
1949
+ backdrop-filter: var(--prts-composer-menu-filter) !important;
1950
+ -webkit-backdrop-filter: var(--prts-composer-menu-filter) !important;
1951
+ }
1952
+ /* Reuse the host material plate when present; do not stack two blur filters. */
1953
+ html[data-dsh-prts][data-prts-composer-enhanced] :is(
1954
+ [data-prts-glass-menu],
1955
+ [data-menu-material][class*="_7KE1Ra_menu"]
1956
+ ):has(> [aria-hidden="true"][class*="_material_"]) {
1957
+ background: transparent !important;
1958
+ backdrop-filter: none !important;
1959
+ -webkit-backdrop-filter: none !important;
1960
+ }
1961
+ html[data-dsh-prts][data-prts-composer-enhanced] :is(
1962
+ [data-prts-glass-menu],
1963
+ [data-menu-material][class*="_7KE1Ra_menu"]
1964
+ ) > [aria-hidden="true"][class*="_material_"] {
1965
+ background: var(--prts-composer-menu-tint) !important;
1966
+ backdrop-filter: var(--prts-composer-menu-filter) !important;
1967
+ -webkit-backdrop-filter: var(--prts-composer-menu-filter) !important;
1968
+ }
1969
+ html[data-dsh-prts][data-prts-composer-enhanced] [data-prts-glass-menu] [data-prts-glass-menu]:not([data-menu-material]) {
1970
+ background: transparent !important;
1971
+ backdrop-filter: none !important;
1972
+ -webkit-backdrop-filter: none !important;
1973
+ box-shadow: none !important;
1974
+ }
1975
+
1976
+ /* The live CSS outline owns geometry; asynchronously decoded artwork only refracts. */
1977
+ html[data-dsh-prts] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
1978
+ mask: none !important;
1979
+ -webkit-mask: none !important;
1980
+ opacity: 1 !important;
1981
+ clip-path: polygon(19px 16px, calc(50% - 42px) 16px, calc(50% - 37px) 21px, calc(50% + 37px) 21px, calc(50% + 42px) 16px, calc(100% - 19px) 16px, calc(100% - 16px) 19px, calc(100% - 16px) calc(100% - 19px), calc(100% - 19px) calc(100% - 16px), 19px calc(100% - 16px), 16px calc(100% - 19px), 16px 19px);
1982
+ }
1983
+ html[data-dsh-prts] [data-prts-composer-glass-active] :is(.glass-surface__line, .glass-surface__glow) {
1984
+ display: none;
1985
+ }
1986
+ html[data-dsh-prts] :is([data-composer-card], [data-prts-composer-fallback])[data-prts-composer-glass-active]::before {
1987
+ content: "";
1988
+ position: absolute;
1989
+ inset: 0;
1990
+ z-index: 1;
1991
+ pointer-events: none;
1992
+ background: var(--prts-line-strong);
1993
+ clip-path: polygon(evenodd,
1994
+ 3px 0, calc(50% - 42px) 0, calc(50% - 37px) 5px, calc(50% + 37px) 5px, calc(50% + 42px) 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 3px, 3px 0,
1995
+ 3px 1px, 1px 3px, 1px calc(100% - 3px), 3px calc(100% - 1px), calc(100% - 3px) calc(100% - 1px), calc(100% - 1px) calc(100% - 3px), calc(100% - 1px) 3px, calc(100% - 3px) 1px, calc(50% + 42px) 1px, calc(50% + 37px) 6px, calc(50% - 37px) 6px, calc(50% - 42px) 1px, 3px 1px);
1996
+ }
1997
+
1998
+ /* A restrained tint/sheen keeps the material legible over a blank backdrop too. */
1999
+ html[data-dsh-prts] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
2000
+ background: linear-gradient(135deg, rgba(255, 255, 255, .055), transparent 65%), rgba(31, 40, 47, .5);
2001
+ }
2002
+ html[data-dsh-prts][data-prts-scheme="light"] [data-prts-composer-glass-active] > [data-prts-composer-glass-surface] > .glass-surface {
2003
+ background: linear-gradient(135deg, rgba(255, 255, 255, .2), transparent 65%), rgba(244, 249, 251, .5);
2004
+ }
@@ -150,6 +150,15 @@ html[data-dsh-prts] [data-prts-session-time] {
150
150
  transition: opacity 120ms ease, transform 220ms var(--prts-ease-spring);
151
151
  }
152
152
 
153
+ /* DSH keeps its pin in the row's trailing slot; move that slot inside our face. */
154
+ html[data-dsh-prts] [data-prts-session-row] > :is([aria-label="Pinned"], [class*="_pinIndicator"]) {
155
+ margin-right: calc(var(--prts-row-end-reserve) + 6px);
156
+ }
157
+
158
+ html[data-dsh-prts] [data-prts-session-row]:has(> :is([aria-label="Pinned"], [class*="_pinIndicator"])) [data-prts-session-time] {
159
+ margin-right: 8px;
160
+ }
161
+
153
162
  html[data-dsh-prts] [data-prts-session-row]:hover [data-prts-session-time] {
154
163
  opacity: 0;
155
164
  }
@@ -872,6 +872,9 @@ html[data-dsh-prts] [data-prts-avatar-crop]{position:fixed;inset:0;margin:auto;b
872
872
 
873
873
  html[data-dsh-prts]{
874
874
  [data-prts-conversation-settings]{display:grid;gap:16px;padding:18px;border:1px solid var(--prts-line);background:var(--prts-panel)}
875
+ & [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; padding: 8px 0; }
876
+ & [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] > span { display: grid; gap: 4px; min-width: 0; }
877
+ & [data-prts-theme-settings] :is([data-prts-baker-options], [data-prts-composer-glass-setting]) [data-prts-setting-row] > [data-prts-setting-switch] { justify-self: start; }
875
878
  [data-prts-conversation-settings] header{display:grid;gap:5px}
876
879
  [data-prts-conversation-settings] small{display:block;color:var(--prts-muted);font-size:12px;line-height:1.6}
877
880
  [data-prts-conversation-cards]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@@ -0,0 +1,168 @@
1
+ .glass-surface {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ overflow: hidden;
7
+ transition: opacity 0.26s ease-out;
8
+ }
9
+
10
+ .glass-surface__filter {
11
+ width: 100%;
12
+ height: 100%;
13
+ pointer-events: none;
14
+ position: absolute;
15
+ inset: 0;
16
+ opacity: 0;
17
+ z-index: -1;
18
+ }
19
+
20
+ .glass-surface__content {
21
+ width: 100%;
22
+ height: 100%;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ padding: 0.5rem;
27
+ border-radius: inherit;
28
+ position: relative;
29
+ z-index: 1;
30
+ }
31
+
32
+ .glass-surface--svg {
33
+ background: light-dark(hsl(0 0% 100% / var(--glass-frost, 0)), hsl(0 0% 0% / var(--glass-frost, 0)));
34
+ backdrop-filter: var(--filter-id, url(#glass-filter)) saturate(var(--glass-saturation, 1));
35
+ box-shadow:
36
+ 0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%))
37
+ inset,
38
+ 0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%))
39
+ inset,
40
+ 0px 4px 16px rgba(17, 17, 26, 0.05),
41
+ 0px 8px 24px rgba(17, 17, 26, 0.05),
42
+ 0px 16px 56px rgba(17, 17, 26, 0.05),
43
+ 0px 4px 16px rgba(17, 17, 26, 0.05) inset,
44
+ 0px 8px 24px rgba(17, 17, 26, 0.05) inset,
45
+ 0px 16px 56px rgba(17, 17, 26, 0.05) inset;
46
+ }
47
+
48
+ .glass-surface--webgl {
49
+ box-shadow:
50
+ 0px 4px 16px rgba(17, 17, 26, 0.05),
51
+ 0px 8px 24px rgba(17, 17, 26, 0.05),
52
+ 0px 16px 56px rgba(17, 17, 26, 0.05);
53
+ }
54
+
55
+ .glass-surface__canvas,
56
+ .glass-surface__frame {
57
+ position: absolute;
58
+ inset: 0;
59
+ width: 100%;
60
+ height: 100%;
61
+ border-radius: inherit;
62
+ pointer-events: none;
63
+ }
64
+
65
+ .glass-surface__frame {
66
+ background: light-dark(hsl(0 0% 100% / var(--glass-frost, 0)), hsl(0 0% 0% / var(--glass-frost, 0)));
67
+ box-shadow:
68
+ 0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%))
69
+ inset,
70
+ 0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%))
71
+ inset,
72
+ 0px 4px 16px rgba(17, 17, 26, 0.05) inset,
73
+ 0px 8px 24px rgba(17, 17, 26, 0.05) inset,
74
+ 0px 16px 56px rgba(17, 17, 26, 0.05) inset;
75
+ }
76
+
77
+ .glass-surface--fallback {
78
+ background: light-dark(
79
+ hsl(0 0% 100% / calc(0.12 + var(--glass-frost, 0) * 0.5)),
80
+ hsl(0 0% 100% / calc(0.04 + var(--glass-frost, 0) * 0.3))
81
+ );
82
+ -webkit-backdrop-filter: blur(12px) saturate(calc(var(--glass-saturation, 1) * 1.4)) brightness(1.04);
83
+ backdrop-filter: blur(12px) saturate(calc(var(--glass-saturation, 1) * 1.4)) brightness(1.04);
84
+ box-shadow:
85
+ inset 0 1px 0 0 light-dark(hsl(0 0% 100% / 0.85), hsl(0 0% 100% / 0.3)),
86
+ inset 0 -1px 0 0 light-dark(hsl(0 0% 100% / 0.35), hsl(0 0% 100% / 0.08)),
87
+ 0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 88%), color-mix(in oklch, white, transparent 72%))
88
+ inset,
89
+ 0 0 12px 3px light-dark(color-mix(in oklch, white, transparent 72%), color-mix(in oklch, white, transparent 90%))
90
+ inset,
91
+ 0px 4px 16px rgba(17, 17, 26, 0.06),
92
+ 0px 8px 24px rgba(17, 17, 26, 0.06),
93
+ 0px 16px 56px rgba(17, 17, 26, 0.06);
94
+ }
95
+
96
+ .glass-surface__sheen,
97
+ .glass-surface__rim {
98
+ position: absolute;
99
+ inset: 0;
100
+ border-radius: inherit;
101
+ pointer-events: none;
102
+ }
103
+
104
+ .glass-surface__sheen {
105
+ background: linear-gradient(
106
+ 135deg,
107
+ light-dark(hsl(0 0% 100% / 0.42), hsl(0 0% 100% / 0.14)) 0%,
108
+ transparent 42%,
109
+ transparent 64%,
110
+ light-dark(hsl(0 0% 100% / 0.18), hsl(0 0% 100% / 0.05)) 100%
111
+ );
112
+ }
113
+
114
+ .glass-surface__rim {
115
+ padding: 3px;
116
+ background: linear-gradient(
117
+ 150deg,
118
+ light-dark(hsl(0 0% 100% / 0.7), hsl(0 0% 100% / 0.34)),
119
+ light-dark(hsl(0 0% 100% / 0.1), hsl(0 0% 100% / 0.03)) 45%,
120
+ light-dark(hsl(0 0% 100% / 0.08), hsl(0 0% 100% / 0.02)) 60%,
121
+ light-dark(hsl(0 0% 100% / 0.42), hsl(0 0% 100% / 0.18))
122
+ );
123
+ -webkit-mask:
124
+ linear-gradient(#000 0 0) content-box,
125
+ linear-gradient(#000 0 0);
126
+ -webkit-mask-composite: xor;
127
+ mask:
128
+ linear-gradient(#000 0 0) content-box exclude,
129
+ linear-gradient(#000 0 0);
130
+ }
131
+
132
+ .glass-surface__line,
133
+ .glass-surface__glow {
134
+ position: absolute;
135
+ inset: 0;
136
+ pointer-events: none;
137
+ -webkit-mask-size: 100% 100%;
138
+ mask-size: 100% 100%;
139
+ }
140
+
141
+ .glass-surface--svg .glass-surface__line,
142
+ .glass-surface--webgl .glass-surface__line {
143
+ background: light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%));
144
+ }
145
+
146
+ .glass-surface--svg .glass-surface__glow,
147
+ .glass-surface--webgl .glass-surface__glow {
148
+ background: light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%));
149
+ }
150
+
151
+ .glass-surface--fallback .glass-surface__line {
152
+ background: light-dark(color-mix(in oklch, black, transparent 88%), color-mix(in oklch, white, transparent 72%));
153
+ }
154
+
155
+ .glass-surface--fallback .glass-surface__glow {
156
+ background: light-dark(color-mix(in oklch, white, transparent 72%), color-mix(in oklch, white, transparent 90%));
157
+ }
158
+
159
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
160
+ .glass-surface--fallback {
161
+ background: light-dark(hsl(0 0% 100% / 0.72), hsl(0 0% 12% / 0.72));
162
+ }
163
+ }
164
+
165
+ .glass-surface:focus-visible {
166
+ outline: 2px solid light-dark(#007aff, #0a84ff);
167
+ outline-offset: 2px;
168
+ }