diff --git a/packages/app-shell/src/console/home/HomePage.tsx b/packages/app-shell/src/console/home/HomePage.tsx index ac93b97cf..b45734694 100644 --- a/packages/app-shell/src/console/home/HomePage.tsx +++ b/packages/app-shell/src/console/home/HomePage.tsx @@ -46,13 +46,9 @@ function GettingStartedHint({ t }: { t: (key: string, opts?: any) => string }) { return (
-
-
+
@@ -98,7 +94,7 @@ function StatPill({ tone: string; }) { return ( - + {value} {label} @@ -173,20 +169,19 @@ export function HomePage() { } return ( -
- {/* Decorative ambient blobs */} -
-
-
-
-
-
+
+ {/* + Content-first neutral canvas (Linear/Vercel-console style): no ambient + color wash. Hierarchy comes from typography, spacing, and hairline + borders + micro-shadows on cards — the only brand-color highlight is + the gradient display name in the hero. + */} {/* Hero */}
- + {t('home.title', { defaultValue: 'Home' })}

@@ -245,7 +240,7 @@ export function HomePage() {
- +
diff --git a/packages/app-shell/src/views/metadata-admin/previews/ObjectPreview.tsx b/packages/app-shell/src/views/metadata-admin/previews/ObjectPreview.tsx index bfe9df163..0c6aa3078 100644 --- a/packages/app-shell/src/views/metadata-admin/previews/ObjectPreview.tsx +++ b/packages/app-shell/src/views/metadata-admin/previews/ObjectPreview.tsx @@ -70,23 +70,16 @@ export function ObjectPreview({ name, draft, onPatch, - editing, }: MetadataPreviewProps) { const objectName = String((draft as any).name ?? name ?? ''); const columns = React.useMemo(() => deriveColumns((draft as any).fields), [draft]); const label = String((draft as any).label ?? objectName); const pluralLabel = String((draft as any).pluralLabel ?? `${label}s`); - // Default to Designer when editing + writable; otherwise Data view - // keeps the run-time fidelity for read-only browsing. - const canDesign = !!onPatch && editing !== false; - const [mode, setMode] = React.useState(canDesign ? 'designer' : 'data'); - - // If editing toggles to read-only, snap back to Data view to avoid - // showing an inert designer surface. - React.useEffect(() => { - if (!canDesign && mode === 'designer') setMode('data'); - }, [canDesign, mode]); + // Default to Designer: even in read-only tiers, browsing the field + // definitions is more useful than an empty Data grid. FieldDesigner + // gracefully degrades via its `readOnly` prop when onPatch is absent. + const [mode, setMode] = React.useState('designer'); if (!objectName) { return ( @@ -107,7 +100,6 @@ export function ObjectPreview({ setMode('designer')} - disabled={!canDesign} icon={} label="Designer" />