Spaces:
Sleeping
Sleeping
Hide Gradio menu and add packing favicon
Browse files- app.py +49 -3
- assets/favicon.svg +4 -0
app.py
CHANGED
|
@@ -29,6 +29,7 @@ from packing_benchmark.verifier import (
|
|
| 29 |
SPACE_ROOT = Path(__file__).resolve().parent
|
| 30 |
DATA_DIR = SPACE_ROOT / "data"
|
| 31 |
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 32 |
HYDRATE_STATUS = maybe_hydrate_from_dataset(DATA_DIR)
|
| 33 |
STORE = SolutionStore(DATA_DIR)
|
| 34 |
|
|
@@ -218,6 +219,9 @@ footer,
|
|
| 218 |
.gradio-container .footer,
|
| 219 |
.gradio-container .built-with,
|
| 220 |
.gradio-container .api-docs,
|
|
|
|
|
|
|
|
|
|
| 221 |
.gradio-container a[href*="view=api"],
|
| 222 |
.gradio-container a[href*="/api"],
|
| 223 |
.gradio-container button[aria-label="Settings"],
|
|
@@ -226,8 +230,14 @@ footer,
|
|
| 226 |
.gradio-container button[aria-label="More options"],
|
| 227 |
.gradio-container button[title="More"],
|
| 228 |
.gradio-container button[title="More options"],
|
|
|
|
| 229 |
.gradio-container [data-testid="settings-button"],
|
| 230 |
-
.gradio-container [data-testid="more-button"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 231 |
display: none !important;
|
| 232 |
}
|
| 233 |
|
|
@@ -1132,6 +1142,32 @@ APP_JS = """
|
|
| 1132 |
tab.click();
|
| 1133 |
return true;
|
| 1134 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1135 |
const isNativeHomeControl = (element) => {
|
| 1136 |
if (!element) {
|
| 1137 |
return false;
|
|
@@ -1187,9 +1223,19 @@ APP_JS = """
|
|
| 1187 |
document.addEventListener("pointerdown", routeFromClick, true);
|
| 1188 |
document.addEventListener("click", routeFromClick, true);
|
| 1189 |
document.addEventListener("click", nativeHomeFallback, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1190 |
}
|
| 1191 |
"""
|
| 1192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1193 |
SAMPLE_JSON = """{
|
| 1194 |
"schema_version": "packing-benchmark/v1",
|
| 1195 |
"case": "triintri@1",
|
|
@@ -2219,7 +2265,7 @@ def prewarm_pages() -> None:
|
|
| 2219 |
family_page_html(setup)
|
| 2220 |
|
| 2221 |
|
| 2222 |
-
with gr.Blocks(**supported_gradio_kwargs(gr.Blocks, title="Packing Benchmark", analytics_enabled=False)) as demo:
|
| 2223 |
with gr.Tabs():
|
| 2224 |
with gr.Tab("Home"):
|
| 2225 |
browse_page = gr.HTML(directory_html())
|
|
@@ -2312,5 +2358,5 @@ if __name__ == "__main__":
|
|
| 2312 |
js=APP_JS,
|
| 2313 |
server_name="0.0.0.0",
|
| 2314 |
ssr_mode=False,
|
| 2315 |
-
**supported_call_kwargs(demo.launch, show_api=False),
|
| 2316 |
)
|
|
|
|
| 29 |
SPACE_ROOT = Path(__file__).resolve().parent
|
| 30 |
DATA_DIR = SPACE_ROOT / "data"
|
| 31 |
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
| 32 |
+
FAVICON_PATH = SPACE_ROOT / "assets" / "favicon.svg"
|
| 33 |
HYDRATE_STATUS = maybe_hydrate_from_dataset(DATA_DIR)
|
| 34 |
STORE = SolutionStore(DATA_DIR)
|
| 35 |
|
|
|
|
| 219 |
.gradio-container .footer,
|
| 220 |
.gradio-container .built-with,
|
| 221 |
.gradio-container .api-docs,
|
| 222 |
+
.gradio-container .app > header,
|
| 223 |
+
.gradio-container .app > .header,
|
| 224 |
+
.gradio-container .contain > button:not(.site-nav-link),
|
| 225 |
.gradio-container a[href*="view=api"],
|
| 226 |
.gradio-container a[href*="/api"],
|
| 227 |
.gradio-container button[aria-label="Settings"],
|
|
|
|
| 230 |
.gradio-container button[aria-label="More options"],
|
| 231 |
.gradio-container button[title="More"],
|
| 232 |
.gradio-container button[title="More options"],
|
| 233 |
+
.gradio-container button[aria-haspopup="menu"],
|
| 234 |
.gradio-container [data-testid="settings-button"],
|
| 235 |
+
.gradio-container [data-testid="more-button"],
|
| 236 |
+
.gradio-container [data-testid="app-menu"],
|
| 237 |
+
.gradio-container [data-testid="menu-button"],
|
| 238 |
+
.gradio-container [class*="settings"],
|
| 239 |
+
.gradio-container [class*="kebab"],
|
| 240 |
+
.gradio-container [class*="ellipsis"] {
|
| 241 |
display: none !important;
|
| 242 |
}
|
| 243 |
|
|
|
|
| 1142 |
tab.click();
|
| 1143 |
return true;
|
| 1144 |
};
|
| 1145 |
+
const isInsideBenchmarkUi = (element) => Boolean(
|
| 1146 |
+
element.closest(".packing-shell, .site-nav, .submit-shell, .schema-shell, .record-modal, .modal-panel")
|
| 1147 |
+
);
|
| 1148 |
+
const hideGradioChrome = () => {
|
| 1149 |
+
Array.from(document.querySelectorAll("footer, button, a")).forEach((element) => {
|
| 1150 |
+
if (isInsideBenchmarkUi(element)) {
|
| 1151 |
+
return;
|
| 1152 |
+
}
|
| 1153 |
+
const labels = normalizedLabels(element).join(" ");
|
| 1154 |
+
const text = (element.innerText || element.textContent || "").replace(/\\s+/g, "").trim();
|
| 1155 |
+
const rect = element.getBoundingClientRect ? element.getBoundingClientRect() : null;
|
| 1156 |
+
const iconOnlyTopRight = rect
|
| 1157 |
+
&& rect.top >= 0
|
| 1158 |
+
&& rect.top < 84
|
| 1159 |
+
&& rect.right > window.innerWidth - 120
|
| 1160 |
+
&& rect.width <= 84
|
| 1161 |
+
&& rect.height <= 84
|
| 1162 |
+
&& Boolean(element.querySelector && element.querySelector("svg"));
|
| 1163 |
+
const chromeText = /settings|more|menu|useviaapi|builtwithgradio/.test(labels.replace(/\\s+/g, ""))
|
| 1164 |
+
|| /^(\\.\\.\\.|…|⋯|⋮)$/.test(text);
|
| 1165 |
+
if (chromeText || iconOnlyTopRight || element.tagName.toLowerCase() === "footer") {
|
| 1166 |
+
element.style.setProperty("display", "none", "important");
|
| 1167 |
+
element.setAttribute("aria-hidden", "true");
|
| 1168 |
+
}
|
| 1169 |
+
});
|
| 1170 |
+
};
|
| 1171 |
const isNativeHomeControl = (element) => {
|
| 1172 |
if (!element) {
|
| 1173 |
return false;
|
|
|
|
| 1223 |
document.addEventListener("pointerdown", routeFromClick, true);
|
| 1224 |
document.addEventListener("click", routeFromClick, true);
|
| 1225 |
document.addEventListener("click", nativeHomeFallback, true);
|
| 1226 |
+
hideGradioChrome();
|
| 1227 |
+
window.setTimeout(hideGradioChrome, 100);
|
| 1228 |
+
window.setTimeout(hideGradioChrome, 700);
|
| 1229 |
+
window.setTimeout(hideGradioChrome, 1800);
|
| 1230 |
+
new MutationObserver(hideGradioChrome).observe(document.body, {childList: true, subtree: true});
|
| 1231 |
}
|
| 1232 |
"""
|
| 1233 |
|
| 1234 |
+
APP_HEAD = """
|
| 1235 |
+
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2248%22%20height%3D%2248%22%20rx%3D%224%22%20fill%3D%22%23fffdf7%22%20stroke%3D%22%23151515%22%20stroke-width%3D%225%22%2F%3E%3Cpath%20d%3D%22M32%2016%2051%2048H13Z%22%20fill%3D%22%23e69f00%22%20stroke%3D%22%23151515%22%20stroke-width%3D%224%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E">
|
| 1236 |
+
<link rel="shortcut icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2248%22%20height%3D%2248%22%20rx%3D%224%22%20fill%3D%22%23fffdf7%22%20stroke%3D%22%23151515%22%20stroke-width%3D%225%22%2F%3E%3Cpath%20d%3D%22M32%2016%2051%2048H13Z%22%20fill%3D%22%23e69f00%22%20stroke%3D%22%23151515%22%20stroke-width%3D%224%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E">
|
| 1237 |
+
"""
|
| 1238 |
+
|
| 1239 |
SAMPLE_JSON = """{
|
| 1240 |
"schema_version": "packing-benchmark/v1",
|
| 1241 |
"case": "triintri@1",
|
|
|
|
| 2265 |
family_page_html(setup)
|
| 2266 |
|
| 2267 |
|
| 2268 |
+
with gr.Blocks(**supported_gradio_kwargs(gr.Blocks, title="Packing Benchmark", analytics_enabled=False, head=APP_HEAD)) as demo:
|
| 2269 |
with gr.Tabs():
|
| 2270 |
with gr.Tab("Home"):
|
| 2271 |
browse_page = gr.HTML(directory_html())
|
|
|
|
| 2358 |
js=APP_JS,
|
| 2359 |
server_name="0.0.0.0",
|
| 2360 |
ssr_mode=False,
|
| 2361 |
+
**supported_call_kwargs(demo.launch, show_api=False, favicon_path=str(FAVICON_PATH)),
|
| 2362 |
)
|
assets/favicon.svg
ADDED
|
|