Milestone v1.0: FamilySync MVP #1

Merged
luckberg merged 376 commits from gsd/v1.0-milestone into main 2026-06-10 17:39:19 -04:00
3 changed files with 27 additions and 3 deletions
Showing only changes of commit fc758e8ea6 - Show all commits
+1 -1
View File
@@ -205,7 +205,7 @@ export function CalendarShell() {
}}
>
{/* Main calendar area */}
<div style={{ flex: 1, minHeight: 0, position: 'relative', overflow: 'hidden' }}>
<div style={{ flex: 1, minHeight: 0, height: '100%', position: 'relative' }}>
{isInitialLoading ? (
// Loading state: shimmer skeleton
<div style={{ padding: 'var(--space-4)', flex: 1 }}>
+21
View File
@@ -8,6 +8,27 @@
@import './tokens.css';
/* ── Schedule-X calendar sizing ───────────────────────────────────────────── */
/*
* Schedule-X renders .sx__calendar-wrapper (height:100%) inside a <div> that
* the React adapter emits without an explicit height. The parent container in
* CalendarShell is a flex item (flex:1; minHeight:0; height:100%) so we must
* propagate that height down through the React wrapper element to the
* .sx__calendar-wrapper so the week/day time-grid (.sx__view-container) can
* scroll correctly.
*
* Class names confirmed from @schedule-x/theme-default@4.6.0 dist/index.css:
* .sx__calendar-wrapper outer wrapper emitted by the React adapter
* .sx__calendar inner flex-column container (flex:1; height:100%)
* .sx__view-container scrollable time-grid body (flex:1; overflow-y:auto)
*
* The React adapter wraps everything in a single <div> with no class; we
* target it via the .sx__calendar-wrapper descendant relationship.
*/
.sx__calendar-wrapper {
height: 100%;
}
/* ── Minimal Global Reset ─────────────────────────────────────────────────── */
*,
+5 -2
View File
@@ -114,10 +114,13 @@
--sx-color-on-surface: var(--color-text-primary);
--sx-color-on-surface-variant: var(--color-text-secondary);
--sx-color-outline: var(--color-border);
--sx-color-neutral: var(--color-surface-dim);
--sx-color-neutral-variant: var(--color-border-subtle);
--sx-color-neutral: var(--color-text-secondary);
--sx-color-neutral-variant: var(--color-border);
--sx-font-family: var(--font-family-base);
/* Ensure internal text color (chevrons, borders) uses our primary text */
--sx-internal-color-text: var(--color-text-primary);
}
/* ─────────────────────────────────────────────────────────────────────────