- Applied all 31 pending Supabase migrations successfully
- Fixed 100+ policy/trigger/index duplication errors for shared database
- Resolved foundation_contributions schema mismatch (added user_id, contribution_type, resource_id, points columns)
- Added DROP IF EXISTS statements for all policies, triggers, and indexes
- Wrapped storage.objects operations in permission-safe DO blocks
Developer Platform (10 Phases Complete):
- API key management dashboard with RLS and SHA-256 hashing
- Complete API documentation (8 endpoint categories)
- 9 template starters + 9 marketplace products + 12 code examples
- Quick start guide and SDK distribution
- Testing framework and QA checklist
Database Schema Now Includes:
- Ethos: Artist/guild tracking, verification, tracks, storage
- GameForge: Games, assets, monetization
- Foundation: Courses, mentorship, resources, contributions
- Nexus: Creator marketplace, portfolios, contracts, escrow
- Corp Hub: Invoices, contracts, team management, projects
- Developer: API keys, usage logs, profiles
Platform Status: Production Ready ✅
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
/**
|
|
* AeThex Design System - Spacing & Layout Utilities
|
|
* Consistent spacing tokens across the entire application
|
|
*/
|
|
|
|
export const SPACING = {
|
|
// Container Classes
|
|
CONTAINER: "container mx-auto px-4 sm:px-6 lg:px-8",
|
|
|
|
// Page Containers with vertical padding
|
|
PAGE_CONTAINER: "container mx-auto px-4 sm:px-6 lg:px-8 py-8 lg:py-12",
|
|
|
|
// Max Widths
|
|
MAX_WIDTH: {
|
|
full: "max-w-7xl", // Main app pages (1280px)
|
|
content: "max-w-6xl", // Content pages (1152px)
|
|
article: "max-w-4xl", // Articles, docs (896px)
|
|
card: "max-w-2xl", // Centered cards (672px)
|
|
},
|
|
|
|
// Vertical Spacing (space-y-*)
|
|
VERTICAL: {
|
|
xs: "space-y-2", // 8px - Tight grouped items
|
|
sm: "space-y-4", // 16px - Related content
|
|
md: "space-y-6", // 24px - Card sections
|
|
lg: "space-y-8", // 32px - Page sections
|
|
xl: "space-y-12", // 48px - Major sections
|
|
"2xl": "space-y-16", // 64px - Section breaks
|
|
},
|
|
|
|
// Horizontal Gaps
|
|
GAP: {
|
|
xs: "gap-2", // 8px - Badges, tags
|
|
sm: "gap-4", // 16px - Buttons, forms
|
|
md: "gap-6", // 24px - Card grids
|
|
lg: "gap-8", // 32px - Wide layouts
|
|
},
|
|
|
|
// Card Padding
|
|
CARD: {
|
|
sm: "p-4 sm:p-6",
|
|
md: "p-6 lg:p-8",
|
|
lg: "p-8 lg:p-12",
|
|
},
|
|
} as const;
|
|
|
|
/**
|
|
* Utility functions for building class strings
|
|
*/
|
|
export const buildPageContainer = (maxWidth: keyof typeof SPACING.MAX_WIDTH = "full") => {
|
|
return `${SPACING.PAGE_CONTAINER} ${SPACING.MAX_WIDTH[maxWidth]}`;
|
|
};
|
|
|
|
export const buildContainer = (maxWidth: keyof typeof SPACING.MAX_WIDTH = "full") => {
|
|
return `${SPACING.CONTAINER} ${SPACING.MAX_WIDTH[maxWidth]}`;
|
|
};
|