Update signing configuration to use 88oakapps.feels identifiers

- Update App Group IDs from group.com.tt.feels to group.com.88oakapps.feels
- Update iCloud container IDs from iCloud.com.tt.feels to iCloud.com.88oakapps.feels
- Sync code constants with entitlements across all targets (iOS, Watch, Widget)
- Update documentation in CLAUDE.md and PROJECT_OVERVIEW.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-29 10:01:49 -06:00
parent b6290403b0
commit 810ac2d649
28 changed files with 12289 additions and 13332 deletions

View File

@@ -65,7 +65,7 @@ enum AppTheme: Int, CaseIterable, Identifiable {
var description: String {
switch self {
case .zenGarden:
return "Japanese minimalism meets mindful awareness. Soft pastels, organic growth icons, brush-stroke entries, and contemplative vertical voting."
return "Japanese minimalism meets mindful awareness. Soft pastels, organic growth icons, clean entries, and contemplative vertical voting."
case .synthwave:
return "80s arcade aesthetic with neon glow. Electric colors, cosmic icons, grid backgrounds, and equalizer-bar voting."
case .celestial:
@@ -75,7 +75,7 @@ enum AppTheme: Int, CaseIterable, Identifiable {
case .mixtape:
return "Cassette culture and analog warmth. Tape reels, track numbers, and the tactile feel of pressing play."
case .bloom:
return "From wilted flower to full bloom. Organic shapes, glowing orbs, and the gentle metaphor of growth."
return "From wilted flower to full bloom. Atmospheric glowing entries, organic icons, and the gentle metaphor of growth."
case .heartfelt:
return "Unashamed emotional expression. Heart icons from broken to sparkling, bold colors, intuitive selection."
case .minimal:
@@ -83,7 +83,7 @@ enum AppTheme: Int, CaseIterable, Identifiable {
case .luxe:
return "Liquid glass and premium materials. Cutting-edge iOS design language for the discerning user."
case .forecast:
return "Your mood is the weather. Storm to sunshine icons, flowing wave entries, and natural intuition."
return "Your mood is the weather. Storm to sunshine icons, colorful bubble entries, and natural intuition."
case .playful:
return "Life's too short to be serious. Vibrant neons, familiar emoji, and game-like interaction."
case .journal:
@@ -146,16 +146,16 @@ enum AppTheme: Int, CaseIterable, Identifiable {
var entryStyle: DayViewStyle {
switch self {
case .zenGarden: return .ink
case .zenGarden: return .minimal
case .synthwave: return .neon
case .celestial: return .orbit
case .editorial: return .chronicle
case .mixtape: return .tape
case .bloom: return .morph
case .bloom: return .aura
case .heartfelt: return .bubble
case .minimal: return .minimal
case .luxe: return .glass
case .forecast: return .wave
case .forecast: return .bubble
case .playful: return .pattern
case .journal: return .stack
}
@@ -169,10 +169,10 @@ enum AppTheme: Int, CaseIterable, Identifiable {
case .editorial: return .horizontal
case .mixtape: return .cards
case .bloom: return .aura
case .heartfelt: return .radial
case .heartfelt: return .horizontal
case .minimal: return .horizontal
case .luxe: return .aura
case .forecast: return .radial
case .forecast: return .horizontal
case .playful: return .cards
case .journal: return .stacked
}

View File

@@ -9,23 +9,20 @@ import SwiftUI
class DaysFilterClass: ObservableObject {
static let shared = DaysFilterClass()
@Published public var currentFilters = [Int]()
// Always show all days (1-7 = Sunday through Saturday)
@Published public var currentFilters = [1, 2, 3, 4, 5, 6, 7]
init() {
let storedDays = UserDefaultsStore.getDaysFilter()
currentFilters = storedDays
// Always include all days
currentFilters = [1, 2, 3, 4, 5, 6, 7]
}
func addFilter(newFilter: Int) {
currentFilters.append(newFilter)
currentFilters = UserDefaultsStore.saveDaysFilter(days: currentFilters)
// No-op: always show all days
}
func removeFilter(filter: Int) {
if let index = currentFilters.firstIndex(of: filter) {
currentFilters.remove(at: index)
}
currentFilters = UserDefaultsStore.saveDaysFilter(days: currentFilters)
// No-op: always show all days
}
}

View File

@@ -10,17 +10,15 @@ import Foundation
enum VotingLayoutStyle: Int, CaseIterable {
case horizontal = 0 // Current: 5 buttons in a row
case cards = 1 // Larger tappable cards with labels
case radial = 2 // Semi-circle/wheel arrangement
case stacked = 3 // Full-width vertical list
case aura = 4 // Atmospheric glowing orbs with flowing layout
case orbit = 5 // Celestial orbit with center core
case neon = 6 // Synthwave arcade equalizer with glowing segments
case stacked = 2 // Full-width vertical list
case aura = 3 // Atmospheric glowing orbs with flowing layout
case orbit = 4 // Celestial orbit with center core
case neon = 5 // Synthwave arcade equalizer with glowing segments
var displayName: String {
switch self {
case .horizontal: return "Horizontal"
case .cards: return "Cards"
case .radial: return "Radial"
case .stacked: return "Stacked"
case .aura: return "Aura"
case .orbit: return "Orbit"
@@ -162,6 +160,21 @@ enum DayViewStyle: Int, CaseIterable {
var isGridLayout: Bool {
self == .grid
}
/// Styles available in the picker (some are disabled/experimental)
var isAvailable: Bool {
switch self {
case .motion, .leather, .wave, .morph, .prism, .ink:
return false
default:
return true
}
}
/// All styles available to users
static var availableCases: [DayViewStyle] {
allCases.filter { $0.isAvailable }
}
}
class UserDefaultsStore {