@quilltap/theme-storybook 1.0.52 → 1.0.54
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/{chunk-TD4WYZZI.mjs → chunk-3RAUK5HZ.mjs} +17 -1
- package/dist/index.css +17 -2
- package/dist/index.js +17 -1
- package/dist/index.mjs +1 -1
- package/dist/stories/index.js +17 -1
- package/dist/stories/index.mjs +1 -1
- package/package.json +1 -1
- package/src/css/qt-components.css +31 -2
- package/src/stories/components/Chat.tsx +21 -1
|
@@ -1683,7 +1683,7 @@ var Chat = () => {
|
|
|
1683
1683
|
] }),
|
|
1684
1684
|
/* @__PURE__ */ jsxs14("section", { style: { marginBottom: "2rem" }, children: [
|
|
1685
1685
|
/* @__PURE__ */ jsx14("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Staff Announcements" }),
|
|
1686
|
-
/* @__PURE__ */ jsx14("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls." }),
|
|
1686
|
+
/* @__PURE__ */ jsx14("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls. An announcement whispered to named participants carries the whisper\u2019s border colour and names its audience, so a private aside is distinguishable from a public one without expanding it." }),
|
|
1687
1687
|
/* @__PURE__ */ jsxs14("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
|
|
1688
1688
|
/* @__PURE__ */ jsxs14("button", { type: "button", className: "qt-chat-system-bar", children: [
|
|
1689
1689
|
/* @__PURE__ */ jsx14("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-high", "aria-hidden": "true" }),
|
|
@@ -1713,7 +1713,23 @@ var Chat = () => {
|
|
|
1713
1713
|
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-kind", children: "project information" }),
|
|
1714
1714
|
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-time", children: "4:14 PM" }),
|
|
1715
1715
|
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1716
|
+
] }),
|
|
1717
|
+
/* @__PURE__ */ jsxs14("button", { type: "button", className: "qt-chat-announcement-chip qt-chat-announcement-chip-whisper", children: [
|
|
1718
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1719
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1720
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1721
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-whisper", children: "to Amy" }),
|
|
1722
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1723
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1716
1724
|
] })
|
|
1725
|
+
] }),
|
|
1726
|
+
/* @__PURE__ */ jsxs14("button", { type: "button", className: "qt-chat-system-bar qt-chat-system-bar-expanded", children: [
|
|
1727
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1728
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1729
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1730
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-whisper", children: "to Amy, Bartholomew" }),
|
|
1731
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1732
|
+
/* @__PURE__ */ jsx14("span", { className: "qt-chat-system-bar-chevron qt-chat-system-bar-chevron-down", "aria-hidden": "true", children: "\u203A" })
|
|
1717
1733
|
] })
|
|
1718
1734
|
] })
|
|
1719
1735
|
] }),
|
package/dist/index.css
CHANGED
|
@@ -429,7 +429,7 @@ body {
|
|
|
429
429
|
--qt-chat-whisper-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 60%, #9b8ec4 40%);
|
|
430
430
|
--qt-chat-whisper-fg: var(--qt-chat-assistant-fg);
|
|
431
431
|
--qt-chat-whisper-border: #9b8ec4;
|
|
432
|
-
--qt-chat-whisper-label-fg: #
|
|
432
|
+
--qt-chat-whisper-label-fg: #5c447e;
|
|
433
433
|
--qt-chat-silent-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 65%, #7a9e8e 35%);
|
|
434
434
|
--qt-chat-silent-fg: var(--qt-chat-assistant-fg);
|
|
435
435
|
--qt-chat-silent-border: #7a9e8e;
|
|
@@ -1146,6 +1146,15 @@ body {
|
|
|
1146
1146
|
text-overflow: ellipsis;
|
|
1147
1147
|
white-space: nowrap;
|
|
1148
1148
|
}
|
|
1149
|
+
.qt-chat-system-bar-whisper {
|
|
1150
|
+
flex: 0 1 auto;
|
|
1151
|
+
min-width: 0;
|
|
1152
|
+
color: var(--qt-chat-whisper-label-fg);
|
|
1153
|
+
font-style: italic;
|
|
1154
|
+
overflow: hidden;
|
|
1155
|
+
text-overflow: ellipsis;
|
|
1156
|
+
white-space: nowrap;
|
|
1157
|
+
}
|
|
1149
1158
|
.qt-chat-system-bar-time {
|
|
1150
1159
|
color: var(--qt-chat-system-bar-fg);
|
|
1151
1160
|
opacity: 0.75;
|
|
@@ -1196,6 +1205,12 @@ body {
|
|
|
1196
1205
|
flex: 0 1 auto;
|
|
1197
1206
|
max-width: 22ch;
|
|
1198
1207
|
}
|
|
1208
|
+
.qt-chat-announcement-chip .qt-chat-system-bar-whisper {
|
|
1209
|
+
max-width: 18ch;
|
|
1210
|
+
}
|
|
1211
|
+
.qt-chat-announcement-chip-whisper {
|
|
1212
|
+
border-color: var(--qt-chat-whisper-label-fg);
|
|
1213
|
+
}
|
|
1199
1214
|
.qt-chat-announcement-dot {
|
|
1200
1215
|
flex-shrink: 0;
|
|
1201
1216
|
width: 0.5rem;
|
|
@@ -2127,7 +2142,7 @@ body {
|
|
|
2127
2142
|
.dark {
|
|
2128
2143
|
--qt-chat-whisper-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 60%, #6b5b95 40%);
|
|
2129
2144
|
--qt-chat-whisper-border: #6b5b95;
|
|
2130
|
-
--qt-chat-whisper-label-fg: #
|
|
2145
|
+
--qt-chat-whisper-label-fg: #b5a9d1;
|
|
2131
2146
|
--qt-chat-silent-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 65%, #4a7a6a 35%);
|
|
2132
2147
|
--qt-chat-silent-border: #4a7a6a;
|
|
2133
2148
|
--qt-chat-silent-label-fg: #8ab8a4;
|
package/dist/index.js
CHANGED
|
@@ -1793,7 +1793,7 @@ var Chat = () => {
|
|
|
1793
1793
|
] }),
|
|
1794
1794
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
|
|
1795
1795
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Staff Announcements" }),
|
|
1796
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls." }),
|
|
1796
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls. An announcement whispered to named participants carries the whisper\u2019s border colour and names its audience, so a private aside is distinguishable from a public one without expanding it." }),
|
|
1797
1797
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
|
|
1798
1798
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-system-bar", children: [
|
|
1799
1799
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-high", "aria-hidden": "true" }),
|
|
@@ -1823,7 +1823,23 @@ var Chat = () => {
|
|
|
1823
1823
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "project information" }),
|
|
1824
1824
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:14 PM" }),
|
|
1825
1825
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1826
|
+
] }),
|
|
1827
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip qt-chat-announcement-chip-whisper", children: [
|
|
1828
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1829
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1830
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1831
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy" }),
|
|
1832
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1833
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1826
1834
|
] })
|
|
1835
|
+
] }),
|
|
1836
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("button", { type: "button", className: "qt-chat-system-bar qt-chat-system-bar-expanded", children: [
|
|
1837
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1838
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1839
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1840
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy, Bartholomew" }),
|
|
1841
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1842
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "qt-chat-system-bar-chevron qt-chat-system-bar-chevron-down", "aria-hidden": "true", children: "\u203A" })
|
|
1827
1843
|
] })
|
|
1828
1844
|
] })
|
|
1829
1845
|
] }),
|
package/dist/index.mjs
CHANGED
package/dist/stories/index.js
CHANGED
|
@@ -1730,7 +1730,7 @@ var Chat = () => {
|
|
|
1730
1730
|
] }),
|
|
1731
1731
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { style: { marginBottom: "2rem" }, children: [
|
|
1732
1732
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("h3", { style: { fontSize: "1.125rem", fontWeight: 700, marginBottom: "1rem", borderBottom: "1px solid var(--color-border)", paddingBottom: "0.5rem" }, children: "Staff Announcements" }),
|
|
1733
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls." }),
|
|
1733
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { style: { color: "var(--color-muted-foreground)", marginBottom: "1rem" }, children: "Messages authored by a personified feature rather than a character. Each collapses to a one-line bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an importance tier \u2014 filled for high and medium, hollow for low \u2014 so the eye lands on the file changes and arrivals and skims past the time calls. An announcement whispered to named participants carries the whisper\u2019s border colour and names its audience, so a private aside is distinguishable from a public one without expanding it." }),
|
|
1734
1734
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", maxWidth: "32rem" }, children: [
|
|
1735
1735
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("button", { type: "button", className: "qt-chat-system-bar", children: [
|
|
1736
1736
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-high", "aria-hidden": "true" }),
|
|
@@ -1760,7 +1760,23 @@ var Chat = () => {
|
|
|
1760
1760
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-kind", children: "project information" }),
|
|
1761
1761
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:14 PM" }),
|
|
1762
1762
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1763
|
+
] }),
|
|
1764
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("button", { type: "button", className: "qt-chat-announcement-chip qt-chat-announcement-chip-whisper", children: [
|
|
1765
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1766
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1767
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1768
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy" }),
|
|
1769
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1770
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-chevron", "aria-hidden": "true", children: "\u203A" })
|
|
1763
1771
|
] })
|
|
1772
|
+
] }),
|
|
1773
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("button", { type: "button", className: "qt-chat-system-bar qt-chat-system-bar-expanded", children: [
|
|
1774
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-announcement-dot qt-chat-announcement-dot-medium", "aria-hidden": "true" }),
|
|
1775
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-sender", children: "The Host" }),
|
|
1776
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-kind", children: "announcement" }),
|
|
1777
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-whisper", children: "to Amy, Bartholomew" }),
|
|
1778
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-time", children: "4:15 PM" }),
|
|
1779
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "qt-chat-system-bar-chevron qt-chat-system-bar-chevron-down", "aria-hidden": "true", children: "\u203A" })
|
|
1764
1780
|
] })
|
|
1765
1781
|
] })
|
|
1766
1782
|
] }),
|
package/dist/stories/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -334,7 +334,9 @@
|
|
|
334
334
|
--qt-chat-whisper-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 60%, #9b8ec4 40%);
|
|
335
335
|
--qt-chat-whisper-fg: var(--qt-chat-assistant-fg);
|
|
336
336
|
--qt-chat-whisper-border: #9b8ec4;
|
|
337
|
-
--qt-chat-whisper-
|
|
337
|
+
/* Deep enough to clear WCAG AA (4.5:1) against --qt-chat-whisper-bg at this
|
|
338
|
+
label's 0.75rem size; it also tints .qt-chat-system-bar-whisper. */
|
|
339
|
+
--qt-chat-whisper-label-fg: #5c447e;
|
|
338
340
|
|
|
339
341
|
/* Chat: Silent messages — inner thoughts/actions from characters in silent mode */
|
|
340
342
|
--qt-chat-silent-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 65%, #7a9e8e 35%);
|
|
@@ -1257,6 +1259,21 @@
|
|
|
1257
1259
|
white-space: nowrap;
|
|
1258
1260
|
}
|
|
1259
1261
|
|
|
1262
|
+
/**
|
|
1263
|
+
* Whisper audience on an announcement bar or chip ("to Alice, Bob"). Wears the
|
|
1264
|
+
* same ink as the message body's whisper label so a private aside reads the
|
|
1265
|
+
* same whether it is collapsed to a chip or opened in full.
|
|
1266
|
+
*/
|
|
1267
|
+
.qt-chat-system-bar-whisper {
|
|
1268
|
+
flex: 0 1 auto;
|
|
1269
|
+
min-width: 0;
|
|
1270
|
+
color: var(--qt-chat-whisper-label-fg);
|
|
1271
|
+
font-style: italic;
|
|
1272
|
+
overflow: hidden;
|
|
1273
|
+
text-overflow: ellipsis;
|
|
1274
|
+
white-space: nowrap;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1260
1277
|
.qt-chat-system-bar-time {
|
|
1261
1278
|
color: var(--qt-chat-system-bar-fg);
|
|
1262
1279
|
opacity: 0.75;
|
|
@@ -1330,6 +1347,18 @@
|
|
|
1330
1347
|
max-width: 22ch;
|
|
1331
1348
|
}
|
|
1332
1349
|
|
|
1350
|
+
/* Same cap for a long audience list — a whisper to five people must not push
|
|
1351
|
+
the timestamp and chevron off the chip. */
|
|
1352
|
+
.qt-chat-announcement-chip .qt-chat-system-bar-whisper {
|
|
1353
|
+
max-width: 18ch;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
/* A whispered announcement carries the whisper's border colour, so a private
|
|
1357
|
+
aside is distinguishable from a public one before it is ever expanded. */
|
|
1358
|
+
.qt-chat-announcement-chip-whisper {
|
|
1359
|
+
border-color: var(--qt-chat-whisper-label-fg);
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1333
1362
|
/**
|
|
1334
1363
|
* Importance dot before the sender name. Filled for high/medium, hollow for
|
|
1335
1364
|
* low, so the eye lands on what matters and skims past the low-noise chatter.
|
|
@@ -2562,7 +2591,7 @@
|
|
|
2562
2591
|
/* Chat: Whisper messages — dark mode */
|
|
2563
2592
|
--qt-chat-whisper-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 60%, #6b5b95 40%);
|
|
2564
2593
|
--qt-chat-whisper-border: #6b5b95;
|
|
2565
|
-
--qt-chat-whisper-label-fg: #
|
|
2594
|
+
--qt-chat-whisper-label-fg: #b5a9d1;
|
|
2566
2595
|
|
|
2567
2596
|
/* Chat: Silent messages — darker mode variants */
|
|
2568
2597
|
--qt-chat-silent-bg: color-mix(in srgb, var(--qt-chat-assistant-bg) 65%, #4a7a6a 35%);
|
|
@@ -291,7 +291,9 @@ export const Chat: React.FC = () => {
|
|
|
291
291
|
Messages authored by a personified feature rather than a character. Each collapses to a one-line
|
|
292
292
|
bar; a run of consecutive ones packs into a row of content-width chips. The leading dot carries an
|
|
293
293
|
importance tier — filled for high and medium, hollow for low — so the eye lands on the
|
|
294
|
-
file changes and arrivals and skims past the time calls.
|
|
294
|
+
file changes and arrivals and skims past the time calls. An announcement whispered to named
|
|
295
|
+
participants carries the whisper’s border colour and names its audience, so a private aside
|
|
296
|
+
is distinguishable from a public one without expanding it.
|
|
295
297
|
</p>
|
|
296
298
|
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem', maxWidth: '32rem' }}>
|
|
297
299
|
<button type="button" className="qt-chat-system-bar">
|
|
@@ -324,7 +326,25 @@ export const Chat: React.FC = () => {
|
|
|
324
326
|
<span className="qt-chat-system-bar-time">4:14 PM</span>
|
|
325
327
|
<span className="qt-chat-system-bar-chevron" aria-hidden="true">›</span>
|
|
326
328
|
</button>
|
|
329
|
+
<button type="button" className="qt-chat-announcement-chip qt-chat-announcement-chip-whisper">
|
|
330
|
+
<span className="qt-chat-announcement-dot qt-chat-announcement-dot-medium" aria-hidden="true" />
|
|
331
|
+
<span className="qt-chat-system-bar-sender">The Host</span>
|
|
332
|
+
<span className="qt-chat-system-bar-kind">announcement</span>
|
|
333
|
+
<span className="qt-chat-system-bar-whisper">to Amy</span>
|
|
334
|
+
<span className="qt-chat-system-bar-time">4:15 PM</span>
|
|
335
|
+
<span className="qt-chat-system-bar-chevron" aria-hidden="true">›</span>
|
|
336
|
+
</button>
|
|
327
337
|
</div>
|
|
338
|
+
|
|
339
|
+
{/* Whispered announcement as a full-width expanded bar. */}
|
|
340
|
+
<button type="button" className="qt-chat-system-bar qt-chat-system-bar-expanded">
|
|
341
|
+
<span className="qt-chat-announcement-dot qt-chat-announcement-dot-medium" aria-hidden="true" />
|
|
342
|
+
<span className="qt-chat-system-bar-sender">The Host</span>
|
|
343
|
+
<span className="qt-chat-system-bar-kind">announcement</span>
|
|
344
|
+
<span className="qt-chat-system-bar-whisper">to Amy, Bartholomew</span>
|
|
345
|
+
<span className="qt-chat-system-bar-time">4:15 PM</span>
|
|
346
|
+
<span className="qt-chat-system-bar-chevron qt-chat-system-bar-chevron-down" aria-hidden="true">›</span>
|
|
347
|
+
</button>
|
|
328
348
|
</div>
|
|
329
349
|
</section>
|
|
330
350
|
|