File size: 4,309 Bytes
71e4446
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* ── hide all avatars ── */
#hy-chat [class*="avatar"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
}

/* ── hide Gradio default action buttons & icons ── */
#hy-chat button[aria-label="Copy message"],
#hy-chat button[title="Copy message"],
#hy-chat button[aria-label="Share message"],
#hy-chat button[title="Share message"],
#hy-chat button[aria-label="Delete message"],
#hy-chat button[title="Delete message"],
#hy-chat button[aria-label="Retry"],
#hy-chat button[title="Retry"],
#hy-chat button[aria-label="Undo"],
#hy-chat button[title="Undo"],
#hy-chat .message-buttons-bot,
#hy-chat .message-buttons-user,
#hy-chat .bot .icon-button-wrapper,
#hy-chat .user .icon-button-wrapper,
#hy-chat .bot .icon-button,
#hy-chat .user .icon-button,
#hy-chat .likeable {
    display: none !important;
}

/*
 * NOTE: do NOT use a blanket `.message-row button:not(.html-preview-btn)`
 * rule here — it would also hide our per-code-block "Copy" button that
 * lives inside .hy-codeblock-header at the top-right of each fenced
 * code block. The specific aria-label/title selectors above already
 * cover the message-level action buttons we want to hide.
 */

/* ── hide stray images/svgs inside messages ── */
#hy-chat .message-row img:not([class*="markdown"]),
#hy-chat .message-row svg {
    display: none !important;
}
/* …but keep the SVGs inside our custom code-copy-btn visible.
 * Specificity is boosted via duplicated #hy-chat to beat the hide rule. */
#hy-chat#hy-chat .message-row .code-copy-btn,
#hy-chat#hy-chat .message-row .code-copy-btn svg,
#hy-chat#hy-chat .message-row .code-copy-btn svg * {
    display: inline-flex !important;
}
#hy-chat#hy-chat .message-row .code-copy-btn svg {
    display: block !important;
}
/* …and keep SVGs inside KaTeX math formulas visible.
 * KaTeX uses SVGs for radicals, stretchy delimiters, fraction lines, etc. */
#hy-chat#hy-chat .message-row .katex svg,
#hy-chat#hy-chat .message-row .katex-display svg {
    display: inline !important;
}

/* ── Hide scroll-to-bottom button (too jarring in both themes) ── */
#hy-chat button.scroll-hide,
#hy-chat button[aria-label*="scroll" i],
#hy-chat button[aria-label*="bottom" i],
#hy-chat .scroll-to-bottom,
#hy-chat [class*="scroll-button"],
#hy-chat [class*="scrollButton"],
#hy-chat button[class*="scroll"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ── Hide the busy-marker component completely ──
 * Driven by chat.py: contains either "" (idle) or a single
 * <span data-hy-streaming="1"> (streaming). It is a pure machine signal
 * read by static/app.js; it must never occupy any visible layout
 * regardless of value, and must never trap pointer/scroll/focus events. */
#hy-busy-marker,
#hy-busy-marker * {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    user-select: none !important;
}

/* ── Hide all Gradio progress / loading status indicators globally ── */
.progress-bar-wrap,
.progress-bar,
.progress-text,
.progress,
.eta-bar,
[data-testid="loader"],
.loader,
.wrap.default.minimal,
.gradio-container .status-wrap,
.gradio-container .status,
.gradio-container .meta-text,
.gradio-container .meta-text-center,
.gradio-container [class*="progress"],
.gradio-container [class*="Progress"],
.gradio-container .generating,
#hy-chat .generating,
#hy-chat .progress,
#hy-chat .progress-text,
#hy-chat [class*="progress"],
#hy-chat [class*="loading"],
#hy-chat [class*="loader"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    width: 0 !important;
}