workpeg 0.97.1__tar.gz → 0.97.2__tar.gz
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.
- {workpeg-0.97.1/src/workpeg.egg-info → workpeg-0.97.2}/PKG-INFO +1 -1
- {workpeg-0.97.1 → workpeg-0.97.2}/pyproject.toml +1 -1
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/runtime/scaffold.js +22 -0
- {workpeg-0.97.1 → workpeg-0.97.2/src/workpeg.egg-info}/PKG-INFO +1 -1
- {workpeg-0.97.1 → workpeg-0.97.2}/LICENSE +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/MANIFEST.in +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/README.md +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/setup.cfg +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/build.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/cdn.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/cli.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/config.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/context.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/create_new.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/run.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/runtime.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/submit.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/Dockerfile +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/LICENSE +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/README.md +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/app/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/app/main.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/templates/functions/requirements.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/actions.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/app.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/build.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/compiler/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/compiler/ast_parser.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/compiler/ir.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/compiler/js_generator.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/create.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/fake_cloud.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/minify.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/runtime/ai.js +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/runtime/pegment.css +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/runtime/workpeg-runtime.js +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/scaffold.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/serve.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/state.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/validators.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/watcher.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/__init__.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/base.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/canvas.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/display.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/forms.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/futures.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/gestures.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/interactive.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/ui/widgets/layout.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg/utils.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg.egg-info/SOURCES.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg.egg-info/dependency_links.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg.egg-info/entry_points.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg.egg-info/requires.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/src/workpeg.egg-info/top_level.txt +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_build.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_cdn.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_cdn_publish.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_changelog.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_changelog_guard.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_cli.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_config.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_context.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_create_new.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_release_script.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_run.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_runtime.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_submit.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_utils.py +0 -0
- {workpeg-0.97.1 → workpeg-0.97.2}/tests/test_watch_pipeline.py +0 -0
|
@@ -409,12 +409,26 @@
|
|
|
409
409
|
return row;
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
+
// A full-screen "Signing out…" cover, shown the instant Log out is clicked so
|
|
413
|
+
// the DELETE round-trip + redirect never reads as an unresponsive pause. It
|
|
414
|
+
// stays until the redirect navigates away, so there's nothing to remove.
|
|
415
|
+
function showLogoutOverlay() {
|
|
416
|
+
if (typeof document === "undefined" || !document.body) return;
|
|
417
|
+
if (document.getElementById("wps-logout-overlay")) return; // idempotent
|
|
418
|
+
var ov = el("div", "wps-logout-overlay", { attrs: {
|
|
419
|
+
id: "wps-logout-overlay", role: "status", "aria-label": "Signing out" } });
|
|
420
|
+
ov.appendChild(el("div", "wps-spin"));
|
|
421
|
+
ov.appendChild(el("div", "wps-logout-label", { text: "Signing out…" }));
|
|
422
|
+
document.body.appendChild(ov);
|
|
423
|
+
}
|
|
424
|
+
|
|
412
425
|
// Log out — mirrors space's handlelogOut: DELETE the token (the server drops
|
|
413
426
|
// the HttpOnly access/refresh cookies), wipe the readable auth cookies, then
|
|
414
427
|
// bounce to the accounts login (the same redirect the auth gate uses). A
|
|
415
428
|
// direct credentialed fetch — the workpeg.* client's allowlist (tables /
|
|
416
429
|
// rows / CDN) intentionally won't reach /users/token/.
|
|
417
430
|
function logout() {
|
|
431
|
+
showLogoutOverlay(); // immediate feedback before the async pause
|
|
418
432
|
var api = String(WP().apiBase || "https://api.workpeg.com")
|
|
419
433
|
.replace(/\/+$/, "");
|
|
420
434
|
var finish = function () {
|
|
@@ -904,6 +918,14 @@
|
|
|
904
918
|
"border-top-color:var(--color-text-tertiary);",
|
|
905
919
|
"animation:wps-spin 0.8s linear infinite}",
|
|
906
920
|
"@keyframes wps-spin{to{transform:rotate(360deg)}}",
|
|
921
|
+
/* the "Signing out…" cover — an instant full-screen loader on Log out */
|
|
922
|
+
".wps-logout-overlay{position:fixed;inset:0;z-index:2147483000;",
|
|
923
|
+
"display:flex;flex-direction:column;align-items:center;",
|
|
924
|
+
"justify-content:center;gap:14px;background:var(--color-bg-default);",
|
|
925
|
+
"animation:wps-logout-fade 0.12s ease}",
|
|
926
|
+
".wps-logout-overlay .wps-spin{width:28px;height:28px;border-width:3px}",
|
|
927
|
+
".wps-logout-label{color:var(--color-text-secondary);font-size:14px}",
|
|
928
|
+
"@keyframes wps-logout-fade{from{opacity:0}to{opacity:1}}",
|
|
907
929
|
|
|
908
930
|
/* the user / business switcher */
|
|
909
931
|
".wps-user{display:flex;align-items:center;width:100%;",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|