Commit Graph

9 Commits

Author SHA1 Message Date
cc650c68d4 Add settings theming guide and fix Color typealias conflicts
- Add SETTINGS_GUIDE.md with comprehensive documentation for creating branded settings screens
- Rename Color.Text to Color.TextColors to avoid conflict with SwiftUI Text view
- Rename Color.Button to Color.ButtonColors to avoid conflict with SwiftUI Button view
- Add accentColor parameter to SettingsSectionHeader for customizable section icons
- Update README and PulsingModifier to use new TextColors typealias
2026-01-04 16:54:04 -06:00
c7c507c8f7 Add branding system with customizable launch screen and app icon
- Add AppIconView with configurable title, subtitle, icon, and colors
- Add LaunchScreenView with multiple pattern styles (dots, grid, radial, none)
- Add layout styles (iconAboveTitle, titleAboveIcon, iconOnly, titleOnly)
- Add IconGeneratorView for exporting 1024px app icons
- Add BrandingPreviewView for previewing branding assets
- Add AppLaunchView wrapper for animated app launch
- Add comprehensive BRANDING_GUIDE.md documentation
- Remove all casino-specific references, make fully generic
2026-01-04 14:38:32 -06:00
9212cd4c23 Fix hasCompletedInitialSync never being set for existing users
- Set hasCompletedInitialSync = true when user has existing data
- Only scheduleDelayedCloudCheck for fresh installs with no data
- Fixes UI stuck on 'Syncing...' for returning users
2026-01-04 13:33:32 -06:00
8add0a801a Fix CloudSyncManager sync status getting stuck on 'Syncing...'
- Set initial sync status on init based on iCloud availability
- Update status after initial synchronize call in init
- Properly set isSyncing and syncStatus in scheduleDelayedCloudCheck
- Update syncStatus to 'Synced' after handling cloud changes
2026-01-04 13:28:20 -06:00
b5a5c62fa8 Add PremiumGate utility for generic freemium settings gating
- Add PremiumGate enum with get/canSet helpers for premium-gated settings
- Supports entirely premium settings (returns default for free users)
- Supports partial premium (only specific values require premium)
- Preserves stored values so re-subscribing restores previous choices
2026-01-04 13:22:57 -06:00
40d1285c38 Fix Swift 6 concurrency warning for showDebugLogs
Mark showDebugLogs as nonisolated(unsafe) to resolve the 'static property is not concurrency-safe' error. This is appropriate for a debug flag that is typically set once at app launch.
2026-01-04 12:36:22 -06:00
9f4046bfd2 Use @_implementationOnly for UIKit imports to prevent macro conflicts 2026-01-02 12:15:08 -06:00
b3033c084a Remove @_exported imports to prevent macro conflicts
- Changed Exports.swift to use regular imports instead of @_exported
- This prevents ambiguous macro resolution issues in consuming apps
2026-01-02 12:02:27 -06:00
fa7d848f52 Initial commit: Bedrock design system and UI component library
- Design system: spacing, typography, colors, animations, opacity, shadows
- Protocol-based color theming (AppColorTheme)
- Settings UI components: toggles, pickers, selection indicators
- Sound and haptic feedback manager (generic AppSound protocol)
- Onboarding state management
- Cloud sync manager (PersistableData protocol)
- Visual effects: ConfettiView, PulsingModifier
- Debug utilities: DebugBorderModifier
- Device information utilities (cross-platform)
- Unit tests for design constants
2026-01-02 11:58:30 -06:00