@1mancompany/onemancompany 0.7.55 → 0.7.58
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/frontend/style.css +77 -2
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/onemancompany/core/config.py +10 -1
package/frontend/style.css
CHANGED
|
@@ -6907,8 +6907,14 @@ h3.pixel-title { font-size: var(--text-label); }
|
|
|
6907
6907
|
|
|
6908
6908
|
/* ===== Responsive Breakpoints ===== */
|
|
6909
6909
|
|
|
6910
|
-
/* Tablet:
|
|
6910
|
+
/* Tablet: two-column, roster collapses, scale up text */
|
|
6911
6911
|
@media (max-width: 1024px) {
|
|
6912
|
+
:root {
|
|
6913
|
+
--size-1: calc(6px + var(--font-boost));
|
|
6914
|
+
--size-2: calc(8px + var(--font-boost));
|
|
6915
|
+
--size-3: calc(10px + var(--font-boost));
|
|
6916
|
+
--sp-5: 20px;
|
|
6917
|
+
}
|
|
6912
6918
|
#app {
|
|
6913
6919
|
grid-template-columns: 200px 1fr;
|
|
6914
6920
|
grid-template-rows: auto 1fr auto;
|
|
@@ -6925,8 +6931,16 @@ h3.pixel-title { font-size: var(--text-label); }
|
|
|
6925
6931
|
}
|
|
6926
6932
|
}
|
|
6927
6933
|
|
|
6928
|
-
/* Mobile: single column stack */
|
|
6934
|
+
/* Mobile: single column stack, larger text for readability */
|
|
6929
6935
|
@media (max-width: 768px) {
|
|
6936
|
+
:root {
|
|
6937
|
+
--size-1: calc(7px + var(--font-boost));
|
|
6938
|
+
--size-2: calc(9px + var(--font-boost));
|
|
6939
|
+
--size-3: calc(11px + var(--font-boost));
|
|
6940
|
+
--size-4: calc(13px + var(--font-boost));
|
|
6941
|
+
--sp-4: 12px;
|
|
6942
|
+
--sp-5: 16px;
|
|
6943
|
+
}
|
|
6930
6944
|
#app {
|
|
6931
6945
|
grid-template-columns: 1fr;
|
|
6932
6946
|
grid-template-rows: auto auto 200px auto;
|
|
@@ -6965,4 +6979,65 @@ h3.pixel-title { font-size: var(--text-label); }
|
|
|
6965
6979
|
max-height: 120px;
|
|
6966
6980
|
overflow-y: auto;
|
|
6967
6981
|
}
|
|
6982
|
+
.modal-body {
|
|
6983
|
+
padding: var(--sp-3);
|
|
6984
|
+
}
|
|
6985
|
+
.toolbar-icon-btn {
|
|
6986
|
+
padding: var(--sp-2);
|
|
6987
|
+
}
|
|
6988
|
+
}
|
|
6989
|
+
|
|
6990
|
+
/* Small mobile: extra text boost */
|
|
6991
|
+
@media (max-width: 480px) {
|
|
6992
|
+
:root {
|
|
6993
|
+
--size-1: calc(8px + var(--font-boost));
|
|
6994
|
+
--size-2: calc(10px + var(--font-boost));
|
|
6995
|
+
--size-3: calc(12px + var(--font-boost));
|
|
6996
|
+
--size-4: calc(14px + var(--font-boost));
|
|
6997
|
+
}
|
|
6998
|
+
#app {
|
|
6999
|
+
gap: 2px;
|
|
7000
|
+
padding: 2px;
|
|
7001
|
+
}
|
|
7002
|
+
.modal-content {
|
|
7003
|
+
width: 98vw !important;
|
|
7004
|
+
max-width: 98vw !important;
|
|
7005
|
+
margin: 1vh auto;
|
|
7006
|
+
}
|
|
7007
|
+
}
|
|
7008
|
+
|
|
7009
|
+
/* Wide desktop: use extra space */
|
|
7010
|
+
@media (min-width: 1440px) {
|
|
7011
|
+
#app {
|
|
7012
|
+
grid-template-columns: 280px 1fr 320px;
|
|
7013
|
+
}
|
|
7014
|
+
}
|
|
7015
|
+
|
|
7016
|
+
/* ===== Accessibility: Reduced Motion ===== */
|
|
7017
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7018
|
+
*, *::before, *::after {
|
|
7019
|
+
animation-duration: 0.01ms !important;
|
|
7020
|
+
transition-duration: 0.01ms !important;
|
|
7021
|
+
scroll-behavior: auto !important;
|
|
7022
|
+
}
|
|
7023
|
+
}
|
|
7024
|
+
|
|
7025
|
+
/* ===== Accessibility: Touch Targets (mobile only) ===== */
|
|
7026
|
+
@media (pointer: coarse) {
|
|
7027
|
+
button, [role="button"], select, input[type="checkbox"], input[type="radio"] {
|
|
7028
|
+
min-height: 44px;
|
|
7029
|
+
min-width: 44px;
|
|
7030
|
+
}
|
|
7031
|
+
/* Exempt small/inline elements — full-width hit area or intentionally compact */
|
|
7032
|
+
.pixel-title button, .pixel-btn.small, .btn-small,
|
|
7033
|
+
.collapsible-header, .toolbar-icon-btn, .kanban-column-header {
|
|
7034
|
+
min-height: unset;
|
|
7035
|
+
min-width: unset;
|
|
7036
|
+
}
|
|
7037
|
+
}
|
|
7038
|
+
|
|
7039
|
+
/* ===== Interaction: Disabled State ===== */
|
|
7040
|
+
button:disabled, [aria-disabled="true"] {
|
|
7041
|
+
opacity: 0.5;
|
|
7042
|
+
cursor: not-allowed;
|
|
6968
7043
|
}
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -595,7 +595,13 @@ settings = Settings()
|
|
|
595
595
|
|
|
596
596
|
|
|
597
597
|
def update_env_var(key: str, value: str) -> None:
|
|
598
|
-
"""Update or add a variable in the .env file, then reload settings.
|
|
598
|
+
"""Update or add a variable in the .env file, then reload settings.
|
|
599
|
+
|
|
600
|
+
Also syncs os.environ so that pydantic BaseSettings (which reads os.environ
|
|
601
|
+
with higher priority than .env files) sees the new value immediately.
|
|
602
|
+
"""
|
|
603
|
+
import os as _os
|
|
604
|
+
|
|
599
605
|
env_path = DATA_ROOT / DOT_ENV_FILENAME
|
|
600
606
|
lines: list[str] = []
|
|
601
607
|
found = False
|
|
@@ -610,6 +616,9 @@ def update_env_var(key: str, value: str) -> None:
|
|
|
610
616
|
if not found:
|
|
611
617
|
lines.append(f"{key}={value}")
|
|
612
618
|
env_path.write_text("\n".join(lines) + "\n", encoding=ENCODING_UTF8)
|
|
619
|
+
# Sync os.environ — main.py's load_dotenv() seeds it at startup;
|
|
620
|
+
# without this, the stale env var wins over the updated .env file.
|
|
621
|
+
_os.environ[key] = value
|
|
613
622
|
reload_settings()
|
|
614
623
|
|
|
615
624
|
|