feat: add housekeeping module for household staff management

* Adding flexible reminder options to birthdays

* Fix database migration merge conflict

* Truncate calendar popup descriptions

* Log app version on backend startup

* Add host-mounted data and backup folders

* feat: add housekeeping module

* fix: align housekeeping UI and add task creation

* refactor: rebuild housekeeping experience

* feat: support multiple housekeeping staff

* feat: integrate housekeeping visits with calendar

* feat: refine housekeeping visits and payments

* feat: add housekeeping staff visit logs

* feat: add housekeeping receipts and document folders

* feat: localize housekeeping folders and chores

* feat: refine housekeeping tabs and document folders

* fix: sync housekeeping tab active state

* feat: use configured app name in onboarding and manifest
This commit is contained in:
Rafael Foster
2026-05-08 15:14:51 -03:00
committed by GitHub
parent d19689a1ab
commit 22ec13e559
38 changed files with 7127 additions and 235 deletions
+112 -1
View File
@@ -91,10 +91,97 @@
max-width: 240px;
}
.documents-list {
.documents-browser-layout {
display: grid;
grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
align-items: start;
gap: var(--space-4);
padding: 0 var(--space-4) calc(var(--nav-bottom-height) + var(--space-8));
}
.documents-folder-browser {
position: sticky;
top: var(--space-4);
border: 1px solid var(--color-border-subtle);
border-radius: var(--radius-md);
background: var(--color-surface);
box-shadow: var(--shadow-sm);
overflow: hidden;
}
.documents-folder-browser__title {
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--color-border-subtle);
color: var(--color-text-secondary);
font-size: var(--text-xs);
font-weight: var(--font-weight-semibold);
text-transform: uppercase;
}
.documents-folder-browser__list {
display: flex;
flex-direction: column;
gap: var(--space-1);
padding: var(--space-2);
}
.documents-folder-item {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: var(--space-2);
min-height: var(--target-base);
padding: 0 var(--space-2);
border-radius: var(--radius-sm);
color: var(--color-text-secondary);
text-align: left;
}
.documents-folder-item:hover,
.documents-folder-item--active {
background: color-mix(in srgb, var(--module-accent) 12%, transparent);
color: var(--module-accent);
}
.documents-folder-item__icon {
display: inline-flex;
align-items: center;
justify-content: center;
}
.documents-folder-item__icon svg {
width: 17px;
height: 17px;
}
.documents-folder-item__name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: var(--text-sm);
font-weight: var(--font-weight-medium);
}
.documents-folder-item__count {
min-width: 24px;
padding: 2px var(--space-2);
border-radius: var(--radius-full);
background: var(--color-surface-2);
color: var(--color-text-tertiary);
font-size: var(--text-xs);
text-align: center;
}
.documents-folder-item--active .documents-folder-item__count {
background: color-mix(in srgb, var(--module-accent) 16%, var(--color-surface));
color: var(--module-accent);
}
.documents-list {
min-width: 0;
}
.documents-list--grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
@@ -335,6 +422,30 @@
max-width: none;
}
.documents-browser-layout {
display: flex;
flex-direction: column;
}
.documents-folder-browser {
position: static;
width: 100%;
}
.documents-folder-browser__list {
flex-direction: row;
overflow-x: auto;
scrollbar-width: none;
}
.documents-folder-browser__list::-webkit-scrollbar {
display: none;
}
.documents-folder-item {
min-width: 160px;
}
.document-row {
grid-template-columns: auto minmax(0, 1fr);
}